2017-01-30 32 views
7

Używam QN9021 SoC działającego w controller mode (specyfikacja rdzenia Bluetooth BLE v4.0). Obsługuje niektóre standardowe polecenia HCI, a także niektóre polecenia specyficzne dla danego dostawcy. Próbuję dołączyć go do mojego laptopa ubuntu.Bluetooth przez uart za pomocą hciattach?

Poleceniem, którego używam jest hciattach.

hciattach -s 9600 /dev/ttyUSBx any 9600 noflow nosleep 

W hcidump pokazy podczas wykonywania sudo hciconfig hci1 up.

HCI sniffer - Bluetooth packet analyzer ver 5.37 
device: hci1 snap_len: 1500 filter: 0xffffffffffffffff 
> HCI Event: Command Complete (0x0e) plen 12 
    Read Local Supported Features (0x04|0x0003) ncmd 11 
    status 0x00 
    Features: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 
> HCI Event: Command Complete (0x0e) plen 12 
    Read Local Version Information (0x04|0x0001) ncmd 11 
    status 0x00 
    HCI Version: 4.0 (0x6) HCI Revision: 0x400 
    LMP Version: 4.0 (0x6) LMP Subversion: 0x400 
    Manufacturer: Quintic Corp. (142) 
> HCI Event: Command Complete (0x0e) plen 10 
    Read BD ADDR (0x04|0x0009) ncmd 11 
    status 0x00 bdaddr 08:7C:BE:3E:34:BB 
> HCI Event: Command Complete (0x0e) plen 11 
    Read Buffer Size (0x04|0x0005) ncmd 11 
    status 0x00 
    ACL MTU 0:0 SCO MTU 0:0 
> HCI Event: Command Complete (0x0e) plen 4 
    Read Class of Device (0x03|0x0023) ncmd 11 
    status 0x01 class 0x000000 
    Error: Unknown HCI Command 

pokazy dowodzenia hciconfig:

hci1: Type: BR/EDR Bus: UART 
    BD Address: 08:7C:BE:3E:34:BB ACL MTU: 0:0 SCO MTU: 0:0 
    DOWN 
    RX bytes:192 acl:0 sco:0 events:15 errors:0 
    TX bytes:60 acl:0 sco:0 commands:15 errors:0 

hci0: Type: BR/EDR Bus: USB 
    BD Address: C4:8E:8F:66:3B:0E ACL MTU: 820:8 SCO MTU: 255:16 
    UP RUNNING PSCAN 
    RX bytes:2457 acl:0 sco:0 events:196 errors:0 
    TX bytes:24646 acl:0 sco:0 commands:196 errors:0 

chciałbym wiedzieć, jak zapobiegać jądra lub jakiś moduł bluetooth jądra wysyłania nieobsługiwanych poleceń HCl. Czy muszę łatać kod źródłowy jądra Linuksa lub napisać moduł dla mojego SoC.

Uwaga: - Zmiana projektu oprogramowania SoC lub zapisu w celu obsługi wszystkich niezbędnych poleceń nie jest możliwa dla tego projektu.


EDIT:

Znam listę HCI polecenia obsługiwanych przez mojego SoC. Zastanawiam się nad utworzeniem module, aby powiadomić jądro i demony, że wysyłają tylko obsługiwane polecenia do SoC. Zerkam na źródło jądra Linuksa (szczególnie pod tym numerem hci_core.c). Myślę, że modyfikowanie go może rozwiązać problem po przejściu przez to link. W tym linku niektórzy deweloperzy dostarczyli łatkę do obsługi bluetooth dongle. Łatka zapobiega wysłaniu przez plik hci_core.c określonego polecenia HCI do klucza określonego producenta.

Wszystko czego chcę, to sugestia rozwiązania tego problemu. Czy muszę zmodyfikować jądro Linuxa lub napisać moduł dla mojego SoC?

UWAGA: - Aplikacja będzie działać na Linuksie openwrt.

Odpowiedz

1

Dobra, dzisiaj okazało się rozwiązanie:

# hciattach -r /dev/ttyS0 bcsp 115200 

Może to pomoże komuś

Pomocne wskazówki: może to link będą pomaga ciebie.

dam dwa linki po więcej szczegółów i Bluetooth click here i dla konfiguracji jądra click here

+1

i dla bluetooth i jądra dam dwa linki do bardziej szczegółowych informacji, –

+0

Próbowałem trybie RAW ale to nie pomogło. Zaaplikowałem łatkę w jądrze, a moje urządzenie działa teraz. Wkrótce opublikuję łatę i inne szczegóły – abhiarora

Powiązane problemy