Contents
Since January 2007 I own the Sony Ericsson P990 Smartphone. Also the idea of a powerful smartphone which you could use to connect to the internet, read and write mails, use Google Maps while being on the road and so and so on is really great I have to say that I am somehow disappointed by that phone. The phone is slow, the firmware is still buggy and still SE decided to stop further developpement of it. But instead of repeating all what is written in all the SE dedicated Forums, I will give you some nice hints and tricks for this phone.
1. Alarm Problem
I had for a very long time the problem of ghost alarms. This means even though I had programed no alarm the phone was still ringing and unfortunately at 5am. There were two indications of this problem
- The little bell on the left to the current time was still displayed even if in the alarm menu all alarms were switched off.
If I used the More menu in the flip closed mode an alarm time was displayed which was not necesseraly corresponding to any of the alarm times displayed in the alarm menu.
Several people were reporting this problem and it was never removed with any of the new firmware versions. However, I finally recognized that when ever I updated the firmware the little bell next to the current time was not there anymore. But when I restored my backup which I performed before updating the bell came back. Therefore to solve the problem I the did a master reset of the phone (Main Menu -> Tools -> Control Panel -> Other -> Master Reset) which removed most of the user data from the phone and puts it in the condition it is in after an update. After that I restored my backup but I did not check the small box saying settings. This removed the problem and it did not come back yet.
2. Backup Problem
After I performed a couple of backups with the Sony Ericsson PC Suite backup tool flawlessly some problem showed up. Each time I tried to generate a backup of the phone it cancelled the operation with some a message of the kind phone does not respond. Thus I was unable to make a backup before performing the next update. Funny enough I recognized by chance that by deleting all backups I made before on my PC solved the problem. However, it did not help to just delete one or so. I really had to delete all. This seems to be a strange bug.
Afterwards I found that in the options menu of the backup tool you can set a maximum number of backups allowed to be made on your PC. On my computer this was set to 6. I am not sure but I believe that I already made six backups before. So it might be that setting this number to 10 or something might would have solved the problem as well. But in the end I think it is quite disappointing that there was no warning message that the maximum number of backups was reached. The error message I got instead at least does not suggest anything like this.
3. Using the P990i as an UMTS Modem
Quite recently I got an UMTS flatrate for Germany through my provider eplus for 25€ per month. This comes in quite handy when you travelling a lot, especially as with the installed Opera browser you can use quite a lot services:
Google Earth for mobile phones http://www.google.com/gmm/index.html (original version from google) or http://www.mgmaps.com/ (much more powerful freeware by Christian Streng, e.g. GPS dongle support!!!)
Translator http://pda.leo.org/
Deutsche Bahn mobile phone tickets http://www.bahn.de/p/view/planen/reiseplanung/mobileservices/handy_ticket.shtml
traffic jam services http://www.ecar.de/
- and so
There are even more option that are only intersting for computer nerds like me, e.g. a ssh client for the P990 to have a look onto your server while you are travilling (s. http://coredump.fi/putty ).
However, this service is even more useful if you travel together with your laptop and P990i which actually means you can use the P990i as an UMTS modem for your laptop and work where ever you are. The P990i can be connected to your laptop via the provided USB cable/cradle or wireless via bluetooth. For Windows user there is certainly a bunch of proprietary software packages to do the job of connecting to your laptop. Some folks might think for linux this will be hard way to go but as I found out quickly it is fairly easy!
I checked this out with my IBM Thinkpad T42p which runs under Kubuntu Linux (Feisty Fawn 7.04). There you already have everything you need installed. I used the KPPP software as graphical dialer which also provides some functionality to monitor traffic and costs.
3.1. Setting up the connection between laptop and the phone
This is really a piece of cake! In case you want to use the USB cable you only have to plug the cable to the phone and the laptop and you are ready and chose the phone mode when asked. Feisty will automatically setup the proper device links which you can use to communicate with the phone.
After you plugged in the phone you should be able to see the P990 on the USB bus:
you@yourbox:~$ lsusb Bus 004 Device 018: ID 0fce:d030 Sony Ericsson Mobile Communications AB Bus 004 Device 002: ID 05e3:0606 Genesys Logic, Inc. Bus 004 Device 001: ID 0000:0000 Bus 003 Device 001: ID 0000:0000 Bus 002 Device 001: ID 0000:0000 Bus 001 Device 001: ID 0000:0000
and the following device nodes should exist (if they do not try to unplug and plug it again):
you@yourbox:~$ ls -l /dev/ttyACM* crw-rw---- 1 root dialout 166, 0 2007-10-06 01:54 /dev/ttyACM0 crw-rw---- 1 root dialout 166, 1 2007-10-06 01:54 /dev/ttyACM1 crw-rw---- 1 root dialout 166, 2 2007-10-06 01:54 /dev/ttyACM2
For the USB case this is already everything you need. In case you want to setup the connection via bluetooth you should have setup bluetooth already. Because there are many howtos on this I will skip this and just show you what you need to connect the P990i. First enable bluetooth both on the phone and on your laptop. The phone should also be set to visible for other devices. Then you need to find out the MAC adress of your phone:
you@yourbox:~$ hcitool scan
Scanning ...
00:17:E5:B5:A4:84 E65
00:19:63:B1:75:F2 P990i
00:1C:43:EE:9E:E8 SGH-L760Note down the MAC adress of your P990i which is 00:19:63:B1:75:F2 in my case. Then we need to find out the channel number on which the P990i provides the Dial-up Networking service. You can browse all services on your phone with the command sdptool:
you@yourbox:~$ sdptool browse 00:19:63:B1:75:F2
Browsing 00:19:63:B1:75:F2 ...
[...]
Service Name: Dial-up Networking
Service Description: Symbian OS,UIQ phone
Service Provider: Sony Ericsson
Service RecHandle: 0x10026
Service Class ID List:
"Dialup Networking" (0x1103)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 7
Language Base Attr List:
code_ISO639: 0x656e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
"Dialup Networking" (0x1103)
Version: 0x0100
[...]In my case it was channel 7. We need this information to setup a file that tells your laptop to which bluetooth device it should connect when a modem is needed. The file is called /etc/bluetooth/rfcomm.conf and you should edit to look like this
#
# RFCOMM configuration file.
#
rfcomm0 {
# Automatically bind the device at startup
bind yes;
# Bluetooth address of the device (replace by your MAC adress)
device 00:19:63:B1:75:F2;
# RFCOMM channel for the connection (replace by your Dial-Up network channel)
channel 7;
# Description of the connection
comment "P990";
}Ok after this we are also set to use the P990i as an UMTS modem over bluetooth!
3.2. Setting up KPPP
For this you only need to know the setup for your provider. KPPP itself is already installed by default in Feisty. First you have to setup an access point by providing the proper username, password and dial-in number. For German providers I found always the same number to dial for all German providers (s. e.g. http://www.teltarif.de/i/gprs-config.html), for your own country you only have to google a little bit probably.
The setup window looks like this (sorry, my version is in German):
Then you setup the phone as modem like this:
The only thing you need to consider here is that if you want to use your phone over USB you have to the proper device node for this /dev/ttyACM*, in my case it was /dev/ttyACM1. For use with bluetooth the device is /dev/rfcomm0.
There is a second tab calleld modem in the setup for the modem and there you have to press the button modem commands and you should fill in the init string 2 with at&f+cgdcont=1,"IP","internet.eplus.de". Hoever, I was never sure if this is really necessary, it just provides the information of your accesss point, therefore you should replace internet.eplus.de with yours. It looks like this:
Now, you are set to give it a try. If you are using bluetooth again, do not forget to switch in bluetooth on your phone and on your laptop. If you did never authenticate your phone with your laptop your are probably asked for a pin on both devices which you can choose by yourself. If you press connect you will see the phone dial (little earth symbol will appear and start to blink). This means that you are actually connected when you have no error in KPPP. However you will recognize that you are connected, but that you cannot ping anybody or open a webpage.
You will see that your connection is established and that your ppp0 network device for dial-up networking is up:
you@yourbox:~$ ifconfig
[...]
ppp0 Protokoll:Punkt-zu-Punkt Verbindung
inet Adresse:10.161.18.59 P-z-P:10.64.64.64 Maske:255.255.255.255
UP PUNKTZUPUNKT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:4 errors:0 dropped:0 overruns:0 frame:0
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:3
RX bytes:58 (58.0 b) TX bytes:113 (113.0 b)
[...]So you will have an ip adress but you cannot transfer any data. The problem is that KPPP does not set a up a proper route for your connection. I do not know if this is a KPPP bug, but I think it is rather a problem if the P990i. The P990 does not provide the information for the gateway (P-z-P entry in the ifconfig table) for the point to point connection and therefore KPPP sets up a route to a default adress P-z-P:10.64.64.64 which does not exist. You can see this by typing (while you are still connected over the phone):
you@yourbox:~$ ifconfig Ziel Router Genmask Flags Metric Ref Use Iface 10.64.64.64 * 255.255.255.255 UH 0 0 0 ppp0 192.168.12.0 * 255.255.255.0 U 0 0 0 eth2 link-local * 255.255.0.0 U 1000 0 0 eth2 default 192.168.12.1 0.0.0.0 UG 0 0 0 eth2
The first entry in the routing table of the kernel is the route for the network to which the P990i is connected to. So obviously we just need to setup the proper gateway. I found out that if you set you default gateway to the IP of the ppp0 device (the P990i) then the connection works perfectly. We do this by typing (you have to this as a root or with sudo in ubuntu linux):
you@yourbox:~$ sudo route del default you@yourbox:~$ sudo route add default gw 10.161.18.59
You have to change the IP adress to the adress you find in your ifconfig output for the ppp0 device.
After this you can enjoy surfing! If you disconnect, and you connect to another network you default route should be changed back automatically.
3.3. Automatic setup of the proper route
Because like this you always have to manually tweak your routing table each time you connect via UMTS I wrote two little shell scripts which will do this job in combination with KPPP. In the KPPP setup there is a tab which allows you to define 4 programs/scripts to be run automatically before connecting, after connecting, before disconnecting and after disconnecting which just suits our needs perfectly here.
I have this script to be run automatically after the connection is established:
#script to set proper route for ppp0 P990 device
#get IP of ppp0 device
IP=`ifconfig ppp0 | grep 'inet Adresse:' | cut -d: -f2 | awk '{print $1}'`
#get ip of current default gateway and write it to file 'default-gw'
route | fgrep default | awk '{print $2}' > default-gw
#set route to ppp0 device
route del default
route add default gw $IPIf you want to use it copy it in a text file (I called it p990_set_route) and make it executable (chmod +x filename). It finds the ip adress of the ppp0 device after it connected and sets up a route to it, further it will store the old default gateway's ip adress in the text file default-gw.
The second scipt looks like this and has to be run after disconnecting: { #!/bin/bash #script to set back usual default route after disconnection from umts #read back default gateway IP from file which was generated by script p990_set_route GW=tail -n 1 default-gw #reset gateway route del default route add default gw $GW }
Also save this in the same directory (I called it reset_route) and make it executable. It reads out the stored old default gateway's ip and resets to default route to this old gateway. So you only have to provide KPPP with the pathes to this scripts and KPPP will do the job for you.
There is only one further hint. The scripts have to be run as root to work properly. The easiest way to achieve this is to run KPPP as root by
you@yourbox:~$ kdesu kppp &
You are asked for you password then before KPPP starts up.


