news 2026/3/8 18:13:07

Linux设备信息查询完全指南:/proc, /sys, /dev详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux设备信息查询完全指南:/proc, /sys, /dev详解

Linux设备信息查询完全指南:/proc, /sys, /dev详解

一、Linux设备信息目录全景图

graph TD
A[Linux设备信息] --> B[/proc - 进程和内核信息]
A --> C[/sys - 设备驱动和硬件信息]
A --> D[/dev - 设备节点]

B --> B1[proc/bus/input/devices]
B --> B2[proc/interrupts]
B --> B3[proc/devices]

C --> C1[sys/class]
C --> C2[sys/bus]
C --> C3[sys/devices]

D --> D1[dev/input]
D --> D2[dev/fb*]
D --> D3[dev/tty*]

二、/proc目录:内核和进程信息

1. /proc/bus/input/devices - 输入设备信息

文件结构示例

I: Bus=0018 Vendor=0000 Product=0000 Version=0000 N: Name="Goodix Capacitive TouchScreen" P: Phys= S: Sysfs=/devices/platform/soc/5000000.bus/5034000.i2c/i2c-3/3-005d/input/input0 U: Uniq= H: Handlers=event0 B: PROP=2 B: EV=1b B: KEY=400 0 0 0 0 0 B: ABS=260800000000003 B: MSC=20

