HowTo Use a Cingular LG CU500 as a BlueTooth Modem with Fedora Core 5 (FC5) on a ThinkPad T41p


We'll start this with one howto thats missing from the wide world of the Internet:

The 3.5G LG CU500 phone from Cingular is very fast. I wanted to hook it up as the Internet connection for my ThinkPad T41p and wanted it working via the FC5 "Network Manager" gui tool.

Step 1. Upgrade to Fedora Core 5

FC4 has some bluetooth bug that prevents bluetooth from working properly, so I upgraded to a version FC5 that was working for my comrade.

Step 2. Get Bluetooth Running Properly

Make sure the gnome-bluetooth manager is installed, and that you can pair with your LG CU500. I can recommend "obexftp", these rpm versions work with FC5:


openobex-1.1-1
libobexftp-0.18-1.1.fc3.rf
obexftp-0.18-1.1.fc3.rf

Step 3. Copy my files!


/etc/ppp/peers/Cingular
/etc/sysconfig/networking/devices/ifcfg-Cingular
/etc/sysconfig/networking/profiles/default/ifcfg-Cingular
/etc/sysconfig/network-scripts/ifcfg-Cingular

I had Bluetooth modems working in the past using Nokia devices, and "pppd call cingular" directly. But I wanted this integrated with the FC5 "Network Device Control". Mucking about with the Network Device Control generated these working files for my installation:

File 1: /etc/ppp/peers/Cingular:


connect "/usr/bin/wvdial --remotename Cingular --chat 'Cingular'"

File 2: /etc/wvdial.conf:


[Modem0]
Modem = /dev/rfcomm0
Baud = 115200
SetVolume = 0
Dial Command = ATDT
Init1 = ATZ
Init3 = ATM0
FlowControl = CRTSCTS
[Dialer Cingular]
Username = WAP@CINGULARGPRS.COM
Password = CINGULAR1
Phone = *99***1#
Stupid Mode = 1
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init3 = AT+CGDCONT=1,"IP","WAP.CINGULAR"
Inherits = Modem0

File 3: /etc/sysconfig/networking/devices/ifcfg-Cingular


# Please read /usr/share/doc/initscripts-*/sysconfig.txt
# for the documentation of these parameters.
ONBOOT=no
USERCTL=yes
PEERDNS=yes
TYPE=Modem
DEVICE=ppp0
BOOTPROTO=dialup
AC=off
BSDCOMP=off
VJCCOMP=off
CCP=off
PC=off
VJ=off
LINESPEED=115200
MODEMPORT=/dev/rfcomm0
PROVIDER=Cingular
DEFROUTE=yes
PERSIST=no
PAPNAME='WAP@CINGULARGPRS.COM'
WVDIALSECT=Cingular
MODEMNAME=Modem0
DEMAND=no
IPV6INIT=no
IDLETIMEOUT=600
PPPOPTIONS='57600 defaultroute usepeerdns nodetach crtscts lock noauth local deb
ug lcp-echo-failure 0'

File 4: /etc/sysconfig/networking/profiles/default/ifcfg-Cingular


# Please read /usr/share/doc/initscripts-*/sysconfig.txt
# for the documentation of these parameters.
ONBOOT=no
USERCTL=yes
PEERDNS=yes
TYPE=Modem
DEVICE=ppp0
BOOTPROTO=dialup
AC=off
BSDCOMP=off
VJCCOMP=off
CCP=off
PC=off
VJ=off
LINESPEED=115200
MODEMPORT=/dev/rfcomm0
PROVIDER=Cingular
DEFROUTE=yes
PERSIST=no
PAPNAME='WAP@CINGULARGPRS.COM'
WVDIALSECT=Cingular
MODEMNAME=Modem0
DEMAND=no
IPV6INIT=no
IDLETIMEOUT=600
PPPOPTIONS='57600 defaultroute usepeerdns nodetach crtscts lock noauth local deb
ug lcp-echo-failure 0'

File 5:


# Please read /usr/share/doc/initscripts-*/sysconfig.txt
# for the documentation of these parameters.
ONBOOT=no
USERCTL=yes
PEERDNS=yes
TYPE=Modem
DEVICE=ppp0
BOOTPROTO=dialup
AC=off
BSDCOMP=off
VJCCOMP=off
CCP=off
PC=off
VJ=off
LINESPEED=115200
MODEMPORT=/dev/rfcomm0
PROVIDER=Cingular
DEFROUTE=yes
PERSIST=no
PAPNAME='WAP@CINGULARGPRS.COM'
WVDIALSECT=Cingular
MODEMNAME=Modem0
DEMAND=no
IPV6INIT=no
IDLETIMEOUT=600
PPPOPTIONS='57600 defaultroute usepeerdns nodetach crtscts lock noauth local deb
ug lcp-echo-failure 0'

Yes, files 3,4 and 5 appear to be identical.

Step 4: Install /etc/bluetooth/rfcomm.conf


#
# RFCOMM configuration file.
#

rfcomm0 {
# Automatically bind the device at startup
# bind no;
bind yes;

# Bluetooth address of the device
* - put your LG CU500 bluetooth device id here (hcitool scan)
device 00:12:56:D7:2B:48;

# RFCOMM channel for the connection
# - for the LG CU500, be sure dialup via bluetooth is ON
# - Menu->9(gears)->7 Connection-> 3 Dial Up Networking
# - then run "spdtool browse", pick the channel with "Dialup Networking"
channel 8;

# Description of the connection
comment "Cingular LG CU500";
}

Read the comments in the file above - you will need to find the unique Bluetooth id for your LG CU500.

Step 6: Install /etc/bluetooth/hcid.conf


# HCI daemon configuration file.
#

