一文解析Linux驱动 | 在驱动中创建sysfs接口
前言
在一些linux开发板中,经常可以看到通过echo的方式来直接控制硬件或者修改驱动,例如:
这是怎么做到呢?
实际上,这是因为在驱动中提供了sysfs接口给用户使用,使得用户可以通过cat或者echo命令来查看和修改驱动中某些变量的值。
下面介绍驱动中创建sysfs接口的方法。
sysfs接口创建
基本步骤:
1、使用DEVICE_ATTR声明一个sys节点
led_status:在sys接口中显示的节点名字
0600:表示操作这个led_status节点的权限
led_status_show:使用cat命令查看sys接口时调用的函数
led_status_store:使用echo命令往sys接口写入内容时调用的函数
2、完成sys节点的读写函数
示例中,led_status_show()函数和led_status_store()函数的作用分为打印led变量的值和修改led变量的值.
3、定义struct attribute和struct attribute_group数组
上述使用了DEVICE_ATTR声明节点名字为led_status, 则struct attribute名字应为:dev_attr_ + (节点名) + .attr。所以名字为dev_attr_led_status.attr。
【文章福利】小编推荐自己的Linux内核技术交流群:【749907784】整理了一些个人觉得比较好的学习书籍、视频资料共享在群文件里面,有需要的可以自行添加哦!!!(含视频教程、电子书、实战项目及代码)


4、在probe函数中调用sysfs_create_group()函数注册sysfs接口
完整例子
设备树:
驱动:
驱动加载后,就可以在linux终端中,使用cat和echo命令来查看和修改驱动中led变量的值。例如:
原文作者:嵌入式Linux充电站


