xv6-riscv を QEMU で動かす

1 min読了の目安(約1300字TECH技術記事

RISC-Vエミュを作ってて最初のターゲットとしてxv6の動作を目標にしてます。
xv6を試しに動かしてみたくて、QEMUが手っ取り早いかなって思ってやろうとしたんですが、日本語でまとまった手順がなかったのでメモがてら残しておきます。

📒 xv6サイト(英語) →
📕 RISC-Vサイト(英語) →

環境

  • masOS Catalina 10.15.7
  • Homebrew 2.5.6
  • QEMU emulator version 5.1.0
  • xv6-riscv d4cecb269f2acc

QEMU インストール

Homebrewでインストールします。

$ brew install qemu

下記コマンドでインストールが成功していることを確認する。

$ qemu-system-riscv64 --version
QEMU emulator version 5.1.0
Copyright (c) 2003-2020 Fabrice Bellard and the QEMU Project developers

RISC-V 用のツールチェインのインストール

準備として下記ツール群をインストールする。

$ brew install python3 gawk gnu-sed gmp mpfr libmpc isl zlib expat

riscv/riscv-gnu-toolchain をクローンしてビルドします。

$ git clone --recursive https://github.com/riscv/riscv-gnu-toolchain.git
$ cd riscv-gnu-toolchain
$ ./configure --prefix=/opt/riscv
$ make

詳細は riscv/riscv-gnu-toolchain を参考してください。

xv6-riscv を QEMU 向けにビルド

mit-pdos/xv6-riscv をクローンしてきます。

$ git clone https://github.com/mit-pdos/xv6-riscv.git
$ cd xv6-riscv
$ make qemu

make qemu コマンドでビルドと QEMU の起動まで行うので、すぐに xv6 が起動できます。

作業しながらメモしてましたが、手軽すぎてメモる必要もなかったかもしれません。