USB Bluetooth 어댑터 대신 UART HCI 인터페이스를 사용하여 Bluetooth 키보드에 연결하기 위해 맞춤형 ARM 시스템(Raspberry Pi와 유사)을 부팅하려고 합니다.
장치가 올바르게 페어링된 것으로 보이지만 HID 장치가 생성되지 않았습니다(또는 최소한 입력이 Xorg로 전달되지 않았습니다. 또한 /dev/input에서 장치를 찾았지만 아무것도 보지 못했습니다. BT HID 장치가 다른 곳에서 생성되었습니까?) ).
- 데비안 Jessie 배포판
- 리눅스 커널 3.14
- bluez 5.43(로컬 빌드)
나하다Ubuntu 16.04 호스트(bluez 5.37)와 동일한 Bluetooth 호스트 컨트롤러를 사용하면 HCI UART 3 와이어를 통해 주변 장치 키보드에 연결되므로 이 새로운 ARM 장치의 특정 커널/bluez 구성으로 제한되어야 한다고 생각합니다. 키보드는 Ubuntu 16.04 호스트에서 페어링한 후 즉시 작동했습니다.
컨트롤러 및 주변 장치는 Bluetooth 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(GATT를 통한 HID)가 HID 키보드를 로드하려고 시도하고 있음을 보여주는 자세한 출력입니다(솔직히 출력이 성공을 나타내는지 아니면 오류를 나타내는지 알 수 없습니다).