7 cách xác định thông tin thiết bị phần cứng PCI Bus trên Linux

1573
02-04-2018
7 cách xác định thông tin thiết bị phần cứng PCI Bus trên Linux

lspci là viết tắt của danh sách pci. Hãy nghĩ về lệnh này là "ls" "pci".

Lệnh này sẽ hiển thị thông tin về tất cả các PCI bus trong server.

Ngoài việc hiển thị thông tin về bus, nó cũng sẽ hiển thị thông tin về tất cả các thiết bị phần cứng được kết nối với PCI và PCIe bus.

Ví dụ, nó sẽ hiển thị thông tin về Ethernet cards, RAID controllers, Video cards...

Tiện ích lspci là một phần của pciutils package.

Nếu bạn không có pciutilis, hãy cài đặt nó trên hệ thống của bạn như sau đây. Bài viết này Bizfly Cloud sẽ hướng dẫn các bạn 7 cách xác định thông tin thiết bị phần cứng PCI Bus trên Linux.

# yum install pciutils

1. Sử dụng mặc định

Theo mặc định nó sẽ hiển thị tất cả các thông tin thiết bị như hình dưới đây. Trường đầu tiên là thông tin vị trí ở định dạng sau: [domain:] bus: device.function.

Trong ví dụ này, vì tất cả các tên miền là 0, lspci sẽ không hiển thị tên miền.

# lspci

00:00.0 Host bridge: Intel Corporation 5500 I/O Hub to ESI Port (rev 13)

00:01.0 PCI bridge: Intel Corporation 5520/5500/X58 I/O Hub PCI Express Root Port 1 (rev 13

00:09.0 PCI bridge: Intel Corporation 7500/5520/5500/X58 I/O Hub PCI Express Root Port 9 (rev 13)

00:14.0 PIC: Intel Corporation 7500/5520/5500/X58 I/O Hub System Management Registers (rev 13)

00:14.1 PIC: Intel Corporation 7500/5520/5500/X58 I/O Hub GPIO and Scratch Pad Registers (rev 13)

00:14.2 PIC: Intel Corporation 7500/5520/5500/X58 I/O Hub Control Status and RAS Registers (rev 13)

00:1a.0 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #4 (rev 02)

00:1c.0 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 1 (rev 02)

00:1d.0 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #1 (rev 02)

00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 92)

00:1f.0 ISA bridge: Intel Corporation 82801IB (ICH9) LPC Interface Controller (rev 02)

00:1f.2 IDE interface: Intel Corporation 82801IB (ICH9) 2 port SATA Controller [IDE mode] (rev 02)

01:00.0 Ethernet controller: Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet (rev 20)

01:00.1 Ethernet controller: Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet (rev 20)

03:00.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID SAS 2108 [Liberator] (rev 05)

06:03.0 VGA compatible controller: Matrox Electronics Systems Ltd. MGA G200eW WPCM450 (rev 0a)

Lưu ý: Trong tất cả các ví dụ bên dưới, chúng tôi sẽ chỉ hiển thị một phần đầu ra bằng cách chọn vài thiết bị từ danh sách ở trên.

2. Dump PCI Info ở định dạng khác

Nếu bạn muốn chuyển output của lệnh lspci vào một shell script, bạn có thể muốn sử dụng tùy chọn -m (hoặc tùy chọn -mm) như bên dưới.

Tùy chọn này cũng hữu ích khi bạn muốn xem thông tin subsystem. Ví dụ, đối với RAID controller, output mặc định chỉ rằng đang sử dụng LSI Logic RAID controller. Tuy nhiên, output sau đây hiển thị subsystem, đó là DELL PERC H700 tích hợp hệ thống DELL PERC H700 controller.

# lspci -m

00:00.0 "Host bridge" "Intel Corporation" "5500 I/O Hub to ESI Port" -r13 "Dell" "PowerEdge R610 I/O Hub to ESI Port" 

00:09.0 "PCI bridge" "Intel Corporation" "7500/5520/5500/X58 I/O Hub PCI Express Root Port 9" -r13 "" "" 

00:14.0 "PIC" "Intel Corporation" "7500/5520/5500/X58 I/O Hub System Management Registers" -r13 "" "" 

00:1a.0 "USB controller" "Intel Corporation" "82801I (ICH9 Family) USB UHCI Controller #4" -r02 "Dell" "PowerEdge R610 USB UHCI Controller" 

00:1f.0 "ISA bridge" "Intel Corporation" "82801IB (ICH9) LPC Interface Controller" -r02 "Dell" "PowerEdge R610 82801IB (ICH9) LPC Interface Controller" 

00:1f.2 "IDE interface" "Intel Corporation" "82801IB (ICH9) 2 port SATA Controller [IDE mode]" -r02 -p8f "Dell" "PowerEdge R610 SATA IDE Controller" 

01:00.0 "Ethernet controller" "Broadcom Corporation" "NetXtreme II BCM5709 Gigabit Ethernet" -r20 "Dell" "PowerEdge R610 BCM5709 Gigabit Ethernet" 

03:00.0 "RAID bus controller" "LSI Logic / Symbios Logic" "MegaRAID SAS 2108 [Liberator]" -r05 "Dell" "PERC H700 Integrated" 

06:03.0 "VGA compatible controller" "Matrox Electronics Systems Ltd." "MGA G200eW WPCM450" -r0a "Dell" "PowerEdge R610 MGA G200eW WPCM450"

3. Output trong định dạng Tree 

Tùy chọn -t sẽ hiển thị output ở định dạng tree với thông tin về bus và cách các thiết bị được kết nối với các bus đó như hình dưới đây. Output sẽ chỉ sử dụng các số id.

