2017-01-30 10 views
7

controller mode(BLE Bluetoothコア仕様v4.0)で動作するQN9021 SoCを使用しています。標準のHCIコマンドとベンダー特有のコマンドをサポートしています。私はそれを私のubuntuラップトップに取り付けようとしています。hciattachを使用したBluetooth経由のBluetooth?

私が使用したコマンドは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 

私は非サポートHCIコマンドを送信するために、カーネルや一部のBluetoothカーネルモジュールを阻止する方法を知っていただきたいと思います。私はLinuxカーネルのソースコードにパッチを当てるか、私のSoC用のモジュールを書く必要がありますか?

注: - このプロジェクトでは、必要なすべてのコマンドをサポートするためにSoCを変更したり、ファームウェアを書き込んだりすることはできません。


EDIT:

私は私のSoCでサポートされているHCIコマンドのリストを知っています。私は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 用のための2つのリンクを与えるだろうし、カーネルの設定click here

+1

と私はより多くの詳細については、2つのリンクを与えるBluetoothやカーネルのため、 –

+0

のために私は生のモードを試してみましたそれは助けにはならなかった。私はカーネルにパッチを適用し、私のデバイスは現在動作しています。すぐに私のパッチやその他の詳細を掲載します – abhiarora

関連する問題