前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux工具|运维工具lspci使用小妙招

Linux工具|运维工具lspci使用小妙招

原创
作者头像
Aion
发布2023-11-10 00:16:30
1K0
发布2023-11-10 00:16:30
举报
文章被收录于专栏:开发运维工程师

1 背景说明

运维工程师(Operations)是负责维护并确保整个服务的高可用性,同时不断优化系统架构提升部署效率、优化资源利用率提高整体的ROI的专业人员。他们的基本职责是负责服务的稳定性,确保服务可以7*24H不间断地为用户提供服务。

作为一名运维工程师,操作系统知识 怎么可以落下,我们需要深入理解Linux系统,包括其文件系统、进程管理、用户和权限管理等。今天就先讲讲如何查看计算机设备篇——PCI总线设备的信息。到了这里,实践得出真理,开始动手操作下吧。毕竟,这些基础的知识也是需要我们操作的熟练。从上面简介中,你已经猜测出来我此时说的这个系统自带的小工具叫什么名字吧?

2 环境检查

2.1 什么是PCI

【PCI】介绍

PCI是一种外设总线规范。我们先来看一下什么是总线:总线是一种传输信号的路径或信道。典型情况是,总线是连接于一个或多个导体的电气连线,总 线上连接的所有设备可在同一时间收到所有的传输内容。总线由电气接口和编程接口组成。本文讨论Linux 下的设备驱动,所以,重点关注编程接口。

PCI是Peripheral Component Interconnect(外围设备互联)的简称,是普遍使用在桌面及更大型的计算机上的外 设总线。PCI架构被设计为ISA标准的替代品,它有三个主要目标:获得在计算机和外设之间传输数据时更好的性能;尽可能的平台无关;简化往系统中添加和 删除外设的工作。

【lspci】介绍

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

2.2 环境检查

在开展实践工作前,首先需要做的是熟悉环境。当我们需要了解我们的工作电脑当前的设备信息是如何分布的。比如说磁盘控制器、声卡、网卡等等。有时候我们需要知道设备的硬件ID或者设备的型号,这时候就可以借助lspci命令来查询。

首先,执行命令查看当前的操作系统。当前所有操作都是在Linux上执行,如果有差错或者版本不一致,请酌情参考。

代码语言:javascript
复制
[xxx@xxx ~]$ uname -a
Linux xxx 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

[xxx@xxx ~]$ cat /etc/redhat-release 
CentOS Linux release 7.6.1810 (Core) 

其次,我们需要检查下我们的机器是否有这个命令。

代码语言:javascript
复制
[xxx@xxx ~]$ lspci V
这里让你失望了,请参考下3

3 如何查看帮助命令

在Linux环境中,有很多约定俗成的命令,可以帮助我们很快的投入到工作中,例如--help / ?/ -h / -V / --version 等等等。不过这个lspci的命令比较特殊一些,可以使用lspci V,如果使用使用其他命令也没有错误,只是会提示你不可用。

