我读过了这里它linux
支持大量的设备驱动程序,并且通过扩展,它还支持通过端口连接的大量设备USB
。摘自该网站:
如今,Linux 支持的硬件设备比世界历史上任何其他操作系统都多。它使用与熟悉的 Windows 设备驱动程序模型显着不同的开发模型来实现此目的。
是否有支持的所有不同设备的列表linux
?和/或USB
通过 linux`连接并受其支持的设备列表?
这与仅使用命令找出给定发行版当前支持哪些设备驱动程序不同lsmod
,lspci
并且dmesg | grep <string>
发行版提供程序仅支持 .NET 支持的所有驱动程序中的少数常见驱动程序linux
。
答案1
和lspci
命令lsusb
仅枚举连接到特定总线的设备。他们从总线读取 id 并使用特殊文件将此 id 映射到字符串。
所lsmod
显示的只是列表Linux内核模块。 Linux 内核模块是动态加载的 Linux 内核代码的一部分 - 该模块不是必需的驱动程序,它可能只是内核代码的任何部分。这种机制用于节省内存和启动时间,并且不在启动时加载所有代码,以使内核开发更容易(您可以卸载/修改/加载部分内核)。由于设备驱动程序是这种动态加载的良好应用之一 - 它被用于大多数驱动程序中。非驱动程序示例是 iptables(网络过滤机制),其中仅加载用户实际请求的部分。
这dmesg
只是一个内核文本日志 - 通常开发人员会在初始化时写一些东西,但这完全是自愿的 - 所以你在那里找到的内容和格式是完全随机的。
获得支持的硬件的完整列表是很困难的。内核由不同的人制作的非常不同的部分组成,并且有很多类似的设备具有不同的标签。
通常您可以尝试在专用页面上查找您的设备是否受支持:
- 支持的打印机位于 Linux 打印机数据库中http://www.openprinting.org/printers
- 扫描仪页面正常
- 视频卡打开http://www.x.org/wiki/Projects/Drivers/
- 等等
这主要是因为大多数东西不仅需要用户空间层的内核驱动程序,而且还有一种“项目”可以在用户空间的主界面上完成这两个部分。
最高级的受支持列表可以从内核代码中提取 - 通常有每个特定驱动程序支持的 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*"