如何查看哪个设备使用哪个内核模块?

如何查看哪个设备使用哪个内核模块?

我有一部三星手机 GT-B3210。有一段时间我找不到适用于它的 Windows 驱动程序。我最终放弃了寻找。后来有一次我通过 USB 端口为手机充电并启动了 Ubuntu,当我在桌面上看到手机的 μSD 读卡器时,我感到很惊喜。

我现在需要切换到 Gentoo,并希望能够在那里使用手机。Lsusb 告诉我它被检测到为
Bus 007 Device 006: ID 04e8:663f Samsung Electronics Co., Ltd SGH-E720/SGH-E840

但 lsmod 没什么用。在已加载模块列表中,我找不到任何与手机相关的模块。

还有其他方法可以查看电话使用了哪个模块吗?

答案1

USB 设备应出现在/sys/bus/usb/devices7-6或类似名称开头的几个条目下。driver目录内的链接指向的是绑定到该设备的模块的名称。

答案2

我发现lsusb在这种情况下使用起来更容易、更快捷。示例输出如下:

 $ lsusb -t
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 5000M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/3p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/8p, 480M
...

如果不使用驱动程序,该行将如下所示(我的示例中的设备是相机,我确实从内核中删除了它的驱动程序):

    |__ Port 6: Dev 4, If 1, Class=Video, Driver=, 480M

相关内容