哪里可以找到 Linux 支持的设备驱动程序列表?

哪里可以找到 Linux 支持的设备驱动程序列表?

我读过了这里linux支持大量的设备驱动程序,并且通过扩展,它还支持通过端口连接的大量设备USB。摘自该网站:

如今,Linux 支持的硬件设备比世界历史上任何其他操作系统都多。它使用与熟悉的 Windows 设备驱动程序模型显着不同的开发模型来实现此目的。

是否有支持的所有不同设备的列表linux?和/或USB通过 linux`连接并受其支持的设备列表?

这与仅使用命令找出给定发行版当前支持哪些设备驱动程序不同lsmodlspci并且dmesg | grep <string>发行版提供程序仅支持 .NET 支持的所有驱动程序中的少数常见驱动程序linux

答案1

lspci命令lsusb仅枚举连接到特定总线的设备。他们从总线读取 id 并使用特殊文件将此 id 映射到字符串。

lsmod显示的只是列表Linux内核模块。 Linux 内核模块是动态加载的 Linux 内核代码的一部分 - 该模块不是必需的驱动程序,它可能只是内核代码的任何部分。这种机制用于节省内存和启动时间,并且不在启动时加载所有代码,以使内核开发更容易(您可以卸载/修改/加载部分内核)。由于设备驱动程序是这种动态加载的良好应用之一 - 它被用于大多数驱动程序中。非驱动程序示例是 iptables(网络过滤机制),其中仅加载用户实际请求的部分。

dmesg只是一个内核文本日志 - 通常开发人员会在初始化时写一些东西,但这完全是自愿的 - 所以你在那里找到的内容和格式是完全随机的。

获得支持的硬件的完整列表是很困难的。内核由不同的人制作的非常不同的部分组成,并且有很多类似的设备具有不同的标签。

通常您可以尝试在专用页面上查找您的设备是否受支持:

这主要是因为大多数东西不仅需要用户空间层的内核驱动程序,而且还有一种“项目”可以在用户空间的主界面上完成这两个部分。

最高级的受支持列表可以从内核代码中提取 - 通常有每个特定驱动程序支持的 pci/usb id 列表 - 有一种方法可以提取它:http://www.cyberciti.biz/tips/linux-find-supported-pci-hardware-drivers.html。但是,如果您的内核模块在列表中具有 ID,并不意味着该设备受到完全支持,也不意味着您拥有允许您使用该模块的用户空间工具,或者该用户空间工具存在于您的特定发行版中。

有时分发供应商会提供支持的设备列表,但这通常是一些小子集。

对于 debian,还有 pciid->kernel 模块映射列表:https://wiki.debian.org/DeviceDatabase/PCI

关于 USB 设备,许多东西(例如相机)都有通过 libusb 的用户空间驱动程序 - 例如相机等等。在这种情况下,您根本不需要内核驱动程序。

另外,不要忘记 Linux 运行在近 20 种架构上(想象一下数十亿部不同的 Android 智能手机中有多少驱动程序),每个架构都有自己庞大的驱动程序集 - 您会发现总数将轻松击败其他所有架构了解操作系统。

答案2

我觉得这个问题的答案很模糊!如果您正在寻找以下列表设备Linux 内核支持的特定硬件尝试H 节点搜索

设备驱动程序确实是“Windows 语言”。内核的设备支持要么是内置的,要么是动态添加的内核模块,这是最接近设备驱动程序的东西。内核可能更准确地支持某些芯片组在设备本身中找到的。

许多设备实际上可以使用相同的芯片组,并且某些标有相同制造商产品 ID 代码的设备可以使用完全不同的芯片组! (正如我发现的令我烦恼的那样!)

答案3

关于什么

find /lib/modules/`uname -r` -name "*usb*"

相关内容