安装文件包
kernel编译
apt install binutils-riscv64-linux-gnu
apt install gcc-riscv64-linux-gnu
kernel配置
Device Drivers —>
[] Block devices (NEW) —>
<> RAM block device support
(16) Default number of RAM disks (NEW)
(65536) Default RAM disk size (kbytes)
General setup —>
[*] Initial RAM filesystem and RAM disk (initramfs/initrd) support
kernel编译
make ARCH=riscv CROSS_COMPILE=riscv64-linux-gnu- O=build.rv64le menuconfig
make ARCH=riscv CROSS_COMPILE=riscv64-linux-gnu- O=build.rv64le -j32
busybox配置
Settings —>
[*] Build static binary (no shared libs)
busybox编译
make CROSS_COMPILE=riscv64-linux-gnu- menuconfig
make CROSS_COMPILE=riscv64-linux-gnu- install
PS:此处需要打包成initrd,才能使用
qemu编译
mkdir build
cd build/
…/configure --target-list=riscv64-softmmu
make -j32
运行
/root/opensourece/qemu-riscv/build/qemu-system-riscv64
-M virt
-smp 4
-m 1G
-nographic
-kernel /root/opensourece/linux/build.rv64le/arch/riscv/boot/Image
-append “root=/dev/ram ramdisk_size=65536”
-initrd /root/opensourece/busybox-riscv64/initrd_rv64le.ext4