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可以查詢硬件使用的驅動信息


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM