18.14 构建Linux根文件系统
18.14.1 Busybox1.7.0之init程序分析
1.读取配置文件
2.解析配置文件
3.执行用户程序(根据配置文件中指定的内容)
配置文件:
1.指定应用程序
2.何时执行
busybox ->
init.c ->init_main()
->parse_inittab()
->fopen(INITTAB, "r");//打开配置文件/etc/inittab
->new_init_action()
new_init_action(int action, const char *command, const char *cons) eg. new_init_action(ASKFIRST, bb_default_login_shell, VC_2);
1.创建一个结构体,填充
2.把init_action放入init_action_list链表
->run_actions(SYSINIT);
->waitfor(a, ); //等待应用程序运行完毕
->run(a);//创建一个子进程
->waitpid(runpid, &status, );
->delete_init_action(a); //在init_action_list列表里删除该进程
->run_actions(WAIT);
->run_actions(ONCE);
->run(a);delete_init_action(a);
while () {
run_actions(RESPAWN);
run_actions(ASKFIRST);
->if(a->pid == )
{ a->pid = run(a);}
print "Please press Enter to acticve this console"
wait Enter
wpid = wait(NULL);/*Wait for a child process to exit*/
while (wpid > ) {
a->pid = ; //退出后设置pid为0
}
在busybox-1.7.0\busybox-1.7.0\examples\inittab中:
# Format<id>:<runlevels>:<action>:<process>
# <id>: appended to "/dev/" and used as-is.
用作标注输入输出终端:sdtin stdout stderr printf err scanf
//创建以下两个文件
/dev/console
/dev/null
# <runlevels>: The runlevels field is completely ignored.
#<action>: Valid actions include:sysinit, respawn, askfirst, wait, once,restart, ctrlaltdel, and shutdown.
从默认的配置文件中反推出默认的配置文件:
::ctrlaltdel:reboot
::shutdown:umount -a -r
::restart:init
::askfirst:/bin/sh
/dev/tty2:askfirst:/bin/sh
/dev/tty3:askfirst:/bin/sh
/dev/tty4:askfirst:/bin/sh
::sysinit:/etc/init.d/rcS
最小根文件系统:
1./dev/console /dev/null
2.init ->busybox
3./etc/inittab
4.配置文件指定的应用程序
5.应用程序需要的库(C库)
18.14.2 移植自己修改的根文件系统执行ifconfig没反应
在etc/init.d/rcS内增加一行代码
#!/bin/sh
ifconfig eth0 10.3.10.233
第1行表示这是一个脚本文件,运行时使用/bin/sh解析;
第2行用来配置IP地址为10.3.10.233;
【本人学习IP如下:
Windows IP:10.3.10.230
U-Boot IP:10.3.10.231
Linux主机IP(服务器):10.3.10.232
板载Linux IP:10.3.10.233
】
18.14 构建Linux根文件系统的更多相关文章
- 构建Linux根文件系统(未完待续)
所谓制作根文件系统, 就是创建各种目录, 并且在里面创建各种文件. 比如在/bin ./sbin 目录下存放各种可执行程序, 在/etc 目录下存放配置文件, 在/lib 目录下存放库文件 ...
- Buildroot构建指南——根文件系统(Rootfs)【转】
本文转载自; 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] Buildroot构建指南——根文件系统(Rootfs) Buildroot的Rootfs构建流程有一个大 ...
- linux根文件系统 /etc/resolv.conf 文件详解
Linux根文件系统/etc/resolv.conf文件,它是DNS客户机配置文件,用于设置DNS服务器的IP地址及DNS域名,还包含了主机的域名搜索顺序.该文件是由域名解析器(resolver,以恶 ...
- linux根文件系统制作之busybox编译和系统构建【转】
转自:http://blog.chinaunix.net/uid-29401328-id-5019660.html 介绍完相关文件后我们开始构建文件系统,涉及到的文件等到具体用到的时候再讲. 一.编译 ...
- linux根文件系统制作
在嵌入式中移植的内核下载到开发板上,是没有办法真正的启动Linux操作系统的,会出现无法加载文件系统的错误. 那么根文件系统在系统启动中到底是什么时候挂载的呢?先将/dev/ram0挂载,而后执行/l ...
- 基于 SquashFS 构建 Linux 可读写文件系统
转载:http://www.oschina.net/question/129540_116839 在当前的嵌入式操作系统开发中,Linux 操作系统通常被压缩成 Image 后存放在 Flash 设备 ...
- Linux根文件系统的制作
转载:http://www.cnblogs.com/hnrainll/archive/2011/06/09/2076655.html 1. 根文件系统 文件系统是包括在一个磁盘(包括光盘.软盘.闪盘及 ...
- 使用BusyBox制作linux根文件系统(CramFS+mdev)
转:http://www.360doc.com/content/10/0428/11/496343_25245348.shtml 操作系统:Ubuntu9.04 内核版本:linux-2.6.24.7 ...
- linux根文件系统的挂载过程详解
一:前言 前段时间在编译kernel的时候发现rootfs挂载不上.相同的root选项设置旧版的image却可以.为了彻底解决这个问题.研究了一下rootfs的挂载过程.特总结如下,希望能给这部份知识 ...
随机推荐
- VMware Pro 14.1.2 官方正式版及激活密钥
热门虚拟机软件VMware Workstation Pro现已更新至14.1.2,14.0主要更新了诸多客户机操作系统版本,此外全面兼容Wind10创建者更新.12.0之后属于大型更新,专门为Win1 ...
- 本地pip 源搭建起来
pip install pip2pi pip2tgz target_dir -r requirement.txt 下载想要的本地的py包 /usr/local/python3/bin/dir2pi ...
- 微信小程序swiper 前后边距的使用
小程序中有一个组件swiper 就是滑块视图容器 其中提供了两个属性 previous-margin:前边距,可用于露出前一项的一小部分 next-margin:后边距,可用于露出后一项的 ...
- Curve 曲线 工具
最近研究了曲线绘制的工具,主要是2D方程的绘制.综合了许多工具,完成了一下两个脚本. 绘制的工具: using UnityEngine; using System.Collections; using ...
- java 五十条数据分为一组
public static void main(String[] args) { List<Integer> list = new ArrayList<>(); for(int ...
- Java - Java入门(2-1am)
第一讲.Java入门 1. 计算机语言是人和计算机进行交互的一种工具,人们通过使用计算机语言编写程序来向计算机施令,计算机则执行程序,并把结果输出给用户. 2. 机器语言:由0.1序列构成的指令码组成 ...
- 微信小程序(mpvue)—解决视频播放bug的一种方式
// 第一页 <div @click="play(video.src, video.width, video.height)"></div> methods ...
- 运维rpm语法
Linux软件包分类 rpm 常用命令1.安装一个包 # rpm -ivh 2.升级一个包 # rpm -Uvh 3.卸载一个包 # rpm -e 4.安装参数 --force 即使覆盖属于其它包的文 ...
- 关于cordova+vue打包apk文件无法访问数据接口
作为一个cordova小白,我按照官方文档和网上资料完成了讲vue文件打包到cordova中并打包成apk文件,完成了一个简单app的制作,当我正陶醉于可以自己完成一个app的时候突然发现,我的app ...
- DAX和Power BI中的参考日期表
本文使用Power BI模板描述DAX中的引用Date表,可以在Analysis Services模型中使用相同的技术.在Dax Date Template页面下载最新版本的模板. 为什么引用Date ...