ottaky@ottaky.com
 
HTML OK
CSS OK
 
 
ottaky.com supports..
ORG
no2id

Sony Ericsson K800i and Linux

Author: sjb (Steve Brown) - ottaky@ottaky.com
Date: 30th June 2007
See also: Sony Ericsson website
K800i and Linux blog

Sony Ericsson K800i

K800i

My much used and loved Clié UX50 recently decided to freeze completely and, in the course of resurrecting it from the dead, I lost 4 years worth of appointments and contacts. It continued to lock up whenever I started it so it was time to look around for a replacement device. Coincidentally, my mobile phone was beginning to show its age, so I decided to get a new phone that could also work as a PDA. I decided on the SE K800i and picked one up for nothing on a contract with the three network in the UK.

The photograph on the left shows me running a SSH session on the ottaky.com host using MidpSSH. From there I can SSH to my home PC, and from there I can access my office servers via VPN. Neat, huh?

Does it work with Linux? Yes .. or at least bits of it work. Most importantly, the 'phone and the MemoryStick inside the phone both mount as mass storage devices over USB.

dell kernel: usb 3-1: new full speed USB device using uhci_hcd and address 7
dell kernel: usb 3-1: new device found, idVendor=0fce, idProduct=e039
dell kernel: usb 3-1: new device strings: Mfr=1, Product=2, SerialNumber=3
dell kernel: usb 3-1: Product: Memory Stick
dell kernel: usb 3-1: Manufacturer: Sony Ericsson
dell kernel: usb 3-1: SerialNumber: XXXXXXXXXXXXXXXX
dell kernel: usb 3-1: configuration #2 chosen from 1 choice
dell kernel: scsi6 : SCSI emulation for USB Mass Storage devices
dell kernel: usb-storage: device found at 7
dell kernel: usb-storage: waiting for device to settle before scanning
dell kernel: scsi7 : SCSI emulation for USB Mass Storage devices
dell kernel: usb-storage: device found at 7
dell kernel: usb-storage: waiting for device to settle before scanning
dell kernel:   Vendor: Sony Eri  Model: Memory Stick      Rev: 0000
dell kernel:   Type:   Direct-Access                      ANSI SCSI revision: 00
dell kernel:   Vendor: Sony Eri  Model: Memory Stick      Rev: 0000
dell kernel:   Type:   Direct-Access                      ANSI SCSI revision: 00
dell kernel: sd 6:0:0:0: Attached scsi removable disk sdc
dell kernel: sd 6:0:0:0: Attached scsi generic sg2 type 0
dell kernel: sd 7:0:0:0: Attached scsi removable disk sdd
dell kernel: sd 7:0:0:0: Attached scsi generic sg3 type 0
dell kernel: usb-storage: device scan complete
dell kernel: usb-storage: device scan complete
dell kernel: SCSI device sdd: 1867653 512-byte hdwr sectors (956 MB)
dell kernel: sdd: test WP failed, assume Write Enabled
dell kernel: sdd: assuming drive cache: write through
dell kernel: SCSI device sdd: 1867653 512-byte hdwr sectors (956 MB)
dell kernel: SCSI device sdc: 168000 512-byte hdwr sectors (86 MB)
dell kernel: sdd: test WP failed, assume Write Enabled
dell kernel: sdd: assuming drive cache: write through
dell kernel:  sdd:<4>sdc: test WP failed, assume Write Enabled
dell kernel: sdc: assuming drive cache: write through
dell kernel:  sdd1
dell kernel:  sdd: p1 exceeds device capacity
dell kernel: SCSI device sdc: 168000 512-byte hdwr sectors (86 MB)
dell kernel: sdc: test WP failed, assume Write Enabled
dell kernel: sdc: assuming drive cache: write through
dell kernel:  sdc: sdc1
dell kernel: attempt to access beyond end of device
dell kernel: sdd: rw=0, want=1867772, limit=1867653

.. followed by loads of errors. It seems to work though, just make sure to run 'sync' as root when you've finished copying files backwards and forwards and before you umount the drive(s).

I've successfully paired my PC and the K800i using a Sitecom USB Bluetooth adapter, YaST and KBluetoothD which allows you to browse the phone and Memorystick wirelessly for those times that you can't be bothered to plug the USB cable in (or you keep the cable in your office).

Mini Review

The good:

  • Excellent display. Very crisp, plenty bright enough (even though it washes out in bright sunlight) and a decent size too.
  • Occasionally smart UI and menus. The OS can be smart when it wants to be, but it just doesn't want to be smart all that often.
  • Solid MP3 player. With decent headphones (see below) and a tweak or two on the equaliser it can sound pretty good. Really.
  • NetFront is still the best of the mobile browsers and it's dead good on 3G.
  • Good build quality, at least as good as Nokia's .. maybe even better.
  • Charges over the USB cable when plugged into a PC.

