嘿,我是客服GG!
排行榜 统计
  • 建站日期:2020-12-12
  • 文章总数:110 篇
  • 评论总数:1 条
  • 分类总数:12 个
  • 最后更新:昨天 23:19
热文群晖

猫盘ARM群晖 风扇起停脚本

本文阅读 2 分钟
广告
代码转载自矿渣论坛,启停脚本前提是硬盘休眠,本站的三合一脚本已修复硬盘休眠。

PS:黑群晖通用修改休眠原理

主要解决的是:硬件比如风扇、LED灯缺失,将报错日志转移到内存

方法:root后修改/etc/init/syslog-ng.conf,添加如下代码

#scemd bind
touch /tmp/scemd.log.new || true
chmod 660 /tmp/scemd.log.new || true
chown system:log /tmp/scemd.log.new || true
mount -o bind /tmp/scemd.log.new /var/log/scemd.log || true
#

1254910757.png

风扇起停脚本原理

通过查看硬盘休眠状态控制风扇GPIO关闭,针对小猫是完全关闭风扇,针对中大猫是降半速。(我觉得没蛋用)

下面代码添加到任务计划里面执行,控制面板—任务计划—新增—触发的任务—用户自定义的脚本

两个脚本的区别是:一个休眠时风扇停转or降速LOGO灯是彩色的,一个LOGO灯是单色的。。。

1、风扇彩虹灯脚本

mkdir -p /tmp/jioben
cat > /tmp/jioben/ledfan.sh <<EOF
#!/bin/sh
if [ ! -d /sys/class/gpio/gpio450 ] ; then
echo 450 > /sys/class/gpio/export
fi
echo out > /sys/class/gpio/gpio450/direction
while true
do
sata_temp="\$(smartctl -a /dev/hda -d ata | sed -n '/Temperature_Celsius/p' | awk '{print $10}')"
sata="\$(hdparm -C /dev/sda |grep 'drive'|awk '{print \$4}')"
if [ \$sata_temp -ge 50 ];then
if [ -f "/tmp/jioben/led31.flag" ];then 
sleep 15
continue
fi
i2cset -y -f 0 0x45 0x00 0x55
i2cset -y -f 0 0x45 0x01 0x01
i2cset -y -f 0 0x45 0x30 0x07
i2cset -y -f 0 0x45 0x31 0x72
i2cset -y -f 0 0x45 0x32 0x72
i2cset -y -f 0 0x45 0x33 0x72
i2cset -y -f 0 0x45 0x37 0x44
i2cset -y -f 0 0x45 0x3a 0x55
i2cset -y -f 0 0x45 0x3d 0x66
i2cset -y -f 0 0x45 0x38 0x44
i2cset -y -f 0 0x45 0x3b 0x55
i2cset -y -f 0 0x45 0x3e 0x66
i2cset -y -f 0 0x45 0x39 0x40
i2cset -y -f 0 0x45 0x3c 0x40
i2cset -y -f 0 0x45 0x3f 0x40
i2cset -y -f 0 0x45 0x34 255
i2cset -y -f 0 0x45 0x35 255
i2cset -y -f 0 0x45 0x36 255
echo 1 > /sys/class/gpio/gpio450/value
rm -rf /tmp/jioben/led*.flag
touch /tmp/jioben/led31.flag
fi
if [ \$sata_temp -ge 36 ] && [ \$sata_temp -lt 50 ];then
if [ -f "/tmp/jioben/led33.flag" ];then
sleep 15 
continue
fi
i2cset -y -f 0 0x45 0x00 0x55
i2cset -y -f 0 0x45 0x01 0x01
i2cset -y -f 0 0x45 0x30 0x07
i2cset -y -f 0 0x45 0x31 0x72
i2cset -y -f 0 0x45 0x32 0x72
i2cset -y -f 0 0x45 0x33 0x72
i2cset -y -f 0 0x45 0x37 0x44
i2cset -y -f 0 0x45 0x3a 0x55
i2cset -y -f 0 0x45 0x3d 0x66
i2cset -y -f 0 0x45 0x38 0x44
i2cset -y -f 0 0x45 0x3b 0x55
i2cset -y -f 0 0x45 0x3e 0x66
i2cset -y -f 0 0x45 0x39 0x40
i2cset -y -f 0 0x45 0x3c 0x40
i2cset -y -f 0 0x45 0x3f 0x40
i2cset -y -f 0 0x45 0x34 255
i2cset -y -f 0 0x45 0x35 255
i2cset -y -f 0 0x45 0x36 255
echo 1 > /sys/class/gpio/gpio450/value
rm -rf /tmp/jioben/led*.flag
touch /tmp/jioben/led33.flag
fi
if [ \$sata_temp -lt 36 ];then
if [ -f "/tmp/jioben/led32.flag" ];then
sleep 15 
continue
fi
i2cset -y -f 0 0x45 0x00 0x55
i2cset -y -f 0 0x45 0x01 0x01
i2cset -y -f 0 0x45 0x30 0x07
i2cset -y -f 0 0x45 0x31 0x72
i2cset -y -f 0 0x45 0x32 0x72
i2cset -y -f 0 0x45 0x33 0x72
i2cset -y -f 0 0x45 0x37 0x44
i2cset -y -f 0 0x45 0x3a 0x55
i2cset -y -f 0 0x45 0x3d 0x66
i2cset -y -f 0 0x45 0x38 0x44
i2cset -y -f 0 0x45 0x3b 0x55
i2cset -y -f 0 0x45 0x3e 0x66
i2cset -y -f 0 0x45 0x39 0x40
i2cset -y -f 0 0x45 0x3c 0x40
i2cset -y -f 0 0x45 0x3f 0x40
i2cset -y -f 0 0x45 0x34 255
i2cset -y -f 0 0x45 0x35 255
i2cset -y -f 0 0x45 0x36 255
echo 0 > /sys/class/gpio/gpio450/value
rm -rf /tmp/jioben/led*.flag
touch /tmp/jioben/led32.flag
fi
sleep 15
done
EOF
bash /tmp/jioben/ledfan.sh

