main index Click here for the main P900 & Linux index.

Below, a list of the main articles about P900 - please remember that a simple stupid bug may be a great hassle for technically unprepared people...!

For months this was the only "P900 and Linux" site on the net. HEY! Set up your own "P900 & Linux" home page! Let Sony Ericsson see that the number of Linux users is rapidly growing! Let Linux users use this pretty beast!

It seems also that lots of considerations and technical issues of these pages are good also for P800 and P910 - but please don't ask me anything about P800 and P910 because I do not "support" them.

Feedback is always welcome (especially from outside Italy): if you find errors in this page, if you want your P900 free software site to be linked on this page, if you have something cool to suggest, if you know the safe way to replace P900 firmware with Linux, please email me clicking on the address at the end of this page!

Linux connectivity statusTenera micetta

As of now, I can get the P900 connected to my Linux-based notebook using infrared connection or USB cable (the DSS-25 USB cradle). On my notebook there is SuSE Linux 9.0, but the infrared stack is quite stable since years, so you can expect these notes to be good also for older distributions.

Please don't ask me for "newbie"-like information: I don't have much time to to experiment and document; you will find around the net a more detailed description of how to use everything discussed here (experienced people don't need hyper-detailed technical descriptions). By the way, any P900-related news will always be placed in these pages instead of private emails...!

There are three modes for connecting P900 to a computer:

  1. Bluetooth mode: have a look to Philip's P900 page; this is the simplest and fastest (but not the easiest to configure) mode, and surely the major battery-draining mode;
  2. USB mode (this will require the P900 USB cradle connected to the PC, and the P900 fitted on the cradle);
  3. Infrared mode (this is the major energy-saving connection mode when not calling or transferring data).

Some Bluetooth reports...

I have successfully connected to the P900 in Bluetooth mode using a Belkin Bluetooth adapter fitted on the USB port of my "new" IBM Thinkpad A21m notebook.

YES, I bought a Belkin adapter BECAUSE it's supported by Linux kernel since ages. When buying new hardware, I first check that it's fully supported by Linux. I am still telling to all my friends that this Belkin adaptor is totally Linux-friendly so they MUST buy it! =:-)
YES, the PC can be even used as a "handsfree set" (kbthandsfree utility of KDE Bluetooth package)... I will discuss it when I will test it!
I will write soon a page about it; anyways, you can now have a look at my Thinkpad and Bluetooth page.

The P900 bluetooth stack is actually quite reliable: while transferring some megabytes of MP3 files from the PC to the P900, I got a phone call and walked around for about 35 minutes while talking (and the background process was still receiving MP3 data files). The data transfer continued for the entire duration of the phone call without problems (YAY!) and the overall throughput went down from 33-35 kb/sec to 8-10 kb/sec, but this was surely due to the distance (I walked 6-7 meters far away the notebook computer).

Bluetooth to RS232 adapters...

Someone asked me about connecting the P900/P910 to some standard RS232 device (for example, a Cisco router with a serial port, or connecting to an Unix system in place of a serial terminal).

The P800/P900/P910 do not have a true "serial" port.

The cradle actually contains an "USB serial" converter, which needs USB hardware to be connected, and needs a software driver for interpreting the "packets" as serial stuff. This is why it can use high speeds (more than 115k2). Current versions of Linux and Windows have native "USB serial" support drivers.

With some little effort (as shown in the p3nfs sources) one can use the Symbian operating system functions to create some transparent usage (serial-like: "send a character, read -if available- a character"). But these are "software" methods, it's not a true serial port.

Back in the old days, lots of organisers had full RS232 ports.

Back in the very beginning of the '90s, I transferred 130kb of C source (a text adventure game) from my Psion Organiser LZ64 to an Ultrix machine directly on the serial port (my tiny OPL program placed a login, made a few cat >filename.c Unix commands, and closed the session). A few weeks after, there was the big hype of the MUDs at the University of Salerno (thanks to me, the Hero of the C Source) :-)

