Text-mode using pppd

Start the Bluetooth service:
    litljay:/ # service bluetooth start
    Starting bluetooth:  hcid sdpd hidd hid2hci opd rfcomm pand dund     done
    litljay:/ #

Get your phone's MAC address and the channel number for your phone's DUN service:
    litljay:/ # sdptool search DUN
    Inquiring ...
    Searching for DUN on 00:16:DB:D5:9C:1C ...
    Service Name: Dial-up networking
    Service RecHandle: 0x10001
    Service Class ID List:
      "Dialup Networking" (0x00001103)
    Protocol Descriptor List:
      "L2CAP" (0x00000100)
      "RFCOMM" (0x00000003)
        Channel: 2
    Profile Descriptor List:
      "Dialup Networking" (0x00001103)
        Version: 0x0100
    litljay:/ #

So we know that my phone's MAC address is 00:16:DB:D5:9C:1C and that the DUN service is on channel 2 (flashing). We need to bind this to a serial port. Use a text editor to edit the file /etc/bluetooth/rfcomm.conf:

rfcomm0 {

    bind yes;
    device 00:16:DB:D5:9C:1C;
    channel    2;
    comment "Jason's Cell Phone";
}

We also need the file /etc/bluetooth/hcid.conf, which is fine by default in a lot of distros (including Suse after you configure bluetooth in YaST):

options {
    autoinit yes;
    security user;
    pairing multi;
    passkey ";
}

device {
    name "DESKTOP";
    class 0xff0100;
    iscan enable;
    pscan enable;
    lm accept;
    lp rswitch,hold,sniff,park;
}

Restart the Bluetooth service to get it bound:
    litljay:/ # service bluetooth restart
    Shutting down bluetooth ( dund pand opd hidd sdp hcid)                    done
    Starting bluetooth:  hcid sdpd hidd hid2hci opd rfcomm pand dund     done
    litljay:/ #

Check to make sure it bound the phone correctly:
    litljay:/ # rfcomm
    rfcomm0: 00:16:DB:D5:9C:1C channel 2 clean
    litljay:/ #
If it isn't (usually after changing an existing rfcomm.conf) you may have to replug your bluetooth adapter or even reboot.

Alternately, if the bind fails you can bind it manually just this once, knowing that it should bind automatically on the next reboot:
    litljay:/ # rfcomm bind 0 00:16:DB:D5:9C:1C 2
    litljay:/ # rfcomm
    rfcomm0: 00:16:DB:D5:9C:1C channel 2 clean
    litljay:/ #


Next configure PPP for the connection.  Create a file for the connection in /etc/ppp/peers, such as /etc/ppp/peers/tether:

/dev/rfcomm0 115200
connect '/usr/sbin/chat -v -f /etc/ppp/tether_chat'
crtscts
modem -detach
noccp
defaultroute
usepeerdns
noauth
ipcp-accept-remote
ipcp-accept-local
noipdefault

...and create the chat script that we referenced in the above file (etc/ppp/tether_chat):

''
ATZ OK
AT+CGDCONT=1,"IP","gateway"
OK "ATDnumber"
CONNECT
''


The blinking red items above will vary from user to user, depending on your carrier.  The gateway that Cingular uses is "WAP.CINGULAR" or "ISP.CINGULAR" depending on what type of data service you subscribe to.  For most carriers, the number is *99# or *99***1#.  Both work on Cingular.

I have always been able to connect to Cingular without specifying a user name or password, even though they are reported to be user WAP@CINGULARGPRS.COM (or ISP@CINGULARGPRS.COM for the ISP gateway) and pass CINGULAR1. If you need to, you can add them to

Now you should be able to connect by executing:

    litljay:/ # pppd call tether

Back to the Main Tethering HOWTO Page

Back to the HOWTOS Page

Back to litljay.com