Buildroot fori386を使用して組み込み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-kernel-module-cheat
言及されている他のISA: https://cirosantilli.com/linux-kernel-module-cheat/#buildroot-hello-world
Buildroot 2019.08 QEMU 3.1.1リリースのx86_64ビルドが壊れているため、QEMUビルドが失敗しました... QEMU 3.1.1のビルドに失敗しました
Ubuntu19.04でテスト済み。