(失敗メモ)RISC-V 版 Haiku in QEMU
はじめに
Haiku (Haiku OS) のナイトリービルドには RISC-V 64 版があり、公式ブログでは QEMU で起動しているスクリーンショットが掲載されています。
しかし残念ながら私は、QEMU で起動させることができませんでした。
将来の再チャレンジの時のために、今回やったことを残しておきます。
QEMU まったく分からないマンなので、アドバイスいただけると嬉しいです。
QEMU のビルド
RISC-V をエミュレーションする Windows 用 QEMU は公式バイナリが無いので、自前でビルドします。途中まではこちらのサイトの手順そのままです。
MSYS2 のインストール
MSYS2 のサイトの Installation セクションからインストーラー msys2-x86_64-yyyymmdd.exe
をダウンロードし、インストールします。
デフォルトで C:\msys64
にインストールされます。
mingw64.exe
(青いアイコン)をダブルクリックして起動します。
RISC-V エミュレーション QEMU のビルド
mingw64 コマンドプロンプト内で以下を実行していきます。
pacman -Syu
Yes/No を聞かれたら y
で回答します。
突然 mingw64 が落ちたりして不安になりますが、mingw64 を再度起動して、上記も再度実行。`there is nothing to do' が表示されるまで繰り返し実行します(とはいえ 3 回でそうなりました)。
次は開発用パッケージのインストール。
pacman -S --needed base-devel \
git \
python \
python-setuptools \
ninja
続いて依存関係のインストール。
pacman -S --needed mingw-w64-x86_64-glib2 \
mingw-w64-x86_64-pixman \
mingw-w64-x86_64-gtk3 \
mingw-w64-x86_64-SDL2 \
mingw-w64-x86_64-libslirp \
mingw-w64-x86_64-toolchain \
mingw-w64-x86_64-python-sphinx \
mingw-w64-x86_64-python-sphinx_rtd_theme \
mingw-w64-x86_64-meson```
続いて QEMU ソースコードの入手。
git clone https://gitlab.com/qemu-project/qemu.git
cd qemu
git submodule init
git submodule update --recursive
そしてビルドします。
./configure --target-list=riscv64-softmmu --disable-docs
make -j $(nproc)
私の環境では 5 分ほどかかりましたが、C:\msys64\home\(ユーザー名)\qemu\build
に qemu-system-riscv64.exe
が生成されます。
Haiku の実行
Haiku ナイトリービルドから最新のイメージファイルをダウンロードし、zip を展開してイメージファイルを build
フォルダに保存します(そこに置くのはどうかという気もしますが実験ということで)。
QEMU RISCV64 u-boot バイナリ u-boot.bin
もダウンロードして build
フォルダに保存します。
mingw64 コマンドプロンプト内で
cd build
./qemu-system-riscv64 -M virt -m 1G -device ati-vga -kernel u-boot.bin \
-drive file=haiku-master-hrevXXXXX-riscv64-mmc.image,format=raw,if=virtio \
-usb -device usb-ehci,id=echi -device usb-kbd -device usb-tablet
として QEMU を起動し、RISC-V 版 Haiku を実行します。
QEMU は起動したものの、Haiku 側で VM の画面に何も出力していないようです。
50% の確率でハングアップする不具合があるらしいので何度か起動してみましたが、ダメでした。
備考
WSL2 内で Ubuntu 用 QEMU を用いる方法も試してみたのですが、Fedora は起動したものの Haiku は起動しませんでした。
確認環境
項目 | 環境 |
---|---|
Windows | Windows 11 Pro 23H2 |
Haiku | hrev58294-riscv64-mmc |
QEMU | version 9.1.50 (v9.1.0-1348-g11b8920ed2) |
Discussion