OEC Turbo Debian Armbian 系统 LED 灯控

📢 适用恩山 hoiw 编译固件 Flash_Armbian_25.05.0_rockchip_efused-wxy-oec_bookworm_6.1.99_server_2025.03.20.img

💡 固件特性说明:此固件基于 Armbian 25.05.0,使用 Rockchip 平台,Linux 内核版本 6.1.99,适用于服务器场景。


开机自动关闭 LED 指示灯(Systemd 服务方案)

📝 方案简介

通过 Systemd 服务在系统启动时自动关闭所有 LED 指示灯,适用于需要减少光污染或降低功耗的场景。


🔧 操作步骤

1️⃣ 创建 LED 控制脚本

创建脚本文件 /usr/local/bin/led-off.sh

#!/bin/bash
# 关闭所有 LED 指示灯
for led in blue-led green-led red-led; do
    echo none > /sys/class/leds/$led/trigger    # 禁用自动触发器
    echo 0 > /sys/class/leds/$led/brightness    # 关闭亮度
done

执行命令创建文件:

sudo nano /usr/local/bin/led-off.sh

将上方脚本内容粘贴后保存(按Ctrl+X,然后Y,最后Enter)。

2️⃣ 设置脚本权限

sudo chmod +x /usr/local/bin/led-off.sh

💡 权限说明:+x使脚本可执行

3️⃣ 创建 Systemd 服务文件

创建服务文件/etc/systemd/system/led-off.service

[Unit]
Description=Disable LEDs at boot
After=multi-user.target    # 在多用户目标之后执行
Requires=multi-user.target

[Service]
Type=oneshot               # 一次性服务
ExecStart=/usr/local/bin/led-off.sh
RemainAfterExit=yes        # 服务执行后保持激活状态

[Install]
WantedBy=multi-user.target # 随多用户目标启动

执行命令创建:

sudo nano /etc/systemd/system/led-off.service

4️⃣ 启用并启动服务

# 重新加载 systemd 配置
sudo systemctl daemon-reload

# 启用服务(开机自启)
sudo systemctl enable led-off.service

# 立即启动服务
sudo systemctl start led-off.service

5️⃣ 验证服务状态

systemctl status led-off.service

预期输出示例:

● led-off.service - Disable LEDs at boot
     Loaded: loaded (/etc/systemd/system/led-off.service; enabled; preset: enabled)
     Active: active (exited) since [时间戳]
       Docs: man:systemd-sysv-generator(8)
    Process: 1234 ExecStart=/usr/local/bin/led-off.sh (code=exited, status=0/SUCCESS)
   Main PID: 1234 (code=exited, status=0/SUCCESS)

成功标志:看到active (exited)状态,且 LED 指示灯已熄灭。

6️⃣ 重启验证

sudo reboot

重启后 LED 应保持关闭状态。


恢复初始灯光控制(撤销 Systemd 控制)

📋 恢复步骤

1️⃣ 停止并禁用 Systemd 服务

# 停止服务
sudo systemctl stop led-off.service

# 禁用开机自启
sudo systemctl disable led-off.service

2️⃣ 删除相关文件(可选)

# 删除服务文件
sudo rm /etc/systemd/system/led-off.service

# 删除脚本文件
sudo rm /usr/local/bin/led-off.sh

3️⃣ 重新加载 Systemd 配置

sudo systemctl daemon-reload

4️⃣ 重启系统

sudo reboot

重启后 LED 指示灯将恢复固件默认的控制逻辑。


额外提示与说明

🔍 调试与排查

查看服务日志

sudo journalctl -u led-off.service

手动测试脚本

sudo /usr/local/bin/led-off.sh

⚠️ 注意事项

  1. 路径确认:确保设备中的 LED 路径正确,某些设备可能使用不同的命名
  2. 权限问题:脚本需要 root 权限访问/sys/class/leds/目录
  3. 兼容性:本方案适用于大多数 Linux 发行版,不限于 Armbian
  4. 备份建议:修改系统文件前建议备份

🔄 快速恢复脚本

如果需要临时恢复 LED 而不删除服务,可创建恢复脚本:

#!/bin/bash
# 恢复 LED 默认行为(心跳模式)
for led in blue-led green-led red-led; do
    echo heartbeat > /sys/class/leds/$led/trigger
done

状态检查清单

步骤 检查项 状态 备注
1 脚本文件是否存在 ☑️/☐ /usr/local/bin/led-off.sh
2 脚本可执行权限 ☑️/☐ ls -la /usr/local/bin/led-off.sh
3 服务文件是否存在 ☑️/☐ /etc/systemd/system/led-off.service
4 服务已启用 ☑️/☐ systemctl is-enabled led-off.service
5 服务运行状态 ☑️/☐ systemctl status led-off.service

✨ 完成! 现在你的设备将在启动时自动关闭 LED 指示灯,节省电力并减少光干扰。如需恢复默认设置,按恢复步骤操作即可。