目的:与android烧boot.img一致,使用ramdisk的方式去启动build_root的文件系统。
首先制作ramdisk
一定要在超级用户的模式下,解压ramdisk的镜像,
解压:
mv ramdisk.img ramdisk.img.gz
gunzip ramdisk.img.gz
mkdir tmp
mv ramdisk.img.gz tmp
cd tmp
cpio -iv <ramdisk.img
这时候tmp目录下就是解压完成的ramdisk文件
要注意的/dev/下是否有控制台consolo
如没有在挂载文件系统时,就会失败。
在/etc/init.d/rcS中加入脚本
mkdir /tmp
mount -t ext4 /dev/mmcblk0p7 /tmp
chroot /tmp
./linuxrc
后压制成ramdisk.img
find . | cpio --quiet -H newc -o | gzip -9 -n > ../ramdisk.img
在make menuconfig 时,把ramdisk的路径写入,当做文件系统。
genernal setup ----》Initramfs source file(s)
在uboot中include--》configs 的板级文件中
选中#define CONFIG_BOOTARGS BOOTARGS_COMMON " ip=off root=/dev/ram0 rw rdinit=/linuxrc"
把#ifdef CONFIG_BOOT_ANDROID
#define CONFIG_BOOTARGS BOOTARGS_COMMON
" ip=off root=/dev/ram0 rw rdinit=/init"改为.......rdinit=/linuxrc
编译时要执行make zImage ;用android的工具和已经制成的ramdisk生成boot.img
当然uboot也要用android的config
烧录后正常启动linux就可以像用android那样,在ramdisk中引导真正的文件系统了。