2、风扇单色呼吸灯脚本

mkdir -p /tmp/jioben
cat > /tmp/jioben/ledfan.sh <<EOF
#!/bin/sh
if [ ! -d /sys/class/gpio/gpio450 ] ; then
echo 450 > /sys/class/gpio/export
fi
echo out > /sys/class/gpio/gpio450/direction
i2cset -y -f 0 0x45 0x00 0x55
i2cset -y -f 0 0x45 0x01 0x01

echo 1 > /tmp/jioben/leds.flag
while true
do
sata_temp="\$(smartctl -a /dev/hda -d ata | sed -n '/Temperature_Celsius/p' | awk '{print $10}')"
sata="\$(hdparm -C /dev/sda |grep 'drive'|awk '{print \$4}')"
if [ \$sata = standby ];then
led="0x03"
leds="0"
fi
if [ \$sata = active/idle ];then
led="0x72"
leds="1"
fi
if [ \$sata_temp -ge 50 ];then
if [ -f "/tmp/jioben/led31.flag" ];then 
sleep 15
continue
fi
i2cset -y -f 0 0x45 0x32 0x00
i2cset -y -f 0 0x45 0x33 0x00
i2cset -y -f 0 0x45 0x31 \${led}
i2cset -y -f 0 0x45 0x00 0x55
i2cset -y -f 0 0x45 0x01 0x01
i2cset -y -f 0 0x45 0x30 0x07
i2cset -y -f 0 0x45 0x32 0x72
i2cset -y -f 0 0x45 0x33 0x72
i2cset -y -f 0 0x45 0x37 0x44
i2cset -y -f 0 0x45 0x3a 0x55
i2cset -y -f 0 0x45 0x3d 0x66
i2cset -y -f 0 0x45 0x38 0x44
i2cset -y -f 0 0x45 0x3b 0x55
i2cset -y -f 0 0x45 0x3e 0x66
i2cset -y -f 0 0x45 0x39 0x40
i2cset -y -f 0 0x45 0x3c 0x40
i2cset -y -f 0 0x45 0x3f 0x40
i2cset -y -f 0 0x45 0x34 255
echo 1 > /sys/class/gpio/gpio450/value
rm -rf /tmp/jioben/led*.flag
touch /tmp/jioben/led31.flag
echo \${leds} > /tmp/jioben/leds.flag
fi
if [ \$sata_temp -ge 36 ] && [ \$sata_temp -lt 50 ];then
if [ -f "/tmp/jioben/led33.flag" ];then
sleep 15 
continue
fi
i2cset -y -f 0 0x45 0x31 0x00
i2cset -y -f 0 0x45 0x32 0x00
i2cset -y -f 0 0x45 0x33 \${led}
i2cset -y -f 0 0x45 0x00 0x55
i2cset -y -f 0 0x45 0x01 0x01
i2cset -y -f 0 0x45 0x30 0x07
i2cset -y -f 0 0x45 0x31 0x72
i2cset -y -f 0 0x45 0x32 0x72
i2cset -y -f 0 0x45 0x37 0x44
i2cset -y -f 0 0x45 0x3a 0x55
i2cset -y -f 0 0x45 0x3d 0x66
i2cset -y -f 0 0x45 0x38 0x44
i2cset -y -f 0 0x45 0x3b 0x55
i2cset -y -f 0 0x45 0x3e 0x66
i2cset -y -f 0 0x45 0x39 0x40
i2cset -y -f 0 0x45 0x3c 0x40
i2cset -y -f 0 0x45 0x3f 0x40
i2cset -y -f 0 0x45 0x36 255
echo 1 > /sys/class/gpio/gpio450/value
rm -rf /tmp/jioben/led*.flag
touch /tmp/jioben/led33.flag
echo \${leds} > /tmp/jioben/leds.flag
fi
if [ \$sata_temp -lt 36 ];then
if [ -f "/tmp/jioben/led32.flag" ];then
sleep 15 
continue
fi
i2cset -y -f 0 0x45 0x31 0x00
i2cset -y -f 0 0x45 0x33 0x00
i2cset -y -f 0 0x45 0x32 \${led}
i2cset -y -f 0 0x45 0x00 0x55
i2cset -y -f 0 0x45 0x01 0x01
i2cset -y -f 0 0x45 0x30 0x07
i2cset -y -f 0 0x45 0x31 0x72
i2cset -y -f 0 0x45 0x32 0x72
i2cset -y -f 0 0x45 0x33 0x72
i2cset -y -f 0 0x45 0x37 0x44
i2cset -y -f 0 0x45 0x3a 0x55
i2cset -y -f 0 0x45 0x3d 0x66
i2cset -y -f 0 0x45 0x38 0x44
i2cset -y -f 0 0x45 0x3b 0x55
i2cset -y -f 0 0x45 0x3e 0x66    
i2cset -y -f 0 0x45 0x39 0x40
i2cset -y -f 0 0x45 0x3c 0x40
i2cset -y -f 0 0x45 0x3f 0x40
i2cset -y -f 0 0x45 0x35 255
echo 0 > /sys/class/gpio/gpio450/value
rm -rf /tmp/jioben/led*.flag
touch /tmp/jioben/led32.flag
echo \${leds} > /tmp/jioben/leds.flag
fi
sleep 15
done
EOF
bash /tmp/jioben/ledfan.sh
本文经授权后发布,本文观点不代表立场,文章出自:https://bbs.nas66.com/forum.php?mod=viewthread&tid=9023
-- 展开阅读全文 --
咪叽数码:猫盘/猫盘Plus
« 上一篇 12-19
国产最强绕ID:X-Activator v2.0 Win版 支持iOS14
下一篇 » 12-21
广告
人生是一场孤独的旅行

作者信息

广告

热门文章

广告

标签TAG