Linux系统中列出PCI设备和USB设备的命令详解

时间:2022-05-27 17:24:33

lspci

NAME

lspci - 列出所有PCI设备 [[ ]]
总览 SYNOPSIS

lspci [ options ] [[ ]]
描述 DESCRIPTION

lspci 是一个用来显示系统中所有PCI总线设备或连接到该总线上的所有设备的工具。

为了能使用这个命令所有功能,你需要有 linux 2.1.82 或以上版本,支持 /proc/bus/pci 接口的内核。在旧版本内核中,PCI工具必须使用只有root才能执行的直接硬件访问,而且总是出现竞争状况以及其他问题。

如果你要报告 PCI 设备驱动中,或者是 lspci 自身的 bugs,请在报告中包含 "lspci -vvx" 的输出。

[[ ]]
选项 OPTIONS

-v
    使得 lspci 以冗余模式显示所有设备的详细信息。 
-vv
    使得 lspci 以过冗余模式显示更详细的信息 (事实上是 PCI 设备能给出的所有东西)。这些数据的确切意义没有在此手册页中解释,如果你想知道更多,请参照 /usr/include/linux/pci.h 或者 PCI 规范。 
-n
    以数字形式显示 PCI 生产厂商和设备号,而不是在 PCI ID 数据库中查找它们。 
-x
    以十六进制显示 PCI 配置空间 (configuration space) 的前64个字节映象 (标准头部信息)。此参数对调试驱动和 lspci 本身很有用。 
-xxx
    以十六进制显示所有 PCI 配置空间的映象。此选项只有 root 可用,并且很多 PCI 设备在你试图读取配置空间的未定义部分时会崩溃 (此操作可能不违反PCI标准,但是它至少非常愚蠢)。 
-b
    以总线为中心进行查看。显示所有 IRQ 号和内存地址,就象 PCI 总线上的卡看到的一样,而不是内核看到的内容。 
-t
    以树形方式显示包含所有总线、桥、设备和它们的连接的图表。 
-s [[<bus>]:][<slot>][.[<func>]]
    仅显示指定总线、插槽上的设备或设备上的功能块信息。设备地址的任何部分都可以忽略,或以“*”代替 (意味着所有值)。所有数字都是十六进制。例如:“0:”指的是在0号总线上的所有设备;“0”指的是在任意总线上0号设备的所有功能块;“0.3”选择 了所有总线上0号设备的第三个功能块;“.4”则是只列出每一设备上的第四个功能块。 
-d [<vendor>]:[<device>]
    只显示指定生产厂商和设备 ID 的设备。 这两个 ID 都以十六进制表示,可以忽略或者以“*”代替 (意味着所有值)。 
-i <file>
    使用 <file> 作为 PCI ID 数据库而不是使用默认的 /usr/share/hwdata/pci.ids。 
-p <dir>
    使用 <dir> 作为包含 PCI 总线信息的目录而不是使用默认的目录 /proc/bus/pci。 
-m
    以机器可读的方式转储 PCI 设备数据 (支持两种模式:普通和冗余),便于脚本解析。 
-M
    使用总线映射模式,这种模式对总线进行全面地扫描以查明总线上的所有设备,包括配置错误的桥之后的设备。请注意,此操作只应在调试时使 用,并可能造成系统崩溃 (只在设备有错误的时候,但是不幸的是它们存在),此命令只有 root 可以使用。同时,在不直接接触硬件的 PCI 访问模式中使用 -M 参数没有意义,因为显示的结果 (排除 lspci 中的 bug 的影响) 与普通的列表模式相同。 
--version
    显示 lspci 的版本。这个选项应当单独使用。

[[ ]]
PCILIB 选项 PCILIB OPTIONS

PCI 工具使用 PCILIB (一种可移植的库,提供平*立的函数来访问 PCI 配置空间) 来和PCI卡交互。下面的选项用来控制库参数,特别是所用访问模式的指定。默认情况下,PCILIB 使用第一种可用的访问模式,不会显示任何调试信息。每一个开关选项都列出了一组它所支持的硬件/软件列表。


-P <dir>
    使用 linux 2.1 风格的配置,直接访问目录 <dir> 而非 /proc/bus/pci 目录。(只能在 linux 2.1 或以上版本中使用) 
-H1
    通过 Intel 架构 1 来实现直接硬件访问。(只能用于 i386 及其兼容机) 
-H2
    通过Intel 架构 2 来实现直接硬件访问。警告:此模式只能寻址任何总线上的前16个设备,并且在很多情况下相当不可靠。(只能用于 i386 及其兼容机) 
-S
    使用 PCI 系统调用访问。(只能用于 Alpha 和 Ultra-Sparc 上的 Linux) 
-F <file>
    从所给的包含 lspci -x 命令输出的文件中获取相关信息。这在分析用户提交的错误报告时很有用,因为你可以用任何方式来显示硬件配置信息而无需为了获取更多信息打扰用户。(可用于所有系统) 
-G
    增加库的调试等级。(可用于所有系统)

例:
a,列出所有PCI设备
 

复制代码
代码如下:

[root@localhost zhangy]# lspci -tv # 列出所有PCI设备

b,查看网卡型号

复制代码
代码如下:

[root@localhost zhangy]# lspci |grep -i eth
05:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8039 PCI-E Fast Ethernet Controller (rev 14)

 

 

lsusb

lsusb作用:
列出所有usb设备

lsusb语法:
lsusb [参数]

lsusb参数:

-D 设备路径 不扫描/proc/bus/usb,而以指定的设备路径取代

-p 内核路径 使用其他USB设备在内核的路径,默认为/proc/bus/usb

-t 将USB设备以树状架构输出

-v 列出较详细的运行过程

-vv 列出完整的运行过程

-V 显示版本信息

例:
 

复制代码
代码如下:

[root@localhost zhangy]# lsusb #列出所有usb设备