Lệnh lspci trong Linux

Giới thiệu

Trong lab này, chúng ta sẽ khám phá lệnh lspci của Linux, một công cụ mạnh mẽ được sử dụng để hiển thị thông tin về các bus Peripheral Component Interconnect (PCI) và các thiết bị được kết nối với hệ thống. Lab này sẽ bao gồm mục đích của lệnh lspci, các tùy chọn và flags khác nhau của nó, và cách xác định các thiết bị PCI trên hệ thống. Thông tin này có thể hữu ích cho việc khắc phục sự cố phần cứng, xác định các thành phần của hệ thống và hiểu cấu hình phần cứng tổng thể.

Lab sẽ bắt đầu bằng cách chạy lệnh lspci cơ bản để hiển thị các thiết bị PCI được phát hiện trên hệ thống, bao gồm tên thiết bị, thông tin nhà cung cấp và các chi tiết liên quan khác. Sau đó, chúng ta sẽ khám phá các tùy chọn và flags khác nhau có sẵn với lệnh lspci để thu được thông tin cụ thể hơn về các thiết bị PCI.

Tìm hiểu Mục đích của Lệnh lspci

Trong bước này, chúng ta sẽ khám phá mục đích của lệnh lspci trong Linux. Lệnh lspci là một công cụ mạnh mẽ được sử dụng để hiển thị thông tin về các bus Peripheral Component Interconnect (PCI) và các thiết bị được kết nối với hệ thống.

Lệnh lspci cung cấp thông tin chi tiết về các thiết bị PCI được cài đặt trên hệ thống của bạn, bao gồm tên thiết bị, thông tin nhà cung cấp và các chi tiết liên quan khác. Thông tin này có thể hữu ích cho việc khắc phục sự cố phần cứng, xác định các thành phần của hệ thống và hiểu cấu hình phần cứng tổng thể.

Hãy bắt đầu bằng cách chạy lệnh lspci cơ bản:

sudo lspci

Ví dụ đầu ra:

00:00.0 Host bridge: Intel Corporation 8th Gen Core Processor Host Bridge/DRAM Registers (rev 07)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (rev 07)
00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 630 (rev 02)
00:14.0 USB controller: Intel Corporation Cannon Lake PCH USB 3.1 xHCI Host Controller (rev 10)
00:14.2 RAM memory: Intel Corporation Cannon Lake PCH Shared SRAM (rev 10)
00:16.0 Communication controller: Intel Corporation Cannon Lake PCH HECI Controller (rev 10)
00:17.0 SATA controller: Intel Corporation Cannon Lake PCH SATA AHCI Controller (rev 10)
00:1b.0 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port #21 (rev f0)
00:1c.0 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port #1 (rev f0)
00:1d.0 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port #13 (rev f0)

Đầu ra này hiển thị các thiết bị PCI khác nhau được phát hiện trên hệ thống, bao gồm host bridge, PCI bridges, VGA controller, USB controller, v.v. Mỗi dòng đại diện cho một thiết bị PCI, với thông tin về ID thiết bị, nhà cung cấp và các chi tiết khác.

Lệnh lspci cũng có thể được sử dụng với các tùy chọn và flags khác nhau để hiển thị thông tin cụ thể hơn về các thiết bị PCI. Chúng ta sẽ khám phá chúng trong bước tiếp theo.

Khám phá Các Tùy chọn và Flags của Lệnh lspci

Trong bước này, chúng ta sẽ khám phá các tùy chọn và flags khác nhau có sẵn với lệnh lspci để truy xuất thông tin chi tiết hơn về các thiết bị PCI trên hệ thống của bạn.

Hãy bắt đầu bằng cách kiểm tra các tùy chọn có sẵn cho lệnh lspci:

man lspci

Thao tác này sẽ hiển thị trang hướng dẫn sử dụng cho lệnh lspci, liệt kê tất cả các tùy chọn có sẵn và mô tả của chúng.

Một số tùy chọn lspci thường được sử dụng bao gồm:

  • -v: Hiển thị đầu ra chi tiết, cung cấp thông tin chi tiết hơn về từng thiết bị PCI.
  • -vv: Hiển thị đầu ra rất chi tiết, bao gồm các chi tiết kỹ thuật bổ sung.
  • -s <slot>: Chỉ hiển thị thông tin cho thiết bị PCI tại slot được chỉ định.
  • -d <vendor>:<device>: Chỉ hiển thị thông tin cho các thiết bị từ nhà cung cấp và/hoặc ID thiết bị được chỉ định.
  • -n: Hiển thị ID thiết bị và nhà cung cấp ở định dạng số thay vì tra cứu tên.
  • -nn: Hiển thị ID thiết bị và nhà cung cấp ở định dạng số và cũng bao gồm tra cứu tên.

Hãy thử một số tùy chọn này:

sudo lspci -v

Ví dụ đầu ra:

00:00.0 Host bridge: Intel Corporation 8th Gen Core Processor Host Bridge/DRAM Registers (rev 07)
    Subsystem: Lenovo 8th Gen Core Processor Host Bridge/DRAM Registers
    Flags: bus master, fast devsel, latency 0
    Capabilities: <access denied>
    Kernel driver in use: skl_uncore

00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (rev 07)
    Flags: bus master, fast devsel, latency 0, IRQ 122
    Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
    I/O behind bridge: 0000c000-0000cfff
    Memory behind bridge: f6000000-f60fffff
    Prefetchable memory behind bridge: 00000000e0000000-00000000e01fffff
    Capabilities: <access denied>
    Kernel driver in use: pcieport

Tùy chọn -v cung cấp thông tin chi tiết hơn về từng thiết bị PCI, bao gồm tên thiết bị, nhà cung cấp, khả năng và driver kernel đang được sử dụng.

