i386用のBuildrootを使用して組み込みLinuxをコンパイルしました。あまり修正しなかったので、デフォルト値のみを使用しました。今qemuで実行したいと思います。しかし、私が見る唯一のものは次のとおりです。
次のオプションでqemuを実行しています。
qemu-system-i386 -kernel vmlinux -hda rootfs.ext2 -m 256
なぜこれが起こるのですか? buildrootドキュメントの例のようにコンパイルしました。
答え1
有効なコマンド
正しく機能していることを確認するには、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 ビルドの失敗
Ubuntu 19.04でテストされました。