sdk 编译指南

优质
小牛编辑
131浏览
2023-12-01

推荐使用系统:Ubuntu 16.04

一、下载nationalchip的5个工程

nationalchip / openwrt
nationalchip / skylark
nationalchip / uboot
nationalchip / middleware
nationalchip / kernel

注意:所有工程需放在同级目录,且确认各工程目录名和项目名一致

二、安装编译依赖工具

Ubuntu16.04:

sudo apt-get install build-essential subversion libncurses5-dev zlib1g-dev gawk gcc-multilib flex git-core gettext libssl-dev unzip texinfo device-tree-compiler dosfstools libusb-1.0-0-dev

三、开始编译

  • 进入openwrt
cd openwrt
  • 拷贝默认方案配置到.config
//举例:8009公版配置
cp configs/leo_gx8009b_ssd_lc_v1_skylark_defconfig .config

make defconfig
make menuconfig //(如果有需要的话执行,否则可以不做)
  • 编译命令
make V=s -j4

如果编译错误,请用make V=s -j1编译进行查看,或者使用make V=s的方式进行编译
请确保内存有2G空间,硬盘空间剩余至少50G
请尽量使用我们推荐的linux镜像,否则容易出现编译异常

四、生成文件说明

openwrt编译生成的文件在openwrt/bin/<板级>/ 目录下,包括mcu,uboot,kernel,dtb,rootfs,ubifs,tf卡镜像等

-rwxrw-r--  1 xukai xukai  372 Jan 26 16:42 gen_swupdate_img.sh
-rw-rw-r--  1 xukai xukai  73K Jan 26 16:42 mcu.bin
-rw-r--r--  1 xukai xukai  961 Feb 12 23:54 md5sums
-rw-r--r--  1 xukai xukai  11K Feb 10 22:26 openwrt-leo-gx8010-dev-1v.dtb
-rw-r--r--  1 xukai xukai 192M Feb 12 23:54 openwrt-leo-gx8010-dev-1v-ext4.img
-rw-r--r--  1 xukai xukai  39M Feb 12 23:54 openwrt-leo-gx8010-dev-1v-ext4.img.gz
-rw-r--r--  1 xukai xukai 4.1M Feb 12 23:54 openwrt-leo-gx8010-dev-1v-fit-uImage.itb
-rw-r--r--  1 xukai xukai  39M Feb 12 23:54 openwrt-leo-gx8010-dev-1v-rootfs.tar.gz
-rw-r--r--  1 xukai xukai 197M Feb 12 23:54 openwrt-leo-gx8010-dev-1v-sdcard-vfat-ext4.img
-rw-r--r--  1 xukai xukai  43M Feb 12 23:54 openwrt-leo-gx8010-dev-1v.swu
-rw-r--r--  1 xukai xukai  48M Feb 12 23:54 openwrt-leo-gx8010-dev-1v-ubifs.img
-rw-r--r--  1 xukai xukai  50M Feb 12 23:54 openwrt-leo-gx8010-dev-1v-ubi.img
-rw-r--r--  1 xukai xukai 4.1M Feb 12 23:54 openwrt-leo-gx8010-dev-1v-uImage
-rwxr-xr-x  1 xukai xukai 4.1M Feb 12 23:54 openwrt-leo-gx8010-dev-1v-zImage
drwxr-xr-x 10 xukai xukai 4.0K Feb 10 23:01 packages
-rw-r--r--  1 xukai xukai 1.6K Feb 12 23:54 sha256sums
-rw-rw-r--  1 xukai xukai  535 Jan 26 16:42 sw-description
drwxr-xr-x  2 xukai xukai 4.0K Feb 11 00:50 uboot-leo-gx8010-dev-1v

下表是固件的简单说明

文件名含义命名规则
gen_swupdate_img.sh用于生成.swu格式文件的脚本
mcu.bin在CK处理器中执行的固件
md5sums保存各个文件md5校验值
openwrt-leo-gx8010-dev-1v.dtb内核设备树openwrt-<板级>.dtb
openwrt-leo-gx8010-dev-1v-ext4.imgext4格式文件系统镜像openwrt-<板级>-ext4.img
openwrt-leo-gx8010-dev-1v-ext4.img.gzext4格式文件系统镜像gz压缩格式openwrt-<板级>-ext4.img.gz
openwrt-leo-gx8010-dev-1v-fit-uImage.itbu-boot FIT imageopenwrt-<板级>-fit-uImage.itb
openwrt-leo-gx8010-dev-1v-rootfs.tar.gz压缩后的原始根文件系统openwrt-<板级>-rootfs.tar.gz
openwrt-leo-gx8010-dev-1v-sdcard-vfat-ext4.img用于SD卡烧录的文件系统openwrt-<板级>-sdcard-vfat-ext4.img
openwrt-leo-gx8010-dev-1v.swu用于swupdate升级的升级固件openwrt-<板级>.swu
openwrt-leo-gx8010-dev-1v-ubifs.imgubi文件系统镜像openwrt-<板级>-ubifs.img
openwrt-leo-gx8010-dev-1v-ubi.imgubi文件系统镜像,可用于直接flash烧写openwrt-<板级>-ubi.img
openwrt-leo-gx8010-dev-1v-uImageuImageopenwrt-<板级>-uImage
openwrt-leo-gx8010-dev-1v-zImagezImageopenwrt-<板级>-zImage
packagespackages目录,用于存放编译出来的包
sha256sumssha256校验码保存
sw-descriptionswupdate升级包描述文件
uboot-leo-gx8010-dev-1v存放uboot的文件夹

五、打包

打包的目的是为windows下的GUI烧录工具提供可直接加载的镜像文件。

烧录方式参考:Windows下烧录指南

//进入固件生成目录
cd openwrt/bin/leo-gx8009b-ssd-lc-v1-skylark-glibc

//执行打包脚本
bash bootx_package.sh

生成的镜像就在当前目录下,其命名规则:leo-<板级>-<TAG>-<Date|年月日>.img
例如:leo-gx8009b-ssd-lc-v1-debug-20190911.img
TAG默认是“debug”,可在执行打包脚本时传入:bash bootx_package.sh <TAG>