Raspberry Pi Arch Linux上的qemu最新sd映像

Raspberry Pi Arch Linux上的qemu最新sd映像,linux,raspberry-pi,qemu,raspbian,Linux,Raspberry Pi,Qemu,Raspbian,我试图建立一个Arch图像并使用qemu,以便在将图像加载到Pi之前交叉编译一些东西。我认为最简单的方法是qemu最新的入门图片,准备好我需要的任何东西,然后在我完成后将其添加到Pi上 我从下载了Arch图像,并希望在Qemu下运行它,类似于 我在他们提供的qemu命令行上尝试了许多变体 qemu-system-arm -kernel kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "

我试图建立一个Arch图像并使用qemu,以便在将图像加载到Pi之前交叉编译一些东西。我认为最简单的方法是qemu最新的入门图片,准备好我需要的任何东西,然后在我完成后将其添加到Pi上

我从下载了Arch图像,并希望在Qemu下运行它,类似于

我在他们提供的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=选项传递给内核”

我确信这意味着我下载的内核qemu不能与Arch映像一起工作,但我不确定解决这个问题的正确方法

编辑:

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


因此,我想我真正的问题是,如何使用映像中包含的任何内核,而不必构建自己的内核?

如果是archlinux-hf-2013-07-22.img 这里有三个聚会。 您可以使用

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

rootfs位于sd5中,即第5部分。


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

2013-05-25-wheezy-raspbian.img中
您可以对两个映像使用相同的内核

这里您必须对ld.so.preload进行注释,这将加载一些共享库,而这些库将无法登录。所以内核恐慌

注意:-“root=/dev/sda2 panic=1”仅传递此参数。

您可以通过执行以下操作对其进行评论

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

mkdir tmp

sudo挂载/dev/mapper/loop0p2 tmp/

cd-tmp/etc

sudo vi ld.so.preload
/usr/lib/armlinux gnueabihf/libcofi_rpi.so 评论

#/usr/lib/arm-linux-gnueabihf/libcofi\u-rpi.so

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

然后运行qemu

qemu系统arm-内核qemu-cpu arm1176-m 256-m versatilepb-无需重新启动-串行stdio-附加“root=/dev/sda2 panic=1”-hda 2013-05-25-wheezy-raspbian.img


这将完美地启动,没有任何问题

对不起,我还没有检查。我最终只是使用Pi进行编译,但会检查这一点,因为将来可能需要使用qemu。使用kpartx注释ld.so.preload中的行,允许我在Linux Mint 17中的qemu上启动Raspbian。这很有效。也许将内容与其他答案结合起来?谢谢。Xecdesign是404,注释发现您需要注释掉/etc/ld.so.preload,以便qemu为raspbian开发raspberry pi。