《NetBSD指南-20.6.串口连接》
发表于 : 2010-03-06 15:16
通过蓝牙的串口连接由RFCOMM协议提供, 它通过一个L2CAP通道提供了多达30个复用通道。使用BTPROTO_RFCOMM套接字接口可以访问这个数据流协议, 也可以通过 rfcomm_sppd(1) 程序对其访问.
例如, 你可以建立一个串口连接到一个移动电话的 “拨号网络” (DUN) 服务以便用PPP连接到Internet上。首先你要找到这部电话的BDADDR, 并将其加到 /etc/bluetooth/hosts 以便于使用. 将这部电话设置成可识别模式, 然后从适当的控制器执行一个质询:
现在, 你可以质询这部电话以确认其支持DUN profile:
很有可能这部电话需要先认证才会连接到DUN服务, 所以在你首次连接前需要提供一个PIN, 它可以随机生成. 你可以以stdio模式使用 rfcomm_sppd 已检查连接工作正常, 按下 ^C 以断开连接并返回到 shell, 例如:
当建立外部连接时,要让 pppd(8) 自动连接到你电话的DUN服务,将下面这行加入到 /etc/ppp/options 文件,这个位置用于常规的tty声明:
例如, 你可以建立一个串口连接到一个移动电话的 “拨号网络” (DUN) 服务以便用PPP连接到Internet上。首先你要找到这部电话的BDADDR, 并将其加到 /etc/bluetooth/hosts 以便于使用. 将这部电话设置成可识别模式, 然后从适当的控制器执行一个质询:
代码: 全选
% btconfig ubt0 inquiry
Device Discovery from device: ubt0 ..... 1 response
1: bdaddr 00:16:bc:00:e8:48 (unknown)
: name "Nokia 6103"
: class: [0x520204] Cellular Phone <Networking> <Object Transfer> <Telephony>
: page scan rep mode 0x01
: page scan period mode 0x02
: page scan mode 0x00
: clock offset 30269
# echo "00:16:bc:00:e8:48 phone" >>/etc/bluetooth/hosts
现在, 你可以质询这部电话以确认其支持DUN profile:
代码: 全选
% sdpquery -d ubt0 -a phone search DUN
Record Handle: 0x00010000
Service Class ID List:
Dial-Up Networking (0x1103)
Generic Networking (0x1201)
Protocol Descriptor List:
L2CAP (0x0100)
RFCOMM (0x0003)
Protocol specific parameter #1: u/int8/bool 1
Bluetooth Profile Descriptor List:
Dial-Up Networking (0x1103) ver. 1.0
很有可能这部电话需要先认证才会连接到DUN服务, 所以在你首次连接前需要提供一个PIN, 它可以随机生成. 你可以以stdio模式使用 rfcomm_sppd 已检查连接工作正常, 按下 ^C 以断开连接并返回到 shell, 例如:
代码: 全选
% btpin -d ubt0 -a phone -r -l 6
PIN: 904046
% rfcomm_sppd -d ubt0 -a phone -s DUN
< ENTER PIN ON PHONE NOW >
rfcomm_sppd[24635]: Starting on stdio...
at
OK
ati
Nokia
OK
ati3
Nokia 6103
OK
at&v
ACTIVE PROFILE:
E1 Q0 V1 X5 &C1 &D2 &S0 &Y0
+CMEE=0 +CSTA=129 +CBST=0,0,1 +CRLP=61,61,48,6 +CR=0 +CRC=0 +CLIP=0,2
+CLIR=0,2 +CSNS=0 +CVHU=1 +DS=0,0,2048,32 +DR=0 +ILRR=0
+CHSN=0,0,0,0 +CHSR=0 +CPBS="SM"
S00:000 S01:000 S02:043 S03:013 S04:010 S05:008 S07:060 S08:002
S10:100 S12:050 S25:000
OK
^C
rfcomm_sppd[24635]: Completed on stdio
当建立外部连接时,要让 pppd(8) 自动连接到你电话的DUN服务,将下面这行加入到 /etc/ppp/options 文件,这个位置用于常规的tty声明:
代码: 全选
pty "rfcomm_sppd -d ubt0 -a phone -s DUN -m encrypt"