1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

qemuでriscv fedoraを立ち上げる

Last updated at Posted at 2020-09-21

公式wiki ( https://fedoraproject.org/wiki/Architectures/RISC-V/Installing )の通りにやるだけだがメモ。

ホスト環境

OpenSUSE Tumbleweed (x86_64)

手順

イメージのダウンロード

上のwikiには手動でディスクイメージを作成する方法も載っているが、検証済みのイメージがあるのでそれをダウンロードする(現時点での最新版はfedora32/v5.5-rc5):

$ wget https://dl.fedoraproject.org/pub/alt/risc-v/repo/virt-builder-images/images/Fedora-Minimal-Rawhide-20200108.n.0-sda.raw.xz # ディスクイメージ
$ wget https://dl.fedoraproject.org/pub/alt/risc-v/repo/virt-builder-images/images/Fedora-Minimal-Rawhide-20200108.n.0-fw_payload-uboot-qemu-virt-smode.elf # firmware
$ xz -dv Fedora-Minimal-Rawhide-20200108.n.0-sda.raw.xz # 展開

qemuのビルド

ディストリビューションのqemuで良いと思われるが簡単なのでqemuはビルドする:

$ git clone https://github.com/qemu/qemu
$ cd qemu
$ git checkout -b build v5.1.0-rc3
$ mkdir build && cd build
$ ../configure --target-list=riscv64-softmmu --disable-docs
$ make -j4

起動

wikiの通りに以下のようなスクリプトを使用する:

  QEMU_RISCV64=/path/to/qemu/build/riscv64-softmmu/qemu-system-riscv64

  $QEMU_RISCV64 \
   -nographic \
   -machine virt \
   -smp 2 \
   -m 4G \
   -kernel Fedora-Minimal-Rawhide-20200108.n.0-fw_payload-uboot-qemu-virt-smode.elf     \
   -object rng-random,filename=/dev/urandom,id=rng0 \
   -device virtio-rng-device,rng=rng0 \
   -device virtio-blk-device,drive=hd0 \
   -drive file=Fedora-Minimal-Rawhide-20200108.n.0-sda.raw,format=raw,id=hd0 \
   -device virtio-net-device,netdev=usernet \
   -netdev user,id=usernet,hostfwd=tcp::10000-:22

起動するとログインコンソールが出る直前にユーザー名/パスワードが表示される (riscv/fedora_rocks!)。

コメント: -kernelオプションにファームウェアを指定しているので、ここからlinux kernelを置き換えるのが面倒そう。

(追記) kernel入れ替え

QEMUの中にfimwareが組み込まれているようで、以下のオプションでQEMUにkernelを与えて起動することができた:

 $QEMU_RISCV64 \
   -nographic \
   -machine virt \
   -smp 2 \
   -m 4G \
   -bios default \
   -kernel /path/to/linux/arch/riscv/boot/Image \
   -append "root=/dev/vda4 ro console=ttyS0 earlycon" \
   -object rng-random,filename=/dev/urandom,id=rng0 \
   -device virtio-rng-device,rng=rng0 \
   -device virtio-blk-device,drive=hd0 \
   -drive file=Fedora-Minimal-Rawhide-20200108.n.0-sda.raw,format=raw,id=hd0 \
   -device virtio-net-device,netdev=usernet \
   -netdev user,id=usernet,hostfwd=tcp::10000-:22
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?