Openwrt 编译

本章介绍Openwrt/Lede固件的编译流程,推荐使用Ubuntu18.04进行编译。

关于如何使用 Openwrt/Lede 系统,请查看维基《Openwrt使用手册

获取源码

mkdir firefly_openwrt
cd firefly_openwrt
repo init --repo-url=https://gitlab.com/firefly-linux/git-repo -u https://gitlab.com/firefly-linux/manifests -b master -m rk356x_openwrt_release.xml --no-clone-bundle
.repo/repo/repo sync -c --no-clone-bundle

获取源码后,以后从官方更新代码,直接运行:

.repo/repo/repo sync -c --no-clone-bundle

编译前配置

  • 编译 Openwrt 固件

./build.sh roc-rk3568-pc-openwrt.mk
  • 编译 Lede 固件

./build.sh roc-rk3568-pc-lede.mk

自动编译

配置完成后即可进行编译

./build.sh all
./build.sh firmware

手动分步编译

编译 uboot

./build.sh uboot

编译 kernel

./build.sh kernel

编译 openwrt

方法1:

./build.sh openwrt

方法2:

cd openwrt_sdk/openwrt/
# 或者 cd openwrt_sdk/lede/: 这取决于你编译的版本
./scripts/feeds update -a 
./scripts/feeds install -a 
cp ../configs/XXXX_config .config
make defconfig
make download -j8
make -j8

编译 recovery

./build.sh recovery

打包固件

为打包固件做准备

./build.sh firmware

SDK支持打包两种固件:

第一种:线刷固件、SD 卡升级固件

./build.sh updateimg

第二种:SD 卡启动固件

./build.sh rawimg

固件烧写

线刷固件、SD 卡升级固件

请阅读维基教程 《使用USB线缆升级固件》和《使用SD卡升级固件

SD 卡启动固件

使用工具 balenaEtcher ,下载链接:https://www.balena.io/etcher/

自定义固件

firefly-rk3568-roc-pc_openwrt.mk 为例,

# Uboot defconfig
export RK_UBOOT_DEFCONFIG=firefly-rk3568
# Kernel defconfig
export RK_KERNEL_DEFCONFIG=station_linux_defconfig
# Kernel dts
export RK_KERNEL_DTS=rk3568-firefly-roc-pc

# Openwrt version select
export RK_OPENWRT_VERSION_SELECT=openwrt
# Openwrt defconfig
export RK_OPENWRT_DEFCONFIG=ROC-3568-PC_config
  • RK_UBOOT_DEFCONFIG=firefly-rk3568

    这个参数指定使用的 uboot 配置文件,所在的路径为 u-boot/configs/firefly-rk3568_defconfig

  • RK_KERNEL_DEFCONFIG=station_linux_defconfig

    这个参数指定使用的 kernel 配置文件,所在的路径为 kernel/arch/arm64/configs/station_linux_defconfig

  • RK_KERNEL_DTS=rk3568-firefly-roc-pc

    这个参数指明 kernel 设备树文件,所在路径为 kernel/arch/arm64/boot/dts/rockchip/rk3568-firefly-roc-pc.dts

  • RK_OPENWRT_VERSION_SELECT=openwrt

    这个参数指明要编译的 Openwrt 系统,如果为 openwrt,则编译 openwrt_sdk/openwrt/

    如果为 lede,则编译 openwrt_sdk/lede

  • RK_OPENWRT_DEFCONFIG=ROC-3568-PC_config

    这个参数指明编译 openwrt 使用的配置文件,所在路径为 openwrt_sdk/openwrt/configs/ROC-3568-PC_config