web-dev-qa-db-ja.com

qemuを使用してBuildrootLinuxイメージを実行する方法は?

Buildroot fori386を使用して組み込みLinuxをコンパイルしました。私はあまり編集せず、デフォルトだけです。今度はqemuで実行したいと思います。しかし、私が見る唯一のものはこれです: enter image description here

私はこれらのオプションでqemuを実行しています:

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

なぜこれが起こっているのですか? buildrootドキュメントの例のようにコンパイルしました。

3
Majid Azimi

正しく機能するコマンド

それが確実に機能するようにするために、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(パスワードなし)でログインできます。

enter image description here

ただし、デフォルトの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でテスト済み。