sysfs 是个虚拟文件系统,挂在 /sys/ 目录下,作用是把内核里的设备、驱动、总线等信息暴露给用户空间。写代码控制LED、查CPU温度、配GPIO,本质都是在操作 /sys/ 里的文件。
1. 在哪里找到该文件?
/sys/ 目录下,常见子目录:
路径 内容
/sys/class/ 按类别分类的设备(gpio、leds、net等)
/sys/devices/ 真实的设备树,按总线层级排列
/sys/block/ 块设备(mmc、sda等)
/sys/bus/ 系统中的总线(platform、i2c、spi等)
例子:想控制GPIO,在 /sys/class/gpio/ 下找。
2. 如何操作?
和普通文件一样用 cat/echo 读写,但本质是内核驱动的回调函数:
shell编程的话:
# 读:查看引脚当前值
cat /sys/class/gpio/gpio44/value
# 写:设置电平
echo 1 >
/sys/class/gpio/gpio44/value
C编程的话:
在C代码里用 open()、read()、write() 也可以操作。
3. 能干什么?
典型应用:
控制开发板的GPIO。
GPIO /sys/class/gpio/gpioX/value
配置开发板的LED等。
LED /sys/class/leds/xxx/brightness
总结:
sysfs = 内核给的“控制面板”。每个文件背后都有一小段驱动代码,读文件就是调用这段代码。/sys/class/ 是最常用的入口,设备按类别归好类了,直接找就行。4.这样的好处:
sysfs让应用层开发者不用写内核驱动,就能通过读写文件的方式操作硬件,极大降低了嵌入式开发的门槛。特别适合新手小白。