
2,运行hcitool scan,找到自己的手机,记住蓝牙地址
3,sdptool browser 并将输出导入文件中。
4,找到sdptool输出中的Service Name: Dial-up Networking
其中有Channel:记住这个数字,比如,我的是4.
5,编辑/etc/bluetooth/rfcomm.conf,填写:
rfcomm0 {
bind yes
device 蓝牙地址
channel 上面的rfcomm Channel
comment "Phone Dun Connection"
}
6,重新启动bluetooth服务,/etc/rc.d/init.d/bluetooth restart
###############配置kppp######################
7,配置kppp帐号
a,在主界面,点击"配置"
b,在"帐户"页,点击"新建",选择"手工设置",会d出一个对话框
c,在"拨号"页,"连接名称",随便填写,比如GPRS,然后点"添加",填入电话号码"*99***1#"
d,点击确定,完成配置。
8,配置"调制解调器"
a,切换到"调制解调器"页,选择"新建"
b,调制解调器名称随便填写,比如Phone.
c,设备选择为/dev/rfcomm0
d,确定
9,拨号,直接在主界面点击"连接"即可。
###################配置wvdial##################
将以下内容写入/etc/wvdial.conf
[Dialer gprs]
Modem = /dev/rfcomm0
Phone = *99***1#
Username= cmnet
Password= cmnet
然后,wvdial gprs即可。
他不会自动更新/etc/resolv.conf,可以把/var/run/ppp/resolv.conf拷贝到/etc
可以的
方法如下:
1、终端使用命令lsusb
2、运行hciconfig可以看到:
从上图可以看出,的蓝牙设备是hci0
3、运行hcitool dev可以看到蓝牙设备的硬件地址
运行hcitoo --help 可以查看更多相关命令
然后激活设
sudo hciconfig hci0 up
要注意的是,激活前蓝牙必须是打开的,否则会出现如下错误:
4、然后扫描:
hcitool scan
5、然后开始连接了,连接阶段使用的主要命令是rfcomm:
运行rfcomm --help 可以查看用法
首先需要绑定目的蓝牙设备:
sudo rfcomm bind /dev/rfcomm0 E0:A6:70:8C:A3:02
注意:上面的这个地址是目的蓝牙设备的硬件地址。
接着连接:
sudo cat >/dev/rfcomm0
这是目的蓝牙主机就会d出一个对话框要求输入pin码,随便输入一个,然后主机就会d出一个对话框,只要输入的和刚才一致就可以通过验证。之后我们发现我的手机已经显示了成功配对的标记了。更多Linux知识可参考《Linux就该这么学》。
一.Linux对于蓝牙的支持
在Linux 2.6内核已经实现如下协议。
串口形式蓝牙设备驱动(HCI UART driver)
USB蓝牙棒驱动(HCI USB driver)
内核也实现了L2CAP,RFCOMM串口接口,以及SCO链路支持.
另外内核也直接支持BNEP(Bluetooth Network Encapsulation Protocol ),即把蓝牙网络当成一个无线局域网 *** 作。
Linux也带了蓝牙输入设备的相关支持。
需要打开 HIDP 和HID2HCI两个选项都要打开.
DUND 把蓝牙网络当成一个拨号网络来处理。
2.蓝牙协议栈
在实现了L2CAP后,也需要一个蓝牙协议栈处理。它起什么作用呢? 我的理解是内核封装到RFCOMM的层次,即只负责的蓝牙的包的封装与收发。至于包收上来,在蓝牙的四个阶段,如何应用的状态影响,以及如何响应正确的包,这一些事情由蓝牙协议栈来完成的。
在Linux实现蓝牙功能有多个互相竞争的蓝牙协议栈,但是影响最大是bluez.几乎已经成为Linux下的标准协议栈的代名词。
还有一个协议栈是Affix 不过用的人比较少
在应用程序级,它主要由两部分组成,一个是bluez的应用程序库,主要负责与内核的bluez通信,和bluez-util工具。即完成蓝牙四阶段处理的一些命令行工具。
3.蓝牙的概念。
配对由一方发起即可,如果本设备需要被其它设备搜索,需要有被发现功能。
二.Linux关于蓝牙命令
-------------------------------------------------
在Linux使用蓝牙最方便是使用bluez-util自带向个命令来测试。
我们这里采用市面最容易找到的蓝牙棒来做物理层设备与手机进行通讯测试。把蓝牙棒插LINUX下的USB口后,在dmesg我们会看到提示
表示USB蓝牙棒已经被识别了。如果
*** 作系统自带HCI工具主要来自bluez-util.
/usr/sbin/hciattach : attach serial devices via UART HCI to BlueZ stack
/usr/sbin/hcid :Bluetooth Host Controller Interface Daemon
/usr/sbin/hciemu :HCI emulator
/usr/sbin/hciconfig : configure Bluetooth devices
/usr/sbin/hcidump : Parse HCI data
/usr/bin/hcitool : configure Bluetooth connections
/usr/bin/sdptool : control and interrogate SDP servers
hciconfig类似于 hciconfig.类似的 *** 作可以参见官网(这里不方便留链接,自己去搜索下就可以了)
检测USB设备,lsusb
2.查看hci设备,hciconfig
激活设备
hciconfig hci0 up
3.修改蓝牙配置文件
蓝牙采用/etc/bluetooth/
hcid.conf rfcomm.conf
其中hcid.conf有关配对信息。其中security user表示每次配对询问用户对方PIN,而auto则直接采用passkey中的PIN码。
4.重启蓝牙服务
如果修改了蓝牙配置后,需要重启蓝牙服务
service bluetooth stop
service bluetooth start
5.扫描设备
6.增加自动配对设置
修改 /etc/bluetooth/rfcomm.conf
增加扫描蓝牙地址
7.创建设备结点(只合适于第一次)
rfcomm create dev #它将创建于/dev/rfcomm0 设备结点
它等同于如下命令系列
mknod /dev/rfcomm0 c 216 1
chmod 666 /dev/rfcomm0
rfcomm bind /dev/rfcomm0 00:21:19:A4:E0:F1-1
8.增加SDP消息信息
为了减少麻烦,把所有支持的蓝牙服务都加上.
sdptool add --channel=1 DID SP DUN LAN FAX OPUSH FTP HS HF SAP NAP GN PANU HID CIP CTP A2SRC A2SNK SYNCML NOKID PCSUITE SR1
9.增加蓝牙串口绑定
rfcomm bind /dev/rfcomm0 00:21:19:A4:E0:F1 1
#rfcomm bind /dev/rfcomm0 蓝牙设备地址 通道,这个命令可选
10.解除蓝牙绑定
格式:rfcomm unbind /dev/rfcomm0 蓝牙设备地址 通道
11.联接蓝牙设备
hcitool cc 00:21:19:A4:E0:F1
三.关于蓝牙配置文件
-------------------------------------------
蓝牙的配置文件主要是 /etc/bluetooth目录下的hcid.conf和rfcomm.conf.
这里的security 是表示配对的认证模式,user表示由用户输入密码。这个需要在后面用
pin_helper 指明用哪一个程序输入密码,这程序可以是图形界面程序,或者是字符界面程序。
常见的pin_helper有
/usr/bin/bluez-pin : bluez自带的pin输入界面
kbluepin
passkey 配置项指明请求联接的设备的pin码。当采用auto模式时,将采用这个密码来联接.
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)