So we could try to buy some bluetooth rs232 serial adapter or infrared rs232 serial dongle. I would prefer a bluetooth serial adapter because it doesn't need to be on line of sight at the infrared beam.

Bluetooth connections

Here is a quick summary of "normal" Bluetooth connections with other hardware (note: some missing features may be due to unconfigured devices):

I think that a number of phones will accept JPEG and MP3 files only of a fixed format, while the P900 accepts anything (even 200 kbps MP3 files, even a megabyte-sized JPEG file!): this means that the problem is located in those prehistoric phones, not in the P900!
Also, I got some interesting failure reports from people trying to connect PocketPC-based machines with Symbian-based machines, and also incompatibilities with other WinCE-based machines. My friends told me they think that WinCE and PocketPC are deliberately incompatible with Symbian platforms...

Infrared connection to the P900 modem Article on Flannery O'Connor (1941)

This requires P900's "Control Panel / Connections / Infrared" set up as "modem" and (at least) "active for 10 minutes". Check that IrDA services are started; generally speaking, you (as root) should issue a command like this: /etc/rc.d/irda start (you may have a look at the "IrDA" section of my Asus notebook and Linux pages to see how to use directly the irattach program and configure a kppp for GSM connection; the described steps are good for almost any Infrared-featured computer. There are problems with IrDA stack of the first 2.6.0-test kernels; I recommend 2.4.22 or later).
Remember that the Infrared options and Serial Port options must be enabled in the kernel (SuSE kernel already has this in its default installations; again, look in my Asus and Linux pages for details about setting up Infrared connection).

By using a terminal program you will be able to check out the internal modem of the P900. Using xminicom I set up the /dev/ircomm0 infrared serial port (speed and other parameters are not relevant, so I left out 115200 there; remember that xminicom configuration has to be done while in root mode) and then issued these AT commands:

Notice that the infrared icon on the P900 is drawn in different modes if the P900 is connected to another infrared device (the drawn "rays" are a bit longer). If you want to experiment, just issue a cat >/dev/ircomm0 to see it, and pressing ctrl-C (to stop the cat program) you will see it with "short" rays again. Experienced users can use the nicer irdadump program (while in root mode): the Linux box will see the P900 described as:
P900 hint=9325 [ PnP PDA/Palmtop Modem Telephony IrCOMM IrOBEX ] (21)

A quick note about irdadump. This program simply watches the packets sent in/out from the IrDA stack of the Linux kernel. If you happen to start irdadump but don't see any output, then you have either missing IrDA support in the stack, or the irattach service wasn't started, or you have an old version of IrDA programs (0.9.15 or older). Normally, you will see, every 5-10 seconds, six output log lines; in the last you see your computer name and capabilities. If other infrared devices are in the range of the receiver, you will see also their names and "hints" (capabilities); this still doesn't mean you have set up a connection. You can establish it by issuing a command like cat >/dev/ircomm0 (without typing/sending data!), which opens the ircomm0 port and waits for input to be sent. If the connection is established, you will see a bunch of extra log lines emitted by irdadump. Remember that strong sun lighting (even if it isn't direct light) can dramatically slow (or even make impossible) the connection - I had sometimes to make shadow using a block-notes or my hand. By trial-and-error I found that the best distance between the notebook and another IrDA device ranges from 3cm to 80cm. While irdadump was left running during an actual transfer of megabytes of data, I wouldn't recommend to use it for more than debugging purposes.

Circumvesuviana train entering a station Once running, you can use the P900 as a common external "serial" modem (using /dev/ircomm0 instead of /dev/ttyS0 serial port). Obviously you cannot use the P900 internet services (email, browser, etc) when the PC is using the P900 modem.

