Buildroot 开发

Buildroot 是 Linux 平台上一个构建嵌入式 Linux 系统的框架。整个 Buildroot 是由 Makefile(*.mk) 脚本和 Kconfig(Config.in) 配置文件构成的。你可以和编译 Linux 内核一样,通过 buildroot 配置,menuconfig 修改,编译出一个完整的可以直接烧写到机器上运行的 Linux 系统软件(包含 boot、kernel、rootfs 以及 rootfs 中的各种库和应用程序)。若您要了解更多 Buildroot 开发相关内容,可以参考 Buildroot 官方的 《开发手册》

硬件配置

编译 Ubuntu 开发环境硬件配置建议:

  • 64 位 CPU

  • Ubuntu20.04

  • 16GB 内存

  • 250GB 空闲空间用来编译

软件配置

安装环境包

sudo apt update
sudo apt-get install repo git ssh make gcc libssl-dev liblz4-tool \
expect g++ patchelf chrpath gawk texinfo chrpath diffstat binfmt-support \
qemu-user-static live-build bison flex fakeroot cmake gcc-multilib g++-multilib \
unzip device-tree-compiler python-pip ncurses-dev pyelftools

SDK获取

发送邮件至 support@neardi.com 获取相关开发资料

下载完成后,在解压前先查看 MD5 码和LPB3399Pro-SDK-Linux-V3.0.tar.gz.md5sum中是否一致:

$ md5sum LPB3399Pro-SDK-Linux-V3.0-split.tar.gz*
a5c8909413d4755ec0c064ed8ddab85c  LPB3399Pro-SDK-Linux-V3.0-split.tar.gzaa
bd884d53eef0248fec828c3271526dbe  LPB3399Pro-SDK-Linux-V3.0-split.tar.gzab
978ce072fdb8244f3347df752a49df45  LPB3399Pro-SDK-Linux-V3.0-split.tar.gzac
df8ceb3406e304c9d2394231b8f6a0dc  LPB3399Pro-SDK-Linux-V3.0-split.tar.gzad

解压并解压:

$ cat LPB3399Pro-SDK-Linux-V3.0-split.tar.gz* > LPB3399Pro-SDK-Linux-V3.0.tar.gz
$ tar -zxf LPB3399Pro-SDK-Linux-V3.0.tar.gz

提取:

cd LPB3399Pro-SDK-Linux-V3.0
git reset --hard

切换分支:

branch explain
lz11000001 Neardi master branch
git checkout lz11000001

编译 SDK

选择配置

./build.sh ./device/rockchip/rk3399pro/BoardConfig_rk3399pro-neardi-linux-lz11000001.mk

编译NPU

./build.sh npu

全自动编译

全自动编译会执行所有编译, 编译生成u-boot、kernel和buildroot。

./build.sh

部分编译

  • 编译 u-boot

./build.sh uboot
  • 编译 kernel

./build.sh kernel
  • 编译 recovery

./build.sh recovery

编译Buildroot

./build.sh buildroot

打包固件

RK 固件,是以 Rockchip 专有格式打包的固件,使用 Rockchip 提供的工具可以烧写到 eMMC 或者 SD 卡中(注:若无特殊说明,WIKI 上提及的固件默认为 RK 固件)。

# 打包 RK 固件
./build.sh updateimg

生成的完整固件会保存到 rockdev/update.img