9 构建嵌入式linux系统项目-启动脚本编写.ppt

9 构建嵌入式linux系统项目-启动脚本编写.ppt

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
9 构建嵌入式linux系统项目-启动脚本编写.ppt

启动脚本 教学回顾 shell语法 管道、重定向 变量 结构性语句 教学内容 启动脚本的写法 教学要求 熟悉掌握启动脚本的写法 shell 函数 在shell程序中, 常常把完成固定功能、且多次使用的一组命令(语句)封装在一个函数里,每当要使用该功能时只需调用该函数名即可。 函数在调用前必须先定义,即在顺序上函数说明必须放在调用程序的前面。 调用程序可传递参数给函数, 函数可用return语句把运行结果返回给调用程序。 函数只在当前shell中起作用, 不能输出到子Shell中。 函数定义格式: 函数变量作用域 全局作用域:在脚本的其他任何地方都能够访问该变量。 局部作用域:只能在声明变量的作用域内访问。 声明局部变量的格式: local variable_name =value 函数变量作用域 #! /bin/bash # echo lclavariable in function1 = $lclvariable echo Gblvariable in function1 = $Gblvariable scope() { local lclvariable=1 Gblvariable=2 echo lclavariable in function2 = $lclvariable echo Gblvariable in function2 = $Gblvariable } scope echo lclavariable in function3 = $lclvariable echo Gblvariable in function3 = $Gblvariable 启动脚本 设计启动脚本 内核挂载根文件系统后,执行第一个用户程序(/sbin/init),init进程就是1号进程,是所有其他进程的祖先进程。 init进程根据/etc下的配置文件(inittab等)来启动其他进程,初始化系统。 在嵌入式中,配置文件是要自己编写的。 inittab init进程读取/etc/inittab文件: rcS /etc/init.d/rcS是init进程启动的第一个脚本程序,也叫做系统初始化脚本,该脚本主要完成以下任务: 挂载其他文件系统 启动mdev程序来管理设备文件 配置网络等 下面给出一个比较好的rcS脚本写法: fstab /bin/mount -a 的意思是挂载文件/etc/fstab中设置的所有设备 mdev mdev是busybox下的udev的精简版,适合在嵌入式系统下管理设备 mdev 有两个主要的应用 系统启动时创建设备文件 动态生成设备文件 mdev 系统初始化脚本中一个完整的使用mdev 的代码片段 配置网络脚本 我们将配置网卡eth0的脚本放在/etc/init.d/start/目录下,文件名为network。 该脚本如下: profile init程序通过启动/etc/init.d/rcS脚本程序来进行一系列的初始化工作 然后启动一个shell(/bin/sh)。 启动/bin/sh程序时,sh程序会读取/etc/profile作为shell的环境变量配置文件 启动脚本编写好后,启动的信息如下: 用户登陆 在上面的inittab文件中,init启动的最后任务是启动定一个shell(/bin/sh)。 我们可以将其改成最后一个启动的是一个登陆程序。 bash getty会启动login启动进行登陆 当登陆成功会启动/bin/bash程序 bash是gun的一个软件,也是我们常用的命令行shell,代码可以在上下载。 从虚拟机中,拷贝登陆root所需要的相关文件拷贝到根文件系统中 $ sudo cp /etc/{group,gshadow,passwd,shadow} /home/sice/rootfs/etc 开发板启动信息如下: 课堂小结 思考题 作业题 * func2.sh shell 函数 shell 函数 function_name ( ) { command1 …… commandn } function function_name ( ) { command1 …… commandn } 方式一: 方式二: 函数的所有标准输出都传递给了主程序的变量 获取函数的返回的状态 shell 函数调用 value_name=`function_name [arg1 arg2 … ]` 函数调用格式: function_name [arg1 ar

您可能关注的文档

文档评论(0)

5566www + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6122115144000002

1亿VIP精品文档

相关文档