20250611让NanoPi NEO core开发板在Ubuntu core16.04系统下开机自启动的时候拉高GPIOG8
root@NanoPi-NEO-Core:/# touch open_4g_ec20.sh
root@NanoPi-NEO-Core:/# vi open_4g_ec20.sh
【打开使能引脚200 IOG8】
echo 200 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio200/direction
echo 1 > /sys/class/gpio/gpio200/value
【切记:/open_4g_ec20.sh要写完整目录,不然识别不了!^_】
root@NanoPi-NEO-Core:/etc# ll rc.local
root@NanoPi-NEO-Core:/etc# vi rc.local
root@NanoPi-NEO-Core:/etc# cat rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
if [ -e /usr/bin/setqtenv ]; then
. /usr/bin/setqtenv
/usr/bin/lcd2usb_print "CPU: {{CPU}}" "Mem: {{MEM}}" "IP: {{IP}}" "LoadAvg: {{LOADAVG}}" 2>&1 > /dev/null&
#/opt/QtE-Demo/run.sh&
fi
/open_4g_ec20.sh
exit 0
root@NanoPi-NEO-Core:/etc#
root@NanoPi-NEO-Core:/etc# sync
root@NanoPi-NEO-Core:/etc#
20250611让NanoPi NEO core开发板在Ubuntu core16.04系统下开机自启动的时候拉高GPIOG8
2025/6/10 18:28
缘起:
H3 neo core
我想在 开机的时候就拉高GPIO200 IOG8?
这个要看你的具体需求,开机会经过 uboot 、 linux 、rootfs,需求不一样,做法就不一样
最常见的方法,百度一下 "sysfs gpio
要看需求,不同的需求,方法就不一样
https://zhuanlan.zhihu.com/p/578724996
Ubuntu 程序开机自启动
闪电侠的右手?
进入/lib/systemd/system/目录,这里有许多启动脚本
cd /lib/systemd/system/
修改rc-local.service文件权限
sudo chmod 777 /lib/systemd/system/rc-local.service
打开并编辑rc-local.service文件
sudo gedit rc-local.service
原始内容如下:
一般启动文件分成三个部分:
[Unit]段:启动顺序、依赖关系
[Service]段:启动类型、启动方式
[Install]段:如何做到开机启动 原始内容缺少了[Install]段,没有定义如何开机启动,因此我们在该文件后添加[Install]段
[Install]
WantedBy=multi-user.target
Alias=rc-local.service
修改后的内容如下:
切换到/etc/目录,找到rc.local文件,如果没有就创建一个
cd /etc/
sudo gedit rc.local
把需要启动的脚本写入/etc/rc.local的exit 0之前
#!/bin/sh
脚本代码
exit 0
需要注意:
开头一定要写#!/bin/sh
如果启动脚本是类似于sh ./test.sh类型的,需要使用后台运行的方式,即sh ./test.sh &,否则会卡在启动界面无法进入系统
然后修改rc.local的权限
sudo chmod 777 /etc/rc.local
systemd默认读取/etc/systemd/system/下的配置文件,所以要在/etc/systemd/system/目录下创建软链接
sudo ln -s /lib/systemd/system/rc.local.service /etc/systemd/system/
重启系统,测试是否成功
百度:ubuntu 16.04开机自启动程序
ubuntu20.04 开机启动
参考资料:
http://wiki.friendlyelec.com/wiki/index.php/NanoPi_NEO_Core/zh#.E6.8E.A5.E5.8F.A3.E5.B8.83.E5.B1.80
NanoPi NEO Core/zh
https://blog.csdn.net/qq_43685040/article/details/111574332
Ubuntu20.04 设置开机自启
【无效】
https://www.cnblogs.com/sdg-yy-blog/p/18385383
ubuntu20.04使用systemd配置开机自启脚本
完整的LOG:
root@NanoPi-NEO-Core:/#
root@NanoPi-NEO-Core:/# touch open_4g_ec20.sh
root@NanoPi-NEO-Core:/# ll
total 100
drwxr-xr-x 1 root root 4096 Jun 11 09:12 ./
drwxr-xr-x 1 root root 4096 Jun 11 09:12 ../
drwxr-xr-x 2 root root 4096 Jun 18 2021 bin/
drwxr-xr-x 4 root root 16384 Jan 1 1970 boot/
drwxr-xr-x 14 root root 3800 Jun 11 09:01 dev/
drwxr-xr-x 1 root root 4096 Jun 11 09:01 etc/
drwxr-xr-x 4 root root 4096 Mar 27 2017 home/
drwxr-xr-x 15 root root 4096 Jul 17 2019 lib/
drwx------ 2 root root 16384 Apr 2 07:23 lost+found/
drwxr-xr-x 2 root root 4096 Oct 21 2015 media/
drwxr-xr-x 1 root root 4096 Jun 11 09:01 mnt/
-rw-r--r-- 1 root root 0 Jun 11 09:12 open_4g_ec20.sh
drwxr-xr-x 3 root root 4096 Jun 18 2021 opt/
dr-xr-xr-x 118 root root 0 Jan 1 1970 proc/
drwx------ 7 root root 4096 Apr 2 07:23 root/
drwxr-xr-x 17 root root 520 Jun 11 09:01 run/
drwxr-xr-x 2 root root 4096 Jun 18 2021 sbin/
drwxr-xr-x 2 root root 4096 Oct 21 2015 srv/
dr-xr-xr-x 12 root root 0 Jun 11 09:12 sys/
drwxrwxrwt 1 root root 4096 Jun 11 09:11 tmp/
drwxr-xr-x 10 root root 4096 Jun 29 2022 usr/
drwxr-xr-x 1 root root 4096 Jan 1 2016 var/
root@NanoPi-NEO-Core:/#
root@NanoPi-NEO-Core:/# vi open_4g_ec20.sh ^C
root@NanoPi-NEO-Core:/#
root@NanoPi-NEO-Core:/#
root@NanoPi-NEO-Core:/# cd /sys/class/gpio/
root@NanoPi-NEO-Core:/sys/class/gpio# ll
total 0
drwxr-xr-x 2 root root 0 Jun 11 09:01 ./
drwxr-xr-x 59 root root 0 Jun 11 09:01 ../
--w------- 1 root root 4096 Jun 11 09:01 export
lrwxrwxrwx 1 root root 0 Jun 11 09:01 gpiochip0 -> ../../devices/platform/soc/1c20800.pinctrl/gpio/gpiochip0/
lrwxrwxrwx 1 root root 0 Jun 11 09:01 gpiochip352 -> ../../devices/platform/soc/1f02c00.pinctrl/gpio/gpiochip352/
--w------- 1 root root 4096 Jun 11 09:01 unexport
root@NanoPi-NEO-Core:/sys/class/gpio#
root@NanoPi-NEO-Core:/sys/class/gpio# cd -
/
root@NanoPi-NEO-Core:/#
root@NanoPi-NEO-Core:/#
root@NanoPi-NEO-Core:/# ll
total 100
drwxr-xr-x 1 root root 4096 Jun 11 09:12 ./
drwxr-xr-x 1 root root 4096 Jun 11 09:12 ../
drwxr-xr-x 2 root root 4096 Jun 18 2021 bin/
drwxr-xr-x 4 root root 16384 Jan 1 1970 boot/
drwxr-xr-x 14 root root 3800 Jun 11 09:01 dev/
drwxr-xr-x 1 root root 4096 Jun 11 09:01 etc/
drwxr-xr-x 4 root root 4096 Mar 27 2017 home/
drwxr-xr-x 15 root root 4096 Jul 17 2019 lib/
drwx------ 2 root root 16384 Apr 2 07:23 lost+found/
drwxr-xr-x 2 root root 4096 Oct 21 2015 media/
drwxr-xr-x 1 root root 4096 Jun 11 09:01 mnt/
-rw-r--r-- 1 root root 0 Jun 11 09:12 open_4g_ec20.sh
drwxr-xr-x 3 root root 4096 Jun 18 2021 opt/
dr-xr-xr-x 118 root root 0 Jan 1 1970 proc/
drwx------ 7 root root 4096 Apr 2 07:23 root/
drwxr-xr-x 17 root root 520 Jun 11 09:01 run/
drwxr-xr-x 2 root root 4096 Jun 18 2021 sbin/
drwxr-xr-x 2 root root 4096 Oct 21 2015 srv/
dr-xr-xr-x 12 root root 0 Jun 11 09:12 sys/
drwxrwxrwt 1 root root 4096 Jun 11 09:11 tmp/
drwxr-xr-x 10 root root 4096 Jun 29 2022 usr/
drwxr-xr-x 1 root root 4096 Jan 1 2016 var/
root@NanoPi-NEO-Core:/#
root@NanoPi-NEO-Core:/# vi open_4g_ec20.sh
root@NanoPi-NEO-Core:/#
root@NanoPi-NEO-Core:/# cat open_4g_ec20.sh
echo 200 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio200/direction
echo 1 > /sys/class/gpio/gpio200/value
root@NanoPi-NEO-Core:/#
root@NanoPi-NEO-Core:/# ll
total 104
drwxr-xr-x 1 root root 4096 Jun 11 09:12 ./
drwxr-xr-x 1 root root 4096 Jun 11 09:12 ../
drwxr-xr-x 2 root root 4096 Jun 18 2021 bin/
drwxr-xr-x 4 root root 16384 Jan 1 1970 boot/
drwxr-xr-x 14 root root 3800 Jun 11 09:01 dev/
drwxr-xr-x 1 root root 4096 Jun 11 09:01 etc/
drwxr-xr-x 4 root root 4096 Mar 27 2017 home/
drwxr-xr-x 15 root root 4096 Jul 17 2019 lib/
drwx------ 2 root root 16384 Apr 2 07:23 lost+found/
drwxr-xr-x 2 root root 4096 Oct 21 2015 media/
drwxr-xr-x 1 root root 4096 Jun 11 09:01 mnt/
-rw-r--r-- 1 root root 118 Jun 11 09:14 open_4g_ec20.sh
drwxr-xr-x 3 root root 4096 Jun 18 2021 opt/
dr-xr-xr-x 118 root root 0 Jan 1 1970 proc/
drwx------ 7 root root 4096 Apr 2 07:23 root/
drwxr-xr-x 17 root root 520 Jun 11 09:01 run/
drwxr-xr-x 2 root root 4096 Jun 18 2021 sbin/
drwxr-xr-x 2 root root 4096 Oct 21 2015 srv/
dr-xr-xr-x 12 root root 0 Jun 11 09:12 sys/
drwxrwxrwt 1 root root 4096 Jun 11 09:11 tmp/
drwxr-xr-x 10 root root 4096 Jun 29 2022 usr/
drwxr-xr-x 1 root root 4096 Jan 1 2016 var/
root@NanoPi-NEO-Core:/#
root@NanoPi-NEO-Core:/# chmod 777 open_4g_ec20.sh
root@NanoPi-NEO-Core:/#
root@NanoPi-NEO-Core:/# cd -
/sys/class/gpio
root@NanoPi-NEO-Core:/sys/class/gpio# ll
total 0
drwxr-xr-x 2 root root 0 Jun 11 09:12 ./
drwxr-xr-x 59 root root 0 Jun 11 09:12 ../
--w------- 1 root root 4096 Jun 11 09:12 export
lrwxrwxrwx 1 root root 0 Jun 11 09:12 gpiochip0 -> ../../devices/platform/soc/1c20800.pinctrl/gpio/gpiochip0/
lrwxrwxrwx 1 root root 0 Jun 11 09:12 gpiochip352 -> ../../devices/platform/soc/1f02c00.pinctrl/gpio/gpiochip352/
--w------- 1 root root 4096 Jun 11 09:12 unexport
root@NanoPi-NEO-Core:/sys/class/gpio# cd -
/
root@NanoPi-NEO-Core:/#
root@NanoPi-NEO-Core:/#
root@NanoPi-NEO-Core:/# ll
total 104
drwxr-xr-x 1 root root 4096 Jun 11 09:12 ./
drwxr-xr-x 1 root root 4096 Jun 11 09:12 ../
drwxr-xr-x 2 root root 4096 Jun 18 2021 bin/
drwxr-xr-x 4 root root 16384 Jan 1 1970 boot/
drwxr-xr-x 14 root root 3800 Jun 11 09:01 dev/
drwxr-xr-x 1 root root 4096 Jun 11 09:01 etc/
drwxr-xr-x 4 root root 4096 Mar 27 2017 home/
drwxr-xr-x 15 root root 4096 Jul 17 2019 lib/
drwx------ 2 root root 16384 Apr 2 07:23 lost+found/
drwxr-xr-x 2 root root 4096 Oct 21 2015 media/
drwxr-xr-x 1 root root 4096 Jun 11 09:01 mnt/
-rwxrwxrwx 1 root root 118 Jun 11 09:14 open_4g_ec20.sh*
drwxr-xr-x 3 root root 4096 Jun 18 2021 opt/
dr-xr-xr-x 118 root root 0 Jan 1 1970 proc/
drwx------ 7 root root 4096 Apr 2 07:23 root/
drwxr-xr-x 17 root root 520 Jun 11 09:01 run/
drwxr-xr-x 2 root root 4096 Jun 18 2021 sbin/
drwxr-xr-x 2 root root 4096 Oct 21 2015 srv/
dr-xr-xr-x 12 root root 0 Jun 11 09:12 sys/
drwxrwxrwt 1 root root 4096 Jun 11 09:15 tmp/
drwxr-xr-x 10 root root 4096 Jun 29 2022 usr/
drwxr-xr-x 1 root root 4096 Jan 1 2016 var/
root@NanoPi-NEO-Core:/# ./open_4g_ec20.sh
root@NanoPi-NEO-Core:/# cd -
/sys/class/gpio
root@NanoPi-NEO-Core:/sys/class/gpio# ll
total 0
drwxr-xr-x 2 root root 0 Jun 11 09:15 ./
drwxr-xr-x 59 root root 0 Jun 11 09:12 ../
--w------- 1 root root 4096 Jun 11 09:15 export
lrwxrwxrwx 1 root root 0 Jun 11 09:15 gpio200 -> ../../devices/platform/soc/1c20800.pinctrl/gpiochip0/gpio/gpio200/
lrwxrwxrwx 1 root root 0 Jun 11 09:12 gpiochip0 -> ../../devices/platform/soc/1c20800.pinctrl/gpio/gpiochip0/
lrwxrwxrwx 1 root root 0 Jun 11 09:12 gpiochip352 -> ../../devices/platform/soc/1f02c00.pinctrl/gpio/gpiochip352/
--w------- 1 root root 4096 Jun 11 09:12 unexport
root@NanoPi-NEO-Core:/sys/class/gpio# cd gpio200
root@NanoPi-NEO-Core:/sys/class/gpio/gpio200# ll
total 0
drwxr-xr-x 3 root root 0 Jun 11 09:15 ./
drwxr-xr-x 3 root root 0 Jun 11 09:15 ../
-rw-r--r-- 1 root root 4096 Jun 11 09:15 active_low
lrwxrwxrwx 1 root root 0 Jun 11 09:15 device -> ../../../gpiochip0/
-rw-r--r-- 1 root root 4096 Jun 11 09:15 direction
-rw-r--r-- 1 root root 4096 Jun 11 09:15 edge
drwxr-xr-x 2 root root 0 Jun 11 09:15 power/
lrwxrwxrwx 1 root root 0 Jun 11 09:15 subsystem -> ../../../../../../../class/gpio/
-rw-r--r-- 1 root root 4096 Jun 11 09:15 uevent
-rw-r--r-- 1 root root 4096 Jun 11 09:15 value
root@NanoPi-NEO-Core:/sys/class/gpio/gpio200# cat direction
out
root@NanoPi-NEO-Core:/sys/class/gpio/gpio200# cat value
1
root@NanoPi-NEO-Core:/sys/class/gpio/gpio200#
root@NanoPi-NEO-Core:/# ll
total 104
drwxr-xr-x 1 root root 4096 Jun 11 09:12 ./
drwxr-xr-x 1 root root 4096 Jun 11 09:12 ../
drwxr-xr-x 2 root root 4096 Jun 18 2021 bin/
drwxr-xr-x 4 root root 16384 Jan 1 1970 boot/
drwxr-xr-x 14 root root 3800 Jun 11 09:01 dev/
drwxr-xr-x 1 root root 4096 Jun 11 09:01 etc/
drwxr-xr-x 4 root root 4096 Mar 27 2017 home/
drwxr-xr-x 15 root root 4096 Jul 17 2019 lib/
drwx------ 2 root root 16384 Apr 2 07:23 lost+found/
drwxr-xr-x 2 root root 4096 Oct 21 2015 media/
drwxr-xr-x 1 root root 4096 Jun 11 09:01 mnt/
-rwxrwxrwx 1 root root 118 Jun 11 09:14 open_4g_ec20.sh*
drwxr-xr-x 3 root root 4096 Jun 18 2021 opt/
dr-xr-xr-x 118 root root 0 Jan 1 1970 proc/
drwx------ 7 root root 4096 Apr 2 07:23 root/
drwxr-xr-x 17 root root 520 Jun 11 09:01 run/
drwxr-xr-x 2 root root 4096 Jun 18 2021 sbin/
drwxr-xr-x 2 root root 4096 Oct 21 2015 srv/
dr-xr-xr-x 12 root root 0 Jun 11 09:12 sys/
drwxrwxrwt 1 root root 4096 Jun 11 09:15 tmp/
drwxr-xr-x 10 root root 4096 Jun 29 2022 usr/
drwxr-xr-x 1 root root 4096 Jan 1 2016 var/
root@NanoPi-NEO-Core:/#
root@NanoPi-NEO-Core:/# cd etc/
root@NanoPi-NEO-Core:/etc#
root@NanoPi-NEO-Core:/etc# ll rc.local
-rwxr-xr-x 1 root root 494 Nov 7 2023 rc.local*
root@NanoPi-NEO-Core:/etc#
root@NanoPi-NEO-Core:/etc# vi rc.local
root@NanoPi-NEO-Core:/etc#
root@NanoPi-NEO-Core:/etc# cat rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
if [ -e /usr/bin/setqtenv ]; then
. /usr/bin/setqtenv
/usr/bin/lcd2usb_print "CPU: {{CPU}}" "Mem: {{MEM}}" "IP: {{IP}}" "LoadAvg: {{LOADAVG}}" 2>&1 > /dev/null&
#/opt/QtE-Demo/run.sh&
fi
open_4g_ec20.sh
exit 0
root@NanoPi-NEO-Core:/etc#
root@NanoPi-NEO-Core:/etc#
root@NanoPi-NEO-Core:/etc# sync
root@NanoPi-NEO-Core:/etc# sync
root@NanoPi-NEO-Core:/etc# sync
root@NanoPi-NEO-Core:/etc#
root@NanoPi-NEO-Core:/home/pi# cd /etc/
root@NanoPi-NEO-Core:/etc#
root@NanoPi-NEO-Core:/etc# cat rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
if [ -e /usr/bin/setqtenv ]; then
. /usr/bin/setqtenv
/usr/bin/lcd2usb_print "CPU: {{CPU}}" "Mem: {{MEM}}" "IP: {{IP}}" "LoadAvg: {{LOADAVG}}" 2>&1 > /dev/null&
#/opt/QtE-Demo/run.sh&
fi
open_4g_ec20.sh
exit 0
root@NanoPi-NEO-Core:/etc# vi rc.local
root@NanoPi-NEO-Core:/etc#
root@NanoPi-NEO-Core:/etc# cat rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
if [ -e /usr/bin/setqtenv ]; then
. /usr/bin/setqtenv
/usr/bin/lcd2usb_print "CPU: {{CPU}}" "Mem: {{MEM}}" "IP: {{IP}}" "LoadAvg: {{LOADAVG}}" 2>&1 > /dev/null&
#/opt/QtE-Demo/run.sh&
fi
/open_4g_ec20.sh
exit 0
root@NanoPi-NEO-Core:/etc#