qemu on Raspberry Pi Arch Linux最新的sd图像

时间:2013-09-13 00:33:00

标签: linux raspberry-pi qemu raspbian

我正在尝试设置Arch图像并使用qemu以便在将图像加载到Pi之前交叉编译一些内容。我认为最简单的方法是使用最新的初始图像,用我需要的任何东西做好准备,然后在我完成时将它放到Pi上。

我从http://downloads.raspberrypi.org/arch_latest下载了Arch图像,并希望在Qemu下运行它,类似于http://xecdesign.com/qemu-emulating-raspberry-pi-the-easy-way/

我在他们给出的qemu命令行上尝试了很多变种

qemu-system-arm -kernel kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1" -hda 2013-05-25-wheezy-raspbian.img

代替archlinux-hf-2013-07-22.img。但这最终导致“内核恐慌 - 没有同步:没有找到init。尝试将init =选项传递给内核”

我确定这意味着我下载的kernel-qemu无法使用Arch图像,但我不确定解决问题的正确方法。

修改

当我使用上面的命令行时,即使是最新的Raspbian图像内核也会发生混乱。我想这不应该让我感到惊讶,因为它很可能是一个旧内核。

所以我想我的真正问题是,如何使用图像中包含的内核,而不是必须构建自己的内核?

2 个答案:

答案 0 :(得分:7)

如果是archlinux-hf-2013-07-22.img 这里有3个分区。 你可以使用

进行检查

fdisk -l archlinux-hf-2013-07-22.img

rootfs is in sd5 i.e 5th partion.

因此传递此参数"root=/dev/sda5 panic=1",它将完美启动。

答案 1 :(得分:3)

2013-05-25-wheezy-raspbian.img 您可以为两个图像使用相同的内核。

在这里你必须发表评论ld.so.preload,这将加载一些无法登录的共享库。内核恐慌。

Note:-"root=/dev/sda2 panic=1" pass this parameter only.

您可以通过以下方式对其进行评论。

sudo kpartx -av 2013-05-25-wheezy-raspbian.img

mkdir tmp

sudo mount /dev/mapper/loop0p2 tmp/

cd tmp/etc

sudo vi ld.so.preload /usr/lib/arm-linux-gnueabihf/libcofi_rpi.so 评论

#/usr/lib/arm-linux-gnueabihf/libcofi_rpi.so

umount /dev/mapper/loop0p2 kpartx -d 2013-05-25-wheezy-raspbian.img

然后运行qemu

qemu-system-arm -kernel kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1" -hda 2013-05-25-wheezy-raspbian.img

这将毫无困难地完美启动