制作嵌入式Linux根文件系统

操作系统:fedora 17 (linux-3.3.4)
开发板:友善之臂Tiny6410
gcc & g++ : 4.7.2
arm-linux-gcc & arm-linux-g++ : 4.5.1
busybox-1.20.2

1.新建目录rootfs
# mkdir rootfs
# cd rootfs

2.编译安装Busybox
解压busybox源码包
# tar jxvf busybox-1.20.2.tar.bz2

配置编译选项
# cd busybox-1.20.2
# make menuconfig
在Busybox Settings -> Build Options -> Cross Compiler prefix 设置编译器前缀为 arm-linux-

编译并安装,默认安装在_install目录
# make && make install
# cp _install/* /home/sunke/work/rootfs -r

这样就生成了bin sbin usr linuxrc ,进入usr目录新建额外的几个目录
# cd usr
# mkdir lib local share

3.新建并填充lib目录
# mkdir lib
# cd lib

从交叉编译器的安装路径拷贝出对应的动态库
# cp -d /opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/lib/*.so* ./

额外再建一个modules目录
# mkdir modules

4.新建并填充etc目录
# mkdir etc
# cd etc

etc目录较复杂,但内容固定,可直接拷贝出友善之臂的etc目录,本手册直接利用了国嵌提供的etc目录
# tar zxvf etc.tar.gz
# cp etc/* /home/sunke/work/rootfs -r

5.新建并填充dev目录
# mkdir dev
# cd dev

手动创建两个设备,其他设备由mdev自动创建
# mknod -m 666 console c 5 1
# mknod -m 666 null c 1 3

6.新建其他目录
# mkdir proc sys mnt mnt/nfs tmp var home root

7.将rootfs打包成ubi镜像
需将友善之臂提供的工具解压到/usr/sbin
mkubimage-mlc2 rootfs rootfs-201212262052.ubi

8.通过USB或SD卡下载到开发板上,启动成功。

PS:可以在/etc/init.d/ 添加启动项(配置网络、设置环境变量、自启动程序等)
PS:配置网络的命令如下
ifconfig eth0 10.10.206.130 netmask 255.255.255.0
route add default gw 10.10.206.254
PS:也可以考虑直接拷贝友善之臂完整根文件系统中的etc目录来使用,特别是在移植QT的时候,/etc/medv.conf需要拷贝过来。 

你可能感兴趣的:(linux,根文件系统)