PCIe網絡卡檢視工具
阿新 • • 發佈:2020-11-26
今天測試部彙報了一個裝置出現問題:” 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可以查詢硬體使用的驅動資訊