linux系统中pci总线设备查看的几种方式

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

前言

在ubuntu系统中可以使用如下的几种方式查看系统中的PCI总线设备的信息。

一、什么是PCI总线设备?

PCI(Peripheral Component Interconnect,外围组件互连)总线设备是指通过PCI总线与计算机系统连接的硬件设备。PCI是一种硬件架构,用于计算机内部硬件设备之间的连接和通信。以下是PCI总线设备的一些关键概念:

1.总线架构:PCI总线提供了一种标准化的硬件接口,允许不同的硬件设备(如网络卡、声卡、显卡等)与计算机的主板或处理器通信。

2.数据传输:PCI总线允许设备之间进行高速数据传输,支持并行和串行数据传输模式。

3.设备识别:每个PCI设备都有一个唯一的设备ID和制造商ID,这些ID用于在系统中识别和配置设备。

4.即插即用:许多PCI设备支持即插即用(Plug and Play,PnP),这意味着操作系统可以自动识别和配置设备,而无需用户手动干预。

5.电源管理:PCI设备通常支持电源管理功能,允许在不使用时关闭设备以节省能源。

6.扩展性:PCI总线设计允许系统通过添加更多的PCI设备来扩展其功能。

7.不同版本:PCI总线有不同的版本,如PCI、PCI-X、PCI Express(PCIe),其中PCIe是目前最常用的,支持更高的数据传输速率和更多的通道。

8.驱动程序:为了使操作系统能够与PCI设备通信,通常需要安装相应的驱动程序。这些驱动程序提供了设备与操作系统之间的接口。

9.硬件兼容性:PCI设备需要与主板上的PCI插槽兼容,不同的主板可能支持不同的PCI版本和规格。

10.应用领域:PCI设备广泛应用于个人计算机、服务器、嵌入式系统等,用于扩展系统功能,如增加网络连接、音频处理、视频输出等。

PCI总线设备的例子包括但不限于:

网络卡(NIC)
显卡(GPU)
声卡
硬盘控制器
USB控制器
串行端口卡
并行端口卡

PCI总线设备使得计算机系统能够灵活地添加和扩展硬件功能,是现代计算机系统中不可或缺的一部分。

二、在ubuntu系统中查看的几种方式

1.使用pciutils工具进行查看,具体可以参照之前我写的一篇博文。

https://blog.csdn.net/weixin_42554470/article/details/140415007

2.cat /proc/iomem

root@localhost:~# cat /proc/iomem
10000000-1fffffff : MEM
  10000000-100fffff : PCI Bus 0000:01
    10000000-10001fff : 0000:01:00.0
    10002000-10003fff : 0000:01:00.0
    10004000-10004fff : 0000:01:00.0

3.cat /proc/interrupts

root@localhost:~# cat /proc/interrupts
           CPU0       CPU1       CPU2       CPU3
212:          0          0          0          0   PCI-MSI   0 Edge      PCIe PME, aerdrv

4.dmesg | grep pci

root@localhost:~# dmesg | grep pci

[    1.795064] pci_bus 0000:00: root bus resource [bus 00-ff]
[    1.795075] pci_bus 0000:00: root bus resource [mem 0x10000000-0x1fffffff]
[    1.795137] pci_bus 0000:00: root bus resource [mem 0x500000000-0x5ffffffff pref]
[    1.795489] pci 0000:00:00.0: supports D1 D2
[    1.795499] pci 0000:00:00.0: PME# supported from D0 D1 D3hot D3cold
[    1.796355] pci 0000:01:00.0: reg 0x10: [mem 0x10000000-0x10001fff]
[    1.796402] pci 0000:01:00.0: reg 0x14: [mem 0x10004000-0x10004fff]
[    1.796480] pci 0000:01:00.0: reg 0x18: [mem 0x10002000-0x10003fff 64bit]
[    1.797332] pci 0000:00:00.0: BAR 14: assigned [mem 0x10000000-0x100fffff]
[    1.797349] pci 0000:01:00.0: BAR 0: assigned [mem 0x10000000-0x10001fff]
[    1.797378] pci 0000:01:00.0: BAR 2: assigned [mem 0x10002000-0x10003fff 64bit]
[    1.797441] pci 0000:01:00.0: BAR 1: assigned [mem 0x10004000-0x10004fff]
[    1.797468] pci 0000:00:00.0: PCI bridge to [bus 01-ff]
[    1.797482] pci 0000:00:00.0:   bridge window [mem 0x10000000-0x100fffff]
[    1.797620] pcieport 0000:00:00.0: no of_node; not parsing pinctrl DT
[    1.798665] pcie_pme 0000:00:00.0:pcie001: no of_node; not parsing pinctrl DT
[    1.798872] pcieport 0000:00:00.0: Signaling PME with IRQ 212
[    1.799356] aer 0000:00:00.0:pcie002: no of_node; not parsing pinctrl DT
[    1.799431] pcieport 0000:00:00.0: AER enabled with IRQ 212
[    2.095504] ehci-pci: EHCI PCI platform driver
[    2.096000] ohci-pci: OHCI PCI platform driver

5.dmesg | grep pcie

root@localhost:~# dmesg | grep pcie

[    1.743950] OF: PCI: host bridge /soc/pcie@11000000 ranges:
[    1.795040] pcie 31000000.pcie: PCI host bridge to bus 0000:00
[    1.797620] pcieport 0000:00:00.0: no of_node; not parsing pinctrl DT
[    1.798665] pcie_pme 0000:00:00.0:pcie001: no of_node; not parsing pinctrl DT
[    1.798872] pcieport 0000:00:00.0: Signaling PME with IRQ 212
[    1.799356] aer 0000:00:00.0:pcie002: no of_node; not parsing pinctrl DT
[    1.799431] pcieport 0000:00:00.0: AER enabled with IRQ 212

总结

以上就是在Linux系统中查看PCI设备的几种方式,PCI设备在日常生活中使用很多,PCI设备的驱动编写以及相关的设备的开发需要具有很高的编程水平。本篇博文只做为一个抛砖引玉的作用,如有遗漏,还请批评指正。

  • 11
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux总线设备模型是一种用于管理和操作硬件设备的框架。它提供了一种统一的方式来访问和控制连接到计算机系统上的各种设备,包括串口、USB、PCI、I2C等。 在Linux系统,每个设备都被视为一个文件,并通过文件路径来访问。总线设备模型定义了设备之间的层次关系和通信机制,使得设备可以被识别、配置和操作。 Linux总线设备模型由以下几个重要组件组成: 1. 设备树(Device Tree):在启动过程设备树用于描述连接到系统的各种硬件设备和其相互关系。它是一个以文本方式描述的树状结构,包含了设备的类型、地址、断等信息。 2. 设备驱动程序(Device Driver):驱动程序是用来控制和管理特定硬件设备的软件模块。每个设备都有相应的驱动程序,它们与设备进行通信,并提供对设备的访问接口。 3. 总线(Bus):总线是连接多个设备的物理或逻辑通道。例如,PCI总线、USB总线等。总线提供了设备之间通信的基础。 4. 设备类(Device Class):设备类是一组具有相似功能的设备的集合。例如,USB设备类包括存储设备、键盘、鼠标等。设备类可以帮助系统区分和管理不同类型的设备。 通过使用总线设备模型,Linux系统可以自动检测和配置连接到系统设备,使其能够正常工作。同时,开发者也可以编写自定义的驱动程序来支持新的硬件设备总线设备模型的设计使得设备的添加、删除和管理变得更加灵活和可扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值