Debian GNU/Linux (sid) with the SonyEricsson P900

First of all, to avoid misunderstandings, this page is not about how to install GNU/Linux on the P900 but about how to interact with the P900 from GNU/Linux the easiest possible way!

Specification

SonyEricsson P900
  • Symbian OS 7 UIQ 2.1
  • ARM 9 processor core
  • 320 x 208 pixel touch-sensitive 65k colour display
  • 16 MB internal memory
  • external memory via Memory Stick Duo (up to 128 MB)
  • for exact details have a look at SonyEricsson's page

Linux Kernel

You need the BlueZ Bluetooth stack in order to get the rest of the configuration on this page working. I suggest you configure the Bluetooth section of the kernel configuration as modules. Here's my config-2.6.7 in case you want to have a look at it.

Bluetooth Dongle

I use the AVM BlueFRITZ! USB v2.0 which is a nice and very small Bluetooth USB dongle. In contrast to version 1 of the BlueFRITZ (which used the bfusb driver), the version 2 uses the hci_usb driver.

Beaming files between PC and P900

The easiest way is to add those lines to your /etc/apt/sources.list:
deb http://debian.usefulinc.com/gnome ./
deb-src http://debian.usefulinc.com/gnome ./
Then do an apt-get update and install the gnome-bluetooth package. Now you've got a gnome-bluetooth-manager for configuring the Bluetooth devices, a gnome-obex-server for receiving beamed files and a gnome-obex-send for sending files to the phone. It's as easy as that. No further configuration is required.

Mounting the P900's memory on the PC

Install the packages bluez-utils and p3nfs on your GNU/Linux machine and the nfsapp client from http://www.koeniglich.de/p3nfs.html on your P900. Configure /etc/bluetooth/rfcomm.conf to contain the following:
rfcomm11 {
        bind yes;
        device <bdaddr>;
        channel 11;
        comment "P900 p3nfs connection";
}
Where <bdaddr> is the Bluetooth device address of your P900. Then you can start up nfsclient on your phone, put it into Bluetooth mode and enter the following on the GNU/Linux box:
$ p3nfsd -UIQ -tty /dev/rfcomm11 -dir <mountpoint>
I suggest you put this line in a small script and place it with a convenient name into your ~/bin/. I called it blue-nfs. Oh, if you want to start p3nfsd as non-root user, don't forget to set the s-bit of /usr/bin/p3nfsd as Debian ships it without the s-bit set:
# chmod +s /usr/bin/p3nfsd

Using the PC's internet connection from the P900

For this to work you need the bluez-utils package as well and additionally you need the ppp package. This of course means that PPP must be compiled into the kernel as well. Again I suggest making it modular as you can see from my config-2.6.7.
Then configure /etc/bluetooth/rfcomm.conf to contain the following:
rfcomm1 {
        bind yes;
        device <bdaddr>;
        channel 1;
        comment "P900 Serial Port connection";
}
Where <bdaddr> is again the Bluetooth device address of your P900. As the P900 calls back with PPP, you need to enable dund and a PPP options file. To enable dund, edit the file /etc/default/bluez-utils to contain the following two lines:
DUND_ENABLED=1
DUND_OPTIONS="--listen --channel 3 call p900-incoming"
Place a file p900-incoming with the following content into directory /etc/ppp/peers/ so that dund can start up pppd with those options:
noauth
crtscts
lock
proxyarp
passive
ipcp-accept-local
ipcp-accept-remote
ms-dns <dns_server>
<server>:<client>
Where <dns_server> is the IP of the name server, <server> is the IP of the GNU/Linux PC and <client> is the IP the P900 should get assigned. The name server must be able to resolve the host name wsockhost.mrouter. Therefore I have set up BIND (package bind9) in order to resolve wsockhost.mrouter to the IP of my server as well. You can grab my db.mrouter zone file and take a look. 192.168.0.5 is the IP of my server running all this stuff.
Now you just need to set up IP forwarding. Either add the line
ip_forward=yes
to your /etc/network/options or activate it manually by doing:
# echo 1 > /proc/sys/net/ipv4/ip_forward

Now you can start the PPP connection between the PC and the phone by issuing those two commands on the GNU/Linux machine:
$ sdptool add --channel=3 SP
$ cat /dev/rfcomm1
I suggest you put those two lines in a small script and place it with a convenient name into your ~/bin/. I called it blue-ppp.

Problems

Beaming and NFS works without problems. But for the PPP connection thing it would be nice if the connection could be started from the P900 and not only from the PC. But somehow I didn't get that to work. If you managed to get that working, I'd like to hear about it.

Related pages by other people

Rudolph König - p3nfs

Bernd Westermann - Nokia 3650 - Linux PC

Alfonso Martone - Sony Ericsson P900 & Linux index

Bugra Uytun - SonyEricsson P900

Kevin Boone - Using Linux with the Sony-Ericsson P800

Serbian translation by Marisav Jevremovic

Click here to go back to the index page.


Stefan Bellon (), 29-Dec-2008