使用Linux 内核的platform 框架驱动led灯

  • 1.使用menuconfig使能(可跳过,系统默认配置好)
  • 2.设备树节点编写
  • 3.运行测试

我们平时要使用设备驱动的时候,总是需要我们自己去编写驱动,像 LED 灯这样非常基础的设备驱动,Linux 内核已经集成了。Linux 内核的 LED 灯驱动采用 platform 框架,因此我们只需要按照要求在设备树文件中添加相应的 LED 节点即可

1.使用menuconfig使能(可跳过,系统默认配置好)

在终端进入内核源码中输入命令:make menuconfig
按照如下路径打开 LED 驱动配置项:
-> Device Drivers
-> LED Support (NEW_LEDS [=y])
->LED Support for GPIO connected LEDs
将其编译进 Linux 内核,也即是在此选项上按下“Y”键,使此选项前面变为“<*>”

重新make编译一下 Linux 内核,然后使用新编译出来的 zImage 镜像启动开发板

2.设备树节点编写

打开自己板子对应的 .dts设备树文件找到“ /{ }”根文件下添加相应的设备节点

如图所示,我在结尾添加了一个设备节点,名字为dtsleds(根据自己喜欢命名)。
然后compatible = “gpio-leds”;一定要有并且不能修改,因为系统会自动匹配这个名字。
设置 label 属性,此属性为可选,每个子节点都有一个 label 属性,
label 属性一般表示LED 灯的名字,比如以颜色区分的话就是 red、green 等等。
每个子节点必须要设置 gpios 属性值,表示此 LED 所使用的 GPIO 引脚!可以设置“linux,default-trigger”属性值,也就是设置 LED 灯的默认功能
backlight:LED 灯作为背光。
default-on:LED 灯打开
heartbeat:LED 灯作为心跳指示灯,可以作为系统运行提示灯。
ide-disk:LED 灯作为硬盘活动指示灯。
timer:LED 灯周期性闪烁,由定时器驱动,闪烁频率可以修改
可以设置“default-state”属性值,可以设置为 on、off 或 keep,为 on 的时候 LED 灯默
认打开,为 off 的话 LED 灯默认关闭,为 keep 的话 LED 灯保持当前模式。
上面关于pinctrl的语句是关于pinctrl子系统的,需要用的话要创建相应的节点,不会使用的话可以不要写上去,忽略就好了。

3.运行测试

1)将设备树文件保存后编译出dtb文件加载到开发板
2)启 动 以 后 查 看/sys/bus/platform/devices/dtsleds 这个目录是否存在,如果存在的话就如到此目录中

3)进入到/sys/devices/platform/dtsleds/leds/red/内对led的属性进行操作

输入echo 1 > brightness 打开led灯,0便是关闭
echo heartbeat > trigger 表示led以心跳灯闪烁
根据现象修改调试就好了设备树节点就好了