Beware: GSM data connection needs the normal ATD0123456 command (where 0123456 is the phone number of your internet service provider), while GPRS data connection needs the ATD*99***1# command (where "1" has to be changed with the GPRS configuration number; "1" is the first GPRS configuration entered in the P900, "2" is the second, etc). I won't discuss here the pppd parameters (well, you can use the simple kppp program of the KDE), neither I will help you to set the /dev/modem link... :-)

The only ugly issue: the P900 and the Asus notebook have the infrared port on their left side. This means that the P900 must be placed upside down on the left of the notebook, so that the two little infrared ports can "see" each other... ;-)

Yes, once I had the P900 connected to the notebook via infrared port even with a plastic bottle in the middle. The connection was a bit slow (about 1.5 to 2 kb/sec of throughput) but it didn't stop transferring data... :-)

USB connection to P900 modem (USB cradle)

The USB cradle coming with the P900 is recognized by latest Linux kernels (2.4.22 or 2.6.2; I don't know whether other preceding kernels support it, patched or plain-vanilla); the USB cradle is recognized by Linux kernel, using "lsusb -v" command while in root mode, as:

Note: the P900 cradle is actually a DSS-25 (read its label below!), not a DSS-20 (the DSS-20 was present on the latest P800 units), but they share the same hardware and identifiers. The "2.4.21-99" SuSE Linux kernel does not support it (I can see here the dmesg output giving out a warning: "USB device 2 (vend/prod 0x403/0xfc82) is not claimed by any active driver"), so I had to recompile the Linux kernel from scratch (using one of the latest kernels), adding support for USB/serial converter and ftdi-sio driver, such that, after rebooting, asking for dmesg I got, after the "USB Serial Driver core v2.0" information, these lines (actually there were more lines because the Linux FTDI driver supports some other similar hardware):

The /dev/ttyUSB0 is now a serial-like port, on which you can write and read data (the AT commands to use the P900 internal modem, etc). Same considerations of infrared port apply here (modem or PC-connect connection type, p3nfs issues, etc); using the ps -guxa command you will see the pppd daemon attached to the ttyusb0 "terminal port". Grattatina Notice that in some distributions (like SuSE) the USB stuff is set up by /etc/rc.d/hotplug script instead of a more common usb script. Remember also that sometimes the GSM/GPRS signal is not available even if the signals are high (in this case you will see CONNECT on the kppp log window, but you won't see the expected "no phone" and "transmitting planet" classic icons in the left part of the P900 screen).

Sometimes, after pressing the "disconnect" button of kppp you see that the P900 didn't actually disconnect. This happens sometimes on USB connection (very rarely on infrared port). Since P900 won't let you to disconnect a session started from the computer, you have to switch the P900 off and on again (or, quicker, switch to "flight mode" and then disable "flight mode").

Some debugging notes:

I currently prefer to use infrared port to fill/backup P900 memory, and USB connection to connect my notebook to the internet (this allows to have the notebook on the desk and the P900 near the window, where the GSM/GPRS signal is stronger) :-) On my Asus notebook I didn't have Bluetooth. On my IBM Thinkpad A21m page I described how I use a fully working Bluetooth dongle.

If you use kppp, don't forget to disable the RTS/CTS flag on the P900 cable setup! (hi, Diane! :-)

If you like to use directly the pppd daemon, without using kppp, you can write out this single-line script:
/usr/sbin/pppd /dev/ttyUSB0 115200 crtscts nodetach defaultroute usepeerdns lcp-echo-failure 10 lcp-echo-interval 86400 connect '/usr/sbin/chat -t 6 -s -v "" ATZ OK ATDT*99***1# CONNECT \d\c'

The only "bug" is that you must hang-up manually (you have to take out the P900 from its cradle). This script ran connected without problems even in "severe" conditions (RTS/CTS enabled on the P900 side and on the Linux side, under the "old" 2.4.24 Linux kernel). I still prefer kppp because I like too much its "connection statistics graphical output" (to see what's happening here you have to issue an ifconfig ppp0 command from time to time). Also, if the phone "restarts" to "improve performance" (the Italian translation is nicer: "phone restarted because of an error") the pppd doesn't understand it.
Don't forget to set up the P900 "Cable" options to 115200 (as above; you don't need faster speeds) 8/none/1/rts-cts, and "PC Modem" connection mode.
Another small debugging issue: if you get "kppp pppd exit code 8" after getting the CONNECT string on the log (pppd error 8), then you surely have a "connect" command in /etc/ppp/peers/kppp file (in recent KDE releases it's a link to ppp parameters file).

I recently upgraded to KDE 3.4 and found that kppp refused to connect (I got, as said above, the "pppd error 8", meaning that the script failed; and I got a large bunch of "Couldn't find interface ppp0: No such device" error text messages on the terminal screen). After some investigation, I had to wipe out the "connect" line in the parameters file in /etc/ppp/peers/ as I said a moment ago (because the dialog happens under kppp control; and, for a GPRS connection, you don't need any script command!).

And I still am using kppp to happily connect via bluetooth (on port /dev/rfcomm0) here...! YAY! :-)

How to connect the P900 to a professional stereo set

Home made RCA plugs for the Sony Ericsson P900 Problem: I had to play some music to people with a 450 watts stereo amplifiers and speakers, but I didn't want them to ask me for a copy of the compact disk (well, I paid a lot of my precious money for that classical music CD and I just hate people asking me for a copy: go buy it now!).

Solution: I used the P900 as a music player connected to their 450 watts system (yeah!), so that I didn't need to take there a CD player with my beloved compact disc. Also, I was able to show them how powerful is this "phone" (phone? mp3 player? palmtop? photovideocamera? eh, eh!). I just had to build a little "2.5-to-3.5" adapter (local electronics shop had plugs but hadn't an already done adapter cable; by the way, it was actually easy to build a "make-it-yourself").

Look at the photo on the right: I just had to buy two jacks (male "2.5" - the first on the left - and female "3.5" - the one above) to use the common low-cost "walkman to RCA adapter cable" (the male "3.5" in the center of the photo and the white+red RCA plugs).

Don't care about the "four pin" connection of the standard P900 handsfree "2.5" connector: the P900 accepts common "2.5" stereo plugs (three pin) without problems (at the price of mixing stereo channels, thus getting mono output); just don't push in too much, to not to get single channel output only. By connecting the P900 output to the "mic" port of the notebook, I was even able to use the notebook amplifier (volume settings, left-right balance, etc). Obviously the cabling solution described above is not suitable for phone calls.

Using the P900 as an external GPRS modem for a Linux box

I finally enabled a "GPRS flat" offer of Vodafone/Italy, and am now using the P900 as an external modem for general browsing (http, ftp, email, icq, gnutella, etc).

Some informal complain about Vodafone/Italy:

The notes below are mostly Vodafone-dependent, but you can use them as a base to configure the P900 for other phone networks (will you add a link to my page, at least to thank me for this big work?).

P900 configuration: do have only one internet configuration on the phone (and erase all WAP configurations to be absolutely sure you and your friends - playing with your P900 while you are talking with some other people - will not use them...!). The Vodafone/Italy configuration is:

Select this as the preferred internet account wherever appropriate on the P900. You can now browse the http sites (like this site!) and send/receive email (providing correct email account configuration) using the P900 software or using the P900 as a modem for your desktop/notebook PC. Beware: some mail servers do accept connections only if the caller is on their internal network (example: Libero+Inwind, in Italy, doesn't allow a POP3 session if the caller isn't using one of their ISP accesses; this means that I get always "error: cannot connect" when trying to fetch mail from the Vodafone/Italy account).

Now, on the Linux notebook, configure KDE's KPPP with:

The dialing of *99# requires a very few seconds in most situations; if it takes up too much time, then you don't have GPRS signal active (look at the P900 signal icon). Sometimes the dialing of *99# gives out "ERROR" instead of "CONNECT": if you didn't forget to disable "flight mode", and you weren't already connected to the internet using P900 connection (not started by the PC), then this means you have been tampering too much with connect/disconnect (like a badly aborted handshaking session). Switching off and on again the P900 seems the only mode to get things normal again.

If the GSM signal is very low, you might get "CONNECT" and, a few seconds after, a "No access" error appears on the P900, and then a disconnection (from kppp or pppd) happens. Earth-rise, as seen from the moon The first few bytes in/out (a dozen total packets sent/received by the ppp0 Linux interface) are indeed local handshaking between the P900 and the Linux box (that is: they aren't actually GPRS transmitted/received data!). Remember that you need a decent GSM phone signal (indicated by the P900: the colored bars) to exchange data; it's not sufficient a decent GPRS quality signal (the blue area above the colored bars).

Last note: sometimes, with a decent quality GSM signal, when you start a GPRS data connection, the P900 still says "No access" on its screen, but sends "CONNECT" to the computer and runs very well for hours. Duh... :-) Don't care too much :-) (this little bug was reported mainly when using infrared or Bluetooth connection).

In the moment I am writing this line, there is a GPRS connection alive since 86 minutes, which transferred a total of 28+ megabytes (in/out), with download speed of five to six kilobytes/second. I think that I'm the only jerk in these desolate moors using a GPRS for browsing the net (my home phone line has a number of ugly problems and a low throughput); when a bunch of people will start using GPRS, we will see (sniff, sigh, sob!) a cellular GPRS traffic congestion... :-) An Etr460 in the Roma Termini train station

Note: the upload speed is not as fast as the download speed (GPRS "4+1" limits it to 1.3 kb/sec or less!), and the GPRS data channel seems "half duplex" (while sending data it cannot receive data; don't trust too much kppp Statistics window, because they show per-second mean values); this means that if you want to run a peer-to-peer networking tool like Gnutella, you will have trouble enabling upload files (i.e.: you can use it only as a "leaf" node, not "ultrapeer" mode); also, you will have some difficult time in browsing the internet while Gnutella is doing some transfers (even if it's not using the entire available GPRS download bandwidth: remember of the slow outgoing GPRS traffic and the "half duplex" channel characteristic).

Synchronizing data with Ximian/Evolution via SyncML connection.

(please note: I did not yet tested neither Evolution nor other PIM synchronization solutions; notes below are from other people!).

News, NEWS! Malte (Germany) did it! P900 SyncML synchronization with Debian Sarge via infrared port!

Older news:

David (Germany) did it! P910 SyncML synchronization with KDE PIM apps in a Gentoo Linux environment! I didn't try it (yet); I think it should be good also for P900.

from Giorgio (Switzerland) I got a success report about syncing the Ximian-Evolution database to the P900 via GPRS connection, using multisync and SyncML plugin (beware: the "remote sync" URL of the P900 has to include the port number because it doesn't use the SyncML default port!).

From Brian (USA) I got a success report for the same thing but using local Bluetooth connection instead of GPRS data transfer:

  1. get bluez package and install it;
  2. turn on the USB Bluetooth on your computer;
  3. turn on the P900 Bluetooth and connect to your computer;
  4. run sdptool to add a serial port service: sdptool add SP
  5. run rfcomm to listen on channel 1: rfcomm listen 0 1
  6. run rfcomm to connect to the P900 bluetooth serial cable: rfcomm connect 2 xx:xx:xx:xx:xx:xx 1 (note: use the correct address which you found from previous commands);
  7. the latter rfcomm will connect to the P900 but the P900 will disconnect immediately;
  8. the P900 will then initiate a connection to the computer to connect to the rfcomm listening on channel 1;
  9. run the /usr/sbin/pppd server using:
    pppd rfcomm0 noauth debug nodetach
  10. run the /usr/sbin/named using the two configuration files shown below; the mrouter is looking for DNS service and will hang up after 0.8 sec if it does not get any;
  11. after that then you can remote sync to multisync using the configuration on the P900 for local network address

Note: Brian uses a D-Link USB dongle for Bluetooth connection. A full how-to is coming; check here for news in the next days...!

The named.conf configuration file:

options {
  directory "/var/named";
  query-source address * port 53;

zone "." IN {
  type hint;
  file "caching-example/";

zone "localhost" IN {
  type master;
  file "caching-example/";
  allow-update { none; };

zone "" IN {
  type master;
  file "caching-example/named.local";
  allow-update { none; };

zone "mrouter" {
  type master;
  notify no;
  file "mrouter";

The mrouter file contains:

$TTL 86400
@ IN SOA ns.mrouter root.mrouter (
  86400 )
ns A
wsockhost A

A partial list of the P900 AT modem commands

If you issue the AT* command (yes: "a", "t", "*") to the P900 modem, you will get the list of the supported commands. I comment here some of them which can be useful for a programmer (I verified all the commands I list here); remember that you have to prepend the AT characters:

Lots of common GSM/ETSI/Ericsson AT commands are not present because they are all emulated in the software - remember the P900 doesn't have "ringtones", but a "phone software" which starts a sound player (for MP3, MID, WAV...) for a specific file when the event "call" is triggered; remember that an SMS message is not a specific area in the SIM card but a simple entry in the messaging database directories, etc. A complex firmware emulating all sorts of AT commands isn't actually needed because one can use every P900 feature (and better, and faster) writing a simple P900 software.

Some notes about battery life

Note: the notes below apply to original Sony Ericsson batteries. If you happen to use compatible (that is: "fake") batteries, then read my notes in this page.

Well, I found that even when using the original Sony Ericsson battery, the battery level indicator on the P900 does not go down in a linear fashion. From 100% to 85% it goes quickly down; from 50% to 30% it goes slowly down. If you activate the "flight mode" and don't use it (and the screen is off), you could happen to see an "1%" battery lasting for a dozen hours or more!

I tried to switch on the phone some times with "official" battery at "0%" level, and the P900 once locked up with some garbage on the un-illuminated screen (it wasn't even able to complete the "Sony Ericsson" white page of the boot): well, I took out the battery, and the screen image was still there! (this is due to a characteristic of this type of LCD screen that retains colors after power off, and they remain there for some minutes!)

I am always doing intensive use of the P900, and GSM/GPRS signal here is quite a "dancing thing", so that the battery lasts only two days (less than one day if I do massive infrared file transfers or GPRS data connections); starting from a 100% charged battery, I was able to use GPRS continuously for 275 minutes while downloading at full speed (yes: the P900 then went off because of discharged battery only after more than four hours and a half!); if a connection is started when battery is quite "low", then it sometimes seems to connect at a low-speed GPRS mode - tipically 1.5 to 2.8 kbytes/sec instead of 4.5 to 5.5 kbytes/sec - but this probably is only a GSM/GPRS network issue.

When the P900 is switched off, the 1260mAh battery fully charges in about 160 minutes. Sadly, the red/green led indicating charging status (incomplete/complete, respectively) is not that coherent if the phone is switched on.

I found that the "flight mode" is the best energy-saving feature. I was able to listen hours of MP3 music (using handsfree set) playing without draining the battery as I expected. Setting up the alarm and leaving the P900 in "flight mode", I found the battery drained from 100% to 98% (2% only!) in eight hours of inactivity! (yes, the "flight mode" is also a pretty "let me sleep: good night!" mode...!)

The battery level calculation is somewhat "dynamic"; some minutes after switching to flight mode I found the battery level climbing to 70% (from 67% before flight mode)!


My Sony Ericsson P900 near my favourite lunch (Lentils and Pasta) - if you cant see this image, click here!

Sony Ericsson P900 index - send e-mail - home page