我编译了一个linux内核,并使用buildroot为64位powerpc生成根文件系统。目标CPU POWER7。
建造者的产出:
rootfs.cpio 2] rootfs.ext2 3] rootfs.tar.gz 4] vmlinux
启动qemu仿真
qemu-system-ppc64 -m 1024 -kernel output/images/vmlinux -initrd output/images/rootfs.cpio -serial stdio->输出:第一命令输出
qemu-system-ppc64 -M pseries -cpu POWER7 -m 1024 -kernel output/images/vmlinux -append 'console=hvc0 root=/dev/sda' -drive file=output/images/rootfs.ext2,if=scsi,index=0,format=raw -serial stdio->输出:第二命令输出
我做错了什么,我能做些什么来弥补它?
发布于 2018-01-15 22:37:52
你等了多久了?我想是有一段时间。在这种情况下,看起来内核在启动早期就在某个地方崩溃了,然后才能检测到控制台。如果你的内存太少,这可能会发生,但是1G应该就足够了。如果您为错误的机器/CPU类型构建内核,但您似乎得到了正确的结果,也可能发生这种情况。
有一些说明,这里,您可以尝试,并已知的工作。
发布于 2018-03-18 14:51:05
Buildroot
我还没有专门为powerpc测试过它,但我敢打赌,这一切都会像我迄今尝试过的每个拱门(x86、ARM和MIPS)一样,都是开箱即用的。
只需遵循在:如何下载,(重新)编译它,并使用QEMU引导它?中解释的步骤,并用ppc替换arm。
然后,要使用您自己的Linux内核源代码,基本上只需使用LINUX_OVERRIDE_SRCDIR,如在:如何修改用于包开发的Buildroot包的源代码?中解释的那样。
编辑:我知道这只是一种形式,但是在写完这个问题之后,我实际上测试了下面的命令,并且引导就像预期的那样在方框外工作:
unset LD_LIBRARY_PATH
make qemu_ppc64_pseries_defconfig
printf '
BR2_CCACHE=y
BR2_PACKAGE_HOST_QEMU=y
BR2_PACKAGE_HOST_QEMU_LINUX_USER_MODE=n
BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y
BR2_PACKAGE_HOST_QEMU_VDE2=y
' >>.config
make olddefconfig
time make BR2_JLEVEL="$(nproc)" HOST_QEMU_OPTS='--enable-sdl --with-sdlabi=2.0'
./output/host/usr/bin/qemu-system-ppc64 -M pseries -cpu POWER7 -m 256 -kernel output/images/vmlinux -append 'console=hvc0 root=/dev/sda' -drive file=output/images/rootfs.ext2,if=scsi,index=0,format=raw -serial stdio -display curseshttps://stackoverflow.com/questions/48021127
复制相似问题