如何使用qemu运行Buildroot Linux镜像?

如何使用qemu运行Buildroot Linux镜像?

我已经用 Buildroot for i386 编译了一个嵌入式 Linux。我没有修改太多,只是默认。现在我想在qemu下运行它。但我唯一看到的是: 在此输入图像描述

我正在使用以下选项运行 qemu:

qemu-system-i386 -kernel vmlinux -hda rootfs.ext2 -m 256

为什么会发生这种情况?我已经像 buildroot 文档中的示例一样进行了编译。

答案1

有效的命令

为了绝对确保它能够工作,我们可以让 Buildroot 为我们构建 QEMU,并使用 Buildroot 提供的确切 QEMU CLI:https://github.com/buildroot/buildroot/blob/2019.05/board/qemu/x86_64/readme.txt

git clone https://github.com/buildroot/buildroot
cd buildroot
git checkout 2019.05
make qemu_x86_64_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/bin/qemu-system-x86_64 \
  -M pc \
  -kernel output/images/bzImage \
  -drive file=output/images/rootfs.ext2,if=virtio,format=raw \
  -append "rootwait root=/dev/vda" \
  -net nic,model=virtio \
  -net user \
;

您现在处于 shell 中,可以使用用户名root(无密码)登录。

在此输入图像描述

但请注意,默认的 Buildroot 版本默认情况下没有像 X11 这样有趣的 GUI,因为这不是该项目最常见的用例。我已经在以下位置对此进行了介绍:如何在我自己的Linux Buildroot系统上安装X11?

但由于 Buildroot 没有足够关注我的需求的运行部分(更多自动化、更多启动类型、GDB 步骤调试),我在这个项目上使用一些额外的脚本对其进行了扩展:https://github.com/cirosantilli/linux-kernel-module-cheat

其他 ISA 提及于:https://cirosantilli.com/linux-kernel-module-cheat/#buildroot-hello-world

Buildroot 2019.08 QEMU 构建失败,因为 QEMU 3.1.1 版本的 x86_64 构建已损坏...QEMU 3.1.1 构建失败

在 Ubuntu 19.04 中测试。

相关内容