当前位置: 首页 > news >正文

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# 


 

相关文章:

  • NumPy 2.x 完全指南【二十五】记录数组
  • 建站新手:我与SiteServerCMS的爱恨情仇(三)
  • 【c++八股文】Day2:虚函数表和虚函数表指针
  • RPC启动机制及注解实现
  • day 50
  • 0:0 error Parsing error: Cannot read properties of undefined (reading ‘map‘)
  • Rust 学习笔记:通过异步实现并发
  • C语言学习20250611
  • 亮数据抓取浏览器,亚马逊数据采集实战
  • Flask 报错修复实战:send_file() got an unexpected keyword argument ‘etag‘
  • vite原理
  • MFC 第1章:适配 WIndows 编程的软件界面调整
  • 创建和运行线程
  • 训练过程中的 Loss ?
  • 红队手法:从web漏洞到ssh横向移动 实战方案
  • 达梦数据库dsc集群+异步主备
  • Android11三网共存
  • el-table-v2修改表头、单元格、表格整体的宽度、高度样式
  • 用 IRify 深入探索 WebShell 中的 Source/Sink 挖掘
  • C# ConcurrentDictionary 中获取指定范围的元素
  • 用什么做网站后台的/搜索引擎推广的常见形式有
  • 注册深圳公司的好处/优化设计官方电子版
  • 代做ppt网站好/百度seo排名培训优化
  • 寿县有做网站开发的吗/seo服务 收费
  • 安卓市场官方版/徐州seo管理
  • 做网站的经验/网络营销策划案怎么写