服务器之家:专注于服务器技术及软件下载分享
分类导航

Linux|Centos|Ubuntu|系统进程|Fedora|注册表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服务器之家 - 服务器系统 - Linux - 在 Linux 上使用 lspci 命令查看硬件情况

在 Linux 上使用 lspci 命令查看硬件情况

2021-09-18 01:24Linux中国LCTT unigeorge 译 Linux

当你在个人电脑或服务器上运行 Linux 时,有时需要识别该系统中的硬件。lspci 命令用于显示连接到 PCI 总线的所有设备,从而满足上述需求。

当你在个人电脑或服务器上运行 Linux 时,有时需要识别该系统中的硬件。lspci 命令用于显示连接到 PCI 总线的所有设备,从而满足上述需求。该命令由 pciutils 包提供,可用于各种基于 Linux 和 BSD 的操作系统。

在 Linux 上使用 lspci 命令查看硬件情况

基础用法

由于访问权限,普通用户运行 lspci 时显示的信息可能会受限,因此可以使用 sudo 运行命令,系统会给出完整的信息图。

直接运行 lspci 命令会列出 PCI 总线及其连接的设备,下图是在我的媒体中心 PC 上的演示样例。图中是一个基于 AMD Phenom CPU 的系统,所以它有一个 AMD 芯片组,以及 Atheros 无线适配器和 Nvidia 显卡。所有硬件设备都列出了详细信息,例如供应商、名称和型号等:

  1. $sudolspci
  2. 00:00.0Hostbridge:AdvancedMicroDevices,Inc.[AMD]RS880HostBridge
  3. 00:02.0PCIbridge:AdvancedMicroDevices,Inc.[AMD]RS780PCItoPCIbridge(extgfxport0)
  4. 00:04.0PCIbridge:AdvancedMicroDevices,Inc.[AMD]RS780/RS880PCItoPCIbridge(PCIEport0)
  5. 00:05.0PCIbridge:AdvancedMicroDevices,Inc.[AMD]RS780/RS880PCItoPCIbridge(PCIEport1)
  6. 00:11.0SATAcontroller:AdvancedMicroDevices,Inc.[AMD/ATI]SB7x0/SB8x0/SB9x0SATAController[AHCImode]
  7. 00:12.0USBcontroller:AdvancedMicroDevices,Inc.[AMD/ATI]SB7x0/SB8x0/SB9x0USBOHCI0Controller
  8. 00:12.1USBcontroller:AdvancedMicroDevices,Inc.[AMD/ATI]SB7x0USBOHCI1Controller
  9. 00:12.2USBcontroller:AdvancedMicroDevices,Inc.[AMD/ATI]SB7x0/SB8x0/SB9x0USBEHCIController
  10. 00:13.0USBcontroller:AdvancedMicroDevices,Inc.[AMD/ATI]SB7x0/SB8x0/SB9x0USBOHCI0Controller
  11. 00:13.1USBcontroller:AdvancedMicroDevices,Inc.[AMD/ATI]SB7x0USBOHCI1Controller
  12. 00:13.2USBcontroller:AdvancedMicroDevices,Inc.[AMD/ATI]SB7x0/SB8x0/SB9x0USBEHCIController
  13. 00:14.0SMBus:AdvancedMicroDevices,Inc.[AMD/ATI]SBx00SMBusController(rev3c)
  14. 00:14.1IDEinterface:AdvancedMicroDevices,Inc.[AMD/ATI]SB7x0/SB8x0/SB9x0IDEController
  15. 00:14.3ISAbridge:AdvancedMicroDevices,Inc.[AMD/ATI]SB7x0/SB8x0/SB9x0LPChostcontroller
  16. 00:14.4PCIbridge:AdvancedMicroDevices,Inc.[AMD/ATI]SBx00PCItoPCIBridge
  17. 00:14.5USBcontroller:AdvancedMicroDevices,Inc.[AMD/ATI]SB7x0/SB8x0/SB9x0USBOHCI2Controller
  18. 00:18.0Hostbridge:AdvancedMicroDevices,Inc.[AMD]Family10hProcessorHyperTransportConfiguration
  19. 00:18.1Hostbridge:AdvancedMicroDevices,Inc.[AMD]Family10hProcessorAddressMap
  20. 00:18.2Hostbridge:AdvancedMicroDevices,Inc.[AMD]Family10hProcessorDRAMController
  21. 00:18.3Hostbridge:AdvancedMicroDevices,Inc.[AMD]Family10hProcessorMiscellaneousControl
  22. 00:18.4Hostbridge:AdvancedMicroDevices,Inc.[AMD]Family10hProcessorLinkControl
  23. 01:00.0VGAcompatiblecontroller:NVIDIACorporationGK107[GeForceGTX650](reva1)
  24. 01:00.1Audiodevice:NVIDIACorporationGK107HDMIAudioController(reva1)
  25. 02:00.0Networkcontroller:QualcommAtherosAR9287WirelessNetworkAdapter(PCI-Express)(rev01)

