news 2026/4/18 8:47:58

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/4/18 8:35:40

2026年从事GIS开发,有必要考研吗?学历门槛真相揭秘

近年来,高校毕业生人数持续攀升,从2021年的909万增至2025年的1,222万,五年间增幅达34.4%。 随着毕业生逐年增加,3S专业同学们的就业环境可以说是越来越卷,提升学历成了大家比较热门的选择之一。 有些考研的同学是为了…

作者头像 李华
网站建设 2026/4/18 3:34:43

多维度测试覆盖率评估模型:提升软件质量的核心引擎

在软件测试领域,覆盖率评估是衡量测试充分性的关键指标,而多维度模型通过整合代码、需求和风险视角,解决了单一指标的局限性。本文将深入探讨其理论框架、核心维度、实践应用及未来趋势,为测试团队提供可落地的优化路径。 一、多…

作者头像 李华
网站建设 2026/4/18 3:26:48

用户体验指标(LCP/FID/CLS)自动化采集实战指南

在当今数字化时代,用户体验(UX)已成为软件质量的核心评估维度。LCP(最大内容绘制)、FID(首次输入延迟)和CLS(累积布局偏移)作为Google Core Web Vitals的核心指标&#x…

作者头像 李华
网站建设 2026/4/18 3:34:57

用 Obsidian 打造AI笔记

介绍我在日常工作中发现,在大模型时代,Obsidian 是本地笔记的不二之选。特别是搭配大模型使用时,你可以随时调取本地笔记,就像随身携带了一套专属的知识库。这套体系一旦建立好,能极大地提升你的知识复用效率。安装访问…

作者头像 李华