如何列出 Linux 中未安装或加载驱动程序的设备?
答案1
我认为Linux通常会找到一个驱动程序或另一个来使用固件。
使用lspci -v
和lsusb
列出与其关联的设备和驱动程序。如果任何驱动程序无法启动固件,您可以检查dmesg
输出是否有错误。
您可以像这样组合它们来查找没有驱动程序的设备:lspci -v | grep -B8 -v "Kernel modules: [a-z0-9]+"
。它基本上搜索没有任何关联驱动程序的设备。如果您在 USB 总线上连接设备(请原谅 RAS 综合症), lsusb 将不会有任何帮助,并且dmesg
是您唯一的希望。
答案2
在我的 debian 上,启动时您将看到启动消息“设备名称...无法加载错误”或类似消息。
或者打开终端并使用命令
dmesg | grep "failed to load"
- 我多年前就知道这个问题,但是当我用谷歌搜索时,这个问题是第一个,我认为可能有用。
答案3
如果您打算检查通过 USB 端口连接的设备,只需使用lsusb
列出它们即可。
答案4
如果您想浏览系统中的所有设备并开始学习架构,请忽略所有特定于总线的命令,只需快进到:
udevadm info -e
然后深入 /sys 目录查看拓扑树和依赖关系。当然,您不会在这里(或其他任何地方)找到位于任何未启用或不可枚举或可查询的总线后面的设备,主板传感器是最常见的示例(直到加载适当的模块)。