# lspci -t

-[0000:00]- -00.0

                  -01.0-[01]-- -00.0 

                  |                   \-00.1

                  -03.0-[02]-- -00.0

                  |                   \-00.1

                  -07.0-[04]--

                  -09.0-[05]--

                  -14.0

                  -14.1

                  -1c.0-[03]----00.0

                  -1d.0 

                  -1e.0-[06]----03.0 

                  -1f.0

4. Thông tin thiết bị chi tiết

Nếu bạn muốn xem chi tiết của một thiết bị cụ thể, hãy sử dụng -v để biết thêm thông tin. Điều này sẽ hiển thị thông tin về tất cả các thiết bị. Đầu ra của lệnh này sẽ rất dài và bạn cần phải cuộn xuống để xem phần thích hợp.

Đối với level bổ sung cho độ dài, bạn có thể sử dụng -vv hoặc -vvv.

Trong ví dụ sau, tôi đã yêu cầu thông tin của RAID controller device.

# lspci -v

03:00.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID SAS 2108 [Liberator] (rev 05)

             Subsystem: Dell PERC H700 Integrated

             Flags: bus master, fast devsel, latency 0, IRQ 16

             I/O ports at fc00 [size=256] 

             Memory at df1bc000 (64-bit, non-prefetchable) [size=16K] 

             Memory at df1c0000 (64-bit, non-prefetchable) [size=256K]

             Expansion ROM at df100000 [disabled] [size=256K] 

             Capabilities: [50] Power Management version 3 

             Capabilities: [68] Express Endpoint, MSI 00 

             Capabilities: [d0] Vital Product Data 

             Capabilities: [a8] MSI: Enable- Count=1/1 Maskable- 64bit  

             Capabilities: [c0] MSI-X: Enable Count=15 Masked- 

             Capabilities: [100] Advanced Error Reporting 

             Capabilities: [138] Power Budgeting 

             Kernel driver in use: megaraid_sas 

             Kernel modules: megaraid_sas

5. Hiển thị mã thiết bị trong đầu ra

Nếu bạn muốn hiển thị mã nhà cung cấp PCI và mã thiết bị chỉ là các con số, hãy sử dụng tùy chọn -n. Điều này sẽ không tra cứu các tập tin PCI để có được các giá trị tương ứng cho các con số.

# lspci -n 

01:00.1 0200: 14e4:1639 (rev 20) 

02:00.0 0200: 14e4:1639 (rev 20) 

02:00.1 0200: 14e4:1639 (rev 20) 

03:00.0 0104: 1000:0079 (rev 05) 

06:03.0 0300: 102b:0532 (rev 0a)

Nếu bạn muốn hiển thị cả mô tả và số, hãy sử dụng tùy chọn -nn như được hiển thị bên dưới.

# lspci -nn 

01:00.0 Ethernet controller [0200]: Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet [14e4:1639] (rev 20) 

03:00.0 RAID bus controller [0104]: LSI Logic / Symbios Logic MegaRAID SAS 2108 [Liberator] [1000:0079] (rev 05) 

06:03.0 VGA compatible controller [0300]: Matrox Electronics Systems Ltd. MGA G200eW WPCM450 [102b:0532] (rev 0a) ..

6. Tra cứu một thiết bị cụ thể

Khi bạn biết slot number trong domain: bus:slot.func format, bạn có thể truy vấn một thiết bị cụ thể như được hiển thị bên dưới. Trong ví dụ sau, chúng tôi đã không chỉ định domain number, vì nó là 0, giá trị này có thể bị bỏ qua.

# lspci -s 03:00.0 

03:00.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID SAS 2108 [Liberator] (rev 05)

Khi bạn biết device number của nhà cung cấp: device format, bạn có thể truy vấn một thiết bị cụ thể như được hiển thị bên dưới.

# lspci -d 1000:0079 

03:00.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID SAS 2108 [Liberator] (rev 05)

Nếu bạn chỉ biết id nhà cung cấp hoặc id thiết bị, bạn có thể bỏ qua id khác. Ví dụ, cả hai lệnh sau sẽ trả về cùng một đầu ra như trên.

lspci -d :0079 

lspci -d 1000:

7. Hiển thị Kernel Drivers

Điều này rất hữu ích khi bạn muốn biết tên của kernel module sẽ xử lý các hoạt động của một thiết bị cụ thể. Xin lưu ý rằng tùy chọn này sẽ chỉ hoạt động trên phiên bản Kernel 2.6 trở lên.

# lspci -k

00:1f.2 IDE interface: Intel Corporation 82801IB (ICH9) 2 port SATA Controller [IDE mode] (rev 02)

            Subsystem: Dell PowerEdge R610 SATA IDE Controller

            Kernel driver in use: ata_piix 

            Kernel modules: ata_generic, pata_acpi, ata_piix

02:00.0 Ethernet controller: Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet (rev 20)

            Subsystem: Dell PowerEdge R610 BCM5709 Gigabit Ethernet

            Kernel driver in use: bnx2 

            Kernel modules: bnx2

03:00.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID SAS 2108 [Liberator] (rev 05)

            Subsystem: Dell PERC H700 Integrated 

            Kernel driver in use: megaraid_sas 

            Kernel modules: megaraid_sas

Dịch từ: thegeekstuff.com/2014/04/lspci-examples/

>> Có thể bạn quan tâm: Hướng dẫn sửa lỗi "Hpacucli: Error: No controllers detected"

TAGS: linux
SHARE