普通石头
deepin
2020-05-18 01:48 本帖最后由 xltian1230 于 2020-5-17 18:05 编辑
列出来的只说明系统认到有这个设备,不代表驱动一定就装上了,至于为什么知道这个设备是什么,因为你的系统里装了hwids这个包,里面包含了各种硬件(PCI, USB, OUI, IAB)ID的databases,实际就是来自你提到的https://pci-ids.ucw.cz/。 你仔细看下lspci的-i 的解释:Use specified ID database instead of /usr/share/misc/pci.ids.gz。
至于有没有驱动,你看下lspci -v输出的结果,如果某个设备有加载驱动,应该会有Kernel driver in use:xxx这一行,说明这个设备的驱动模块xxx被使用了
Reply Like 0 View the author


中文 

我在终端输入lspci -tv 输出如下类似内容:1
...
2
00:19.0 Ethernet controller: Intel Corporation Ethernet Connection (3) I218-LM (rev 03)
3
...
输出的内容都是一些关于pci或者pci-e总线上的设备列表,有点而像windows的硬件管理器的意思。
但是我有个疑惑,lspci列出的硬件列表信息,是否也说明了,这个硬件设备的驱动也已经安装好了呢?还请有经验的大神指点一下小弟。。。。。。
为了读懂这个输出还特意学习了一下PCI、PCI-e的规范。
这个pci规范主要知识点如下:
在PCI或者说PCIe里,每个设备有三个编号:总线编号(Bus Number)、设备编号(Device Number)和功能编号(Function Number)
对输出类似内容(00:19.0)来说:这个设备的BusNumber是00,DeviceNumber是19,FunctionNumber是0
理论上,可以有256个Bus,每个Bus可以有32个Device,每个Device可以有8个Function
还有一个疑问,就是lspci命令是怎么能知道00:19.0这个设备就是个Ethernet controller,并且是Intel Corporation Ethernet Connection (3) I218-LM (rev 03)的呢?我搜索网络查询结果找到答案如下:终端命令输入:lspci -nn
1
...
2
00:19.0 Ethernet controller [0200]: Intel Corporation Ethernet Connection (3) I218-LM [8086:15a2] (rev 03)
3
...
最后多说点儿:具体到如何读取DeviceClass和VendorID
具体的还是得多看:https://pci-ids.ucw.cz/这个网站(这个设备清单是由这个网站维护的)是权威,全是英文,我的E文水平有点差,看着特别累!!!!
这都是我的无线网卡不能扫描网络,为了解决这个问题,不停的找原因,找问题,找答案一路走来所看所学的一些知识点。
关于上面红色字体部分的问题,有那位大神知道的烦请给指点解释一下,再次感谢!!!!