嵌入式linux根文件系统的制作

一、文件系统概要

 

1、根文件系统(Root filesystem)是存放运行、维护系统所必须的各种工具软件、库文件、脚本、配置文件和其他特殊文件的地方,也可以安装各种软件包

 

2、文件系统层次结构标准【Filesystem Hierarchy Standard(FHS)】

1)Linux和UNIX的文件系统是一个以“/”为根的阶层式的树状文件结构,/因此被称为根目录。
2)在UNIX早期各厂家有分别有自己的根文件系统,比较混乱,LINUX为了避免这个问题,在LINUX初期1994年推出了名为FSSTND(Filesystem Standard)的文件系统层次结构标准。
3)FHS标准使得众多的LINUX发布包有了可以遵循的标准,定义了文件系统每个区域的用途,定义了所需要的最小构成的文件和目录。

4)提高软件的可移植性。

 

3、根文件系统主要目录

 

 

目录内容
/bin可执行程序
/dev块、字符设备节点
/etc主要配置文件和初始化执行文件
/lib基本的库文件,如:C库和内核模块                                                       
/mnt挂载点,临时挂载文件系统用
/opt附加的软件包
/proc虚拟文件按系统,用于内核和进程通讯
/sbin基本的系统管理程序
/tmp临时文件目录
/usr更多的用户程序,包括X server
/sys虚拟文件系统sysfs挂载点
/var可变信息储存,如log等

 

 

程序文件目录

/bin: 普通用户和root用户都能执行的基本程序,ping,mknod,mount,tar,grep,gzipdeng

/sbin: root用户能执行的基本程序,int,insmod,route,mkfs,rmmod,ifconfig等

/usr/bin: 更多非必须的用户程序,autorun,bibtex,latex,biff,ftp等

/usr/sbin: 更多非必须的root工具程序,automount,httpd,sendmail等

二、根文件系统的制作

1、定制应用程序

1)配置基本的linux命令(嵌入式linux通过busybox制作),主要命令有:

cat、chmod、chown、cp、chroot、copi、date、dd、df、dmesg、dos2unix、du、echo、

env、expr、find、grep、gunzip、gzip、halt、id、ifconfig、init、insmod等等

 

2)配置用户自己的应用

 

2、创建基本的目录,根据FHS规范创建。
3、定制库文件

1)配置基本的glibc库(以so结尾的动态库),复制到自己的根文件系统.

 

2)对于嵌入式,仅仅需要保留使用到的库就可以了。

用ldd、readelf 来查看用到的动态库,去除那些不需要的动态库

 

用Strip将库中的调试信息等去除。

4、创建基本的设备节点

放置目录/dev,嵌入式中只需要创建必须的设备节点,consoles是必须要创建的。


创建命令:mknod /dev/<device> [c|b] <major> <minor>

 

说明:

 

<device>: 设备名称

[c|b]: 设备类型,c:字符设备,b:块设备

<major>: 主设备号,具体查看内核中Documentation/devices.txt的说明

<minor>: 次设备号

5、创建启动脚本
/linuxrc

1)用来初始化系统的一个简单的启动脚本程序,通过内核命令行产生init指定 init=/linuxrc

2)通常用在initrds上或一个简单的系统中

3)通常是nash or busybox sh 脚本

4)这个脚本可以执行多种任务:

加载驱动

设置网络

挂载文件系统

切换到一个新的根文件系统

.......

6、添加启动配置和脚本程序
/etc/inittab

文件格式:id:runlevels:action:process

说明:

id:此处ID指定程序的控制tty,如果程序不需要交互。则ID为空

runlevels:运行等级,busybox不支持

process:将执行的命令和命令的参数

acthion:

Action类型描述
sysinitprovide init with the path to the initialization script
respawn程序终止后重新执行
askfirst同respawn,程序执行前会询问,要求按ENTER建
waitinit等待执行的程序后再继续执行
once只运行程序一次,并且不等待程序运行完就继续执行
ctrlaltdel当按下Ctrl-Alt-Delete组合键时执行的程序
shutdown系统关机时执行的程序
restart系统重新启动时执行的程序,通常是init程序

 

 

/etc/fstab

设置需要挂载的节点

 

文件格式

device mount-point type options dump fsck order

/etc/init.d/rcS

/bin/mount -a #自动挂载/etc/fstab里的设备

7、测试根文件系统
8、制作根文件系统镜像

 

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值