lspci 机器可读格式 (-vmm) 不显示内核模块/驱动程序行

lspci 机器可读格式 (-vmm) 不显示内核模块/驱动程序行

我简单地阅读了lspci的手册,在那里我发现有一个机器可读的格式lspci输出使用“-m”或“-mm”或“-vmm”。

我需要使用机器可读的格式打印出设备名称、设备 ID 和正在使用的内核模块驱动程序。

我尝试了这个命令:

$ lspci -vmm -v -nn -d 10de:0393
Slot:   01:00.0
Class:  VGA compatible controller [0300]
Vendor: NVIDIA Corporation [10de]
Device: G73 [GeForce 7300 GT] [0393]
SVendor:    Micro-Star International Co., Ltd. [1462]
SDevice:    NX7300GT-TD256EH [0412]
Rev:    a1

与此输出相比:

$ lspci -nn -v -d 10de:0393
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation G73 [GeForce 7300 GT] [10de:0393] (rev a1) (prog-if 00 [VGA controller])
    Subsystem: Micro-Star International Co., Ltd. NX7300GT-TD256EH [1462:0412]
    Flags: bus master, fast devsel, latency 0, IRQ 16
    Memory at fd000000 (32-bit, non-prefetchable) [size=16M]
    Memory at d0000000 (64-bit, prefetchable) [size=256M]
    Memory at fc000000 (64-bit, non-prefetchable) [size=16M]
    I/O ports at cc00 [size=128]
    [virtual] Expansion ROM at fe9e0000 [disabled] [size=128K]
    Capabilities: <access denied>
    Kernel driver in use: nvidia
    Kernel modules: nvidia_current, nouveau, nvidiafb

您可以看到正常(非机器可读)格式显示正在使用的内核驱动程序/模块。

如何让它以机器可读的格式显示驱动程序/模块行?

在手册中,它说“模块”和“驱动程序”行是可选的。这是否意味着我必须从源代码编译它并具有一些特殊属性?

PS 我知道 awk 和 sed 以及其他解决方法,我只是好奇为什么它不起作用。

我使用ubuntu 12.10,pciutils版本3.1.9-5ubuntu4

答案1

我联系了开发人员,看来这本身并不是一个错误,但至少现在它是某种功能请求。 :)

我不确定这是否是一个错误,但我无法使用 -vmm -v 选项打印“驱动程序”/“模块”行。没有它它也可以工作(只有-v)。

这是个好主意,我会添加它。

相关内容