Bạn cũng có thể kết hợp các tùy chọn để có được thông tin cụ thể hơn:

sudo lspci -nn

Thao tác này sẽ hiển thị ID thiết bị PCI và nhà cung cấp ở định dạng số, cùng với tra cứu tên.

sudo lspci -s 00:02.0 -v

Thao tác này sẽ hiển thị thông tin chi tiết cho thiết bị PCI tại slot 00:02.0.

Khám phá các tùy chọn và flags lspci khác nhau để hiểu cách bạn có thể truy xuất thông tin cụ thể bạn cần về các thiết bị PCI trên hệ thống của mình.

Xác định Thiết bị PCI trên Hệ thống

Trong bước cuối cùng này, chúng ta sẽ tìm hiểu cách sử dụng lệnh lspci để xác định các thiết bị PCI trên hệ thống của bạn và hiểu thông tin được cung cấp.

Hãy bắt đầu bằng cách chạy lại lệnh lspci cơ bản:

sudo lspci

Ví dụ đầu ra:

00:00.0 Host bridge: Intel Corporation 8th Gen Core Processor Host Bridge/DRAM Registers (rev 07)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (rev 07)
00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 630 (rev 02)
00:14.0 USB controller: Intel Corporation Cannon Lake PCH USB 3.1 xHCI Host Controller (rev 10)
00:14.2 RAM memory: Intel Corporation Cannon Lake PCH Shared SRAM (rev 10)
00:16.0 Communication controller: Intel Corporation Cannon Lake PCH HECI Controller (rev 10)
00:17.0 SATA controller: Intel Corporation Cannon Lake PCH SATA AHCI Controller (rev 10)
00:1b.0 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port #21 (rev f0)
00:1c.0 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port #1 (rev f0)
00:1d.0 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port #13 (rev f0)

Đầu ra này hiển thị các thiết bị PCI khác nhau được phát hiện trên hệ thống, bao gồm host bridge, PCI bridges, VGA controller, USB controller, v.v. Mỗi dòng đại diện cho một thiết bị PCI, với thông tin về ID thiết bị, nhà cung cấp và các chi tiết khác.

Để có được thông tin chi tiết hơn về một thiết bị PCI cụ thể, bạn có thể sử dụng lệnh lspci -v:

sudo lspci -v -s 00:02.0

Thao tác này sẽ hiển thị thông tin chi tiết cho thiết bị PCI tại slot 00:02.0, trong trường hợp này là VGA controller.

Bạn cũng có thể sử dụng lệnh lspci -nn để xem ID thiết bị và nhà cung cấp ở dạng số, có thể hữu ích cho việc xác định các thiết bị cụ thể:

sudo lspci -nn

Ví dụ đầu ra:

00:00.0 Host bridge [0600]: Intel Corporation 8th Gen Core Processor Host Bridge/DRAM Registers [8086:3e30] (rev 07)
00:01.0 PCI bridge [0604]: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller [8086:1901] (rev 07)
00:02.0 VGA compatible controller [0300]: Intel Corporation UHD Graphics 630 [8086:3e9b] (rev 02)
00:14.0 USB controller [0c03]: Intel Corporation Cannon Lake PCH USB 3.1 xHCI Host Controller [8086:a36d] (rev 10)
00:14.2 RAM memory [0500]: Intel Corporation Cannon Lake PCH Shared SRAM [8086:a36f] (rev 10)
00:16.0 Communication controller [0780]: Intel Corporation Cannon Lake PCH HECI Controller [8086:a360] (rev 10)
00:17.0 SATA controller [0106]: Intel Corporation Cannon Lake PCH SATA AHCI Controller [8086:a353] (rev 10)
00:1b.0 PCI bridge [0604]: Intel Corporation Cannon Lake PCH PCI Express Root Port #21 [8086:a344] (rev f0)
00:1c.0 PCI bridge [0604]: Intel Corporation Cannon Lake PCH PCI Express Root Port #1 [8086:a338] (rev f0)
00:1d.0 PCI bridge [0604]: Intel Corporation Cannon Lake PCH PCI Express Root Port #13 [8086:a33c] (rev f0)

Đầu ra này hiển thị ID thiết bị PCI ở định dạng số, có thể hữu ích cho việc xác định các thiết bị cụ thể hoặc tra cứu thông số kỹ thuật của chúng.

Bằng cách sử dụng lệnh lspci với các tùy chọn khác nhau, bạn có thể thu thập thông tin chi tiết về các thiết bị PCI trên hệ thống của mình, thông tin này có thể có giá trị để khắc phục sự cố, xác định phần cứng và hiểu cấu hình hệ thống tổng thể.

Tóm tắt

Trong lab này, chúng ta đã khám phá mục đích và cách sử dụng lệnh lspci trong Linux. Lệnh lspci là một công cụ mạnh mẽ cung cấp thông tin chi tiết về các bus Peripheral Component Interconnect (PCI) và các thiết bị được kết nối với hệ thống. Chúng ta đã học cách sử dụng lệnh lspci cơ bản để hiển thị các thiết bị PCI được cài đặt trên hệ thống, bao gồm tên thiết bị, thông tin nhà cung cấp và các chi tiết liên quan khác. Thông tin này có thể hữu ích cho việc khắc phục sự cố phần cứng, xác định các thành phần của hệ thống và hiểu cấu hình phần cứng tổng thể. Chúng ta cũng đã thảo luận về cách lệnh lspci có thể được sử dụng với các tùy chọn và flags khác nhau để hiển thị thông tin cụ thể hơn về các thiết bị PCI.

400+ câu lệnh phổ biến trong Linux