闲话少说,没有网络是很难过的,家里、单位都有网络,但偶尔没网的地方又想上网,就要充分利用手机的上网包月流量。

本人手机:n97mini(只要支持蓝牙就行,呵呵)

笔记本(laptop):华硕A2400(老爷机,256M内存,debian6)

蓝牙适配器:Henkel,不知道,反正手机上显示ISSCBTM,这个linux应该没问题

参考文档:首先当然是在官方wiki找:http://wiki.debian.org/UseYourCellPhoneAsModem,用连接线可以了,但是用蓝牙却不行,考虑是不是没开蓝牙拨号服务,因为在windows下可以,但一直没找到怎么看的方法。左搜右搜,最后终于在这篇文档上找到了答案:http://davesource.com/Solutions/20070520.T-Mobile-Nokia-E65-Ubuntu-Linux.html。原因很简单,因为手机不同,所以DUN(Dial Up Networking)服务对应的rfcomm端口不同,官方文档的是用2端口,见命令:rfcomm connect 0 11:22:33:44:55:66 2 &,后接&表示在后台运行,我的手机却是在22端口,这是用sdptool命令查到的,后面会说。好,下面就上操作步骤(参考官方文档,略加修改):

1、首先查看、安装蓝牙服务。

# /etc/init.d/bluetooth status
bluetooth is running
没有请安装

#aptitude install bluetooth   或者 启动# /etc/init.d/bluetooth start
有些是这个命令,随便
#apt-get install bluez-utils(bluez) (在testing/unstable, bluez代替bluez-utils). 

2、插上蓝牙适配器,查看识别情况,一般没问题。

#lsusb | grep -i bluetooth
(should show the bluetooth device)
Bus 004 Device 003: ID 1131:1001 Integrated System Solution Corp.
KY-BT100 Bluetooth Adapter
#hcitool dev
(also lists bluetooth devices)

Devices:
    hci0    00:11:22:33:44:55 (这应该显示的是你的设备mac地址)

3、手机与电脑配对,最好在手机上将电脑端设为授权设备,不用验证就可连接。

4、设置手机Modem参数。

用usb数据线接上手机,手机选“ovi套件”模式,然后安装拨号工具包。

# apt-get install wvdial
# wvdialconf

会创建配置文件/etc/wvdial.conf,

[Dialer Defaults]

 Init1 = ATZ

 Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0

 Phone = <your phone number>

 Username = <your username>

 Password = <your password>

 Baud = 460800

 ISDN = 0

 Modem Type = USB Modem

 Modem = /dev/ttyACM0

 修改如下(缺省的参数最好不要改,因为是自动生成的,只需要把号码、用户名、密码修改,然后加上条Init6,配置手机上网的方式):


[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init6 = AT+CGDCONT=1,"IP","cmnet"
New PPPD = yes
Phone = *99***1#
Username = any
Password = any
Baud = 460800
ISDN = 0

[Dialer usb]
Modem Type = USB Modem
Modem = /dev/ttyACM0

[Dialer blz]
Modem = /dev/rfcomm0

然后用ifconfig命令将连网设备down。

5、手机usb数据线拨号上网。

# wvdial usb &

6、手机蓝牙拨号上网还需要配置rfcomm参数。

前面用hcitool dev命令看到了蓝牙适配器,下面用hcitool scan命令搜索手机。

Scanning...
    00:11:22:33:44:55    NameDevice  (这显示的是你的手机mac地址和名字)

或者在手机上拨号"*#2820#",得到手机的mac地址。然后用命令sdptool search dun或者sdptool browse 00:11:22:33:44:55(这里用你手机的mac地址)查找你手机拨号服务的rfcomm端口。

 sdptool search dun
Service Name: Dial-Up Networking
Service RecHandle: 0x1001e
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

主要看channel的号码,我的手机是22,所以后面我修改rfcomm.conf端口号为22。我的文件/etc/bluetooth/rfcomm.conf内容。

rfcomm0 {
#       # Automatically bind the device at startup
#       bind no;
#
#       # Bluetooth address of the device
        device e4:ec:10:d5:f4:ab;
#
#       # RFCOMM channel for the connection
        channel 22;
#
#       # Description of the connection
        comment "wvdial connect blz";
}

rfcomm1 {
#       # Automatically bind the device at startup
#       bind no;
#
#       # Bluetooth address of the device
        device e4:ec:10:d5:f4:ab;
#
#       # RFCOMM channel for the connection
        channel 1;
#
#       # Description of the connection
       comment "Example Bluetooth device";
}

请参照自己的手机修改。

7、命令:rfcomm connect 0

连接rfcomm0进行拨号上网,因为前面在rfcomm.conf里面设置了手机mac地址和端口号,所以这只要直接连接设备0就行了,如果不做上面设置,请在命令行输入:

rfcomm connect 0 00:11:22:33:44:55 22 &

8、看着电脑显示拨号连接信息,大功告成。