From da4ec496605d2d3918ad92693f91b71e80bbbe12 Mon Sep 17 00:00:00 2001 From: liang-ys Date: Thu, 19 Mar 2026 16:12:41 +0800 Subject: [PATCH] =?UTF-8?q?[fix]1.=E5=AE=89=E8=A3=85=E8=84=9A=E6=9C=AC?= =?UTF-8?q?=E5=8E=BB=E6=8E=89io=E7=9A=84=E8=AE=BE=E7=BD=AE2.=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0gpio85=E7=9A=84=E8=AE=BE=E7=BD=AE=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- installer/installer_linux.sh | 6 --- installer/setup-gpio85-systemd.sh | 65 +++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+), 6 deletions(-) create mode 100644 installer/setup-gpio85-systemd.sh diff --git a/installer/installer_linux.sh b/installer/installer_linux.sh index b079ff8c..992640b0 100644 --- a/installer/installer_linux.sh +++ b/installer/installer_linux.sh @@ -399,12 +399,6 @@ if [ "kylin10d" = "$OS_DEFINE" ]; then fi -# 导入io -if [ "oe2203" = "$OS_DEFINE" ]; then - - echo 85 > /sys/class/gpio/export - echo out > /sys/class/gpio/gpio85/direction -fi echo "INFO:安装成功:$app_name" diff --git a/installer/setup-gpio85-systemd.sh b/installer/setup-gpio85-systemd.sh new file mode 100644 index 00000000..3cb1945a --- /dev/null +++ b/installer/setup-gpio85-systemd.sh @@ -0,0 +1,65 @@ +#!/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 服务已启用并启动"