我使用buildroot构建了一个与qemu兼容的Linux内核和根文件系统。我正在为MPC8544DS机器进行仿真,并使用qemu_ppc_mpc8544ds_defconfig
生成这些组件。我成功地构建了内核和根文件系统。并且能够在qemu下运行它。
然而,当我尝试运行uboot而不是Linux内核(以及相关的rootfs)时,它失败了。以下是我调用qemu启动u-boot的方法:
qemu-system-ppc -nographic -M mpc8544ds -m 512 -kernel ~/CrossCompilation/u-boot.bin
,它像这样失败:
Wrong image type 52, expected 2
qemu: could not load kernel '~/CrossCompilation/u-boot.bin'
我不明白还有什么问题。我在互联网上查看了各种博客文章,几乎所有的博客都使用uboot.bin作为内核(而不是srec和其他格式)
有人能解释一下各种图像类型的数字吗?哪些数字适合哪里?
更新:这是我编译u-boot 的方式
cd to u-boot dir
make distclean
make mrproper
make ARCH=powerpc CROSS_COMPILE=~/CrossCompilation/buildroot-2014.08/output/host/usr/bin/powerpc-buildroot-linux-gnuspe- MPC8544DS_defconfig
make ARCH=powerpc CROSS_COMPILE=~/CrossCompilation/buildroot-2014.08/output/host/usr/bin/powerpc-buildroot-linux-gnuspe-
尝试删除-kernel选项。确保一切保持原样:
qemu-system-ppc -nographic -M mpc8544ds -m 512 ~/CrossCompilation/u-boot.bin