请选择 进入手机版 | 继续访问电脑版

狗趴(GodPub),开源硬件学习与实践

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 7239|回复: 0

【Joytag 香蕉派】禁用香蕉派BananaPi M3上恼人的绿色LED

[复制链接]

84

主题

143

帖子

725

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
725
QQ
发表于 2016-12-21 10:58:49 | 显示全部楼层 |阅读模式


BananaPi M3

BananaPi  M3是一款类似的 开源硬件单板计算机,具有如下特征:
  • 八核1.8GHz 强力CPU.
  • 2 GB LPDDR3 内存.
  • 8 GB eMMC储存.
  • 板载Wifi & BT.
之前写过几篇文章介绍过这款板卡,详情参见本文底部链接。

恼人的LED

但是这款板卡上有个绿色的LED,默认系统安装上以后,这个LED就闪啊闪的。
这个LED亮度还挺高,尤其是晚上,晃的人睡不着觉。
于是乎,就想能不能关掉这个LED。
QQ群里问了一下专业人士,告诉我用电烙铁把这个LED焊下来。
呃,听起来似乎有点不靠谱。
百度一下,找到一个大神的这篇文章
【香蕉派进阶设置】一、关闭那个烦人的绿灯

大意是通过修改内核的配置文件达到关闭板载LED的目的
  • 首先编译bin2fex以及fex2bin两个工具
  • 用bin2fex将script.bin转换成fex格式(文本的配置文件)
  • 修改fex文件,将“leds_used = 1”改为等于0,另一个就是“leds_trigger_1”将双引号中的内容删除为空
  • 再用fex2bin转换回script.bin。

突然想起当年玩M1的时候也这样弄过,尽管也成功了,但是很繁琐。况且不知道是否试用于M3。
有没有更直接更简单的方式呢?

关闭方式

功夫不负有心人啊。
一顿胡乱查找后,终于发现了系统中这样一个目录

  1. /sys/class/leds/green_led
复制代码

这个是不是和板载LED有关呢?看看目录下都有啥?
  1. -rw-r--r-- 1 root root 4096 Dec 20 12:07 brightness

  2. -rw-r--r-- 1 root root 4096 Dec 20 12:59 delay_off

  3. -rw-r--r-- 1 root root 4096 Dec 20 12:59 delay_on

  4. lrwxrwxrwx 1 root root    0 Dec 20 12:01 device -> ../../../leds-gpio

  5. -r--r--r-- 1 root root 4096 Dec 20 12:01 max_brightness

  6. drwxr-xr-x 2 root root    0 Dec 20 11:56 power

  7. lrwxrwxrwx 1 root root    0 Dec 20 12:01 subsystem -> ../../../../../class/leds

  8. -rw-r--r-- 1 root root 4096 Dec 20 12:58 trigger

  9. -rw-r--r-- 1 root root 4096 Dec 18 20:17 uevent
复制代码

你一定会问是什么鬼?
经过我一番"苦心孤诣"的调研,总算大致搞明白三五分。

先来说这个brightness
字面上的意思就是亮度啦。这个值的默认值是255
我想当然的认为这个是PWM调制的亮度,实际上这个LED是接到数字口的,也就是说只有开|关两种状态。
传入0关闭,其它非零数字表示设置亮度为开
所以,要关闭LED,我们有个办法就是:
  1. echo 0 > /sys/class/leds/green_led/brightness
复制代码
默认[heartbeat]这个是选中的

看看,恼人的绿色LED是不是灭了??

更进一步

虽然我们已经关闭了这个绿色LED,但是实际上,我们只是把亮度关闭。
举例来说,好比我们开着电脑,但是把显示器关了。
那有没有办法彻底关闭这个LED呢?

让我们来看看/sys/class/leds/green_led/trigger这个文件
  1. <pre><code>cat /sys/class/leds/green_led/trigger
  2. none battery-charging-or-full battery-charging battery-full battery-charging-blink-full-solid ac-online usb-online rfkill0 mmc0 mmc1 mmc2 timer [heartbeat] backlight gpio default-on sunxi_respiration_trigger rfkill1 rfkill2 rfkill4
  3. </code></pre>
复制代码

所以这个破LED就像心跳似的一闪一闪的。
注(Bug?):
设置亮度为0,会改变/sys/class/leds/green_led/trigger 内容,默认为none
重新设置亮度为1,/sys/class/leds/green_led/trigger 内容,依旧为none,但是LED常亮

我们将其恢复默认,然后来看一下:
  1. echo 255 > /sys/class/leds/green_led/brightness

  2. echo heartbeat > /sys/class/leds/green_led/trigger
复制代码

是不是又像心跳一样一闪一闪啦?
然后直接关闭

  1. echo none > /sys/class/leds/green_led/trigger
复制代码

是不是灭啦?

秘籍哦

通过设置成timer,并设置delay_off和delay_on
就可以指定闪烁的时间间隔以及闪烁持续的时间。
更多玩法,你可以自己发掘啊。
我是写累了。

天理路上甚宽,稍游心,胸中便觉广大宏朗;
人欲路上甚窄,才寄迹,眼前俱是荆棘泥涂。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|狗趴(GodPub) Arduino&Raspberry Pi开源硬件学习与实践[QQ群:20085629]  

GMT+8, 2024-3-29 03:30 , Processed in 0.045059 second(s), 32 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表