嵌入式linux文件系统格式,嵌入式linux根文件系统制作(经典)

1.准备工作

下载busybox工具说明:用于制作可执行命令工具集

2.开发环境

1)主机:RedHat 9

2)交叉编译工具路径:/usr/local/arm/3.3.2/(用于编译busybox1.2.0)

把/usr/local/arm/3.3.2/bin路径添加到/etc/profile文件中

3)开发板:友善之臂SBC2410

4)开发板分别使用的Linux2.4.18内核和Linux2.6.14内核验证文件系统

3.建立目标板空根目录文件夹及根目录下的文件夹

[root@190 friendly-arm]# mkdir myroots

[root@190 friendly-arm]#pwd

/friendly-arm/myroots

[root@190 friendly-arm]#cd myroots

[root@190 myroots]#

[root@190 myroots]# mkdir bin sbin usr lib dev mnt opt root etc home proc tmp var

[root@190 myroots]# mkdir etc/init.d

进入etc/init.d目录下,建立一个脚本文件,并命名为rcS,用gedit打开,添加如下内容:

#! /bin/sh

PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:

runlevel=S

prevlevel=N

umask 022

export PATH runlevel prevlevel

#

#Trap CTRL-C &c only in this shell so we can interrupt subprocesses.

#

trap ":" INT QUIT TSTP

[root@190 myroots]# cd ../lib

也就是进入lib目录,添加相应的库文件,具体操作略。

4.移植Busybox

进入到压缩文件存放的目录下,并解压。然后进入解压后的busybox目录文件夹,随后配置busybox。

[root@190 busybox-1.2.0]# make menuconfig

执行之后,将出现如下图所示的配置界面:

7335833_1.jpg

由于每个版本的配置选项组织有所不同。不管怎样,我们注意以下选项就行了:

1) Support for devfs

2) Build BusyBox as a static binary ( no shared libs )//将busybox编译成静态链接

3) Do you want to build busybox with a Cross Compile?

(/usr/local/arm/3.3.2/bin/arm-linux-) Cross Compile prefix//指定交叉编译器

4) init

5) Support reading an inittab file//支持init读取/etc/inittab配置文件

6) (X) ash选中ash//建立的rcS脚本才能执行

7)ash

8)cpcatlsmkdirmv//可执行命令工具的选择,自己看着办吧,需要用到的就选上

9) mount

10) umount

11) Support loopback mounts

12) Support for the old /etc/mtab file

13) insmod

14) Support version 2.2.x to 2.4.x Linux kernels

15) Support version 2.6.x Linux kernels

16) vi

以上内容必须选上,其他可按默认值;如果要支持其他功能,如网络支持等,可按需选择,英语不是很烂的话,这些都没有问题。

配置好之后,保存退出。然后对其编译和安装到刚才建立的根文件系统目录下:

[root@190 busybox-1.2.0] make TARGET_ARCH=arm CROSS=arm-linux- \ PREFIX=/friendly-arm/myroots/ all install

安装好之后,将相应的二进制文件拷贝到根文件系统相应的目录下。

5.制作yaffs文件系统包

[root@190 friendly-arm]#mkyaffsimagemyrootsmyroots.img

6.下载根文件系统包到开发板上,并运行,其结果如图所示

7335833_2.jpg

7.补充

首先,本文档制作的根文件系统,是用mkyaffsimage打包成了yaffs镜像文件,也可以使用其他打包工具制作成其他形式的根文件系统,但必须是内核要有相应文件系统的支持,否则,将无法挂上根文件系统。

其次,我们可以根据项目需要,在相应的目录下,添加相应的文件,并配置相应的服务。如内核动态加载模块可放在lib下,在启动脚本里挂载相应的模块;在etc目录下,可移植tinyligin登录界面应用程序,等等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值