准备工作
开启SSH
SSH登陆FnOS
切换到 root
sudo -i
1、更新系统及软件包
apt update
apt upgrade
2、安装I2C 与 LED 的控制芯片通信
apt install -y i2c-tools
3、在启动时运行脚本
创建脚本:创建一个应在启动时执行的脚本。例:
sudo nano /usr/local/bin/startup-script.sh
脚本内容:
-----------------------代码------------------------------
#!/bin/bash
echo "System is starting up" >> /var/log/startup-script.log
modprobe -v i2c-dev
i2cset -y 0 0x26 0xa0 1 b # 红色关闭
i2cset -y 0 0x26 0xa0 2 b # 白色关闭
i2cset -y 0 0x26 0x51 0 b # 慢闪关闭
i2cset -y 0 0x26 0x50 0 b # 永久打开
i2cset -y 0 0x26 0xb1 2 b # 白色打开
i2cset -y 0 0x26 0x50 1 b # 快闪打开
sleep 10
i2cset -y 0 0x26 0xa0 1 b # 红色关闭
i2cset -y 0 0x26 0xa0 2 b # 白色关闭
i2cset -y 0 0x26 0x51 0 b # 慢闪关闭
i2cset -y 0 0x26 0xb1 2 b # 白色打开
i2cset -y 0 0x26 0x50 0 b # 永久打开
sleep 1
i2cset -y 0 0x26 0xa0 1 b # 红色关闭
i2cset -y 0 0x26 0xa0 2 b # 白色关闭
i2cset -y 0 0x26 0x51 0 b # 慢闪关闭
i2cset -y 0 0x26 0xb1 2 b # 白色打开
i2cset -y 0 0x26 0x50 0 b # 永久打开
-----------------------代码------------------------------
使脚本可执行:
sudo chmod +x /usr/local/bin/startup-script.sh
创建 systemd 服务:
sudo nano /etc/systemd/system/startup-script.service
配置服务文件内容:
-----------------------代码------------------------------
[Unit]
Description=Startup Script
[Service]
Type=oneshot
ExecStart=/usr/local/bin/startup-script.sh
[Install]
WantedBy=multi-user.target
-----------------------代码------------------------------
启用服务:
sudo systemctl enable startup-script.service
在关闭时运行脚本
创建脚本:创建一个应在关机时执行的脚本。例:
sudo nano /usr/local/bin/shutdown-script.sh
向脚本添加内容:
-----------------------代码------------------------------
#!/bin/bash
echo "System is shutting down" >> /var/log/shutdown-script.log
i2cset -y 0 0x26 0xa0 1 b # 红色关闭
i2cset -y 0 0x26 0xa0 2 b # 白色关闭
i2cset -y 0 0x26 0x51 0 b # 慢闪关闭
i2cset -y 0 0x26 0x50 0 b # 永久打开
i2cset -y 0 0x26 0xb1 1 b # 红色打开
i2cset -y 0 0x26 0x50 1 b # 快闪打开
sleep 5
i2cset -y 0 0x26 0xa0 1 b # 红色关闭
i2cset -y 0 0x26 0xa0 2 b # 白色关闭
i2cset -y 0 0x26 0x51 0 b # 慢闪关闭
i2cset -y 0 0x26 0xb1 1 b # 红色打开
i2cset -y 0 0x26 0x50 0 b # 永久打开
sleep 1
i2cset -y 0 0x26 0xa0 1 b # 红色关闭
i2cset -y 0 0x26 0xa0 2 b # 白色关闭
i2cset -y 0 0x26 0x51 0 b # 慢闪关闭
i2cset -y 0 0x26 0xb1 1 b # 红色打开
i2cset -y 0 0x26 0x50 0 b # 永久打开
-----------------------代码------------------------------
使脚本可执行:
sudo chmod +x /usr/local/bin/shutdown-script.sh
创建 systemd 服务:
sudo nano /etc/systemd/system/shutdown-script.service
配置服务文件内容:
-----------------------代码------------------------------
[Unit]
Description=Shutdown Script
DefaultDependencies=no
Before=shutdown.target reboot.target halt.target
[Service]
Type=oneshot
ExecStart=/usr/local/bin/shutdown-script.sh
[Install]
WantedBy=halt.target reboot.target shutdown.target
-----------------------代码------------------------------
启用服务:
sudo systemctl enable shutdown-script.service
附上控灯的代码可以自己替换成自己喜欢的。
i2cset -y 0 0x26 0xb1 1 b # 红色打开
i2cset -y 0 0x26 0xa0 1 b # 红色关闭
i2cset -y 0 0x26 0xb1 2 b # 白色打开
i2cset -y 0 0x26 0xa0 2 b # 白色关闭
i2cset -y 0 0x26 0x50 0 b # 永久打开
i2cset -y 0 0x26 0x50 1 b # 快闪打开
i2cset -y 0 0x26 0x50 2 b # 呼吸打开
i2cset -y 0 0x26 0x51 1 b # 慢闪打开
i2cset -y 0 0x26 0x51 0 b # 慢闪关闭
方法出自https://github.com/miskcoo/ugreen_leds_controller/issues/6#issuecomment-2156807225