代码语言:javascript
复制
[xxx@xxx ~]$ lspci V
Usage: lspci [<switches>]
Basic display modes:
-mm             Produce machine-readable output (single -m for an obsolete format)
-t              Show bus tree
Display options:
-v              Be verbose (-vv for very verbose)
-k              Show kernel drivers handling each device
-x              Show hex-dump of the standard part of the config space
-xxx            Show hex-dump of the whole config space (dangerous; root only)
-xxxx           Show hex-dump of the 4096-byte extended config space (root only)
-b              Bus-centric view (addresses and IRQ's as seen by the bus)
-D              Always show domain numbers
Resolving of device ID's to names:
-n              Show numeric ID's
-nn             Show both textual and numeric ID's (names & numbers)
-q              Query the PCI ID database for unknown ID's via DNS
-qq             As above, but re-query locally cached entries
-Q              Query the PCI ID database for all ID's via DNS
Selection of devices:
-s [[[[<domain>]:]<bus>]:][<slot>][.[<func>]]   Show only devices in selected slots
-d [<vendor>]:[<device>][:<class>]              Show only devices with specified ID's
Other options:
-i <file>       Use specified ID database instead of /usr/share/hwdata/pci.ids
-p <file>       Look up kernel modules in a given file instead of default modules.pcimap
-M              Enable `bus mapping' mode (dangerous; root only)
PCI access options:
-A <method>     Use the specified PCI access method (see `-A help' for a list)
-O <par>=<val>  Set PCI access parameter (see `-O help' for a list)
-G              Enable PCI access debugging
-H <mode>       Use direct hardware access (<mode> = 1 or 2)
-F <file>       Read PCI configuration dump from a given file

当我们阅读了很多的帮助文档后,就可以开始动手实践一下啦。

备注:当前执行命令是CentOS 7.6 开源版本。

4 实践先行

4.1 显示所有设备详细信息

代码语言:javascript
复制
lspci -v

代码语言:javascript
复制
[xxx@xxx ~]$ lspci -v
00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 01)
        Subsystem: VMware Virtual Machine Chipset
        Flags: bus master, medium devsel, latency 0
        Kernel driver in use: agpgart-intel
        
……此处省略其他设备信息

4.2显示所有设备更多详细信息

代码语言:javascript
复制
lspci -vv
代码语言:javascript
复制
[xxx@xxx ~]$ lspci -vv
00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 01)
        Subsystem: VMware Virtual Machine Chipset
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
        Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0
        Kernel driver in use: agpgart-intel
……此处省略其他设备信息

4.3显示所有设备更多更详细信息

这个命令基本上是ALL IN

代码语言:javascript
复制
lspci -vvv
代码语言:javascript
复制
[xxx@xxx ~]$ lspci -vvv
00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 01)
        Subsystem: VMware Virtual Machine Chipset
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
        Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0
        Kernel driver in use: agpgart-intel
……此处省略其他设备信息

4.4显示设备的vendor id 和device id

代码语言:javascript
复制
lspci -n
代码语言:javascript
复制
[xxx@xxx ~]$ lspci -n
00:00.0 0600: 8086:7190 (rev 01)
00:01.0 0604: 8086:7191 (rev 01)
00:07.0 0601: 8086:7110 (rev 08)
00:07.1 0101: 8086:7111 (rev 01)
00:07.3 0680: 8086:7113 (rev 08)
00:07.7 0880: 15ad:0740 (rev 10)

……此处省略其他设备

4.5显示设备配置空间的标准部分

代码语言:javascript
复制
lspci -x

4.6 显示设备上pcie设备的配置空间的所有内容

代码语言:javascript
复制
lspci -xxx

4.7 显示 PCI-X 2.0 和 PCI Express 总线上可用的扩展(4096 字节)PCI 配置空间内容

代码语言:javascript
复制
lspci -xxxx		

4.8 显示说有pcie设备的总线地址

代码语言:javascript
复制
$ lspci -b

4.9 以树形结构显示pcie设备

能展示设备上所以pcie总线、桥、pcie设备之间的连接关系

代码语言:javascript
复制
$ lspci -t

5 附录

5.1 查阅pci.ids

可以通过查阅/usr/share/hwdata/pci.ids来查看所有的内容信息。

/proc/bus/pci:linux 2.1.82 之后版本核心提供的 PCI 总线配置空间的接口。包含每个总线 (per-bus) 的子目录以及每个设备卡 (per-card) 的配置空间档案,还有一个 devices 档案,包含所有PCI设备的列表。

6 问答

作为一名运维工程师需要了解掌握很多技能,比如说操作系统、开源组件、监控相关、编程知识、网络知识、数据库知识、自动化技能和日志分析能力。当然也不能缺少一些软技能,例如沟通、抗压等,要和同事、领导以及客户保持良好的沟通,理解需求,提供有效的解决方案,需要应对高强度的工作压力,保持冷静,快速解决问题。


我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 背景说明
  • 2 环境检查
    • 2.1 什么是PCI
      • 2.2 环境检查
      • 3 如何查看帮助命令
      • 4 实践先行
        • 4.1 显示所有设备详细信息
          • 4.2显示所有设备更多详细信息
            • 4.3显示所有设备更多更详细信息
              • 4.4显示设备的vendor id 和device id
                • 4.5显示设备配置空间的标准部分
                  • 4.6 显示设备上pcie设备的配置空间的所有内容
                    • 4.7 显示 PCI-X 2.0 和 PCI Express 总线上可用的扩展(4096 字节)PCI 配置空间内容
                      • 4.8 显示说有pcie设备的总线地址
                        • 4.9 以树形结构显示pcie设备
                        • 5 附录
                          • 5.1 查阅pci.ids
                          • 6 问答
                          相关产品与服务
                          Elasticsearch Service
                          腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
                          领券
                          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档