HM-SPMS/installer/others/setup-gpio85-systemd.sh

66 lines
1.6 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# setup-gpio85-systemd.sh
# 一键安装 GPIO85 初始化脚本 + systemd 服务
# 日志去掉,直接操作 GPIO85
# ---------------------- 权限检查 ----------------------
if [ "$EUID" -ne 0 ]; then
echo "请使用 root 用户或 sudo 执行此脚本"
exit 1
fi
# ---------------------- 配置变量 ----------------------
GPIO=85
INIT_SCRIPT=/usr/local/bin/init-gpio85.sh
SERVICE_FILE=/etc/systemd/system/gpio85.service
# ---------------------- 创建 GPIO 初始化脚本 ----------------------
cat << EOF > $INIT_SCRIPT
#!/bin/bash
# 自动初始化 GPIO$GPIO
GPIO=$GPIO
# 如果 gpio$GPIO 未被 export则 export
if [ ! -d /sys/class/gpio/gpio\$GPIO ]; then
echo \$GPIO > /sys/class/gpio/export
sleep 0.1
fi
# 设置方向为输出
echo out > /sys/class/gpio/gpio\$GPIO/direction
sleep 0.05
# 设置权限为 777
chmod 777 /sys/class/gpio/gpio\$GPIO/*
EOF
chmod +x $INIT_SCRIPT
echo "✅ GPIO$GPIO 初始化脚本创建完成:$INIT_SCRIPT"
# ---------------------- 创建 systemd 服务 ----------------------
cat << EOF > $SERVICE_FILE
[Unit]
Description=Initialize GPIO$GPIO
After=multi-user.target
[Service]
Type=oneshot
ExecStart=$INIT_SCRIPT
RemainAfterExit=yes
User=root
[Install]
WantedBy=multi-user.target
EOF
echo "✅ systemd 服务创建完成:$SERVICE_FILE"
# ---------------------- 启用并启动服务 ----------------------
systemctl daemon-reload
systemctl enable gpio85.service
systemctl start gpio85.service
# ---------------------- 输出状态 ----------------------
systemctl status gpio85.service --no-pager
echo "✅ GPIO$GPIO systemd 服务已启用并启动"