我有其中一个TTL-232R->USB我通常使用它来访问嵌入式板上的终端的电缆。它们通常是这样检测的:
[89702.948822] usb 2-3.7: new full-speed USB device number 38 using xhci_hcd
[89703.053567] usb 2-3.7: New USB device found, idVendor=067b, idProduct=2303
[89703.053570] usb 2-3.7: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[89703.053573] usb 2-3.7: Product: USB-Serial Controller
[89703.053575] usb 2-3.7: Manufacturer: Prolific Technology Inc.
[89703.054082] pl2303 2-3.7:1.0: pl2303 converter detected
[89703.055093] usb 2-3.7: pl2303 converter now attached to ttyUSB1
然而,对于这种特定情况,我将电缆物理连接到一个蓝牙芯片。
dmesg
以下是插入专用 USB 蓝牙适配器时的示例:
[ 68.042031] usb 3-1: new full-speed USB device number 2 using ohci-platform
[ 68.308106] usb 3-1: New USB device found, idVendor=0a12, idProduct=0001
[ 68.308130] usb 3-1: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[ 68.308141] usb 3-1: Product: CSR8510 A10
[ 68.405627] Bluetooth: Core ver 2.21
[ 68.405833] NET: Registered protocol family 31
[ 68.405846] Bluetooth: HCI device and connection manager initialized
[ 68.405883] Bluetooth: HCI socket layer initialized
[ 68.405903] Bluetooth: L2CAP socket layer initialized
[ 68.405974] Bluetooth: SCO socket layer initialized
[ 68.438517] usbcore: registered new interface driver btusb
[ 68.901221] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 68.901243] Bluetooth: BNEP filters: protocol multicast
[ 68.901281] Bluetooth: BNEP socket layer initialized
适当的驱动程序将蓝牙设备公开为 HCI 设备。
我的目标是将 TTL-232R 直接连接到蓝牙芯片的 UART 引脚,以便将其检测为 HCI 设备。蓝牙芯片已加载所需的固件。
从内核如何检测为什么设备加载哪些驱动程序的角度来看,这是一个合理的计划,以及如何执行它?