有的時候,開發時需要用到裝置的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。在決定...