Skip to content

开发环境搭建与程序烧录

一、环境搭建

使用WSL2 环境 Ubuntu22.04 即可

在用户目录下建立 work/d1s 文件夹作为我们的工作空间,将资料里对应的文件放到这个目录下:

这几个文件夹的作用如下:

bootcard/  
  用于打包启动镜像的工具或脚本,将 SPL、U-Boot、设备树、内核等组合成可启动镜像。

linux-5.4/  
  Linux 内核源码目录,包含内核、驱动和设备树,编译后生成 Image、dtb 等文件。

opensbi/  
  RISC-V 平台的底层固件,运行在 M 模式,为内核提供 SBI 接口(中断、时钟等)。

riscv64-wangzai-linux-gnu-gcc/  
  RISC-V 交叉编译工具链,用于编译 OpenSBI、U-Boot、Linux 等源码。

spl/  
  Secondary Program Loader,U-Boot 的精简引导阶段,用于初始化 DDR、时钟等基础硬件。

u-boot/  
  通用引导程序源码,负责加载内核和设备树,提供串口命令行与启动控制功能。

二、程序烧录

进入linux源码目录进行编译:

bash
cd linux-5.4/
export ARCH=riscv
export CROSS_COMPILE=/home/duruofu/work/d1s/riscv64-wangzai-linux-gnu-gcc/bin/riscv64-unknown-linux-gnu-
make wangzai_d1s_rtl8723ds_defconfig
make  -j8

将Image和wangzai_d1s.dtb文件拷贝到“bootcard”目录下:

bash
cp ~/work/d1s/linux-5.4/arch/riscv/boot/dts/sunxi/wangzai_d1s.dtb ~/work/d1s/bootcard/
cp ~/work/d1s/linux-5.4/arch/riscv/boot/Image ~/work/d1s/bootcard/

制作启动卡(使用usbipd 挂载读卡器到wsl):

ls /dev/sd*

这里的/dev/sde是SD卡,不放心可以拔掉测试,进入“bootcard”,执行如下命令(不同的环境对应的号不一样,需要自己测试一下):

bash
sudo ./mkbootcard  /dev/sde

这里遇到了烧录不了的情况,是由于WSL默认不支持USB块设备驱动,需要重新编译内核,可以参考:

https://zhuanlan.zhihu.com/p/661175117

或者直接升级WSL2 现在最新的内核已经可以直接支持USB块设备驱动了

烧录完成将SD卡插上,即可启动系统。