您的位置:首页 > 其它

制作ramdisk的全过程

2007-03-04 17:08 381 查看
我把我做ramdisk的全过程写出来,请大侠们看看是否是因为
制作ramdisk有问题导致的内核无法加载根文件系统!!

1 建立根文件系统结构
#cd /home/fortis/rootfs
#mkdir bin dev etc lib proc sbin tmp usr var
#chmod 1777 tmp
#mkdir usr/bin usr/lib usr/sbin
#mkdir var/lib var/lock var/log var/run var/tmp
#chmod 1777 var/tmp

2 准备链接库
#cd ${OBJ_LIB}/lib (${OBJ_LIB}是交叉编译环境的目录)
#for file in libc libcrypt libdl libm /
>libpthread libresolv libutil
>do
>cp $file-*.so /home/fortis/rootfs/lib
>cp -d $file.so.[*0-9] /home/fortis/rootfs/lib
>done
#cp -d ld*.so* /home/fortis/rootfs/lib

3 使用busybox制作系统应用程序
(1)下载busybox-1.1.2, 解压
(2)#make defconfig
(3)#make menuconfig (主要修改以下配置)
busybox settings --->
build options --->

build busybox as a static binary(no shared libs)

do you want to build busybox with a cross compiler?
(这里写上交叉编译器的前缀)
linux Ext2 FS progs --->
将这下面的选项都去掉了,否则编译会出错,不知什么原因。
(4)#make TARGET_ARCH=arm PREFIX=/home/fortis/rootfs all install

4 准备所需的设备文件
#cd /home/fortis/rootfs/dev
#mknod -m 600 console c 5 1

5 制作initrd映象文件
#mkdir initrd
#dd if=/dev/zero of=initrd.img bs=1k count=8192
#/sbin/mke2fs -F -v -m0 initrd.img
#mount -o loop initrd.img initrd
#cp -av /home/fortis/rootfs/* initrd
#umount
#gzip -9<initrd.img>initrd.bin

initrd.bin 就是是最终要放到目标开发板上的根文件系统
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: