SDB:Nokia E72 umts bluetooth
If you want to contribute, please read the rules for this wiki and if you have any questions, don't hesitate to contact the wiki team, we are more then willing to help you! :-)
Situation
With mobile broadband access getting more affordable the places where one can not get on-line is shrinking. Mobile devices like the Nokia E72 provide not only a built-in browser to access the Web, but are also capable to act as a modem for external devices, like a laptop. Compared to the phone's small screen, using even a modest netbook or laptop provides a better browsing experience.
Unfortunately Nokia does not include instructions in the package on how to use their phone with Linux. Good thing is that it is quite easy to get the phone working under openSUSE and of course also under other Linux distributions.
Warning
Some mobile operators may restrict or even prohibit the use of mobile phones as a modem. Please consult the terms of use.
Procedure
Required Software
Drivers
The Bluez package provides everything you need to connect with the device. Besides openSUSE and derivate distro's, Bluez is present in all mainstream Linux distributions.
Dial-up software
- PPP
- a user friendly dialer application, like
- wvdial
- kinternet
- (NetworkManager, as soon as I figure out how :-) )
Preparations
Bluetooth pairing code
Think up a good (meaning non-obvious) PIN number of 4-8 digits.
Bluetooth address
If it is not already so, enable the Bluetooth function on your phone and also make sure that the phone is not hidden. Using the hcitool to discover the available Bluetooth devices, the phone will show up something like this:
$ hcitool scan Scanning ... 5c:57:c8:01:a1:d8 MyNokiaE72
Obviously the address will be different.
PC Suite mode
In the case of a Nokia E72 (other models probably something similar) the phone needs to be in the PC Suite mode in order to be able to access the modem function of the phone. Even when using a Bluetooth connection, this needs to be set on the phone under the "Control Panel" -> "Connection" -> "USB" -> "USB connection mode" property.
Getting connected
Create the device file
In this step we'll create a character device in /dev, which can be used by above mentioned dial-up software. To do this, we'll need two additional parameters:
- The number of the rfcomm channel the device is providing the serial port profile. The Nokia E72 provides the dial-up profile on channel 5.
- A unique number x for our device file (/dev/rfcommx). Since it is possible to use other Bluetooth devices on the same computer, it is good practice to use unique device names for each Bluetooth device and make them persistent. This way one can avoid accidentally trying to go on-line through a Bluetooth mouse because yesterday there used to be an UMTS modem on that device number.
Use this to create the device file /dev/rfcomm1
# rfcomm bind 1 5c:57:c8:01:a1:d8 5
To get a list with the state of all active rfcomm devices, use this:
# rfcomm
To remove the device, execute this:
# rfcomm release 1
This also will delete the device file /dev/rfcomm1
Connect to the phone for the first time
# rfcomm connect 1
It is more easy to do this step while running a Gnome session since it has a nice PIN entry applet.
After the above command, your phoen will be asking for your permission to let your PC connect to it, and also will require a pairing code. After that, you'll need to enter this same code on your PC.
Make the configuration persistent
Pairing code
After the first connection with the phone, the pairing PIN will be stored in /var/lib/bluetooth/<local macaddr>/linkkeys, so all subsequent connections will be automatic.
rfcomm settings
Edit the /etc/bluetooth/rfcomm.conf to reflect these settings.
# cat /etc/bluetooth/rfcomm.conf rfcomm1 { bind yes; device 5c:57:c8:01:a1:d8; channel 1; comment "My Nokia E72"; }
Allow non-root users to use the phone
By default the device file /dev/rfcomm1 is created with ownership and group set to root and read-write access rights to owner and group.
# ls -l /dev/rfcomm1 crw--w---- 1 root root 4, 0 Aug 15 20:30 /dev/rfcomm1
With this simple udev rule one can automate the following actions every time the /dev/rfcomm1 device is created:
- assign ownership to user "joe"
- assign group ownership to group "dialout"
- create the symbolic link /dev/MyNokiaE72 to /dev/rfcomm1
# cat /etc/udev/rules.d/99_custom.rules KERNEL=="rfcomm[0-9]*", ATTR{address}=="5c:57:c8:01:a1:d8", ATTR{channel}=="1", NAME="%k", OWNER="joe", GROUP="dialout", SYMLINK+="MyNokiaE72"
Use this to obtain more information about possible criteria for udev rules on the phone:
# udevadm info -a -p $(udevadm info -q path -n /dev/rfcomm1)
wvdial settings
# cat /etc/wvdial.conf [Dialer Defaults] Modem = /dev/rfcomm1 Baud = 115200 Init1 = ATZ Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 Init3 = AT+CGDCONT=1,"IP","internet" Area Code = Phone = *99***1# Username =ppp Password =ppp Ask Password = 0 Dial Command = ATDT Stupid Mode = 1 Compuserve = 0 Force Address = Idle Seconds = 300 DialMessage1 = DialMessage2 = ISDN = 0 Auto DNS = 1
Using the phone to connect to the Internet
Dialing in with the phone requires 2 steps:
- establish the Bluetooth connection with the phone
- establish the dial-in connection
Control the Bluetooth connection to the phone
Before a user can start using the phone, the device file needs to be created. An easy option is to use this script to control the connection to the phone.
#!/bin/bash DevNum=1 case $1 in start) rfcomm bind $DevNum ;; stop) rfcomm release $DevNum ;; status) rfcomm show $DevNum ;; *) cat<<EOF Usage: $0 [ start | stop | status ] EOF esac
The start (and stop) operation will require root privileges, so non-root users should use the script with sudo.
sudo nokia-e72 start
Dial-up software
There are several options which can be used to establish a PPP connection, e.g. wvdial, NetworkManager (v0.8 and later) or kinternet... to name a few. Regardless the user interface, once pointed to the serial port device they should be able to use the phone as a modem.
wvdial can be used to establish the Internet connection, like this:
sudo wvdial