树莓派LED的触发器trigger
树莓派当前支持很多不同的LED触发器(trigger)
none rc-feedback kbd-scrolllock kbd-numlock kbd-capslock kbd-kanalock kbd-shiftlock kbd-altgrlock kbd-ctrllock kbd-altlock kbd-shiftllock kbd-shiftrlock kbd-ctrlllock kbd-ctrlrlock timer oneshot heartbeat backlight cpu cpu0 cpu1 cpu2 cpu3 default-on input panic actpwr [mmc0] rfkill-any rfkill-none
以下是树莓派LED触发器的含义解释,结合系统级功能与硬件控制逻辑进行分类说明:
1. 基础控制类
- none: 禁用所有触发器,LED保持常亮或常灭状态,需手动控制。例如在GPIO代码中通过
GPIO.output()
直接控制LED电平。 - default-on: 默认开启,通电后LED自动点亮,无需外部事件触发。
2. 硬件活动指示
- mmc0: LED状态与SD卡(mmc0设备)的读写活动同步闪烁,常用于指示存储设备工作状态。
- actpwr: 树莓派电源状态指示灯,通常与电源输入直接关联。
- cpu / cpu0-cpu3: LED根据CPU核心负载变化,例如高负载时闪烁频率加快。
3. 键盘状态联动
- kbd-*(如kbd-scrolllock、kbd-capslock): LED与键盘锁定键状态绑定。例如
kbd-capslock
使LED在大写锁定开启时亮起,类似传统键盘指示灯逻辑。这类触发器需配合输入设备(如外接键盘)使用。
4. 系统状态与故障指示
- heartbeat: LED以心跳节奏闪烁,表示系统正常运行(类似服务器心跳检测)。
- panic: 系统崩溃或内核panic时,LED会以特定模式闪烁。
- rfkill-any/rfkill-none: 与无线模块(如Wi-Fi/蓝牙)状态关联,
rfkill-any
在任一模块启用时触发,rfkill-none
则在全部禁用时触发。
5. 定时与动态效果
- timer: LED按固定间隔闪烁,频率可通过系统文件调整。
- oneshot: 单次触发,LED在事件发生后闪烁一次后恢复原状态。
- backlight: LED亮度与屏幕背光联动,需配合显示设备使用。
6. 输入事件响应
- input: LED响应输入设备(如鼠标或键盘)活动,例如按键时闪烁。在GPIO代码中,类似通过中断检测按键按下并触发回调函数。
典型应用场景
- 硬件调试: 使用
mmc0
或cpu
触发器监控存储或CPU负载。 - 状态反馈: 通过
heartbeat
或panic
快速判断系统健康度。 - 交互设计: 结合
kbd-*
触发器与物理按键,实现用户输入状态可视化。 - 自定义控制: 通过
none
模式完全由代码控制LED,例如在按键回调中切换LED状态。
配置方法
触发器可通过修改/sys/class/leds/ledX/trigger
文件设置(如echo timer | sudo tee /sys/class/leds/led0/trigger
)。GPIO编程中则需结合库函数实现类似逻辑,例如通过中断和延时防抖(bouncetime
参数)模拟触发器效果。
树莓派LED的触发器trigger
https://dnacore.github.io/post/13c380c6-6a29-46ac-b117-2a25eef3e865.html