9构建嵌入式linux系统项目-启动脚本的编写ppt课件_第1页
9构建嵌入式linux系统项目-启动脚本的编写ppt课件_第2页
9构建嵌入式linux系统项目-启动脚本的编写ppt课件_第3页
9构建嵌入式linux系统项目-启动脚本的编写ppt课件_第4页
9构建嵌入式linux系统项目-启动脚本的编写ppt课件_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、启动脚本教学回顾n shell语法n 管道、重定向n 变量n 结构性语句教学内容n 启动脚本的写法教学要求n 熟悉掌握启动脚本的写法shell 函数在shell程序中, 常常把完成固定功能、且多次使用的一组命令语句封装在一个函数里,每当要使用该功能时只需调用该函数名即可。 函数在调用前必须先定义,即在顺序上函数说明必须放在调用程序的前面。 调用程序可传递参数给函数, 函数可用return语句把运行结果返回给调用程序。 函数只在当前shell中起作用, 不能输出到子Shell中。shell 函数函数定义格式:shell 函数function_name ( ) command1 commandn

2、function function_name ( ) command1 commandn 方式一:方式一:方式二:方式二:函数的所有标准输出都传递给了主程序的变量获取函数的返回的状态shell 函数调用value_name=function_name arg1 arg2 函数调用格式函数调用格式:function_name arg1 arg2 echo $?方式方式1:方式方式2:函数变量作用域n 全局作用域:在脚本的其他任何地方都能够访问该变量。n 局部作用域:只能在声明变量的作用域内访问。n 声明局部变量的格式:n local variable_name =value函数变量作用域#! /

3、bin/bash#echo lclavariable in function1 = $lclvariableecho Gblvariable in function1 = $Gblvariablescope() local lclvariable=1 Gblvariable=2 echo lclavariable in function2 = $lclvariable echo Gblvariable in function2 = $Gblvariablescopeecho lclavariable in function3 = $lclvariableecho Gblvariable in

4、function3 = $Gblvariable启动脚本设计启动脚本n 内核挂载根文件系统后,执行第一个用户程序(/sbin/init),init进程就是1号进程,是所有其他进程的祖先进程。n init进程根据/etc下的配置文件(inittab等来启动其他进程,初始化系统。n 在嵌入式中,配置文件是要自己编写的。inittabn init进程读取/etc/inittab文件:uinittab文件安装规定格式编写,根据上面的inittab文件的规则:u首先执行/etc/init.d/rcS脚本文件u然后执行一个shell程序/bin/bashrcSn /etc/init.d/rcS是init进

5、程启动的第一个脚本程序,也叫做系统初始化脚本,该脚本主要完成以下任务:n 挂载其他文件系统n 启动mdev程序来管理设备文件n 配置网络等n 下面给出一个比较好的rcS脚本写法:包含文件脚本函数check_status的作用是检测上一个程序执行的退出状态。看看是否是正常退出。挂载所有文件系统检测状态启动mdev设置HOSTNAME设置loop网络ip该循环的作用是执行/etc/init.d/start/目录下的所有脚本文件。fstabn /bin/mount -a 的意思是挂载文件/etc/fstab中设置的所有设备u第1列是需要挂载的文件系统或存储设备u第2列是挂载点u第3列指定文件系统或分

6、区的类型u第4列为挂载选项,udefaults: rw, suid, dev, exec, auto, nouser, and async.u第5列为dump选项,设置是否让备份程序dump备份文件系统,0为忽略,1为备份。u第6列为fsck选项,告诉fsck程序以什么顺序检查文件系统,0为忽略。mdevn mdev是busybox下的udev的精简版,适合在嵌入式系统下管理设备n mdev 有两个主要的应用n 系统启动时创建设备文件n 动态生成设备文件mdevn 系统初始化脚本中一个完整的使用mdev 的代码片段1 mount -t tmpfs mdev /dev2 mkdir /dev/p

7、ts3 mount -t devpts devpts /dev/pts4 mount -t sysfs sysfs /sys5 echo /bin/mdev /proc/sys/kernel/hotplug6 mdev -s配置网络脚本n 我们将配置网卡eth0的脚本放在/etc/init.d/start/目录下,文件名为network。n 该脚本如下:首先包含两个文件其中/etc/network.conf文件的内容如下:主要是设置变量profilen init程序通过启动/etc/init.d/rcS脚本程序来进行一系列的初始化工作n 然后启动一个shell(/bin/sh)。n 启动/bi

8、n/sh程序时,sh程序会读取/etc/profile作为shell的环境变量配置文件n 启动脚本编写好后,启动的信息如下:用户登陆n 在上面的inittab文件中,init启动的最后任务是启动定一个shell(/bin/sh)。n 我们可以将其改成最后一个启动的是一个登陆程序。bashn getty会启动login启动进行登陆n 当登陆成功会启动/bin/bash程序n bash是gun的一个软件,也是我们常用的命令行shell,代码可以在上下载。tar zxvf bash-4.0.tar.gzcd bash-4.0./configure -host=arm-linuxmakecp bash /home/sice/rootf

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论