EASY EAI灵眸科技
直播中

lustao

13年用户 626经验值
擅长:嵌入式技术
私信 关注

【EASY EAI Nano-TB(RV1126B)开发板试用】命令行功能测试-shell脚本进行IO控制-红绿灯项目-实现开机起动

0接上文【EASY EAI Nano-TB(RV1126B)开发板试用】命令行功能测试-shell脚本进行IO控制-红绿灯项目

Linux 起动系统下 init 系统大多数 Linux 发行版的 init 系统是和 System V 相兼容的,被称为 sysvinit。起源于Unix System V操作系统,是Linux系统早期采用的标准初始化系统。通过严格的脚本执行顺序和运行级别(runlevel)概念来管理系统服务。

这是人们最熟悉的 init 系统。,SysVinit 运行非常良好,概念简单清晰。

它主要依赖于 Shell 脚本,Service 开发人员只需要编写启动和停止脚本,将 service 添加/删除到某个 runlevel 时,

只需要执行一些创建/删除软连接文件的基本操作,确定的执行顺序脚本严格按照启动数字的大小顺序执行,

SysVinit脚本的执行顺序遵循严格的命名规则:
以"S"开头的脚本表示启动(Start)服务
以"K"开头的脚本表示停止(Kill)服务
数字编号决定执行顺序(如S10会在S20之前执行)
字母顺序作为次要排序依据(如A41会在S41之前执行)
这种设计使得服务启动顺序完全可控,极大地方便了故障排查。
串行地执行脚本导致启动太慢。缺乏服务依赖关系的动态管理
不支持并行启动,资源利用率低
功能扩展性有限,难以适应现代复杂系统需求

开机自启动涉及到四个脚本文件。分别是:rc.local、S99_userapp、start_app.sh、stop_app.sh。

/etc/rc.local:这个脚本是Linux文件系统启动后第一个程序就会去调用的脚本。它会去/etc/init.d/下面,按命名顺序,遍历调用所有脚本。(如A41会比S41先调用,S41会比S99先调用)

/etc/init.d/S99_userapp:这个是专用于管理用户应用程序启/停的脚本。

/userdata/start_app.sh:用户应用程序的启动逻辑通常写进这里,里面可以随意修改。

/userdata/stop_app.sh:用户应用程序的结束逻辑通常写进这里,里面可以随意修改。
图片

接ssh
经过之前查询可知被分配出来的IP地址分别为:

【wlan0】--IP地址:inet 192.168.1.9,子网掩码(24):255.255.255.0-

可使用ssh登录。

  • 配置“Session”,选择“SSH”,输入IP地址,最后点击“Open”即可,如下图所示。

未标题-2 拷贝.jpg

  • 首次连接,ssh客户端会根据ssh主机IP地址等信息生成一个ssh-key,以绑定标记ssh主机和它所对应的IP地址。若ssh主机的IP地址有变更,又或者别的ssh主机用了曾被记录下来的IP地址,导致ssh主机与IP地址不匹配,则会出现连不上的情况。此时需要用户手动清理掉客户端(putty)关于ssh主机与IP地址的绑定。具体的清理方式请用户自行根据所用的ssh客户端查阅,此处不展开叙述。

  • 点击“Accept”后,则会提示输入登录信息,如下图所示。

未标题-2 拷贝.jpg

EASY EAI Nano用户名:nano

   EASY EAI Nano密码为:123456

登录后:未标题-2 拷贝.jpg

EASY EAI Nano-TB是带有基本系统 Ubuntu 22.04.5 LTS (GNU/Linux 6.1.118 aarch64)
使用之前rgb1.sh复制到启动 /etc/init.d中。

cp rgb1.sh  /etc/init.d/S99_v.sh

加入运行权限:

文件在* 命令

chmod u+x S99_v.sh

文件在S99_userapp后面运行。

reboot重新启动。

灯正常闪!VID_20250206_111556.mp4_20250206_113207.046.jpg

运行结果

  • 灯的闪烁模式
    • 红灯亮5秒
    • 绿灯亮5秒
    • 黄灯快速闪烁三次(每次0.5秒)
nano@EASY-EAI-NANO-TB:~$ ps
    PID TTY          TIME CMD
    747 pts/0    00:00:00 bash
   6325 pts/0    00:00:00 ps

用户进程没有,但是ps -ax显示574 进程* ‌S‌:休眠(sleeping)中。

image.png

574 ? S 0:00 /bin/sh /etc/init.d/S99_v.sh start

红绿灯项目开机起动完成。

更多回帖

发帖
×
20
完善资料,
赚取积分