先克隆工具链
git clone https://gitee.com/mirrors/riscv-gnu-toolchain
cd riscv-gnu-toolchain
mkdir /opt/riscv
./configure --prefix=/opt/riscv
for newlib
make
for linux
make linux
for linux 32
./configure --prefix=/opt/riscv --with-arch=rv32gc --with-abi=ilp32d
make linux
或者直接安装 riscv 工具链
sudo apt install gcc-riscv64-linux-gnu gcc-riscv64-unknown-elf
sudo apt install gcc-arm-linux-gnueabi gcc-arm-linux-gnueabihf
sudo apt install gcc-arm-none-eabi
sudo apt install gcc-aarch64-linux-gnu
克隆u-boot和opensbi
git clone https://gitlab.com/u-boot/u-boot.git
git clone https://gitee.com/mirrors/OpenSBI
build u-boot
for arm
export CROSS_COMPILE=arm-linux-gnueabi-
make qemu_arm_defconfig
make
qemu-system-arm -machine virt -nographic -bios u-boot.bin
for aarch64
sudo apt-get install gcc-aarch64-linux-gnu
export CROSS_COMPILE=aarch64-linux-gnu-
make qemu_arm64_defconfig
make
qemu-system-aarch64 -machine virt -nographic -cpu cortex-a57 -bios u-boot.bin
riscv64
cd u-boot
export CROSS_COMPILE=riscv64-linux-gnu-
make qemu-riscv64_smode_defconfig
make
arm64
cd u-boot
export CROSS_COMPILE=riscv64-linux-gnu-
make qemu_arm64_defconfig
make
qemu-system-arm -machine virt -nographic -bios u-boot.bin -cdrom alpine-standard-3.18.4-armv7.iso -boot d
qemu-system-arm -machine virt -nographic -bios u-boot.bin -hda root.img -cdrom alpine-standard-3.18.4-armv7.iso -boot d
refs:
https://docs.u-boot.org/en/latest/board/emulation/qemu-arm.html
https://interrupt.memfault.com/blog/emulating-raspberry-pi-in-qemu