lspci

lspci是一种实用程序,用于在系统中显示有关pci总线的信息以及联接到它们的设备。

默认情况下,它显示了一个简单的设备列表。使用下边描述的选项可以恳求更详尽的输出或其他程序用于解析的输出。

假如要报告PCI设备驱动程序或lspci本身中的bug,请使用选项“lspci-vvx”或更好的“lspci-vvxxx”的输出(不过,可能会有警告)。

输出的个别部份,非常是在高度繁杂的模式下,只有经验丰富的PCI黑客能够理解Proba-Bly。有关数组的准确定义,请参阅PCI规范或header.h和/usr/include/linux/pci.h文件。

在许多操作系统上,对PCI配置空间的个别部份的访问仅限于root用户,因而对于普通用户来说,lspci的功能是有限的。但是,lspci竭力显示尽可能多的可用信息linux查看总线命令,并将所有其他信息标记为文本

命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。

1、语法

lspci[选项]

lspci命令中,我们常常会听到一些“[]:[].[]”这样格式的数字,比如“00:01.0”,这一个参数是总线编号,第二个是插孔编号,第三个是功能编号,它们都是十六补码的数字。

2、选项列表

1)基础显示模式

-m

以向后兼容但是机器可读的形式轮询设备信息

-mm

以机器可读的形式轮询设备信息,便于脚本解析

-t

以树状结构显示pci设备的层次关系,包含所有总线、桥梁、设备和它们之间的联接

2)显示选项

-n

显示pci设备的厂商和设备代码

-v

显示所有设备的详尽信息

-vv

以愈发详尽的方法显示设备信息

-k

显示处理每位设备的内核驱动程序以及能否处理该设备的内核模块。默认情况下,当-v以正常的输出模式打开时。(目前只在内核2.6或更高版本的Linux上工作。)

-x

显示配置空间标准部份的十六补码轮询(CardBus桥的前64字节或128字节)。

-xxx

显示整个PCI配置空间的十六补码轮询。当您企图读取配置空间的个别部分时,只有当几个PCI设备崩溃时,它才可用,并且只适宜root用户。(这些行为可能没有违背PCI标准,但起码十分荒谬)。但是,这样的设备极少见,所以您何必太害怕

-xxxx

显示扩充(4096字节)PCI配置空间在PCI-X2.0和PCIExpress总线上可用的十六补码轮询

-b

以总线为中心的视图。显示由pci总线上的卡听到的所有irq编号和地址。注意,不是有内核见到的

-D

一直显示PCI域号。默认情况下国内linux主机,lspci在只有域0的机器上略过它们。

3)解析ID为名称的选项

-n

将PCI供应商和设备代码显示为编号,而不是在PCIID列表中查找它们。

-nn

显示pci供应商和设备的代码和名子

-q

假如在本地pci.id文件中找不到设备linux查看总线命令,则使用DNS查询中央PCIID数据库。假如DNS查询成功,结果将缓存在~/.pciids-cache中,虽然-q不再给出,也会在后续运行中辨识。请在手动脚本中使用此开关时要当心,以防止数据库服务器超员。

-qq

和“-q”一样,而且本地缓存被重置

-Q

查询中央数据库,虽然是本地也有缓存数据可查。假如您怀疑显示的条目是错误的,请使用此方式。

linux查看can设备_linux查看总线命令_linux查看线程数命令

4)选择设备的选项

-s[域]:[总线]:[插孔].[功能]

只显示指定域中的设备(假如您的计算机有几个主机桥接器,它们可以共享公共总线编号空间,或则每位设备可以自己轮询PCI域;域编号为0到ffff)、总线编号(0到ff)、插槽编号(0至1f)、函数编号(0至7)。地址可以省略或设置为“*”,这三者都意味着“任何值”。所有数字都是十六补码的。诸如,“0:”表示总线0上的所有设备,“0”表示设备0在任何总线上的所有功能,“0.3”在所有总线上选择设备0的第三功能,“4”仅显示每位设备的第四个功能。

-d[厂商:设备]

显示指定厂商和设备的信息,厂商号和设备号都是十六补码。

5)其他选项

-i

指定pci设备编号文件,默认文件是/usr/share/hwdata/pci.ids

-p

使用指定文件作为PCIID的映射文件,默认使用/lib/Module/kernel_version/Modes.pcimap

-M

调用总线映射模式,它对所有pci设备,包括配置错误的桥旁边的设备进行彻底扫描。此选项只在直接硬件访问模式下提供有意义的结果,一般须要根权限。请注意,总线映射程序只扫描pci域0。

6)PCI设备访问选项

-A

库支持多种方式来访问PCI硬件。默认情况下,它使用第一个可用的访问方式,但您可以使用此选项覆盖此决定。你可以使用“-Ahelp”来先看可用的方式

-O=

库的行为由多个命名参数控制。此选项容许设置任何参数的值。使用“-Ohelp“获取已知参数及其默认值的列表。

-H1

通过Intel配置机制1直接访问硬件

-H2

通过Intel配置机制2直接访问硬件

-F

与其访问真正的硬件,不如从原本运行的lspci-x生成的给定文件中读取设备及其配置寄存器的值列表linux运维最佳实践,这对于剖析用户提供的错误报告特别有用,由于您可以任何方式显示硬件配置,而不须要使用更多轮询恳求来干扰用户。

-G

增强库的调试级别

3、关于选项的说明

1)关于“–m”选项

假如您准备手动处理lspci的输出,请使用本节中描述的机器可读的输出格式之一(-m、-vm、-vmm)。所有其他格式都可能在lspci的不同版本之间发生变化。所有的数字都是以十六补码复印的。假如要处理数字ID而不是名称,请添加-n开关.

在简单格式中,每位设备都在一行上进行描述,这种参数被低格为适宜传递给shell脚本的参数,即由空格分隔的值,必要时引用和通配符。其中一些参数是位置:槽、类、供应商名称、设备名称、子系统名称和子系统名称(假如设备没有子系统,最后两个参数是空的);其余的参数是选项

2)关于“-vmm”选项

详尽的输出是由空行分隔的记录序列,每条记录用一行来描述一个设备,每一行包含一个‘tag:value’对。标记和值由单个制表符分隔。记录或记录中的行都不按任何特定次序排列。标记分辨大小写。下边是早已定义的tag:

Slot,设备所在的插孔名称

linux查看can设备_linux查看线程数命令_linux查看总线命令

Class,类名

Vendor,厂商名

Device,设备名

SVendor,子系统供应商名子

SDevice,子设备名子

PhySlot,设备所在的化学插孔

Rev,修序号

ProgIf,编程插口

Driver,当前正在处理设备的内核驱动程序

Module,内核模块的报告

4、实例

1)以机器可读的形式显示

2)显示设备代码和名子

3)以树状结构显示

4)显示指定位置的设备信息

5)显示指定厂商和设备号的设备信息

Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复