Linux bridge 与device对应关系
lspci 是 Linux 系统中用于列出所有 PCI 设备信息的命令。-t 和 -t -v 是 lspci 命令的两种不同参数组合,它们分别提供不同级别的设备树信息和详细描述。
1. lspci -t 命令
lspci -t 命令以树状结构的方式显示所有 PCI 设备的层次关系。这种格式有助于了解设备之间的父子关系,例如哪个设备是哪个设备的从属设备。它不显示设备的详细信息,而仅显示设备的层次结构。
示例输出:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| root@DMIT-tigyEICHBB:~# lspci -t -[0000:00]-+-00.0 +-01.0 +-1a.0 +-1a.1 +-1a.2 +-1a.7 +-1b.0 +-1c.0-[01]-- +-1c.1-[02]-- +-1c.2-[03]-- +-1c.3-[04]-- +-1d.0 +-1d.1 +-1d.2 +-1d.7 +-1e.0-[05-09]--+-01.0-[06]--+-03.0 | | +-04.0 | | +-07.0 | | +-08.0 | | +-0a.0 | | \-12.0 | +-02.0-[07]-- | +-03.0-[08]-- | \-04.0-[09]-- +-1f.0 +-1f.2 \-1f.3
|
该输出显示了一个 PCI 设备树的层次结构,其中:
- 每个节点代表一个 PCI 设备。
- 各级节点之间的连接表示父子设备关系,例如
-[0000:00]-+-00.0 表示设备 00.0 是根设备 0000:00 的子设备。
2. lspci -t -v 命令
lspci -t -v 命令在显示设备树结构的同时,还提供了更多的详细信息,通常包括每个 PCI 设备的型号、厂商、驱动信息等。这些详细信息有助于进一步了解设备的配置和属性。
示例输出:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| root@DMIT-tigyEICHBB:~# lspci -t -v -[0000:00]-+-00.0 Intel Corporation 82G33/G31/P35/P31 Express DRAM Controller +-01.0 Device 1234:1111 +-1a.0 Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #4 +-1a.1 Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #5 +-1a.2 Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #6 +-1a.7 Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #2 +-1b.0 Intel Corporation 82801I (ICH9 Family) HD Audio Controller +-1c.0-[01]-- +-1c.1-[02]-- +-1c.2-[03]-- +-1c.3-[04]-- +-1d.0 Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #1 +-1d.1 Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #2 +-1d.2 Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #3 +-1d.7 Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #1 +-1e.0-[05-09]--+-01.0-[06]--+-03.0 Red Hat, Inc. Virtio memory balloon | | +-04.0 Intel Corporation 6300ESB Watchdog Timer | | +-07.0 Intel Corporation 82801IR/IO/IH (ICH9R/DO/DH) 6 port SATA Controller [AHCI mode] | | +-08.0 Red Hat, Inc. Virtio console | | +-0a.0 Red Hat, Inc. Virtio block device | | \-12.0 Red Hat, Inc. Virtio network device | +-02.0-[07]-- | +-03.0-[08]-- | \-04.0-[09]-- +-1f.0 Intel Corporation 82801IB (ICH9) LPC Interface Controller +-1f.2 Intel Corporation 82801IR/IO/IH (ICH9R/DO/DH) 6 port SATA Controller [AHCI mode] \-1f.3 Intel Corporation 82801I (ICH9 Family) SMBus Controller
|
该输出除了显示设备的树状结构外,还提供了每个 PCI 设备的详细信息,如:
00.0 Intel Corporation 82G33/G31/P35/P31 Express DRAM Controller 表示该设备是 Intel 的 DRAM 控制器。
Device 1234:1111 表示该设备的 PCI 设备和供应商 ID。
Red Hat, Inc. Virtio memory balloon 则显示了虚拟化相关的设备信息。
lspci -t -v -s 06:03.0 这个命令在原有 lspci -t -v 的基础上,加入了 -s 选项,它会显示指定设备的信息。-s 后面跟的是设备的 PCI 地址。具体来说,06:03.0 是一个 PCI 设备的地址,表示该设备位于总线 06 上,设备编号为 03(即 06:03.0)。我们可以通过这个命令来获取该设备的详细信息。
3. lspci -t -v -s 命令
这个命令会先展示 PCI 树的层级结构,然后显示设备 的详细信息。具体扩展如下:
树形结构:
在 lspci -t 命令中,每个设备的层级关系是通过 PCI 总线地址来表示的。树形结构帮助我们了解设备在 PCI 总线上的层级和依赖关系。
-s 选项:
-s 选项用于筛选和指定某个设备。它后面跟的是 PCI 地址(如 06:03.0),表示我们只查看这个具体设备的详细信息。
设备详细信息:
在使用 -v 选项时,输出会显示设备的详细信息,例如厂商 ID、设备 ID、设备功能、资源分配等。
举个例子,假设我们运行命令:
输出可能类似于:
1 2
| -[0000:06]--+-03.0 Red Hat, Inc. Virtio network device +-03.1 Intel Corporation 82801IR/IO/IH (ICH9R/DO/DH) 6 port SATA Controller [AHCI mode]
|
-[0000:06] 表示 PCI 总线 06。
+-03.0 设备位于总线 06 上,编号为 03,设备是 Red Hat 的 Virtio 网络设备。
-03.1 表示另外一个设备,也是 PCI 总线 06 上的一个设备,设备编号为 03.1。
lspci -t -v -s <address> 命令可以让你查看 PCI 设备树的层级结构并获取指定设备的详细信息。
- 使用
-v 选项时,可以看到每个设备的详细属性,比如设备类型、资源分配、驱动程序等。
-s 选项用于指定设备地址,从而查看该设备的具体信息。