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

西宁做网站君博优选大数据营销系统

西宁做网站君博优选,大数据营销系统,做go富集的网站,赣州星亚网络传媒有限公司Ubuntu 20 默认使用的是 systemd 系统管理器,但传统的 SysV Init(/etc/init.d/)脚本依然兼容并可用。本文将介绍如何通过 init.d 写脚本来在开机时自动设置某个 GPIO(如 GPIO407)为高电平,适用于嵌入式系统…

Ubuntu 20 默认使用的是 systemd 系统管理器,但传统的 SysV Init/etc/init.d/)脚本依然兼容并可用。本文将介绍如何通过 init.d 写脚本来在开机时自动设置某个 GPIO(如 GPIO407)为高电平,适用于嵌入式系统、开发板等场景。


一、为什么选择 init.d

虽然 systemd 是推荐方式,但对于一些老旧项目或驱动初始化问题,用 init.d 更加直观、简单,并且在某些设备初始化顺序依赖场景下依然非常实用。


二、创建并配置 init.d 脚本

1. 创建脚本

 

bash

复制编辑

sudo nano /etc/init.d/gpio407_init

2. 脚本内容如下:

 

bash

复制编辑

#!/bin/sh ### BEGIN INIT INFO # Provides: gpio407_init # Required-Start: $local_fs # Required-Stop: # Default-Start: 2 3 4 5 # Default-Stop: # Short-Description: Set GPIO407 high at boot ### END INIT INFO GPIO=407 case "$1" in start) echo "Exporting GPIO$GPIO and setting it HIGH..." if [ ! -e /sys/class/gpio/gpio$GPIO ]; then echo $GPIO > /sys/class/gpio/export sleep 0.1 fi echo out > /sys/class/gpio/gpio$GPIO/direction echo 1 > /sys/class/gpio/gpio$GPIO/value echo "GPIO$GPIO set to HIGH" ;; stop) echo $GPIO > /sys/class/gpio/unexport ;; *) echo "Usage: $0 {start|stop}" exit 1 ;; esac exit 0


三、赋予脚本执行权限

 

bash

复制编辑

sudo chmod +x /etc/init.d/gpio407_init


四、注册为启动服务

将脚本注册到系统默认启动级别:

 

bash

复制编辑

sudo update-rc.d gpio407_init defaults

这会在 /etc/rc2.d/rc3.d/rc4.d/rc5.d/ 中创建符号链接,实现开机执行。


五、立即运行测试

你可以直接运行脚本验证功能是否正确:

 

bash

复制编辑

sudo /etc/init.d/gpio407_init start

验证:

 

bash

复制编辑

cat /sys/class/gpio/gpio407/value # 应输出 1


六、注意事项

  • 权限问题:脚本执行的所有 echo > /sys/... 操作必须使用 root 权限,直接用 sudo 执行整个脚本,不要对单独的 echo 使用 sudo,否则会因 shell 权限问题失败。

  • 脚本调试:可以在脚本中加入日志输出,例如 echo "xxx" >> /var/log/gpio.log 方便调试。

  • GPIO不可导出:如果 /sys/class/gpio/export 不存在,可能是内核不支持 GPIO sysfs 接口,需要启用相关内核选项。


七、其他:如何禁用脚本

如果不再需要该脚本,可以移除注册:

 

bash

复制编辑

sudo update-rc.d -f gpio407_init remove

然后手动删除脚本:

 

bash

复制编辑

sudo rm /etc/init.d/gpio407_init


八、总结

尽管 Ubuntu 20 已默认使用 systemd,但 init.d 脚本依然兼容且适用嵌入式控制、GPIO 操作等早期初始化需求。按照本文方法配置,可以轻松实现开机自动执行。

如需改为 systemd 方式,欢迎继续阅读或留言,我可以帮你转换为 .service 文件。

在 Ubuntu 20.04 中使用 systemd 实现 GPIO 上电(以 GPIO407 为例)

对于嵌入式 Linux 系统或开发板平台,我们常常需要在开机时自动设置 GPIO 引脚方向及电平。使用 systemd 编写自定义 .service 文件是一种推荐方式。


一、前提条件

  • 你必须有 root 权限

  • 目标 GPIO(如 GPIO407)可通过 /sys/class/gpio/ 接口操作。

  • Kernel 配置项开启了 CONFIG_GPIO_SYSFS


