使用 lspci 我可以看到如下内容:
Slot: 00:02.0
Class: PCI bridge [0604]
Vendor: Red Hat, Inc. [1b36]
Device: QEMU PCIe Root port [000c]
Driver: pcieport
在 dmesg 中我可以看到pcieport 0000:00:02.0: pciehp: Slot #0 AttnBtn+ PwrCtrl+ MRL- AttnInd+ PwrInd+ HotPlug+ Surprise+ Interlock+ NoCompl- IbPresDis- LLActRep+
但是,cat /lib/modules/$(uname -r)/modules.builtin | grep pci
没有显示任何一个。depmod -v
也没有。
所以我猜想,这两个驱动程序实际上是内核中的静态内置驱动程序,不是模块。在内核配置(/boot/config-$(uname -r)
)中我可以看到CONFIG_HOTPLUG_PCI_PCIE=y
。但是直到我深入研究内核源代码,我才知道这个标志。我想知道是否有任何简单的方法可以列出所有静态内置驱动程序的名称?