嵌入式 Linux LED 闪烁守护进程:存在吗?

pin*_*ept 4 daemon embedded-linux

我之前见过嵌入式开发板有一个像心跳一样闪烁的 LED,表明该开发板仍在执行代码。我想在我正在开发的嵌入式 Linux 板上做类似的事情。鉴于这是一段相当微不足道的代码,在我看来,有人可能已经为 Linux 编写了一个守护进程来执行此操作,但我还没有找到任何证据。

请注意,OS X Server 的 heartbeatd 和高可用性 Linux心跳守护进程并不是我想要的——它们都通过 IP 网络或类似的网络来协调系统可用性。

假设我正在寻找的东西不存在,我也对有关如何编写一个守护进程来切换引脚同时最大限度地减少资源使用的建议感兴趣。在什么更新率下,cron 会变成一个愚蠢的想法?

(我也不想听到人们滔滔不绝地谈论正在睡觉的 MacBook Pro 上的 LED,如果这出于某种原因似乎相关的话。)

谢谢。

Rob*_*obᵩ 6

LED 心跳是一个内置的内核函数。假设您有 LED 的设备驱动程序,则打开心跳的步骤如下:

$ echo "heartbeat" > /sys/class/leds/MyLed/trigger
Run Code Online (Sandbox Code Playgroud)

查看触发器列表(MMC 活动、心跳等)

$ cat /sys/class/leds/MyLed/trigger
Run Code Online (Sandbox Code Playgroud)

请drivers/leds/ledtrig-heartbeat.c参阅http://www.avrfreaks.net/wiki/index.php/Documentation:Linux/LEDs

心跳的有趣之处在于其模式是动态的。基本模式是重击-重击-暂停,就像人类的心跳一样。但心跳的速率是由平均负载控制的!轻负载时,心跳频率约为每分钟 50 次。较重的负载会导致更快的跳动,直到达到约 180 bpm 的最大速度。