分类
devops

lspci

PCI 地址的数字系统

lspci -D | grep -i "network\|ethernet"
0000:00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (7) I219-V (rev 10)
0000:03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8125 2.5GbE Controller (rev 04)

完整的 PCI 地址格式
标准 PCI 地址格式是:[domain]:[bus]:[slot].[function]

Domain:通常是 0000(大多数系统只有一个 domain)
Bus:00 到 FF
Slot:00 到 1F
Function:0 到 7
字段 范围 进制 说明
Domain 0000 – FFFF 16进制 通常只有 0000
Bus 00 – FF 16进制 最多 256 条总线(0–255)
Slot 00 – 1F 16进制 最多 32 个设备(0–31)
Function 0 – 7 16进制 最多 8 个功能(0–7)

具体例子

你的网卡地址:0000:03:00.0

部分 值 10进制 说明
Domain 0000 0 第 1 个 domain
Bus 03 3 第 4 条总线
Slot 00 0 第 1 个槽位
Function 0 0 第 1 个功能

为什么用 16进制

  • PCI 规范使用 16进制,因为它能紧凑地表示大范围地址
  • 256 条总线 = 00 – FF(16进制)= 0–255(10进制)
  • 32 个槽位 = 00 – 1F(16进制)= 0–31(10进制)

当你看到这样的地址:

0000:1A:0B.7

转换成 10 进制理解:
– Domain: 0000 = 0
– Bus: 1A = 26
– Slot: 0B = 11
– Function: 7 = 7

这在 sysfs 中的路径也会用 16 进制:

/sys/devices/pci0000:00/0000:00:1f.6/
/sys/devices/pci0000:00/0000:00:1c.7/0000:03:00.0/

所有 PCI 相关的工具(lspci、ethtool、lsof 等)都使用 16 进制表示 PCI 地址。