Estou tentando criar uma máquina ARM personalizada (semelhante ao Raspberry Pi) para conectar a um teclado Bluetooth usando uma interface UART HCI (em oposição a um dongle USB Bluetooth).
O dispositivo parece emparelhar corretamente mas nenhum dispositivo HID é criado (ou pelo menos a entrada não é passada para o Xorg - Eu procurei o dispositivo em / dev / input também, mas não vi nada. O dispositivo BT HID foi criado em outro lugar? ?).
Eu faço ter o mesmo controlador host Bluetooth conectando ao teclado periférico com um host Ubuntu 16.04 (bluez 5.37), também através do HCI UART 3-wire, então acredite que ele deve ser limitado a alguns kernel / configuração bluez neste novo dispositivo ARM. O teclado funciona imediatamente após o emparelhamento no host do Ubuntu 16.04.
Observe que o controlador e o periférico são apenas sobre o Bluetooth LE (não duplo).
Aqui no dispositivo problema bluetoothctl
você pode ver que o controlador vê um serviço HID no periférico BT ao perguntar info [MAC ADDRESS]
, no entanto ele não parece registrar o serviço HID ou estou faltando alguma coisa? (Apenas registra o serviço de bateria, informações do dispositivo e perfil de atributo genérico)
(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
O dispositivo / kernel normalmente se conecta com um periférico de teclado USB. Eu adicionei esses defconfigs relacionados ao Bluetooth para adicionar suporte a Bluetooth:
# 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
Existem outras configurações relacionadas ao HID necessárias para acionar o teclado BT?
Finalmente, aqui está o verbete bluetoothd -n -d
que sugere que HoG (HID sobre GATT) está tentando carregar o teclado HID (não sei dizer se a saída sugere êxito ou erro de forma honesta):