news 2026/4/3 3:07:45

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/1 19:08:13

Spring 6.1新核心:JdbcClient,统一JdbcTemplate两套API的终极方案

01 引言 企业中直接使用JDBC的进行CRUD操作的可能比较少,但是很多框架底层或者测试的时候可能用的比较多,因为Spring官方自带,注入可以直接使用,无需三方依赖。 因为直接使用的比较少,所以关注的人可能不是很多。在浏览…

作者头像 李华
网站建设 2026/3/6 9:20:05

国际化(i18n)UI 自动化验证方案

随着全球化应用普及,国际化(i18n)UI 测试成为软件质量保障的关键环节。本文针对软件测试从业者,系统阐述自动化验证方案的设计与实施,覆盖资源文件管理、Locale 动态适配、前端元素校验等核心模块,旨在提升…

作者头像 李华
网站建设 2026/3/26 8:37:34

Directory Opus(文件管理器专业版) 安装版 绿色版

Directory Opus 不仅仅是一个简单的文件管理器,它还能让你的电脑完全为你掌控,凭借灵活的用户界面和超乎想象的可配置性,你可以对 Opus 进行量身定制,以简化工作流程。 软件特点 双窗格、双树形、多标签。 对文件夹进行过滤、排序…

作者头像 李华
网站建设 2026/4/1 2:26:30

Gitee DevOps平台:本土化创新如何重塑中国企业的研发效能格局

Gitee DevOps平台:本土化创新如何重塑中国企业的研发效能格局 在全球数字化转型浪潮中,中国企业的技术选型正在经历一场静悄悄的革命。当国际主流DevOps工具仍在全球市场占据主导地位之时,以Gitee为代表的本土化DevOps平台正凭借其独特的&quo…

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

Docker核心技术:深入理解网络模式 (Bridge, Host, None, Container)

Docker 核心技术:深入理解网络模式 (Bridge, Host, None, Container) Docker 的网络模式是其核心功能之一,直接决定了容器如何与宿主机、其他容器、外部网络通信。Docker 提供了四种内置网络模式(基于 Linux 网络命名空间和 veth pair 等内核…

作者头像 李华