Back to my Homepage
Did this site help you?
Average rating (K750i):
2.68/3 (1864 votes)

GNU/Linux and the Sony Ericsson K750i

The K750i made by Sony Ericsson is a cellphone with many features. Although it does not run Linux itself - hearing this from me may be a suprise for your - it does interact with Linux powered devices quite well.

Overview

TuxMobil Listed

These pages are conceived to keep hold of the experiences and discoveries I made with this phone in its interaction with my linux systems.

File transfer

To transfer ringtones, images, themes or any other file to your phone, you have basically three options:

The first two methods access the storage directly without involving the cellphone software.

Using a cardreader

Using an external cardreader is an easy way of accessing the files of the phone: The memory stick delivered with the cellphone is called "Memory Stick Duo", since it only half as long and thinner than the usual medium. Although most cardreaders accept the smaller variant, an adaptor (hence the name "Duo") is packaged along with it to stretch it to the normal size.

Once the card reader accepts the medium, you can mount it like a normal hard drive.

Using the USB cable

The USB cable works similar, it announces the memory stick to the Linux system, which recognizes it as a mass storage device and assigns a device name for it. It can then be mounted like the card reader.

While the phone is attached to the USB port, access to the memory stick is granted exclusively to the computer, so neither ringtones nor themes originating from the storage card is accessible to the phone. Once the plug is pulled out, the device refreshes its views and shows the files again.

Uploading files via Bluetooth

This method requires a working Bluetooth device on your Linux system: If you have activated Bluetooth on your phone (and enabled visibility), a scan by hcitool should reveal the nickname and MAC address of your cellphone:

stefan@nano:~$ hcitool scan
Scanning ...
        00:12:EE:12:34:56       K750i

To transfer files towards the device, you have to install the package obexftp (This is how the package is called by Debian, it may be different for other distributions).

To transfer a file, simply execute obexftp -b 00:12:EE:12:34:56 -p file.ext. The parameter -b instructs the program to use Bluetooth; if you omit the MAC address, obexftp will scan for surrounding Bluetooth devices and select the transfer partner automatically.

Receiving files via Bluetooth

To receivea a file on your computer via the Bluetooth interface, an OBEX server has to be running. A simple example of such a daemon is contained in the Debian package obexserver. The service "OBEX PUSH" also has to be registred to the SDP daemon of the Bluetooth suite; You can do this with the following script:

#!/bin/sh
# Register OBEX PUSH
sdptool add --channel=10 OPUSH
# Launch OBEX server
obexserver

You can start this script everytime you wish to retrieve a file from your phone, obexserver will terminate gracefully after each transfer, and after placing the sent file in /tmp/.

The filesystem

The filesystem on the memory stick contains a directory structure that reflects the multiple uses of the storage medium:

Although MP3 files on the Memory Stick can be used to signal an incoming call, the sound file for message notification has to reside on the buitin phone memory. So if you want to use a custom sound for it, you have to copy or move the file with the file manager to this integrated storage.

Controlling the phone with the computer

The cellphone offers an (virtual) serial interface that can be used to issue AT commands or trigger other phone functions. The serial line is accessible via the USB cable, as well as via Bluetooth. Once the link is established, you can access the data of the phone, interact with the user interface and manipulate the telephony functions. See my page about various AT commands for more information.

Serial interface via USB

Once you plug in the phone, your Linux system not only recognizes the USB storage device, but also detects the builtin modem. It then should load the appropiate cdc_acm module which brings support for USB modems and ISDN adaptors.

Depending on your DevFS or udev configuration, the new device will be placed under /dev/ttyACM0 and /dev/ttyACM1; consult your logfiles to investigate this. The files can be opened with minicom or any other terminal program, some other programs like xgsm also use this interface to gain access to the phone.

Serial interface via Bluetooth

Instead of relying on a wired connection, you can also use the Bluetooth interface to access this serial line: An easy way to achieve this involves the automatic binding features of the rfcomm daemon. Simply include the following section in the file /etc/bluetooth/rfcomm.conf:

rfcomm0 {
    bind yes;
    # MAC address of your phone:
    device 00:12:12:34:56:78;
}

Now reload the Bluetooth subsystem with /etc/init.d/bluetooth restart. If you already paired your computer with your phone, accessing the device /dev/bluetooth/rfcomm/0 (The exact location depends on your /dev setup) will instruct RFComm to connect to the phone without any user action needed. You can monitor the process with the rfcomm utility:

stefan@nano:~$ rfcomm 
rfcomm0: 00:12:12:34:56:78 channel 1 clean

Once a process opens the device file /dev/bluetooth/rfcomm/0, the RFComm daemon contacts the phone:

rfcomm0: 00:12:12:34:56:78 channel 1 config [tty-attached]

which results in

rfcomm0: 00:12:12:34:56:78 channel 1 connected [tty-attached]

Once the device file is closed again, the connection is terminated.

Tricks & Hints

These are some tricks that are not linux specific, but interesting:

Service menu

To access the service menu, where you can retrieve some information about the running firmware and check the phones hardware, pull the following button stunt: