从mfgtool工具的打印信息可以看到 mfg采用的是initramfs的方式启动整个系统的,启动log如下
并且可以参看《Freescale_Yocto_Project_User's_Guide.pdf》有如下内容,即可以自己编译成才mfgtool需要的kernel和rootfs,命令bitbake fsl-image-mfgtool-initramfs
编译环境准备好后输入 bitbake fsl-image-mfgtool-initramfs
最后可以看到在目录Y:\build-x11\tmp\work\imx6ulevk-poky-linux-gnueabi 下生成了3个新的文件夹
fsl-image-mfgtool-initramfs mfgtool的initramfs目录
mfgtool-linux-imx mfgtool的linux代码
u-boot-imx-mfgtool mfgtool的uboot代码
并且可以在Y:\build-x11\tmp\deploy\images\imx6ulevk下面找到生成的kernel uboot dab 和rootfs文件
这里需要说明的一点是:系统并没有静initramfs跟kernel合并到一起,而是生成了俩个对应的文件fsl-image-mfgtool-initramfs-imx6ulevk.cpio.gz.u-boot和zImage_mfgtool.zhe
这里生成的文件我并没有测试,因为我的目的是生成自己的inirramfs和内核的合并文件。下面我们利用fsl-image-mfgtool-initramfs mfgtool的initramfs目录下面
Y:\build-x11\tmp\work\imx6ulevk-poky-linux-gnueabi\fsl-image-mfgtool-initramfs\1.0-r0\rootfs制作自己的initramfs。
将这里面的所有文件复制到 自己想要的路径下 下面是我的路径
在dev下面添加节点,console和null,这两个节点是必须存在的,如果你忘了添加,启动最后挂载文件系统时会有错误提示
mknod -m 0666 console c 5 1
mknod -m 0666 null c 1 3
然后修改linuxrc文件如下
#!/bin/sh
export PATH=/sbin:/bin:/usr/sbin:/usr/bin
mount -t sysfs none /sys
mount -t proc none /proc
mount -t devtmpfs none /dev
echo -e "\033[9;0]" > /dev/tty0
cd /
ls
echo "Starting "
sleep 1
PS1="[InitRamFs@\W]#"
export PS1
/bin/sh
exit 0;;
当然有一些不是必须的