Linux下獲取裝置pci ID的方法

2021-06-28 20:30:42 字數 1277 閱讀 1613

有的時候,開發時需要用到裝置的pci id,如用dpdk來繫結某個網絡卡,需要用網絡卡的pci id。下面有一些方法是可以獲取pci id的。

1.使用lspci命令。

02:00.0 usb controller: intel corporation 82371ab/eb/mb piix4 usb

02:01.0 ethernet controller: intel corporation 82545em gigabit ethernet controller (copper) (rev 01)

02:02.0 ********** audio controller: ensoniq es1371 / creative labs ct2518 [audiopci-97] (rev 02)

02:03.0 usb controller: vmware usb2 ehci controller

第一列就是pci id,後面就是裝置名和**商名稱。可以看到乙太網卡的pci id是02:01.0

但有時候在一些嵌入式的系統裡,lspci命令並不是由pciutils提供,而是由其它軟體包提供,或者是修改過,輸出結果可能如下:

上面結果和centos是同乙個虛擬機器,只是用乙個嵌入式核心+ramfs啟動的, 命令是lspci -vmm

遇到這種情況,只能上 查詢相應的vendor和device,再一一比對。

如02:01.0的是8086和100f

0x100f

intel(r) pro/1000 mt network connection

0x8086

intel corporation

2.用dmesg命令。

e1000 0000:02:01.0: pci int a -> gsi 19 (level, low) -> irq 19

e1000 0000:02:01.0: setting latency timer to 64

e1000 0000:02:01.0: eth0: (pci:66mhz:32-bit) 00:0c:29:62:d0:69

e1000 0000:02:01.0: eth0: intel(r) pro/1000 network connection

也可以看到乙太網卡的pci id是02:01.0

這種方法無論是在通用的發行版或是定製的嵌入式系統,都適用。

Linux裝置模型(下)

核心中usb子系統的結構 我們已經知道了usb子系統的 都位於drivers usb目錄下面,也認識了乙個很重要的目錄 core子目錄。現在,我們再來看乙個很重要的模組 usbcore。你可以使用 lsmod 命令看一下,在顯示的結果裡能夠找到有乙個模組叫做usbcore。找到了usbcore那一行...

Linux下USB裝置檢測

usb裝置檢測也是通過 proc目錄下的usb檔案系統進行的。為了使乙個usb裝置能夠正常工作,必須要現在系統中插入usb橋接器模組。在檢測開始時,一般要先檢測是否存在 proc bus usb目錄,若不存在則嘗試插入usb橋接模組。現在一般的usb橋接器模組有兩種型別,uhci和ohci。在決定插...

Linux下USB裝置檢測

usb裝置檢測也是通過 proc目錄下的usb檔案系統進行的。為了使乙個usb裝置能夠 正常工作,必須要現在系統中插入usb橋接器模組。在檢測開始時,一般要先檢測是否存在 proc bus usb目錄,若不存在則嘗試插入usb橋接模組。現在一般的usb橋接器模組有兩種型別,uhci和ohci。在決定...