Como configurar o bluez / kernel para periféricos de teclado Bluetooth

3

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? ?).

  • Distribuição do Debian Jessie
  • Linux kernel 3.14
  • bluez 5.43 (construído nativamente)

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):

link

    
por pztrick 16.02.2017 / 03:45

0 respostas