关键字段解析

  • N: Name:设备名称(如触摸屏名称)
  • H: Handlers:对应的设备节点(如event0
  • B: EV:支持的事件类型
  • B: ABS:支持的绝对坐标属性

用途:识别触摸屏类型、查看输入设备信息

2. 其他重要/proc文件

文件路径用途示例输出
/proc/interrupts查看中断分配36: 1200000 gic 34 Edge gt911
/proc/iomem查看物理内存映射50000000-503fffff : /soc
/proc/devices已注册设备列表188 ttyS
/proc/modules已加载内核模块sunxi_tcon 32768 0 - Live 0xbf0b7000

三、/sys目录:设备驱动和硬件信息

1. /sys/class - 设备分类视图

目录结构

/sys/class/ ├── backlight/# 背光控制 ├── graphics/# 图形设备(如fb0) ├── input/# 输入设备 ├── leds/# LED指示灯 ├── net/# 网络设备 └── tty/# 串口设备
(1) /sys/class/input
$ls/sys/class/input input0input1 $ls/sys/class/input/input0 capabilities/device/id/namepower/subsystem/uevent

关键文件

  • name:设备名称
  • capabilities/*:设备能力(如支持的多点触控)
(2) /sys/class/graphics
$ls/sys/class/graphics/fb0 bl_curvemodesrotatestridevirtual_size blanknamerotate_allsubsystemvsize consolepanstateuevent modepower/subsystem@vertical_offset modelistrotate...

关键文件

  • name:帧缓冲设备名
  • modes:支持的分辨率
  • virtual_size:虚拟分辨率

2. /sys/bus - 总线设备信息

/sys/bus/ ├── i2c/ │└── devices/# I2C设备├── spi/ │└── devices/# SPI设备└── platform/ └── devices/# 平台设备

查找I2C触摸屏

$ls/sys/bus/i2c/devices/0-00380-005di2c-0i2c-1 $cat/sys/bus/i2c/devices/0-0038/name ft5x_ts

3. /sys/devices - 物理设备树

设备物理路径

/sys/devices/platform/soc/5000000.bus/5034000.i2c/i2c-3/3-005d

查看设备属性

$cat/sys/devices/platform/soc/5000000.bus/5034000.i2c/i2c-3/3-005d/irq36

四、/dev目录:设备节点

1. 设备节点类型

设备类型前缀示例用途
帧缓冲fb*/dev/fb0LCD显示控制
输入设备event*/dev/input/event0触摸屏输入
串口ttyS*/dev/ttyS0串口通信
I2Ci2c-*/dev/i2c-0I2C总线控制
SPIspidev*/dev/spidev0.0SPI设备

2. 设备节点查找方法

查找触摸屏节点

# 方法1:通过/proc查找$grep-A5"TouchScreen"/proc/bus/input/devices H:Handlers=event0# 方法2:通过/sys查找$ls-l /sys/class/input/input0/device/driver.../input/input0 ->.../3-005d/input/input0# 方法3:直接测试设备节点$ evtest /dev/input/event0

五、设备调试实战:以全志T113-I触摸屏为例

1. 触摸屏信息查询

# 1. 查看所有输入设备$cat/proc/bus/input/devices# 2. 定位触摸屏设备节点$ls-l /dev/input/by-path/ platform-5000000.bus-5034000.i2c-event ->event0# 3. 查看触摸屏参数$cat/sys/bus/i2c/devices/0-0038/name ft5x_ts# 4. 查看中断信息$cat/proc/interrupts|grepft5x36:1200000gic34Edge ft5x_ts# 5. 测试触摸事件$ evtest /dev/input/event0 Event:time1687923456.123456,type3(EV_ABS), code0(ABS_X), value320Event:time1687923456.123467,type3(EV_ABS), code1(ABS_Y), value480

2. LCD信息查询

# 1. 查看帧缓冲设备$ls/sys/class/graphics/ fb0# 2. 获取显示参数$cat/sys/class/graphics/fb0/modes U:800x480p-60# 3. 查看背光控制$ls/sys/class/backlight/ backlight# 4. 调整背光亮度$echo50>/sys/class/backlight/backlight/brightness# 5. 截图操作$cat/dev/fb0>framebuffer.raw

六、常用调试工具集

1. 基础工具

工具用途示例
evtest输入设备测试evtest /dev/input/event0
fbset帧缓冲设置fbset -xres 800 -yres 480
udevadm设备信息查询udevadm info -a -p /sys/class/input/input0
lsblk块设备查看lsblk
lspci/lsusbPCI/USB设备lspci -v

2. 高级调试工具

# 查看DMA内存分配$cat/proc/vmallocinfo# 跟踪系统调用$straceevtest /dev/input/event0# 内核日志查询$dmesg|grep-i"touch\|i2c\|drm"# 性能分析$ perftop-g

七、设备树与驱动关联分析

1. 设备树节点到/sys路径映射

设备树: &i2c1 { touchscreen@38 { compatible = "focaltech,ft5x06"; }; }; /sys路径: /sys/bus/i2c/devices/0-0038/

2. 驱动加载过程

HardwareDriverLinux KernelU-BootHardwareDriverLinux KernelU-Boot传递设备树解析设备树节点注册驱动调用probe函数初始化硬件创建设备节点(/dev)创建sysfs属性(/sys)

八、跨平台设备信息查询技巧

  1. 通用路径记忆法
  • 输入设备:/proc/bus/input/devices+/dev/input/event*
  • 显示设备:/sys/class/graphics/fb*+/dev/fb*
  • 串口设备:/sys/class/tty/ttyS*+/dev/ttyS*
  1. 设备特征过滤
# 查找所有I2C设备find/sys -name"i2c-*"-type d# 查找所有输入设备grep-l"Name="/sys/class/input/input*/name
  1. 动态设备监控
# 监控设备插拔事件udevadm monitor --property# 监控输入事件evtest --grab /dev/input/event0
  1. 自动化查询脚本
#!/bin/bashecho"===== Input Devices ====="cat/proc/bus/input/devicesecho"===== Frame Buffers ====="ls/sys/class/graphics/fb*/name|xargs-I{}sh-c'echo -n "{}: "; cat {}'echo"===== I2C Devices ====="fori2cin$(find/sys/bus/i2c/devices/ -name"*-*");doecho-n"$i2c: ";cat$i2c/name2>/dev/null||echo"No name"done

通过掌握这些目录结构和工具,您将能够快速定位和解决Linux系统中的设备相关问题,无论是开发驱动还是调试硬件都能得心应手。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/7 5:35:19

一文看懂ARM Cortex-M内核中断:嵌入式设备的“高效指挥官”

在单片机、智能手环、传感器模块这些嵌入式设备里,中断机制更精准、更高效——这背后的核心,就是ARM Cortex-M内核的中断系统。它就像一位经验丰富的“指挥官”,能有条不紊地安排设备处理各种突发任务,让小小的芯片既能精准响应需…

作者头像 李华
网站建设 2026/3/5 6:30:45

埋点数据与UI操作的自动化校验:软件测试的核心挑战与解决方案

在移动应用和Web开发中,埋点数据(如用户点击、页面浏览等行为日志)与UI操作(用户界面交互)的关联校验是确保产品质量的关键环节。自动化校验能显著提升测试效率,减少人工误差,但实现过程中面临数…

作者头像 李华
网站建设 2026/3/8 4:38:21

学长亲荐!10个AI论文网站测评:研究生开题报告神器推荐

学长亲荐!10个AI论文网站测评:研究生开题报告神器推荐 学术写作工具测评:2026年研究生必备的AI论文网站推荐 在当前学术研究日益数字化的背景下,AI论文写作工具已成为研究生群体提升效率、优化内容质量的重要辅助。然而&#xff0…

作者头像 李华