[作品] 26“万里”树莓派小车——程序开机启动

lb8820265   2022-3-20 11:41 楼主

Linux系统不像单片机,boot之后找到main函数就是程序的整个流程,Linux的启动很复杂。在树莓派操作系统的介绍中(开始-->help-->Debian参考手册)有详细介绍,如下图。

image-20220319211902-1.png

常用的Linux开机启动方法有很多,我介绍两种比较方便的。

开机启动方法一

在/etc/rc.local文件中添加启动代码,“rc.local”本身就是一个脚本文件,可以直接运行,双击该文件就能运行,关于脚本可以在“C语言中文网http://c.biancheng.net/shell/”中学习shell脚本语言。

通常情况下rc.local文件是不能修改的,因为没有修改权限,在/etc文件下按“F4”调出终端,然后输入如下指令

sudo chmod 777 rc.local

就可以开启该rc.local的修改权限,然后用用编辑器打开该文件,在exit 0前面添加我们的测试代码如下

filePath="/home/pi/Desktop/lb8820265"

touch $filePath

代码的作用为在桌面新建一个名为“lb8820265”的文件。然后重启树莓派,就会看到桌面多出一个文件。

注意:该方法是用root用户启动的。

开机启动方法二

在/etc/profile.d文件夹中添加脚本文件,例如在该文件中新建一个“WanliCar_startup.sh”的文件,通常新建一个文件会提示权限不够。和之前一样,先在该文件下的终端中输入如下指令。

sudo chmod 777 profile.d

在文件中输入如下代码。

#!/bin/bash

filePath="/home/pi/Desktop/lb8820265"

touch $filePath

重启树莓派后同样会在桌面新建一个lb8820265的文件。

注意:rc.local中添加的代码是在用户登录前执行的,profile.d是用户登录后执行的,而且很奇怪的一点是profile.d中的任务会执行两次。

树莓派小车程序开机启动

        树莓派小车控制程序在“/home/pi/Desktop/Examples/C++/Car_Control”目录中,有个叫做Car_Control的可执行文件,双击就可以运行,如果双击不能运行,就给该文件全部权限。

      采用第一种方法,在rc.local文件exit 0前添加如下的代码。

/home/pi/Desktop/Examples/C++/Car_Control/Car_Control &

image-20220319211902-2.png        代码中“&”符合表示程序在后台启动。重启系统,在任务管理器中就看到“Car_Control”被root用户启动。

开机不运行桌面

         程序运行的时候不需要桌面,因此可以设置启动进入CLI而不是桌面,这样应该能更加节约系统资源,如下图

image-20220319211902-3.png     需要进入桌面的时候在CLI终端中输入“startx”。

源码

GitHub

Gitee

 

 

QQ:252669569

回复评论 (1)

1 来自 2楼 okhxyyo 

"万里"树莓派小车汇总贴:

lb8820265的“万里”树莓派小车开源分享 - DIY/开源硬件专区 - 电子工程世界-论坛 (eeworld.com.cn)

 

目录:

 

“万里”树莓派小车开张贴 

1“万里”树莓派小车——建立项目仓库

2“万里”树莓派小车——python学习(Thonny的使用)

3“万里”树莓派小车——python学习(定时任务)

4“万里”树莓派小车——C++学习(编译与运行,geany使用)

5“万里”树莓派小车——wiringPi学习(延时与线程模拟定时器)

6“万里”树莓派小车——wiringPi学习(PWM与外部中断模拟定时器)

7“万里”树莓派小车——RPi.GPIO学习(PWM与外部中断模拟定时器)

8“万里”树莓派小车——socket学习(本机通讯)

9“万里”树莓派小车——socket学习(TCP两机通讯)

10“万里”树莓派小车——socket学习(UDP两机通讯)

11“万里”树莓派小车——socket学习(Android发送)

12“万里”树莓派小车——socket学习(Android收发)

13“万里”树莓派小车——配件准备

14“万里”树莓派小车——电机驱动学习

15“万里”树莓派小车——光电编码器学习(正反转的判断)

16“万里”树莓派小车——光电编码器学习(转速的获取)

17“万里”树莓派小车——VSCode学习(编译和调试)

18“万里”树莓派小车——Makefile学习

19“万里”树莓派小车——VSCode学习(多C文件链接调试)

20“万里”树莓派小车——电机控制学习(控制速度)

21“万里”树莓派小车——电机控制学习(4轮速度控制)
22“万里”树莓派小车——手机遥控电机转动

23“万里”树莓派小车——无屏幕连接树莓派

24“万里”树莓派小车——树莓派64位系统bullseye跑分测试

25“万里”树莓派小车——纳姆轮控制

26“万里”树莓派小车——程序开机启动

27“万里”树莓派小车——固定和获取树莓派IP地址

28“万里”树莓派小车——小车组装

29“万里”树莓派小车——直行偏向问题与新控制模式

30.“万里”树莓派小车——第一阶段完成展示(从零开始介绍)

玩板看这里: https://bbs.eeworld.com.cn/elecplay.html EEWorld测评频道众多好板等你来玩,还可以来频道许愿树许愿说说你想要玩的板子,我们都在努力为大家实现!
点赞  2022-3-21 13:36
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复