二、编写设置 GPIO 的脚本

1. 创建脚本文件

 

bash

复制编辑

sudo nano /usr/local/bin/gpio407_set_high.sh

2. 填写内容如下:

 

bash

复制编辑

#!/bin/bash GPIO=407 # Export GPIO if not already exported 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 echo 1 > /sys/class/gpio/gpio$GPIO/value

3. 设置脚本权限

 

bash

复制编辑

sudo chmod +x /usr/local/bin/gpio407_set_high.sh


三、创建 systemd 服务文件

1. 创建服务文件

 

bash

复制编辑

sudo nano /etc/systemd/system/gpio407.service

2. 内容如下:

 

ini

复制编辑

[Unit] Description=Set GPIO407 High at boot After=multi-user.target [Service] Type=oneshot ExecStart=/usr/local/bin/gpio407_set_high.sh RemainAfterExit=true [Install] WantedBy=multi-user.target

说明:

  • Type=oneshot 表示只执行一次,不常驻。

  • RemainAfterExit=true 保留“已启动”状态。

  • WantedBy=multi-user.target 表示在正常系统运行级别启动。


四、启用服务并重启

启用服务

 

bash

复制编辑

sudo systemctl enable gpio407.service

立即启动(测试)

 

bash

复制编辑

sudo systemctl start gpio407.service

查看状态

 

bash

复制编辑

sudo systemctl status gpio407.service


五、验证 GPIO 是否设置成功

 

bash

复制编辑

cat /sys/class/gpio/gpio407/value # 应该输出 1


六、卸载或禁用服务

如不再需要:

 

bash

复制编辑

sudo systemctl disable gpio407.service sudo rm /etc/systemd/system/gpio407.service sudo rm /usr/local/bin/gpio407_set_high.sh


七、与 init.d 的比较

项目init.dsystemd
兼容性兼容但过时推荐使用
并发支持
状态管理简单细致、支持依赖
日志需手动自动记录(journalctl


八、结语

使用 systemd 管理 GPIO 初始化是一种现代、清晰、可靠的方式,特别适合在需要严格控制启动顺序、可靠运行的环境中。建议优先采用这种方式进行嵌入式系统自启动脚本部署。

如果你还需要同时配置多个 GPIO 或串口、电源等资源,也可以在脚本中统一处理,systemd 会一次完成初始化。

http://www.dtcms.com/wzjs/105589.html

相关文章:

  • 天津网站策划长沙疫情最新消息
  • 大连网站制作网站店铺推广渠道有哪些
  • 门户网站建设为企业带来的好处最新足球新闻头条
  • 织梦做的网站怎么发布成都seo推广
  • 微信网站建设塞尼铁克国际新闻 军事
  • 东台网站建设服务商百度站长平台怎么用
  • 五莲县网站建设快速排名seo软件
  • 股票网站建设抖音seo优化公司
  • 三站合一网站建设宁波网站建设方案推广
  • 徐州建站公司学电脑培训班多少一个月
  • php做网站如何关键词优化举例
  • 学历提升机构北京seo网站优化培训
  • 北京网站优化软件公司八大营销方式有哪几种
  • 自己电脑怎么做网站服务器吗沙洋县seo优化排名价格
  • 做企业网站后期还需要费用吗网络广告策划案例
  • 那些做网站的那些软件都叫啥seo收费标准
  • dx网站是哪家公司做的海外seo
  • 什么网站可以做2.5D场景广州市疫情最新情况
  • 深圳家居网站建设公司公司运营策划营销
  • 淳化网站制作渠道推广策略
  • 印度人通过什么网站做国际贸易百度搜索关键词设置
  • 北京网站建设公司升上去长尾关键词挖掘
  • 郑州一凡网站建设搜索引擎推广方案
  • 珠海网站建设解决方案百度云资源搜索引擎
  • 网上做设计的网站seo搜索引擎优化原理
  • 网站开发公司广告语torrentkitty搜索引擎
  • 永康住房城乡建设局网站正规职业技能培训机构
  • 公司网站大全百度统计数据分析
  • 地方门户网站规划网络营销方式包括哪些
  • 企业网站系统那个好sem培训机构