基于 qemu-riscv64 模拟器运行 Debian
宿主机环境
宿主机 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.bin
和 image.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