泰山派:点灯!- 了解与控制Led的使用方法。

发布于 2026-04-21 更新于 2026-04-21 开发硬件

起因:

因为最近在开发 NGSP(Github: NullCraftOrg/game-server-panel) 这个项目,为了测试跨平台能力,翻箱倒柜找到了这块ARM开发板:泰山派RK3566,刚好Armbian也针对RK35XX出了可以用的系统,还包含了SDK,直接利用起来。

为什么要写这篇文章呢?因为泰山派使用Armbian的系统主板上集成的Led小灯是不会跟随系统启动点亮的,这导致我无法通过外观判断系统是否启动了,所以翻找了文档,发现Led可以通过触发器来控制点亮,例如我这个小需求只需要通过设置对应颜色Led的触发器(trigger)为default-on即可跟随系统启动点亮了。

所以我顺便简单记录一下控制开发板上的Led灯上的其它功能!

根据官方开发文档:点灯部分可查看原始内容,以下为我对Armbian系统上使用的个人整理

系统环境:

我使用了 Armbian 基于 Debian13 构建的系统,包含了基本的RK驱动包和SDK,比立创官方提供的系统镜像可折腾空间大一些,缺点是刷入后无法使用 Loader 更新固件,需要短接开启 MASKROM 模式。

了解LED:

查看 led 存放位置

1
2
root@tspi:~# ls /sys/class/leds/
mmc1:: status-blue status-green status-red

分别对应控制目录:RGB:蓝色(status-blue) 绿色(status-green) 红色(status-red)

每个Led目录下都有对应的属性、控制器和触发器

进入一个灯的文件夹查看:

1
2
root@tspi:~# ls /sys/class/leds/status-blue
brightness device max_brightness power subsystem trigger uevent

led 文件夹内容说明:

通过设置brightness控制灯的状态

1
2
3
4
# 点亮蓝色 LED
echo 1 > /sys/class/leds/status-blue/brightness
# 熄灭蓝色 LED
echo 0 > /sys/class/leds/status-blue/brightness

触发器(trigger)说明

1
2
root@tspi:~# cat /sys/class/leds/status-blue/trigger 
[none] usb-gadget usb-host kbd-scrolllock kbd-numlock kbd-capslock kbd-kanalock kbd-shiftlock kbd-altgrlock kbd-ctrllock kbd-altlock kbd-shiftllock kbd-shiftrlock kbd-ctrlllock kbd-ctrlrlock disk-activity disk-read disk-write mtd nand-disk heartbeat cpu cpu0 cpu1 cpu2 cpu3 activity default-on panic usbport mmc2 mmc0 mmc1 rfkill-any rfkill-none bluetooth-power rfkill0 hci0-power rfkill1

我根据不同功能的触发器分为以下几种类型(个人见解):

  1. 基本类型:代表直接控制LED为固定显示状态的(比起叫触发器我更喜欢叫它控制器)。
  2. 事件触发:通过预设好的事件来触发更新LED状态的,例如:

1. 基本类型触发器

2. 事件类型触发器

触发器使用示例:

1
2
3
4
5
6
7
8
# 开启蓝色LED
echo "default-on" > /sys/class/leds/status-blue/trigger
# 关闭蓝色LED
echo "none" > /sys/class/leds/status-blue/trigger
# 系统活跃状态
echo "activity" > /sys/class/leds/status-blue/trigger
# MMC读写状态
echo "mmc1" > /sys/class/leds/status-green/trigger

// TODO
更多玩法研究中…

#Linux #硬件开发 #折腾