Embedded
如何使用 qemu 執行 Buildroot Linux 鏡像?
我已經為 i386 編譯了一個帶有 Buildroot 的嵌入式 Linux。我沒有編輯太多,只是預設值。現在我想在 qemu 下執行它。但我唯一看到的是:
我正在使用以下選項執行 qemu:
qemu-system-i386 -kernel vmlinux -hda rootfs.ext2 -m 256
為什麼會這樣?我已經像 buildroot 文件中的範例一樣進行了編譯。
剛剛工作的命令
為了確保它能夠正常工作,我們可以讓 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 \ ;
您現在留在外殼上,您可以使用使用者名
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 中測試。