QEMU が RISC-Vのプラットフォームに対応した。 v.2.12 から、RISC-Vに対応している。
さっそくダウンロードして使ってみる。ついでに、いくつかRISC-Vに対応しているLinuxプラットフォームがあるので試行してみよう。
RISC-V 版 QEMUのビルド試行
RISC-V向けのQEMUターゲットとしては、 riscv64-softmmu
と riscv32-softmmu
が存在する。これを指定しないと、すべてのプラットフォーム向けにビルドが始まってしまい非常に時間がかかるので注意。
今回は riscv64-softmmu
のみ指定した。以下のコマンドにより ${RISCV}/bin
に qemu-system-riscv64
がインストールされる。
$ wget https://download.qemu.org/qemu-2.12.0.tar.xz $ tar Jxf qemu-2.12.0.tar.xz $ cd qemu-2.12.0/ $ mkdir build $ cd build $ ../configure --target-list=riscv64-softmmu --prefix=${RISCV}
QEMU を使ってFedoraのブートを行う
RISC-V対応のLinuxディストリビューションはいくつか存在するが、バイナリが既にいろいろ揃っていてすぐに立ち上がるのはFedoraであろう。それ以外のディストリビューションについては以下にまとめられている。
Fedora についてもQEMUの立ち上げ方は非常に手こずった。最初はBusyBoxを使って一からビルドしようとしたが、現時点でどうしてもうまく行っていない。 まずは Fedora のビルド済みバイナリを使ってQEMUを立ち上げることにした。
一番役に立ったのは、誰かしらがDockeファイルを作ってくれていた。これを参考にした。以下のファイルをダウンロードすることになる。
- Linux本体 :
https://fedorapeople.org/groups/risc-v/disk-images/vmlinux
- Berkeley Boot Loader :
https://fedorapeople.org/groups/risc-v/disk-images/bbl
- Fedoraディスクイメージ :
https://fedorapeople.org/groups/risc-v/disk-images/stage4-disk.img.xz
$ wget https://fedorapeople.org/groups/risc-v/disk-images/vmlinux $ wget https://fedorapeople.org/groups/risc-v/disk-images/bbl $ wget https://fedorapeople.org/groups/risc-v/disk-images/stage4-disk.img.xz $ xzdec -d stage4-disk.img.xz > stage4-disk.img
以下でQEMUを起動する。
qemu-system-riscv64 \ -nographic \ -machine virt \ -kernel bbl \ -object rng-random,filename=/dev/urandom,id=rng0 \ -device virtio-rng-device,rng=rng0 \ -append "console=ttyS0 ro root=/dev/vda" \ -device virtio-blk-device,drive=hd0 \ -drive file=../stage4-disk.img,format=raw,id=hd0 \ -device virtio-net-device,netdev=usernet \ -netdev user,id=usernet,hostfwd=tcp::10000-:22