SDK 环境部署
本小结介绍交叉编译环境搭建的过程。
内容参考Luckfox Wiki
LuckfoxPico官方给了相应的交叉编译的环境,一般都是用Ubuntu。
比较推荐的Ubuntu版本是22.04版本,因为官方指令中的一部分软件包(例如python-is-python3只有22.04及其以上才有)。
1.搭建编译环境
- 安装依赖
sudo apt update
sudo apt-get install -y git ssh make gcc gcc-multilib g++-multilib module-assistant expect g++ gawk texinfo libssl-dev bison flex fakeroot cmake unzip gperf autoconf device-tree-compiler libncurses5-dev pkg-config bc python-is-python3 passwd openssl openssh-server openssh-client vim file cpio rsync
指令一共两步,第一步获取最新的软件包信息,第二步下载并安装所有需要用到的软件包。
运行结果
运行了第二个指令后,会连续安装很多软件,具体安装内容查看指令。
2.下载SDK
git clone https://gitee.com/LuckfoxTECH/luckfox-pico.git
下载官方给的软件开发套件。
运行结果
从git上直接下载,没什么好说的。
2 SDK说明
官方给了一个SDK的说明,具体地我也复制过来了。
- SDK目录结构
├── build.sh -> project/build.sh ---- SDK编译脚本
├── media --------------------------- 多媒体编解码、ISP等算法相关(可独立SDK编译)
├── sysdrv -------------------------- U-Boot、kernel、rootfs目录(可独立SDK编译)
├── project ------------------------- 参考应用、编译配置以及脚本目录
├── output -------------------------- SDK编译后镜像文件存放目录
└── tools --------------------------- 烧录镜像打包工具以及烧录工具
- 镜像存放目录
output/
├── image
│ ├── download.bin ---------------- 烧录工具升级通讯的设备端程序,只会下载到板子内存
│ ├── env.img --------------------- 包含分区表和启动参数
│ ├── uboot.img ------------------- uboot镜像
│ ├── idblock.img ----------------- loader镜像
│ ├── boot.img -------------------- kernel镜像
│ ├── rootfs.img ------------------ kernel镜像
│ └── userdata.img ---------------- userdata镜像
└── out
├── app_out --------------------- 参考应用编译后的文件
├── media_out ------------------- media相关编译后的文件
├── rootfs_xxx ------------------ 文件系统打包目录
├── S20linkmount ---------------- 分区挂载脚本
├── sysdrv_out ------------------ sysdrv编译后的文件
└── userdata -------------------- userdata
3.镜像编译
Luckfox Pico plus版本是直接烧录到SPI NAND FLASH的。根据官方描述,Buildroot 镜像既支持TF卡启动又支持 SPI NAND FLASH 启动,所以考虑编译buildroot。
cd luckfox-pico
#编译busybox/buildroot
./build.sh lunch
./build.sh
./build.sh lunch
命令是选择板级配置,./build.sh
是对所有的文件一键编译,往往消耗时间比较长,如果不需要全部编译,例如仅仅编译uboot等,可以./build.sh help
查看帮助。
运行结果
根据自己的板子选择相应的配置,如果更换开发板需要./build.sh clean
还需要再次运行./build.sh lunch
指令后编译。
然后就是具体的编译过程,时间很长,就不放截图了,注意给软件换一下源。
4.后记
对于编译时间较长,其实大多数时间都是在下载buildroot软件包,而软件包大都是外网下载来的,所以可以用VPN或者给linux系统更换镜像源,可以加快下载速度。
值得注意的是,buildroot本身是可以先下载好编译了的,当所有的包都编译好了,就可以极大的加快编译速度,仅需5~6min。