我正在尝试启动一个自定义 ARM 机器(类似于 Raspberry Pi),以使用 UART HCI 接口(而不是 USB 蓝牙适配器)连接到蓝牙键盘。
该设备似乎配对正确,但没有创建 HID 设备(或者至少输入未传递到 Xorg - 我也在 /dev/input 中查找设备,但没有看到任何内容。BT HID 设备是否在其他地方创建?)。
- Debian Jessie 发行版
- Linux内核3.14
- bluez 5.43(本地构建)
我做具有与 Ubuntu 16.04 主机 (bluez 5.37) 连接到外围键盘的相同蓝牙主机控制器,也是通过 HCI UART 3 线,因此相信它应该仅限于这个新 ARM 设备上的某些内核/bluez 配置。在 Ubuntu 16.04 主机上配对后键盘立即工作。
请注意,控制器和外设仅与蓝牙 LE 有关(不是双重的)。
在有问题的设备中,bluetoothctl
您可以看到控制器在询问时在 BT 外围设备上看到 HID 服务info [MAC ADDRESS]
,但它似乎没有注册 HID 服务,还是我遗漏了某些内容? (仅注册电池服务、设备信息和通用属性配置文件)
(already paired previously)
root@df666c9893549d4:~# bluetoothctl
[NEW] Controller D5:C0:BF:19:C4:AD BlueZ 5.43 [default]
[NEW] Device FA:D8:12:DD:86:72 AST61-Keyboard
[NEW] Primary Service
/org/bluez/hci0/dev_FA_D8_12_DD_86_72/service000e
0000180f-0000-1000-8000-00805f9b34fb
Battery Service
[NEW] Primary Service
/org/bluez/hci0/dev_FA_D8_12_DD_86_72/service0009
0000180a-0000-1000-8000-00805f9b34fb
Device Information
[NEW] Primary Service
/org/bluez/hci0/dev_FA_D8_12_DD_86_72/service0008
00001801-0000-1000-8000-00805f9b34fb
Generic Attribute Profile
[AST61-Keyboard]# info FA:D8:12:DD:86:72
Device FA:D8:12:DD:86:72
Name: AST61-Keyboard
Alias: AST61-Keyboard
Appearance: 0x03c1
Icon: input-keyboard
Paired: yes
Trusted: yes
Blocked: no
Connected: yes
LegacyPairing: no
UUID: Generic Access Profile (00001800-0000-1000-8000-00805f9b34fb)
UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb)
UUID: Device Information (0000180a-0000-1000-8000-00805f9b34fb)
UUID: Battery Service (0000180f-0000-1000-8000-00805f9b34fb)
UUID: Human Interface Device (00001812-0000-1000-8000-00805f9b34fb)
Modalias: usb:v1915pEEEEd0001
RSSI: 84
[CHG] Device FA:D8:12:DD:86:72 ServicesResolved: no
[CHG] Device FA:D8:12:DD:86:72 Connected: no
[CHG] Device FA:D8:12:DD:86:72 Connected: yes
[CHG] Device FA:D8:12:DD:86:72 ServicesResolved: yes
设备/内核通常与 USB 键盘外设连接。我添加了这些与蓝牙相关的 defconfig 以添加蓝牙支持:
# Bluetooth
CONFIG_BT=y
CONFIG_BT_RFCOMM=y
CONFIG_BT_RFCOMM_TTY=y
CONFIG_BT_BNEP_MC_FILTER=y
CONFIG_BT_BNEP_PROTO_FILTER=y
CONFIG_BT_HIDP=y
# Bluetooth userspace HID
CONFIG_UHID=y
# Bluetooth extra (may not be necessary)
CONFIG_BT_L2CAP=y
CONFIG_BT_SCI=y
CONFIG_BT_HCIUSB=y
CONFIG_BT_HCIUSB_SCI=y
CONFIG_BT_BNEP=y
# Bluetooth drivers
CONFIG_BT_HCIUART=y
CONFIG_BT_HCIUART_H4=y
CONFIG_BT_HCIUART_3WIRE=y
CONFIG_BT_HCIVHCI=y
CONFIG_BT_HCIUART_BCM=y
CONFIG_BT_HCIUART_INTEL=y
CONFIG_BT_HCIUART_BCSP=y
CONFIG_BT_HCIUART_LL=y
驱动 BT 键盘是否需要其他 HID 相关配置?
最后,这里是一个详细的bluetoothd -n -d
输出,表明 HoG(HID over GATT)正在尝试加载 HID 键盘(老实说,我无法判断输出是否表明成功或错误):