Linux
如何在 Linux 中找到 USB 控制器的 pci 插槽?
我這裡有一台幾乎普通的 Linux 機器。所以,它在一些 USB 控制器上有一個 PCI(*-X 等)匯流排,我在這些 USB 控制器上有 USB 設備。與此類似:
$ lspci|grep USB 00:12.0 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB OHCI0 Controller 00:12.2 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB EHCI Controller 00:13.0 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB OHCI0 Controller 00:13.2 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB EHCI Controller 00:14.5 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB OHCI2 Controller 00:16.0 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB OHCI0 Controller 00:16.2 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB EHCI Controller 02:00.0 USB controller: VIA Technologies, Inc. VL805 USB 3.0 Host Controller (rev 01)
而且,還有一個 USB 設備樹,如下所示:
$ lsusb -t /: Bus 07.Port 1: Dev 1, Class=root_hub, Driver=ohci-pci/4p, 12M /: Bus 06.Port 1: Dev 1, Class=root_hub, Driver=ohci-pci/2p, 12M /: Bus 05.Port 1: Dev 1, Class=root_hub, Driver=ohci-pci/5p, 12M |__ Port 5: Dev 4, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M /: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=ohci-pci/5p, 12M |__ Port 2: Dev 2, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M |__ Port 2: Dev 2, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M |__ Port 3: Dev 12, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M |__ Port 4: Dev 4, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M |__ Port 4: Dev 4, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M /: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/4p, 480M /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/5p, 480M |__ Port 2: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M |__ Port 1: Dev 4, If 0, Class=Wireless, Driver=btusb, 12M |__ Port 1: Dev 4, If 1, Class=Wireless, Driver=btusb, 12M |__ Port 4: Dev 11, If 0, Class=Vendor Specific Class, Driver=r8712u, 480M |__ Port 3: Dev 3, If 0, Class=Vendor Specific Class, Driver=MOSCHIP usb-ethernet driver, 480M /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/5p, 480M |__ Port 1: Dev 6, If 0, Class=Video, Driver=uvcvideo, 480M |__ Port 1: Dev 6, If 1, Class=Video, Driver=uvcvideo, 480M |__ Port 1: Dev 6, If 2, Class=Audio, Driver=snd-usb-audio, 480M |__ Port 1: Dev 6, If 3, Class=Audio, Driver=snd-usb-audio, 480M
所以,我在 PCI 匯流排上看到了我的 USB 控制器,在 USB 控制器上也看到了我的 USB 設備。
但不知道,哪個USB控制器號(在USB匯流排上)屬於哪個PCI匯流排號!
怎麼找到那個?
此資訊可以
iSerial
從lsusb
. 最簡單的方法是將輸出傳遞給less
查看器並使用手動搜尋/
,或者例如使用grep
:$ lsusb -v 2>/dev/null | grep '^Bus\|iSerial' Bus 001 Device 029: ID 12d1:1506 Huawei Technologies Co., Ltd. Modem/Networkcard iSerial 0 Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub iSerial 1 0000:00:1d.7 Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub iSerial 1 0000:00:1d.3 Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub iSerial 1 0000:00:1d.2 ...