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

Maj*_*imi 3 embedded qemu buildroot

我已经为 i386 编译了一个带有 Buildroot 的嵌入式 Linux。我没有编辑太多,只是默认。现在我想在qemu下运行它。但我看到的唯一一件事是: 在此处输入图片说明

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

qemu-system-i386 -kernel vmlinux -hda rootfs.ext2 -m 256
Run Code Online (Sandbox Code Playgroud)

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

Cir*_*郝海东 5

有效的命令

为了绝对确保它可以工作,我们可以让 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 \
;
Run Code Online (Sandbox Code Playgroud)

您现在停留在 shell 上,您可以使用用户名root(无密码)登录。

在此处输入图片说明

但是请注意,默认情况下 Buildroot 构建没有像 X11 这样有趣的 GUI,因为这不是该项目最常见的用例。我已经在:如何在我自己的 Linux Buildroot 系统上安装 X11?

但是因为 Buildroot 没有足够关注我需要的运行部分(更多的自动化,更多的启动类型,GDB 步骤调试),我在这个项目中使用了一些额外的脚本对其进行了扩展:https : //github.com/cirosantilli/linux-内核模块作弊

其他 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 中测试。