2017-01-30 14 views
7

Я использую QN9021 SoC, работающий в controller mode (спецификация ядра Bluetooth BLE v4.0). Он поддерживает некоторые стандартные команды HCI, а также некоторые команды определенного поставщика. Я пытаюсь прикрепить его в своем ноутбуке ubuntu.Bluetooth over uart с использованием hciattach?

Команда, которую я использовал, - hciattach.

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

В hcidump показывает время выполнения 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 

В 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 

Я хотел бы знать, как предотвратить ядро ​​или какой-либо модуль ядра Bluetooth Для отправки неподдерживаемых команд HCI. Нужно ли исправлять исходный код ядра Linux или написать модуль для моего SoC.

Примечание: - Изменение этого SoC или прошивки для поддержки всех необходимых команд для этого проекта невозможно.


EDIT:

Я знаю, список HCI команды, поддерживаемой моей SoC. Я думаю о создании module, чтобы сообщить, что ядро ​​и демоны работают для отправки только поддерживаемых команд в SoC. Я смотрю на источник ядра linux (конкретно на этом hci_core.c). Я думаю, что его изменение может решить проблему после прохождения этого link. В этой ссылке некоторые разработчики предоставили патч для поддержки bluetooth dongle. Патч предотвращает файл hci_core.c для отправки определенной команды HCI на ключ определенного производителя.

Все, что я хочу, это предложение решить эту проблему. Нужно ли мне модифицировать ядро ​​Linux или написать модуль для моего SoC?

ПРИМЕЧАНИЕ. - Приложение будет работать на openwrt linux.

ответ

1

Хорошо, сегодня мы обнаружили решение:

# hciattach -r /dev/ttyS0 bcsp 115200 

Может быть, это поможет кому-то

Полезные советы: Пусть это link будут помогает вам.

Я дам две ссылки для получения более подробной информации и для Bluetooth click here и для конфигурации ядра click here

+1

И для Bluetooth и ядра я дам две ссылки для более подробной информации, –

+0

я попробовал режим сырца но это не помогло. Я применил патч в ядре, и мое устройство работает сейчас. Я скоро опубликую свой патч и другие подробности – abhiarora