1. 程式人生 > 實用技巧 >PCIe網絡卡檢視工具

PCIe網絡卡檢視工具

今天測試部彙報了一個裝置出現問題:” 8個1g電口 +8個1g光口+4個10g bp光口+4個10g非bp光口,其中有4個口沒有up起來,ifconfig看不到介面“

拿到這個問題我就在想:“怎樣確定是不是隻有4個網口沒有up?ifconfig只是一個檢視核心虛擬裝置,那麼物理網絡卡裝置呢? 怎樣確定這個4個口就是測試人員所說的10g非bp光口?

æÙ---所以為了弄清楚上述問題,需要確認什麼資訊,使用什麼工具作為輔助?----

物理拓撲:簡要情況就是網口插入PCIe板卡

所以首先要確認PCIe板卡是否被識別!

那麼有什麼工具幫助檢視呢?

linux的lspci命令可以幫助檢視

  • 執行lspci命令如下:lspci |grep Eth

03:00.0 Ethernet controller: Intel Corporation Device 1521 (rev 01)
03:00.1 Ethernet controller: Intel Corporation Device 1521 (rev 01)
03:00.2 Ethernet controller: Intel Corporation Device 1521 (rev 01)
03:00.3 Ethernet controller: Intel Corporation Device 1521 (rev 01)
04:00.0 Ethernet controller: Intel Corporation Device 1521
(rev 01) 04:00.1 Ethernet controller: Intel Corporation Device 1521 (rev 01) 04:00.2 Ethernet controller: Intel Corporation Device 1521 (rev 01) 04:00.3 Ethernet controller: Intel Corporation Device 1521 (rev 01) 07:00.0 Ethernet controller: Intel Corporation Device 1521 (rev 01) 07:00.1 Ethernet controller: Intel Corporation Device 1521
(rev 01) 07:00.2 Ethernet controller: Intel Corporation Device 1521 (rev 01) 07:00.3 Ethernet controller: Intel Corporation Device 1521 (rev 01) 08:00.0 Ethernet controller: Intel Corporation Device 1521 (rev 01) 08:00.1 Ethernet controller: Intel Corporation Device 1521 (rev 01) 08:00.2 Ethernet controller: Intel Corporation Device 1521 (rev 01) 08:00.3 Ethernet controller: Intel Corporation Device 1521 (rev 01) 0a:00.0 Ethernet controller: Intel Corporation Device 1533 (rev 03) 0b:00.0 Ethernet controller: Intel Corporation Device 1533 (rev 03) 0c:00.0 Ethernet controller: Intel Corporation Device 1572 (rev 02) 0c:00.1 Ethernet controller: Intel Corporation Device 1572 (rev 02) 0c:00.2 Ethernet controller: Intel Corporation Device 1572 (rev 02) 0c:00.3 Ethernet controller: Intel Corporation Device 1572 (rev 02)

可以看到PCIe數目不對,可知為PCIe板卡沒有被識別到

這次主要想說的問題是:

0c:00.3 Ethernet controller: Intel Corporation Device 1572 (rev 02)
這些數值是什麼意思??

以及lspci還能檢視那些資訊;除了lspci還有哪些工具可以幫助分析問題

先看lspci幫助:lspci - 列出所有PCI裝置

-v
    使得 lspci 以冗餘模式顯示所有裝置的詳細資訊。 
-vv
    使得 lspci 以過冗餘模式顯示更詳細的資訊 (事實上是 PCI 裝置能給出的所有東西)。這些資料的確切意義沒有在此手冊頁中解釋,如果你想知道更多,請參照 /usr/include/linux/pci.h 或者 PCI 規範。 
-n
    以數字形式顯示 PCI 生產廠商和裝置號,而不是在 PCI ID 資料庫中查詢它們。 
-x
    以十六進位制顯示 PCI 配置空間 (configuration space) 的前64個位元組映象 (標準頭部資訊)。此引數對除錯驅動和 lspci 本身很有用。 
-xxx
    以十六進位制顯示所有 PCI 配置空間的映象。此選項只有 root 可用,並且很多 PCI 裝置在你試圖讀取配置空間的未定義部分時會崩潰 (此操作可能不違反PCI標準,但是它至少非常愚蠢)。 
-b
    以匯流排為中心進行檢視。顯示所有 IRQ 號和記憶體地址,就象 PCI 總線上的卡看到的一樣,而不是核心看到的內容。 
-t
    以樹形方式顯示包含所有匯流排、橋、裝置和它們的連線的圖表。 
-s [[<bus>]:][<slot>][.[<func>]]
    僅顯示指定匯流排、插槽上的裝置或裝置上的功能塊資訊。裝置地址的任何部分都可以忽略,或以“*”代替 (意味著所有值)。所有數字都是十六進位制。例如:“0:”指的是在0號總線上的所有裝置;“0”指的是在任意總線上0號裝置的所有功能塊;“0.3”選擇 了所有總線上0號裝置的第三個功能塊;“.4”則是隻列出每一裝置上的第四個功能塊。 
-d [<vendor>]:[<device>]
    只顯示指定生產廠商和裝置 ID 的裝置。 這兩個 ID 都以十六進位制表示,可以忽略或者以“*”代替 (意味著所有值)。 
-i <file>
    使用 <file> 作為 PCI ID 資料庫而不是使用預設的 /usr/share/hwdata/pci.ids。 
-p <dir>
    使用 <dir> 作為包含 PCI 匯流排資訊的目錄而不是使用預設的目錄 /proc/bus/pci。 
-m
    以機器可讀的方式轉儲 PCI 裝置資料 (支援兩種模式:普通和冗餘),便於指令碼解析。 

常用問題&命令:

首先在x86系統中PCIe支援256個Bus,每條Bus支援32個Device,每個Device支援8個Function,所以PCIe裝置關鍵資訊組成為:DBDF(Domain,Bus,Deivce,Function)

PCIe的拓撲和Linux的PCIe ID

lspci –vt

所以使用lspci -vt 可以檢視PCIe拓撲;根據拓撲就可以看出,接入幾個板卡,每個板卡下面接入了多少裝置

dmidecode –t slot”命令檢視PCIE Slot的資訊

dmidecode,讀取DMI表中的資料來提取硬體資訊,可檢視bios,cpu,memory等資訊

結合/proc和/sys可以查詢硬體使用的驅動資訊