详细输出

添加 -v 选项会显示每个设备的详细信息,你可以使用 -vv 或 -vvv 来获取更多的设备细节。在 -v 级别,lspci 会显示所有设备的各种子系统和内存地址、中断请求(IRQ)编号和一些其他功能信息。输出信息会非常长。在你的系统上试一试吧。

使用 grep 过滤搜索

你可能会需要缩小搜索范围。例如,RPM Fusion 网站有安装 Nvidia 图形驱动程序的说明,里面就首先使用了 grep 命令来定位显卡信息。下面是我在笔记本电脑上得到的输出:

  1. $sudolspci|grep-eVGA
  2. 00:02.0VGAcompatiblecontroller:IntelCorporationUHDGraphics620(rev07)
  3. $sudolspci|grep-e3D
  4. 01:00.03Dcontroller:NVIDIACorporationGM108M[GeForceMX130](reva2)

下面(LCTT 译注:原文为 “above”,应为作者笔误)的 grep 命令在我的媒体中心 PC 上定位了一个 VGA 设备,但没有显示 3D 设备。

  1. $sudolspci|grep-eVGA
  2. 01:00.0VGAcompatiblecontroller:NVIDIACorporationGK107[GeForceGTX650](reva1)
  3. $sudolspci|grep-e3D
  4. $

按供应商 ID 搜索

还有另一种无需 grep 的方法可以使用。假设我想确认一下此计算机是否有其他的 Nvidia 设备,在此之前我们还需要一些额外信息,使用 -nn 选项显示的供应商和设备 ID 号。在我的媒体中心 PC 上,此选项会给出我的 VGA 卡、供应商 ID 和设备 ID:

  1. $sudolspci-nn|grep-eVGA
  2. 01:00.0VGAcompatiblecontroller[0300]:NVIDIACorporationGK107[GeForceGTX650][10de:0fc6](reva1)

设备名称后的方括号内有用冒号分隔的数字,即供应商和设备 ID。输出表明 Nvidia Corporation 制造的设备的供应商 ID 为 10de。

-d 选项用于指定供应商、设备或类 ID 的所有设备。以下是我系统中的所有 Nvidia 设备(保留 -nn 以解析供应商 ID):

  1. $sudolspci-nn-d10de:
  2. 01:00.0VGAcompatiblecontroller[0300]:NVIDIACorporationGK107[GeForceGTX650][10de:0fc6](reva1)
  3. 01:00.1Audiodevice[0403]:NVIDIACorporationGK107HDMIAudioController[10de:0e1b](reva1)

从输出中可以看到,除了显卡之外,我还有一个 Nvidia 音频设备。实际上它们都属于同一张 Nvidia GeForce GTX 650 卡,但这仍然是一个很好的示例。

内核模块

结合 PCI 硬件设备,lspci 可以使用 -k 选项显示内核加载了哪些驱动程序模块。我将此选项添加到我的 lspci 命令来查看有关我的 Nvidia 设备的信息。

  1. $sudolspci-nn-k-d10de:
  2. 01:00.0VGAcompatiblecontroller[0300]:NVIDIACorporationGK107[GeForceGTX650][10de:0fc6](reva1)
  3. Subsystem:eVga.com.Corp.GK107[GeForceGTX650][3842:2650]
  4. Kerneldriverinuse:nvidia
  5. Kernelmodules:nvidiafb,nouveau,nvidia_drm,nvidia
  6. 01:00.1Audiodevice[0403]:NVIDIACorporationGK107HDMIAudioController[10de:0e1b](reva1)
  7. Subsystem:eVga.com.Corp.GK107HDMIAudioController[3842:2650]
  8. Kerneldriverinuse:snd_hda_intel
  9. Kernelmodules:snd_hda_intel

