[Linux] Hướng dẫn xác định thông tin phần cứng vị trí PCI Bus trên Linux

Bài viết này sẽ giúp các bạn tìm ra được thành phần phần cứng nào đang hoạt động ở thông số vị trí PCI bus nào. Ví như mình, gặp một case trong thực tế khi giám sát server Dell thì kiểm tra log phần cứng từ OpenManage hoặc iDRAC Console thì gặp phải lỗi thông báo như sau :

Mon Feb 9 14:24:33 2012A bus fatal error was detected on a component at bus 0 device 1 function 0.
Mon Feb 9 14:24:33 2012A bus fatal error was detected on a component at bus 1 device 0 function 0.

hoặc output trên command line .

Severity : Critical
Date and Time : Mon Jul 9 14:24:33 2012
Description : A bus fatal error was detected on a component at bus 1 device 0 function 0.

Severity : Critical
Date and Time : Fri Jul 9 11:19:29 2012
Description : A bus fatal error was detected on a component at bus 1 device 0 function 0.

 
Lúc này thông tin mà mình muốn biết đó là lỗi ở trên xảy ra ở phần cứng thiết bị nào tương ứng thông số vị trí PCI bus nào. Vậy mình sẽ trình bày cách cơ bản để xác định thông tin phần cứng PCI Bus đó.

1. Sử dụng chương trình ‘lspci’

– Mình sẽ trình bày nội dung cơ bản mà chúng ta cần quan tâm khi sử dụng chương trình ‘lspci‘ trong trường hợp này.

1.1 Cấu trúc output ‘lspci’

– ‘lspci‘ sẽ in kết quả thống kê thông tin phần cứng PCI như sau :

<domain>:<bus>:<slot>.<func>

 
– Nếu bạn muốn lấy thông tin đầy đủ về địa chỉ PCI (bao gồm phần <domain>) thì hãy dùng option ‘-D‘. Mặc định ‘lspci’ in ra màn hình không có thông tin <domain>.

Ví dụ 1:

0000:01:00.0 VGA compatible controller: nVidia Corporation NV44 [Quadro NVS 285] (rev a1)

– Output ngắn ngọn và mặc định sẽ như sau :

<bus>:<slot>.<func>

 
Ví dụ 2:

01:00.0 VGA compatible controller: nVidia Corporation NV44 [Quadro NVS 285] (rev a1)

1.2 Cách sử dụng ‘lspci’

– Chúng ta thực hiện chạy ‘lspci‘ mà không cần bất cứ option hay tham số truyền vào làm gì , mặc định chương trình sẽ luôn liệt kê thông tin về PCI busphần cứng liên quan như ví dụ sau :

# lspci
00:00.0 Host bridge: Intel Corporation 5520 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:03.0 PCI bridge: Intel Corporation 5520/5500/X58 I/O Hub PCI Express Root Port 3 (rev 13)
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)

 
– Bây giờ chúng ta sẽ nhìn vào cái output trên và xem xét như sau :

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

 
– Thông tin chúng ta cần quan tâm đầu tiên là nhóm các số ở cột đầu tiên, địa chỉ bus : 01:00.1 . Chúng sẽ có ý nghĩa giá trị như sau :

01 → đây là địa chỉ BUS
00 → đây là địa chỉ DEVICE
0 → đây là địa chỉ FUNCTION

1.3 Sử dụng option ‘-s’

Nếu bây giờ bạn phân tích log và xác định được thông tin địa chỉ bus/device cần thiết, bạn chỉ muốn in thông tin liên quan đến phần cứng ở vị trí đó thôi thì hãy dùng option ‘-s‘.

Ví dụ : log đầu tiên trên bài viết

Mon Feb 9 14:24:33 2012A bus fatal error was detected on a component at bus 0 device 1 function 0.


– Phân tích:
BUS
 -> 0 -> 00
DEVICE -> 1 -> 01
FUNCTION -> 0

Kết luận : địa chỉ của phần cứng của chúng ta sẽ là -> 00:01.0

Chúng ta sẽ tìm thông tin về địa chỉ phần cứng PCI như trên mà thôi.

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

2. Kết luận

Bây giờ thì bạn đã biết cách để tìm ra thông tin về phần cứng liên quan đến vị trí BUS/DEVICE mà hệ thống phun log ra cho chúng ta. Qua đó cũng hiểu thêm về cách sử dụng chương trình lệnh ‘lspci‘.

Tham khảo:
– Chương trình lệnh ‘lspci’ : http://prefetch.net/articles/linuxpci.html

Previous article[HP] Fix lỗi hpacucli/hpssacli “Error No controllers detected”
Next article[Ebook] Giáo trình Tài liệu lập trình JAVA (3 modules) – TTTH ĐH KHTN – Download ebook
Bạn đang theo dõi website "https://cuongquach.com/" nơi lưu trữ những kiến thức tổng hợp và chia sẻ cá nhân về Quản Trị Hệ Thống Dịch Vụ & Mạng, được xây dựng lại dưới nền tảng kinh nghiệm của bản thân mình, Quách Chí Cường. Hy vọng bạn sẽ thích nơi này !