66 lines
1.6 KiB
Bash
66 lines
1.6 KiB
Bash
|
|
#!/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 服务已启用并启动"
|