前言
开发板烧写了Debian系统镜像,在编写QT程序之前,就想着如何让程序开机自动运行,或者开机加载一些必要的驱动,和一些初始化工作。
查阅了一些文章,最终试验可行,在此做个记录。
步骤如下:
一、先编写一个脚本
新建一个空文件 mystart ,内容如下:
#!/bin/sh
#wifi
startPath1=/opt/8723du.ko
if [ ! -f ${startPath1} ];then
echo ${startPath1}
echo "File does not exist !"
else
sudo insmod ${startPath1}
echo "Wifi has been loaded !"
fi
#usblp
startPath2=/opt/usblp.ko
if [ ! -f ${startPath2} ];then
echo ${startPath2}
echo "File does not exist !"
else
sudo insmod ${startPath2}
echo "Usblp has been loaded !"
fi
#chmod lp0
startPath3=/dev/usb
if [ ! -d ${startPath3} ];then
echo ${startPath3}
echo "Directory does not exist !"
else
sudo chmod 777 ${startPath3}/lp0
echo "Permission has been released !"
fi
脚本的大概内容是:
1、如果文件存在,就加载WIFI驱动。
2、如果文件存在,就加载USB打印驱动。
3、如果路径存在,就设置打印机挂载文件的权限。
二、将脚本放到 /etc/init.d/ 目录下,并设置可执行权限
三、添加链接
sudo ln -s /etc/init.d/mystart /etc/rc2.d/S99mystart
这样,Linux启动的时候就可以自动运行我们编写的脚本文件了。
完结,撒花~~~
写在后面
Linux启动的时候,会运行一个叫做 init 的程序,然后由它来启动后面的任务,包括用户环境,网络,模块驱动,必要的程序等等。
脚本文件存放于 /etc/init.d/ 目录下,但这些脚本的运行是有先后顺序的,如何确定呢?
1、首先,脚本的链接文件存放于 /etc/rcn.d 目录下,n 分为 0~6 ,其中:
目录名称 |
说明 |
rc0.d | 机器关闭的时候运行 |
rc1.d | 单用户模式,类似于windows的安全模式 |
rc2.d | 多用户模式,但是没有NFS支持 |
rc3.d | 完整的多用户模式,是标准的运行级 |
rc4.d | 一般不用 |
rc5.d | 进入到X Windows了执行 |
rc6.d | 机器重启的时候运行 |
2、在 rcn.d 目录中,文件的命名确定执行顺序。
比如,文件
S99mystart
,
S
代表的意思是 start ,
99
代表的就是启动顺序。
完结,撒花~~~
版权声明:本文为ssismm原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。