web-dev-qa-db-ja.com

UART接続されたチップにロードされているドライバーを検出しますか?

Raspberry Pi 3BluetoothモジュールにHCIインターフェイスを提供するドライバーを検出しようとしています。

これは私が達成したいことと同等ですが、USBドングルの場合です。

user@Lime:~$ hciconfig 
hci0:   Type: BR/EDR  Bus: USB
    BD Address: 00:1A:7D:DA:71:13  ACL MTU: 310:10  SCO MTU: 64:8
    UP RUNNING 
    RX bytes:616 acl:0 sco:0 events:37 errors:0
    TX bytes:977 acl:0 sco:0 commands:37 errors:0

のため Bus: USB私はそれがUSBデバイスであることを知っています。

user@Lime:~$ lsusb 
Bus 004 Device 002: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

ドングルは次のとおりです。Bus 004 Device 002: ID 0a12:0001 Cambridge Silicon Radio...

user@Lime:~$ lsusb -t
/:  Bus 05.Port 1: Dev 1, Class=root_hub, Driver=musb-hdrc/1p, 480M
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=ohci-platform/1p, 12M
    |__ Port 1: Dev 2, If 0, Class=Wireless, Driver=btusb, 12M
    |__ Port 1: Dev 2, If 1, Class=Wireless, Driver=btusb, 12M

ポート(4)とデバイス(2)に基づいて、使用されているドライバーはbtusbであることがわかります。

RPi3のUART接続されたチップに同じ手順を適用します。

hciconfigを実行すると、次のようになります。

$ hciconfig 
hci0:   Type: BR/EDR  Bus: UART
    BD Address: B8:27:EB:E7:80:CE  ACL MTU: 1021:8  SCO MTU: 64:1
    UP RUNNING 
    RX bytes:717 acl:0 sco:0 events:42 errors:0
    TX bytes:1532 acl:0 sco:0 commands:42 errors:0

Bus: UARTはそれがUART接続されたデバイスであることを確認します。

使用中のドライバーを見つけるにはどうすればよいですか?

lsmodからいくつかの手がかりを得るかもしれません:

$ lsmod
Module                  Size  Used by
bnep                   12310  2 
hci_uart               22713  1 
btbcm                   8478  1 hci_uart
bluetooth             425568  22 bnep,btbcm,hci_uart
...

この例では、Raspberry Pi 3で、おそらくbtbcmが必要ですか?

1
meuh
usb-devices | egrep '0a12' -A7 | grep -i driver
1
user192526