# HCId options
options {
# Automatically initialize new devices
autoinit yes;

# Security Manager mode
# none - Security manager disabled
# auto - Use local PIN for incoming connections
# user - Always ask user for a PIN
#
security user;

# Pairing mode
# none - Pairing disabled
# multi - Allow pairing with already paired devices
# once - Pair once and deny successive attempts
pairing multi;

# PIN helper
pin_helper /usr/bin/bluepin;

# D-Bus PIN helper
# dbus_pin_helper;
}

# Default settings for HCI devices
device {
# Local device name
# %d - device id
# %h - host name
name "%h-%d";

# Local device class
class 0x120104;

# Default packet type
#pkt_type DH1,DM1,HV1;

# Inquiry and Page scan
iscan enable; pscan enable;

# Default link mode
# none - no specific policy
# accept - always accept incoming connections
# master - become master on incoming connections,
# deny role switch on outgoing connections
lm accept;

# Default link policy
# none - no specific policy
# rswitch - allow role switch
# hold - allow hold mode
# sniff - allow sniff mode
# park - allow park mode
lp rswitch,hold,sniff,park;

# Authentication and Encryption (Security Mode 3)
#auth enable;
#encrypt enable;
}

Step 7: Try It!

Fire up your "Network Device Manager" to confirm that "ppp0 - Cingular" is available. Turn off your other network devices, and Activate!

On the paired LG CU500, you should see a graphic indicating a connection attempt.

In /var/log/messages, you should see something like:


Oct 21 14:05:21 localhost hcid[5706]: link_key_request (sba=00:20:E0:75:97:67, dba=00:12:56:D7:2B:48)
Oct 21 14:05:32 localhost ifup-ppp: pppd started for Cingular on /dev/rfcomm0 at 115200
Oct 21 14:05:32 localhost pppd[6528]: pppd 2.4.3 started by root, uid 0
Oct 21 14:05:33 localhost hcid[5706]: link_key_request (sba=00:20:E0:75:97:67, dba=00:12:56:D7:2B:48)
Oct 21 14:05:34 localhost wvdial[6529]: WvDial: Internet dialer version 1.54.0
Oct 21 14:05:34 localhost wvdial[6529]: Initializing modem.
Oct 21 14:05:34 localhost wvdial[6529]: Sending: ATZ
Oct 21 14:05:35 localhost wvdial[6529]: ATZ
Oct 21 14:05:35 localhost wvdial[6529]: OK
Oct 21 14:05:35 localhost wvdial[6529]: Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Oct 21 14:05:35 localhost wvdial[6529]: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Oct 21 14:05:35 localhost wvdial[6529]: OK
Oct 21 14:05:35 localhost wvdial[6529]: Sending: AT+CGDCONT=1,"IP","WAP.CINGULAR"
Oct 21 14:05:35 localhost wvdial[6529]: AT+CGDCONT=1,"IP","WAP.CINGULAR"
Oct 21 14:05:35 localhost wvdial[6529]: OK
Oct 21 14:05:35 localhost wvdial[6529]: Modem initialized.
Oct 21 14:05:35 localhost wvdial[6529]: Sending: ATDT*99***1#
Oct 21 14:05:35 localhost wvdial[6529]: Waiting for carrier.
Oct 21 14:05:35 localhost wvdial[6529]: CONNECT
Oct 21 14:05:35 localhost wvdial[6529]: Carrier detected. Chatmode finished.
Oct 21 14:05:35 localhost pppd[6528]: Serial connection established.
Oct 21 14:05:35 localhost pppd[6528]: Using interface ppp0
Oct 21 14:05:35 localhost pppd[6528]: Connect: ppp0 <--> /dev/rfcomm0
Oct 21 14:05:36 localhost pppd[6528]: CHAP authentication succeeded
Oct 21 14:05:40 localhost pppd[6528]: Could not determine remote IP address: defaulting to 10.64.64.64
Oct 21 14:05:40 localhost pppd[6528]: local IP address 10.116.209.116
Oct 21 14:05:40 localhost pppd[6528]: remote IP address 10.64.64.64
Oct 21 14:05:40 localhost pppd[6528]: primary DNS address 66.102.163.231
Oct 21 14:05:40 localhost pppd[6528]: secondary DNS address 66.102.163.232
Oct 21 14:05:41 localhost NET[6569]: /etc/sysconfig/network-scripts/ifup-post : updated /etc/resolv.conf
Oct 21 14:07:57 localhost ntpd[2050]: sendto(64.142.114.146): Invalid argument
Oct 21 14:08:08 localhost pppd[6528]: Terminating on signal 15
Oct 21 14:08:08 localhost pppd[6528]: Connect time 2.5 minutes.
Oct 21 14:08:08 localhost pppd[6528]: Sent 57223 bytes, received 189940 bytes.
Oct 21 14:08:08 localhost NET[6797]: /etc/sysconfig/network-scripts/ifdown-post : updated /etc/resolv.conf
Oct 21 14:08:11 localhost pppd[6528]: Connection terminated.
Oct 21 14:08:11 localhost pppd[6528]: Exit.

Troubleshooting and Hints

Get "obexftp" working first to practice using Bluetooth, pairing and confirming that your hardware and general software is working.

Try the myriad of "pppd call X" scripts out there, set one up for Cingular as practice. I have these available too. I did this to confirm the PPP connection would work.

The "Dial Up Networking" using Bluetooth is not default, and it does not survive a phone powercycle. Be sure to confirm its on before Bluetoothing.

Feedback/Questions Comments

I'll try to help clarify/fix errors in my document. The above is not under any warrantee, use at your own risk.

Good Luck

Todd (tas AT darthracing DoT com)