2.1. 编译概述

2.1.1. Bootloader配置

Openwrt 使用的Uboot默认配置文件位于 package/boot/uboot-m4/configs,采用menuconfig生效内核配置方法如下:

cd m4-openwrt
make V=s -j1 # 生成 build_dir/target-riscv64-unknown-linux-gnu_glibc/uboot-m4-2021.10
cd build_dir/target-riscv64-unknown-linux-gnu_glibc/uboot-m4-2021.10
cp ../../../package/boot/uboot-m4/configs/ZXM47D00_defconfig .config
CROSS_COMPILE="riscv64-unknown-linux-gnu-" ARCH="riscv" make menuconfig
cp .config ../../../package/boot/uboot-m4/configs/ZXM47D00_defconfig

2.1.2. Kernel配置

Openwrt 使用的内核路径为 linux-5.10,以 ZXM47D00 为例默认配置文件位于 target/linux/m4/nand/ZXM47D00/config-5.10,采用menuconfig生效内核配置方法如下:

cd m4-openwrt
cp target/linux/m4/nand/ZXM47D00/config-5.10 linux-5.10/.config
cd linux-5.10/
CROSS_COMPILE="riscv64-unknown-linux-gnu-" ARCH="riscv" make menuconfig
cp .config ../target/linux/m4/nand/ZXM47D00/config-5.10

2.1.3. Dts配置

Dts路径如下所示,其中ZXM47D00-board.dts用于设置板级接口功能; m4-pinctrl.dtsi用于配置引脚复用

ls m4-openwrt/package/boot/uboot-m4/src/arch/riscv/dts

2.1.4. Openwrt配置

完成Bootloader和内核DTS配置既可回到m4-openwrt目录,执行以下命令即可开始固件编译:

make ZXM47D00_zx
# 无需openwrt扩展工具支持可以跳过这步
make menuconfig
make V=s -j4
# 生成固件位于: bin/targets/m4/nand/ZXM47D00/m4_ZXM47D00_nand_page_2k_block_128k_v1.0.0.img

准备工作完成后应该能够顺利编译出固件