ひさしぶりにQEMUで遊ぼうかと、QEMU 6.1.0 をWSL2 ubuntu 20.4 にインストールしてみました。
x11とかは使ってないです。
QEMUのサイトから、qemu-6.1.0.tar.xzをダウンロードしました。
tarで展開します。
$ tar xf /mnt/c/Users/hoge/Downloads/qemu-6.1.0.tar.xz
$ cd qemu-6.1.0
configureをすると足りないといわれたので下記パッケージを追加しました。(コンパイラとかmakeとかninjaはすでにインストールしてました。)
$ sudo apt install pkg-config libglib2.0-dev libpixman-1-dev
arm とaarch64のターゲットを有効にしてconfigureしました。トレースを有効にしてます。
$ ./configure --prefix=`pwd`/build --target-list=arm-softmmu,aarch64-softmmu --enable-trace-backend=log
ビルドします。
$ make
...
...
$ ./build/qemu-system-aarch64 --version
QEMU emulator version 6.1.0
Copyright (c) 2003-2021 Fabrice Bellard and the QEMU Project developers
以前書いたプログラムを動かしてみました。
git clone https://github.com/eggman/raspberrypi
cd cd qemu-raspi3/int01
make
make run
$ make run
make kernel.elf
make[1]: Entering directory '/home/sekine/baremetal/raspberrypi/qemu-raspi3/int01'
make[1]: 'kernel.elf' is up to date.
make[1]: Leaving directory '/home/sekine/baremetal/raspberrypi/qemu-raspi3/int01'
qemu-system-aarch64 -M raspi3 -m 1024 -serial mon:stdio -nographic -kernel kernel.elf
int01
a c_irq_handler
a c_irq_handler
(これは動いたけど動かなくなっているのがあるなぁ。)
以上です。