当前位置: 首页 > 科技观察

在Linux上使用lspci命令检查硬件

时间:2023-03-15 00:33:06 科技观察

当您在PC或服务器上运行Linux时,有时您需要识别该系统中的硬件。lspci命令用于显示所有连接在PCI总线上的设备,从而满足上述需求。此命令由pciutils软件包提供,可用于各种基于Linux和BSD的操作系统。基本用法由于访问权限的关系,普通用户运行lspci时显示的信息可能有限,可以使用sudo运行命令,系统会给出完整的信息图。直接运行lspci命令将列出PCI总线和连接到它的设备,下图是我的媒体中心PC上的演示示例。图为基于AMDPhenomCPU的系统,因此它具有AMD芯片组、Atheros无线适配器和Nvidia显卡。所有硬件设备都列出了供应商、名称、型号等详细信息:$sudolspci00:00.0Hostbridge:AdvancedMicroDevices,Inc.[AMD]RS880HostBridge00:02.0PCIbridge:AdvancedMicroDevices,Inc.[AMD]RS780PCItoPCIbridge(extgfxport0)00:04.0PCIbridge:AdvancedMicroDevices,Inc.[AMD]RS780/RS880PCItoPCIbridge(PCIEport0)00:05.0PCIbridge:AdvancedMicroDevices,Inc.[AMD]RS780/RS880PCItoPCIbridge(PCIEport1)00:11.0SATAcontroller:AdvancedMicroDevices,Inc.[AMD7x0/ATI8x0/SB]SB9x0SATAController[AHCImode]00:12.0USBcontroller:AdvancedMicroDevices,Inc.[AMD/ATI]SB7x0/SB8x0/SB9x0USBOHCI0Controller00:12.1USBcontroller:AdvancedMicroDevices,Inc.[AMD/ATI]SB7x0USBOHCI1Controller00.12.2AMicroDevic/TI:AMicroDevicIncedes控制器SB7x0/SB8x0/SB9x0USBEHCIController00:13.0USBcontroller:AdvancedMicroDevices,Inc.[AMD/ATI]SB7x0/SB8x0/SB9x0USBOHCI0Controller00:13.1USBcontroller:AdvancedMicroDevices,Inc.[AMD/ATI]SB7x0USBOHCI1Controller00:13.2USBcontroller:AdvancedMicroDevices,Inc.[AMD/ATI]SB7x0/SB8x0/SB9x0USBEHCI控制器00:14.0SMBus:AdvancedMicroDevices,Inc.[AMD/ATI]SBx00SMBusController(rev3c)00:14.1IDE接口:AdvancedMicroDevices,Inc.[AMD/ATI]SB7x0/SB8x0/SB9x0IDEController00:14.3ISAbridge:AdvancedMicroDevices,Inc.[SAMD7/ATI]SB8x0/SB9x0LPChostcontroller00:14.4PCIbridge:AdvancedMicroDevices,Inc.[AMD/ATI]SBx00PCItoPCIBridge00:14.5USBcontroller:AdvancedMicroDevices,Inc.[AMD/ATI]SB7x0/SB8x0/SB9x0USBOHCI2Controller00:18.0Hostbridge:AdvancedMicroDevices,Inc.[AMD]Family10hProcessorHyperTransportConfiguration00:18.1Hostbridge:AdvancedMicroDevices,Inc.[AMD]Family10hProcessorAddressMap00:18.2Hostbridge:AdvancedMicroDevices,Inc.[AMD]Family10hProcessorDRAMController00:18.3Hostbridge:AdvancedMicroDevices,Inc.[AMD]Family10hProcessorMiscellaneousControl00:18.4Hostbridge:AdvancedMicroDevices,Inc.[AMD]Family10hProcessorLinkControl01:00.0VGAcompatiblecontroller:NVIDIACorporationGK107[GeForceGTX650](reva1)01:00.1Audiodevice:NVIDIACorporationGK107HDMIAudioController(reva1)02:00。0Networkcontroller:QualcommAtherosAR9287WirelessNetworkAdapter(PCI-Express)(rev01)详细输出添加-v选项将显示每个设备的详细信息,您可以使用-vv或-vvv获取更多设备详细信息在-v级别,lspci将显示所有各种子系统和设备的内存地址、中断请求(IRQ)号和一些其他功能信息。输出信息可能很长。在你的系统上试一试。使用grep过滤搜索您可能需要缩小搜索范围。比如RPMFusion网站上有安装Nvidia显卡驱动的说明,首先使用grep命令定位显卡信息。这是我在笔记本电脑上得到的输出:$sudolspci|grep-eVGA00:02.0VGAcompatiblecontroller:IntelCorporationUHDGraphics620(rev07)$sudolspci|grep-e3D01:00.03Dcontroller:NVIDIACorporationGM108M[GeForceMX130](reva2)以上”,由于作者的错字)grep命令在我的媒体中心PC上找到了一个VGA设备,但没有显示3D设备。$sudolspci|grep-eVGA01:00.0VGAcompatiblecontroller:NVIDIACorporationGK107[GeForceGTX650](reva1)$sudolspci|grep-e3D$SearchbyVendorIDThere是另一种可以在没有grep的情况下使用的方法。假设我想检查这台计算机是否有任何其他Nvidia设备,在我们这样做之前我们需要一些额外的信息,使用-nn选项显示的供应商和设备ID号。在我的媒体中心PC上,此选项为我提供了我的VGA卡、供应商ID和设备ID:$sudolspci-nn|grep-eVGA01:00.0VGAcompatiblecontroller[0300]:NVIDIACorporationGK107[GeForceGTX650][10de:0fc6](reva1)有设备名称后方括号中的冒号分隔数字,即供应商和设备ID。输出表明NvidiaCorporation制造的设备的VendorID为10de。-d选项用于指定供应商、设备或类ID的所有设备。这是我系统中的所有Nvidia设备(保留-nn以解析供应商ID):$sudolspci-nn-d10de:01:00.0VGAcompatiblecontroller[0300]:NVIDIACorporationGK107[GeForceGTX650][10de:0fc6](reva1)01:00.1Audiodevice[0403]:NVIDIACorporationGK107HDMIAudioController[10de:0e1b](reva1)从输出可以看出,除了显卡,我还有一个Nvidia音频设备。它们实际上都是同一张NvidiaGeForceGTX650卡的一部分,但它仍然是一个很好的例子。内核模块结合PCI硬件设备,lspci可以使用-k选项显示内核加载了哪些驱动程序模块。我将此选项添加到我的lspci命令以查看有关我的Nvidia设备的信息。$sudolspci-nn-k-d10de:01:00.0VGAcompatiblecontroller[0300]:NVIDIACorporationGK107[GeForceGTX650][10de:0fc6](reva1)Subsystem:eVga.com.Corp.GK107[GeForceGTX650][3842:2650]Kerneldriverrinuse:nvidianvidiaf,nouveau,nvidia_drm,nvidia01:00.1Audiodevice[0403]:NVIDIACorporationGK107HDMIAudioController[10de:0e1b](reva1)Subsystem:eVga.com.Corp.GK107HDMIAudioController[3842:2650]Kerneldriverinuse:snd_hda_intel_intelKern驱动程序:dan_hda_intel_intelKern使用和内核模块,后者列出了可用于支持设备的模块。同步最新新设备和供应商总是在迭代。如果您看到列为未知的设备,则您的PCI设备ID数据库可能已过时。有两种方法可以检查更新。-Q选项将使用DNS查询中央数据库,这当然需要互联网连接。$sudolspci-Q您还可以通过运行命令update-pciids更新本地PCIID数据库。$sudoupdate-pciidsDownloadeddailysnapshotdated2021-08-2203:15:01进一步了解您的硬件当然,lspci只是Linux中用于查询系统硬件和软件的众多命令之一。读者可以在我们关于USB设备的文章中了解有关Linux硬件的更多信息:使用此USBID存储库识别Linux上的更多设备。