BusyBox 构建 RISC-V Linux 根文件系统 rootfs 示例
flyfish
安装工具
sudo apt install libc6-riscv64-cross
sudo apt install binutils-riscv64-linux-gnu
sudo apt install gcc-riscv64-linux-gnu
下载地址
git clone https://git.busybox.net/busybox
配置
CROSS_COMPILE=riscv64-linux-gnu- make menuconfig
编译
CROSS_COMPILE=riscv64-linux-gnu- make -j $(nproc)
CROSS_COMPILE=riscv64-linux-gnu- make install
结果
根据下面的桌面Linux 增加些文件夹
mkdir dev etc home lib mnt proc root sys tmp var
mkdir etc/init.d
在etc/init.d/目录下建立 rcS文件
touch rcS
内容如下
#!/bin/sh
mount -t proc none /proc
mount -t sysfs none /sys
/sbin/mdev -s
建立镜像
qemu-img create rootfs.img 4g
mkfs.ext4 rootfs.img
开始构建
mkdir rootfs
sudo mount -o loop rootfs.img rootfs
cd rootfs
sudo cp -r ../busybox/_install/* .
sudo umount rootfs
_install里的文件会全部写入 rootfs.img
qemu-system-riscv64 -M virt -m 512M -nographic -kernel riscv64-linux/Linux/arch/riscv/boot/Image -drive file=rootfs.img,format=raw,id=hd0 -device virtio-blk-device,drive=hd0 -append "root=/dev/vda rw console=ttyS0"
运行结果