可以看到额外显示了两行:正在使用的内核驱动程序Kernel driver in use 和 内核模块Kernel modules,其中后者列出了可用于支持该设备的模块。

同步最新状态

新设备和供应商总是在不断迭代。如果看到显示为 unknown 的设备,说明你的 PCI 设备 ID 数据库可能已过时。有两种方法可以检查更新。-Q 选项会使用 DNS 查询中央数据库,当然,这需要联网。

  1. $sudolspci-Q

你还可以通过运行命令 update-pciids 来更新本地 PCI ID 数据库。

  1. $sudoupdate-pciids
  2. Downloadeddailysnapshotdated2021-08-2203:15:01

了解有关你的硬件的更多信息

当然,lspci 只是 Linux 中用于查询系统硬件和软件的诸多命令之一。读者可以在阅读关于 USB 设备的文章,了解有关 Linux 硬件的更多信息:使用此 USB ID 存储库识别 Linux 上的更多设备。

原文地址:https://linux.cn/article-13793-1.html

延伸 · 阅读

精彩推荐
  • LinuxLinux中环境变量配置的步骤详解

    Linux中环境变量配置的步骤详解

    Linux中环境变量包括系统级和用户级,系统级的环境变量是每个登录到系统的用户都要读取的系统变量,而用户级的环境变量则是该用户使用系统时加载的...

    Myths7882022-02-10
  • Linux详解Linux系统下PXE服务器的部署过程

    详解Linux系统下PXE服务器的部署过程

    这篇文章主要介绍了Linux系统下PXE服务器的部署过程,包括对PXE的API架构作了一个基本的简介,需要的朋友可以参考下...

    运维之道9812019-07-04
  • Linuxlinux中rmdir命令使用详解(删除空目录)

    linux中rmdir命令使用详解(删除空目录)

    今天学习一下linux中命令: rmdir命令。rmdir是常用的命令,该命令的功能是删除空目录,一个目录被删除之前必须是空的 ...

    linux命令大全5372019-11-19
  • Linux手把手教您在 Linux 上使用 GPG 加解密文件

    手把手教您在 Linux 上使用 GPG 加解密文件

    在本教程中,我将告诉你如何用 GPG 加密和解密文件。这是一个简单的教程,你可以在你的 Linux 系统上尝试所有的练习。这将帮助你练习 GPG 命令,并在你...

    Linux中国6962021-12-15
  • Linux确保Linux系统安全的前提条件 漏洞防护

    确保Linux系统安全的前提条件 漏洞防护

    Linux 作为开放式的操作系统受到很多程序员的喜爱,很多高级程序员都喜欢编写Linux操作系统的相关软件。这使得Linux操作系统有着丰富的软件支持,还有无...

    Linux之家2642020-04-11
  • LinuxLinux上设置用户通过SFTP访问目录的权限的方法

    Linux上设置用户通过SFTP访问目录的权限的方法

    这篇文章主要介绍了Linux上设置用户通过SFTP访问目录的权限的方法,SFTP可以理解为使用SSH协议进行FTP传输的协议,因而同时要对OpenSSH进行相关设置,需要的朋...

    OSChina10022019-06-19
  • LinuxLinux lnmp下无法使用mail发邮件的两种解决方法

    Linux lnmp下无法使用mail发邮件的两种解决方法

    在配置了lnmp环境后,出现了mail函数不能发送邮件的问题,其实有两种方法,一是使用sendmail组件,而是使用postfix。下面为大家一一介绍下 ...

    Linux之家4042019-09-17
  • LinuxLinux常用的日志文件和常用命令

    Linux常用的日志文件和常用命令

    成功地管理任何系统的关键之一,是要知道系统中正在发生什么事。 Linux 中提供了异常日志,并且日志的细节是可配置的。Linux 日志都以明文形式存储,所...

    Linux教程网2632020-04-18