Embedded

如何使用 qemu 執行 Buildroot Linux 鏡像?

  • September 24, 2019

我已經為 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 中測試。

引用自:https://unix.stackexchange.com/questions/44062