The bad:

  • Piss poor camera. Don't let anybody tell you otherwise! It's slow to start, slow to focus and even slower to actually respond to the shutter button. Assuming you do actually get a shot of what you wanted to after all the delays, the photos are not very good either. Chromatic Aberrartion, noise, poor anti-aliasing, no apparent sharpening and indifferent exposure all add up to a bit of a disappointment all round.
  • Supplied headset is rubbish. Embarassingly bad. The phones don't stay in your ears and they sound like a total joke. I bought a HPM-70 headset as a replacement and the earbud headset supplied with that was almost as bad, but at least they can be replaced with something halfway decent with a 3.5mm jack plug .. like my Sennheiser CX300s.
  • Absolutely dire PC software. Pretty much as you expect from Sony these days - a nasty piece of tat devloped by a 3rd party with a Sony Ericsson splash screen tacked on when it starts. Forget about it. Install the drivers, and then download MyPhoneExplorer.
  • Occasionally frustrating menus that have you hunting around for what you want.
  • My 3 branded phone came with a manual that (intentionally) had half the pages missing. The official manual from Sony's website was better, but still not good.
  • Battery life isn't that great. When it's not actually doing anything the battery use is minimal (as you'd expect), but as soon as you start using the data services you can almost see the battery charge dropping before your eyes.

Must have apps

The K800i runs Java applications, but don't let that put you off.

The following software for your phone is free ..

.. and these you have to pay for ..

For your PC, these are free ..

Teh c0d3z:

  • >*<<*<* - Service Menu
  • <**< - Personalize Menu
  • *#06# - Show IMEI

Worthwhile Accessories

Software development

Somewhat surprisingly, SE provide some pretty good tools for creating your own Java applications that will run on their phones. The core component is their SDK 2.2.4 for the Java(TM) ME Platform which is a free download, and you don't even have to register!

The SDK release notes explain all of the requirements and dependencies in detail, but in summary you will need to install the phone drivers, Sun's JDK and Microsoft's DirectX before you can use Sony's SDK. It's all a bit tiresome, but it does all work in the end.

SE recommend using Sun's J2SDK 1.4.2 over version 5 (or 6), so that's what I installed. If you want to use NetBeans as an IDE, you'll need to download version 5 because the current verision 5.5 only works with J2SDK 5. Confused? I was. Once I installed NetBeans, I then installed the Mobility Pack 5, and followed the instructions here to integrate SE's SDK with NetBeans.

I despise Java as a programming language and will avoid it all costs, but needs must as the devil drives. I've written a very small MIDlet that you can download via the link below. NetMon simply displays some radio related information (e.g., Cell-ID, LAC, MCC, MNC etc.) which is usually inaccessable from any of the built in phone applications.

NB: NetMon will only work on JP-7 (Java Platform 7) Sony Ericsson phones with firmware R1JC002 or greater. I honestly can't tell you which phone models it will work on, but it may only be K610, K800, K790, W850, Z710 and W710 with the correct firmware. The only phone that I can say for sure works is the K800, but you may still need to check the firmware version if yours is an older phone.

If you choose to install and run NetMon, you do so at your own risk. I am not responsible for any damage that you, or NetMon does to your phone! NetMon is supplied "as is" under the WFM (Works For Me) licence and is really very .. err .. rough and ready. Remember, you're downloading a Java application written by somebody who hates writing Java and doesn't really know what they're doing! I wrote a Hello World application, and then NetMon, so that should give you some idea of the quality involved.

Since a lot of people ask ..
.. where the calls that NetMon uses are documented, you can download SE's Java Development guide here. You're probably most interested in page 72.

Download NetMon by pointing the browser on your phone here: http://www.ottaky.com/jar/NetMon.jad

NetMon
What Detail Value
MCC Mobile Country Code Numeric. 234 == UK
MNC Mobile Network Code Numeric. 20 == three in the UK
CMCC Current Mobile Country Code Numeric. As MCC
CMNC Current Mobile Network Code Numeric. As MNC
isonhomeplmn Is on home PLMN Boolean. true if CMCC == MCC && CMNC == MNC, else false
RAT Radio Access Technology String. WCDMA, GSM, or null (for flight mode)
Cell-ID Cell ID Hex number. 4 digits for GSM, 8 digits for WCDMA, null if not connected
LAC Location Area Code Hex number. 4 digits or null if not connected
status Network status String. Home PLMN, Available, Preferred, No Network, null
IMEI International Mobile Equipment Identity 15 digits

PLMN == Public Land Mobile Network

FYI, here's a log of LACs and Cell-IDs (for Hutchinson 3) I logged travelling from Clapham Junction to Thames Ditton on the train.

Station LAC Cell-ID
Clapham Junction 04d1 0801123d
Earlsfield 04d0 08251248
Wimbledon 04d0 0825a890
Raynes Park 04d0 08254c67
New Malden 04d0 08204e5e
Berrylands 04d0 08205006
Surbiton 04d0 080029ed
(en route) 04d0 080029ec
(en route) 04d0 08205cd8
(en route) 04d0 082009ee
(en route) 04d0 0820554e
(en route) 04d0 082009ed
(en route) 04d0 082009f0
Thames Ditton 04d0 0820554e