宿主机环境

宿主机 Archlinux,安装 riscv64 交叉编译器和 qemu。

yay -S risc-v qemu qemu-arch-extra

u-boot

编译 u-boot,作为引导的第二级。 注意:为了让 u-boot 运行在 supervisor mode,选择配置 qemu-riscv64_smode_defconfig

git clone https://gitlab.denx.de/u-boot/u-boot.git --depth 1
cd u-boot
make qemu-riscv64_smode_defconfig CROSS_COMPILE=riscv64-linux-gnu-
make CROSS_COMPILE=riscv64-linux-gnu-

生成 u-boot.bin

debian 镜像

https://people.debian.org/~gio/dqib/ 找到 Images for riscv64-virt,下载 debian 预编译的镜像 解压后得到镜像 image.qcow2

正式启动

注意修改 u-boot.binimage.qcow2 路径

qemu-system-riscv64 -nographic -machine virt -m 1G \
    -kernel /usr/share/qemu/opensbi-riscv64-generic-fw_dynamic.bin \
    -device loader,file=/home/light4/sources/u-boot/u-boot.bin,addr=0x80200000 \
    -object rng-random,filename=/dev/urandom,id=rng0 -device virtio-rng-device,rng=rng0 \
    -append "console=ttyS0 rw root=/dev/vda1" \
    -device virtio-blk-device,drive=hd0 -drive file=/home/light4/Downloads/debian-riscv/artifacts/image.qcow2,format=qcow2,id=hd0 \
    -device virtio-net-device,netdev=net0,mac=52:54:00:12:34:58 -netdev user,id=net0

参考链接

  1. 基于 qemu-riscv64 模拟器运行 debian
  2. https://wiki.debian.org/RISC-V