/dev 主次设备号与 lspci 输出 (域:总线:插槽号) 之间是否存在映射?我想确定距离特定硬件设备最近的 CPU。
答案1
我假设您说的是带有 BIOS 的 x86 平台。我认为两者之间没有直接关系,只是检测方式不同,取决于很多因素,尤其是 BIOS。
也许您可以使用 udev-rules 来发明自己的方案。这里是一个教程。KERNELS 变量似乎是此处的相关指标。
答案2
什么样的设备?有些(例如网络接口)没有设备节点 - 但对于块设备之类的东西,您可以从 sysfs 中获取一些信息:
$ readlink /sys/block/sda/device/scsi_device*/device
../../../devices/pci0000:00/0000:00:09.0/0000:03:00.0/0000:04:00.0/0000:05:00.0/host0/port-0:0/end_device-0:0/target0:0:0/0:0:0:0
答案3
事实证明,该字符设备实际上具有设备显示功能,其控制程序之一中有一个命令行开关。映射结果遵循 lspci 的映射(按发现顺序显示设备),因此我认为 PCI 发现方法必须以类似的方式进行。