如何使用linux系统自带的led驱动相关推荐

  1. NanoPi NEO Air使用九:使用Linux内核自带的LED驱动

    NanoPi NEO Air使用一:介绍 NanoPi NEO Air使用二:固件烧录 NanoPi NEO Air使用三:OverlayFS.CPU温度和频率.wifi.蓝牙.npi-config ...

  2. Linux 内核自带的 LED 灯驱动

    系列文章 I.MX6ULL 手册查找使用方法 实战点亮LED(寄存器版) I.MX6ULL 手册查找使用方法 实战点亮LED(固件库版本) linux 字符设备驱动实战 linux LED设备驱动文件 ...

  3. linux系统自带python_Linux删除系统自带版本Python过程详解

    巨坑,切忌不要轻易删除linux系统自带版本的python 1.卸载python(防止未卸载干净) rpm -qa|grep python|xargs rpm -ev --allmatches --n ...

  4. 如何在VMware中安装Linux系统(带界面)~新手向

    如何在VMware中安装Linux系统(带界面)~新手向 1.打开VMware虚拟机 2.创建新的虚拟机 3.加载ISO 4.命名虚拟机 5.指定磁盘容量 6.自定义硬件 7.启动虚拟机 1.打开VM ...

  5. linux 无线网卡 免驱动,Linux系统下安装USB无线网卡驱动方法

    Linux系统下安装USB无线网卡驱动方法 具体安装过程分了如下步骤进行:确认 usb-wifi 设施型号 , 根据确认结果选择驱动信息. 安装驱动 mt7601u , 假如已经自带跳过此步骤 配置驱 ...

  6. linux系统添加打印机失败,怎么在Linux 系统下安装打印机的驱动 - 驱动管家

    关于Linux 系统相信经常使用电脑的朋友一定不陌生,它作为免费使用和自由传播的类Unix操作系统,同时也是一个性能稳定的多用户网络操作系统.关于这个免费的系统,它的版本也是非常得多.所以这个操作系统 ...

  7. linux怎么每次都要手动启动网卡驱动,Linux系统如何快速安装网卡驱动_Shell script即可解决 - 驱动管家...

    Linux系统内核在升级的时候,网卡驱动就要重新安装一次,那么有什么简单的方法进行网卡驱动的安装呢?下面小编就给大家介绍下Linux使用Shellscript安装网卡驱动的方法,一起来了解下吧. ## ...

  8. linux显示 cron 服务是否正在运行_通过Linux系统自带日志监控系统安全

    引 言 如今绝大多数网络监控运维服务系统都是基于Linux操作系统开发的,作为一款网络安全检测防护设备,其本身的安全防护也是需要关注的重要环节之一.而几乎所有需要分析的信息均来源于各种日志,日志对于安 ...

  9. Linux系统自带日志管理工具rsyslog简单介绍

    1,可以已查看本机的rsyslog服务状态 sudo systemctl status rsyslog 2,可以查看服务的包的版本及配置所在目录 2.1,可以看出这个 /etc/logrotate.d ...

最新文章

  1. mysql 内存占用过多的解决方法
  2. python经典一百道习题(转自奶酪博客)
  3. 361766103.jpg
  4. 百度推出海外版网盘:竟免费不限速
  5. mysql备份恢复数据库据/表
  6. BZOJ3938 UOJ88:[集训队互测2015]Robot——题解
  7. c语言双向链表实现航班系统,双向链表C语言实现
  8. 子DIV块中设置margin-top时影响父DIV块位置的解决办法
  9. RTMP网页视频抓取
  10. 原版XP SP3安装程序集成识别SATA的AHCI驱动的解决方法
  11. mysql sniffer下载_Gitee 极速下载
  12. SAP 报表设计器相关TCODE
  13. 基于ISIS路由协议的路由聚合
  14. CSDN论坛--提问的智慧
  15. 振耀退休感言及海辉执行董事长视频访谈
  16. 数据准备脚本:Python Pandas OR esProc SPL?
  17. win10连Android机,win10系统Android手机或iPhone连接的操作方法
  18. html代码复制繁体,JavaScript_简体中文转换繁体中文(实现代码),复制代码 代码如下:var Default_is - phpStudy...
  19. 云服务器挂马清理实例
  20. 忘了微信密码怎么办_微信密码忘了手机号也换了教你怎么办

热门文章

  1. webpack.base.conf.js文件
  2. 去掉RadioButton前面的小圆圈的两种方法
  3. 树莓派利用红外线实现CSI摄像头自动拍照
  4. 统计学习 EM算法 Python实现
  5. c#教程之通过数据绑定修改数据
  6. 关于此实现不是 Windows 平台 FIPS 验证的加密算法的一部分。error
  7. 总听大佬说起数字化转型,但你真正理解什么是数字化吗?( 2017-02-14 大愚若智 译 )
  8. 2023年华中科技大学土地资源管理考研上岸前辈备考经验
  9. C++ 11 14 RAII经典用法
  10. Allegro修改via net