当前位置:首页>Linux>Linux 必学目录:/sys/bus

Linux 必学目录:/sys/bus

  • 2026-08-22 18:08:37
Linux 必学目录:/sys/bus
大家好!我是大虫子🐛!
接着继续介绍 /sys 目录,这次分享的是 /sys/bus 目录~
/sys/bus 目录主要用于设备模型和设备驱动的管理,通过文件系统接口向用户空间暴露内核对象(如设备、驱动程序等)的信息。
目录结构
/sys/bus 目录下包含了与系统中各种总线相关的信息和接口,主要包括以下几个子目录:
1. subsystem: 该目录包含各类总线的子系统,例如 PCI、USB、I2C 等。在这些子目录中,可以找到与特定总线相关的设备和驱动程序的信息。
2. <bus_name>: 每个总线类型在此目录下都有一个相应的子目录。例如:
  • /sys/bus/pci:与 PCI 总线相关的信息。
  • /sys/bus/usb:与 USB 总线相关的信息。
  • /sys/bus/i2c:与 I2C 总线相关的信息。
总线类型示例
1、PCI 总线 (/sys/bus/pci):
  • 该目录下包含了与 PCI 设备相关的信息。你可以找到每个 PCI 设备的详细信息,包括设备 ID、厂商 ID、状态等。
  • 例如,使用 ls /sys/bus/pci/devices/ 可以列出所有 PCI 设备。
2、USB 总线 (/sys/bus/usb):
  • 包含了 USB 设备的信息。你可以查看已连接 USB 设备的详细信息。
  • 文件如 devices/ 下会列出 USB 设备,drivers/ 下会列出相关 USB 驱动程序。
3、I2C 总线 (/sys/bus/i2c):
  • 包括与 I2C 设备相关的信息,显示 I2C 设备的地址、类型等。
关键文件
每个总线目录下通常包含以下关键文件和目录:
  • devices/: 列出了该总线上连接的所有设备,每个设备都有一个对应的目录,里面包含该设备的属性文件。
  • drivers/: 列出了可以与该总线上的设备交互的所有驱动程序。
  • bind/unbind: 这两个文件用于将设备绑定到驱动程序或将其解绑。通过写入设备的名称或 ID,可以手动进行绑定或解绑操作。
  • uevent: 该文件用于生成 uevent,通常用于设备热插拔事件的通知。
使用示例
1. 查看 PCI 设备:
ls /sys/bus/pci/devices/
2. 查看 USB 设备信息:
ls /sys/bus/usb/devices/
3. 绑定设备到驱动:
echo "<device_id>" > /sys/bus/pci/drivers/<driver_name>/bind
4. 解绑设备:
echo "<device_id>" > /sys/bus/pci/drivers/<driver_name>/unbind
小结
/sys/bus 目录是 Linux 内核中处理设备和驱动的重要组成部分,它通过 sysfs 提供了一个统一的接口,让用户能够以文件系统的方式访问和管理系统中的设备。咱们可以通过这个目录,可以获得系统设备的详细信息,并对设备进行管理和控制。在设备驱动开发和系统调试中,这个目录提供了很大的帮助。

最新文章

随机文章