Nokia E50 GPRS on Linux (OrangePL)


Some time ago i’ve bought Nokia E50. It’s a quite impressive phone, although the iphone made some not so right hype about itself nowadays. Anyway i’ve configured almost everything but the GPRS connectivity. When the Ethernet link was in a good shape i wasn’t¬† worry about it, and honestly i’ve got many more interesting ways to spend my free time ūüėČ

Unfortunately some days ago a big storm hit Cracow, and my Internet provider has found himself on the knees with the storm’s damages. The Internet link wasn’t working and i’ve got something important to send by an email. After this i’ve considered once and for all to configure my linux box for gprs connection with this phone.

I’ve chosen Bluetooth and the GPRS/Edge connectivity. After some searching on the net i’ve found no easy solution (working on my computer/phone). Now i’ve finally made everything running smoothly and thus i’ll write something about it. I’m using Polish Orange provider (Orange Polska/Idea).

Bluetooth connection

  • Make sure you have connected phone and the linux box and exchange keys (it’s mentioned all over internet and i’m not going tell you how to do it).
  • All of examples provided below has last 3 hex pairs of bluetooth address masked with the xx:xx:xx for a privacy reason
  • Next find your phone with the command hcitool scan
    • response should be something like:
    • zorba@thinkpad:~$ hcitool scan
      Scanning ...
      00:19:B7:xx:xx:xx       Zorba
  • next search for Dial Up Network capability (DUN) with the command sdptool search dun
    • result should be like:
       zorba@thinkpad:~$ sdptool search dun
       Inquiring ...
       Searching for dun on 00:19:B7:xx:xx:xx ...
       Service Name: Dial-Up Networking
       Service RecHandle: 0x100a7
       Service Class ID List:
       "Dialup Networking" (0x1103)
       Protocol Descriptor List:
       "L2CAP" (0x0100)
       "RFCOMM" (0x0003)
      Channel: 2
       Language Base Attr List:
       code_ISO639: 0x454e
       encoding:    0x6a
       base_offset: 0x100
       Profile Descriptor List:
       "Dialup Networking" (0x1103)
       Version: 0x0100
  • It has found DUN on the channel 2 (mark as bold above)
  • Next configure rfcomm for the channel 2 with the command
    sudo rfcomm bind 0 00:19:B7:xx:xx:xx 2
  • It has binded your phone with the channel 2 for the 0’th rfcomm device
  • Now it’s all ready for the ppp communication !

PPPD  configuration

Save provided ppp configuration files below in your /etc/ppp/peers directory. I’ve found this configuration over the net and make some changes in order to make it works on the Nokia E50 phone.

Changes made are:

  • in gprs added:
    • connect-delay 6000
    • default-asyncmap
    • changed the user to “internet” as required on polish orange network
  • in the gprs-connect-chat make some changes in the names of the connection string

Example communication log

This is my communication log with the orange network. Please bear in mind, that some differences might be with your case, but not so substantial.

zorba@thinkpad:~$ pppd call gprsPress CTRL-C to close the connection at any stage!
 defining PDP context...
 waiting for connect...
 If the following ppp negotiations fail,
 try restarting the phone.
 Serial connection established.
 using channel 3
 Using interface ppp0
 Connect: ppp0 <--> /dev/rfcomm0
 rcvd [LCP ConfReq id=0x0 <auth pap> <mru 1500> <asyncmap 0xa0000>]
 sent [LCP ConfReq id=0x1 <magic 0xe36493ed>]
 sent [LCP ConfRej id=0x0 <asyncmap 0xa0000>]
 rcvd [LCP ConfRej id=0x1 <magic 0xe36493ed>]
 sent [LCP ConfReq id=0x2]
 rcvd [LCP ConfReq id=0x1 <auth pap> <mru 1500>]
 sent [LCP ConfAck id=0x1 <auth pap> <mru 1500>]
 rcvd [LCP ConfAck id=0x2]
 sent [PAP AuthReq id=0x1 user="internet" password="internet"]
 rcvd [PAP AuthAck id=0x1 ""]
 PAP authentication succeeded
 sent [CCP ConfReq id=0x1 <deflate 15> <deflate(old#) 15>]
 sent [IPCP ConfReq id=0x1 <addr> <ms-dns1> <ms-dns3>]
 rcvd [IPCP ConfReq id=0x0 <addr>]
 sent [IPCP ConfNak id=0x0 <addr>]
 rcvd [LCP ProtRej id=0x0 80 fd 01 01 00 0c 1a 04 78 00 18 04 78 00]
 Protocol-Reject for 'Compression Control Protocol' (0x80fd) received
 rcvd [IPCP ConfNak id=0x1 <addr> <ms-dns1> <ms-dns3>]
 sent [IPCP ConfReq id=0x2 <addr> <ms-dns1> <ms-dns3>]
 rcvd [IPCP ConfReq id=0x1 <addr>]
 sent [IPCP ConfAck id=0x1 <addr>]
 rcvd [IPCP ConfAck id=0x2 <addr> <ms-dns1> <ms-dns3>]
 not replacing existing default route via
 Cannot determine ethernet address for proxy ARP
 local  IP address
 remote IP address
 primary   DNS address
 secondary DNS address
 Script /etc/ppp/ip-up started (pid 12460)
 Script /etc/ppp/ip-up finished (pid 12460), status = 0x0
After pressing Ctrl+C the rest is:
Terminating on signal 2
 Connect time 1.0 minutes.
 Sent 0 bytes, received 0 bytes.
 Script /etc/ppp/ip-down started (pid 12528)
 sent [LCP TermReq id=0x3 "User request"]
 Script /etc/ppp/ip-down finished (pid 12528), status = 0x0
 rcvd [LCP TermAck id=0x3]
 Connection terminated.
 Sending break to the modem
 PDP context detached
 Serial link disconnected.


Have fun! If you have questions, feel free to ask on the email provided on the main page of my site.