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#?
?