上海怡胜
IT技术交流QQ群:378333774
www.ysitroad.net
制作根文件系统
能在linux-3.0.8与smart210开发板平台运行的根文件系统的制作
实验目的
掌握简单linux根系统的制作过程,搭建开发平台
实验材料
交叉编译器:arm-linux-gcc-4.5.1
Busybox: busybox-1.17.2-20101120.tgz
实验工具
Linux操作系统:Ubuntu14.04
ARM交叉编译套件
实验步骤
1.编译/安装Busybox(busybox-1.17.2-20101120.tgz),
具体步骤:
创建制作根文件系统的路径(假定为/root/myroot/rootfs)
#> mkdir /root /myroot
#> mkdir /root /myroot/rootfs
将busybox压缩包解压到/root /myroot目录下
#>tar –zxvf busybox-1.17.2-20101120.tgz -C /root/myroot/
进入解压后软件所在目录
#> cd busybox-1.17.2
修改Makefile文件
#> vim Makefile
修改前:
164 CROSS_COMPILE ?=
190 ARCH ?= $(SUBARCH)
修改后:
164 CROSS_COMPILE ?= arm-linux-
190 ARCH ?= arm
添加临时环境变量
#>export PATH=/opt/FriendlyARM/toolschain/4.5.1/bin:$PATH
配置Busybox
#> make menuconfig,进入busybox配置窗口
在Busybox Settings --------->
Installation Options --------->
(./_install)BusyBox installation prefix
输入/root/myroot/rootfs,
其他默认原设置,保存退出
编译busybox
#> make
安装busybox
#> make install
安装结束后,在目录/root/myroot/rootfs/下将生成4个文件:bin、 sbin、 usr 、linuxrc。
2. 添加动态库与加载器,
具体步骤:
动态库与加载器的位置是:/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/lib/
创建库目录
#> mkdir –p /root/myroot/rootfs/lib
进入lib目录
#> cd /root/myroot/rootfs/lib/
添加库函数
#> cp /opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/lib/*.so* ./
#> cp /opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/lib/*.a* ./
结果在/root/myroot/roofs/lib目录中如下图
具体步骤:
3.1创建etc/inittab文件
进入根文件系统目录(/root/myroot/rootfs)
#> cd /root/myroot/rootfs/
创建etc目录
#> mkdir etc
进入etc目录
#> cd /root/myroot/rootfs/etc
创建inittab文件
#> vi inittab
内容如下:
# /etc/inittab
::sysinit:/etc/init.d/rcS
::askfirst:-/bin/sh
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r
进入根文件系统etc目录(/root/myroot/rootfs/etc)
#> cd /root/myroot/rootfs/etc/
创建fstab文件
#> vi fstab
内容如下:
# device mount-point type options dum fsck order
proc /proc proc defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
sysfs /sys sysfs defaults 0 0
结果如下图
3.3 创建etc/init.d/rcS文件
创建/root/myroot/rootfs/etc/init.d目录
#> mkdir -p /root/myroot/rootfs/etc/init.d
进入/root/myroot/rootfs/etc/init.d目录
#> cd /root/myroot/rootfs/etc/init.d
创建etc/init.d/rcS文件
#> vi rcS
内容如下:
#!/bin/sh
mount -a
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s
修改文件属性,使之能执行
#>
chmod +x /root/myroot/rootfs/etc/init.d/rcS
结果如下图
具体步骤:
创建/root/myroot/rootfs/dev目录
#> mkdir /root/myroot/rootfs/dev
进入/root/myroot/rootfs/dev目录
#> cd /root/myroot/rootfs/dev
静态创建设备文件
#> mknod console c 5 1
#> mknod null c 1 3
5.构建其他目录
具体步骤:
进入/root/myroot/rootfs/
#> cd /root/myroot/rootfs/
创建其他目录
#> mkdir proc mnt tmp sys root
结果在目录/root/myroot/roofs/下有如下图文件:
6.制作yaffs文件系统映像文件
具体步骤:
解压缩制作yaffs2镜像文件工具
#> tar -zxvf mktools-20120518.tar.gz -C /
进入/root/myroot/
#> cd /root/myroot/
复制制作yaffs文件工具
#> cp /usr/sbin/mkyaffs2image-128M ./
制作yaffs2映像文件
#> ./mkyaffs2image-128M rootfs root.image
最后在目录/root/myroot/下,生成yaffs2映像文件——root.image
7. 移植
将root.image移植到开发板上,重启即可