下载kernel + rootfs并用u-boot启动

我们正在与几台单板电脑(SBC)合作。 我们使用Yocto(使用U-boot作为引导程序)生成Linuxembedded式映像,并将其手动部署到SD卡上。 目前这种情况很好,当我们处于testing阶段,没有太多的SBC。 但是后来肯定会太慢

我们有一个SBCnetworking的中央服务器。 目前,这是一个简单的DHCP服务器,根据卡的MAC地址,影响IP地址。 首先,我们曾经想过创build一个PXE服务器,但是似乎某些SBC的内部启动ROM加载器(例如飞思卡尔i.MX6)不支持PXE启动过程。

所以我们只想在卡上加载u-boot,然后使用脚本(boot.scr)来下载所有需要的(zImage,dtb和rootfs)来启动。 我们不想使用NFS(没有瘦客户机,我们希望所有必要的都可以下载到卡上)。 目前,我们可以使用这个下载内核和dtb文件:

U-Boot > dhcp ${image}; tftpboot ${fdt_addr} ${fdt_file} ; fdt addr ${fdt_addr} U-Boot > bootz ${loadaddr} - ${fdt_addr} 

当然,因为没有rootfs,内核的启动以kernel panic结束。 但是我们不知道如何下载rootfs并使用它来创build内核。 任何build议如何做到这一点是值得欢迎的。 谢谢。

所以,我发现如何做到这一点:

 tftpboot 0x12000000 zImage tftpboot ${fdt_addr} ${fdt_file} tftpboot 0x19000000 core-image-minimal-boot.cpio.gz.u-boot bootz 0x12000000 0x19000000 ${fdt_addr} 

要创build.cpio.gz.u-boot ,我必须编辑conf/local.conf

 IMAGE_CLASSES += "image_types_uboot" IMAGE_FSTYPES = "cpio.gz.u-boot"