![检测 UART 连接芯片加载了什么驱动程序?](https://linux22.com/image/99585/%E6%A3%80%E6%B5%8B%20UART%20%E8%BF%9E%E6%8E%A5%E8%8A%AF%E7%89%87%E5%8A%A0%E8%BD%BD%E4%BA%86%E4%BB%80%E4%B9%88%E9%A9%B1%E5%8A%A8%E7%A8%8B%E5%BA%8F%EF%BC%9F.png)
我正在尝试检测哪个驱动程序负责为 Raspberry Pi 3 蓝牙模块提供 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 连接设备。
如何找到正在使用的驱动程序?
答案1
您可能会从中得到一些线索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
...
在此示例中,在树莓派 3 上,也许您想要btbcm
?
答案2
usb-devices | egrep '0a12' -A7 | grep -i driver