使用Busybox制作根文件系统
步骤
1.编译/安装BUSYBOX(BUSYBOX-1.17.2-20101120.TGZ)
2. 添加动态库与加载器
3.构建ETC目录
3.1创建etc/inittab文件
3.2创建etc/fstab文件
3.3创建etc/init.d/rcS文件
4.构建DEV目录
5.构建其他目录
6.制作YAFFS文件系统映像文件
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目录中如下:
ld-2.11.so libcrypt-2.11.so libgomp.a libm.so.6 libnss_files-2.11.so libnss_nis.so.2 librt.so.1 libstdc++.a libthread_db.so.1
ld-linux.so.3 libcrypt.so.1 libgomp.so libnsl-2.11.so libnss_files.so.2 libpcprofile.so libSegFault.so libstdc++.so libutil-2.11.so
libanl-2.11.so libc.so.6 libgomp.so.1 libnsl.so.1 libnss_hesiod-2.11.so libpthread-2.11.so libssp.a libstdc++.so.6 libutil.so.1
libanl.so.1 libdl-2.11.so libgomp.so.1.0.0 libnss_compat-2.11.so libnss_hesiod.so.2 libpthread.so.0 libssp_nonshared.a libstdc++.so.6.0.14
libBrokenLocale-2.11.so libdl.so.2 libiberty.a libnss_compat.so.2 libnss_nis-2.11.so libresolv-2.11.so libssp.so libstdc++.so.6.0.14-gdb.py
libBrokenLocale.so.1 libgcc_s.so libm-2.11.so libnss_dns-2.11.so libnss_nisplus-2.11.so libresolv.so.2 libssp.so.0 libsupc++.a
libc-2.11.so libgcc_s.so.1 libmemusage.so libnss_dns.so.2 libnss_nisplus.so.2 librt-2.11.so libssp.so.0.0.0 libthread_db-1.0.so
3. 构建etc目录,
具体步骤:
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
3.2创建etc/fstab文件
进入根文件系统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
4.构建dev目录
具体步骤:
创建/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/下有如下图文件:
bin dev etc lib linuxrc mnt proc root sbin sys tmp usr
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
本文来自博客园,作者:闹闹爸爸,转载请注明原文链接:https://www.cnblogs.com/wanglouxiaozi/p/9565451.html