分页: 1 / 1

《NetBSD指南-20.4.1.鼠标》

发表于 : 2010-03-06 15:09
leo
蓝牙鼠标可以通过使用btdevctl(8)的 btms(4) 驱动程序附加到系统上.

首先, 你必须发现设备的BDADDR. 这可能打印在外包装盒上, 但是要让设备可以识别和用合适的控制器执行设备质询的最简单的方式是:

代码: 全选

% btconfig ubt0 inquiry
Device Discovery on ubt0 .... 1 response
  1: bdaddr 00:14:51:c1:b9:2d (unknown)
   : name "Mighty Mouse"
   : class: [0x002580] Peripheral Mouse <Limited Discoverable>
   : page scan rep mode 0x01
   : page scan period mode 0x02
   : page scan mode 0x00
   : clock offset 6944

为了使用简便, 你可将地址加到 /etc/bluetooth/hosts 文件中, 这样你可以使用鼠标的别名:

代码: 全选

# echo "00:14:51:c1:b9:2d mouse" >>/etc/bluetooth/hosts

现在, 你可以质询鼠标,它接受连接前可能需要认证. 尽管经常使用 “0000”,但是修正的PIN应该被列入这个文档中. 设置PIN首先要使用 btpin(1) 程序:

代码: 全选

% btpin -d ubt0 -a mouse -p 0000
# btdevctl -d ubt0 -a mouse -s HID
local bdaddr: 00:08:1b:8d:ba:6d
remote bdaddr: 00:14:51:c1:b9:2d
link mode: auth
device type: bthidev
control psm: 0x0011
interrupt psm: 0x0013
Collection page=Generic_Desktop usage=Mouse
  Input id=2 size=1 count=1 page=Button usage=Button_1 Variable, logical range 0..1
  Input id=2 size=1 count=1 page=Button usage=Button_2 Variable, logical range 0..1
  Input id=2 size=1 count=1 page=Button usage=Button_3 Variable, logical range 0..1
  Input id=2 size=1 count=1 page=Button usage=Button_4 Variable, logical range 0..1
  Input id=2 size=4 count=1 page=0x0000 usage=0x0000 Const Variable, logical range 0..1
Collection page=Generic_Desktop usage=Pointer
  Input id=2 size=8 count=1 page=Generic_Desktop usage=X Variable Relative, logical range -127..127
  Input id=2 size=8 count=1 page=Generic_Desktop usage=Y Variable Relative, logical range -127..127
  Input id=2 size=8 count=1 page=Consumer usage=AC_Pan Variable Relative, logical range -127..127
  Input id=2 size=8 count=1 page=Generic_Desktop usage=Wheel Variable Relative, logical range -127..127
End collection
  Input id=2 size=8 count=1 page=0x00ff usage=0x00c0 Variable, logical range -127..127
Feature id=71 size=8 count=1 page=0x0006 usage=0x0020 Variable NoPref Volatile, logical range 0..100
End collection

这里告诉你这个鼠标回应了一个SDP质询, 并且显示了设备的能力. 注意默认已经启用了对蓝牙鼠标认证的支持。你现在可以附加到系统上:

代码: 全选

# btdevctl -d ubt0 -a mouse -s HID -A

这会在系统控制台上生成一些信息:
bthidev0 at bthub0 remote-bdaddr 00:14:51:c1:b9:2d link-mode auth
btms0 at bthidev1 reportid 2: 4 buttons, W and Z dirs.
wsmouse1 at btms0 mux 0
bthidev1: reportid 71 not configured
bthidev1: connected

这时鼠标就可以工作了.

这个设备的功能被储存在 btdevctl(8)里, 并在系统启动时加载这个鼠标, 将一个项放入 /etc/bluetooth/btdevctl.conf 文件, 并确保 /etc/rc.conf 文件里包含了 btdevctl=YES这一项. 尽管通常鼠标还处于未激活状态需要被唤醒,但是bthidev(4) 设备驱动程序仍将尝试连接一次, 这时鼠标需要初始化与计算机的连接。