1.SDK资源介绍
1)app:存放上层应用程序的目录
2)buildroot:SDK包使用的文件系统为buildroot
3)build.sh:编译用的脚本
4)docs:存放RK开发指导文件、平台支持列表、工具使用文档等等
5)envsetup.sh:要修改文件系统时候要设置的环境脚本
6)external:存放相关的库,包括音频、视频等
7)kernel:kernel源码
8)makefile:整个SDK包编译的makefile
9)mkfirmware.sh:固件打包使用的脚本,默认在当前路径下的rockdev目录。
10)prebuilts:存放交叉编译工具链。
11)rkbin:存放固件和工具
12)rkflash.sh:linux下的系统烧录脚本
13)tools:存放固件和工具的目录
14)uboot:uboot源码目录
15)rockev:存放编译输出固件的目录(整个SDK包编译完成后就会创建)
1.1 SDK包下脚本介绍
1.1.1 build.sh脚本介绍
使用build.sh脚本来控制整个SDK包的编译、打包镜像,可以使用 -h 或者 help 来查看支持哪些参数。
build.sh参数 | 说明 | 例子 |
BoardConfig*.mk | 选择板级的配置文件 |
./build.sh device/rockchip/rv1126_rv1 109/BoardConfig-alientek-rv1126.mk |
lunch | 列出支持的板级配置文件,再选择板级的配置文件 |
./build.sh lunch |
uboot |
编译uboot |
./build.sh uboot |
kernel | 编译kernel |
./build.sh kernel |
modules |
编译内核模块 |
./build.sh modules |
rootfs |
编译文件系统 |
./build.sh rootfs |
recovery |
编译 |
./build.sh recovery |
all |
编译整个 |
./build.sh all |
cleanall |
清除整个 SDK 包 |
./build.sh cleanall |
firmware |
打包系统镜像 |
./build.sh firmware |
updateimg |
打包 |
./build.sh updateimg |
app/<pkg> |
编译 |
./build.sh app/ipc-daemon |
external/<pkg> |
编译 |
./build.sh external/rkmedia |
1.1.2 envsetup.sh介绍
不太很懂。用到再说
envsetup.sh脚本主要的作用是,使能buildroot的配置文件。
rv1126芯片中,可以选择的配置文件有3种:
1)文件系统的配置文件
2)recovery分区的配置文件(此分区用作升级和复原的文件系统,也是一个文件系统)
3)libs的配置文件(生成一些库,方便应用层测试)
运行如下代码
./envsetup.sh
显示如下
图中1是文件系统的配置文件
图中2是libs的配置文件
图中3是recovery分区的配置文件
Buildroot的输出目录下只能有一个“.config”文件,所以我们修改文件系统的配置文件,需要先使用./envsetup.sh选择相应的配置文件,就会在输出目录下生成 “.config”文件,运行结果如下:
1.1.3 mkfirmware.sh介绍
mkfirmware.sh 脚本主要的作用是,把
uboot
、
kernel
、文件系统等等进行打包和生成镜像。
1.1.4 rkflash.sh介绍
rkflash.sh 脚本主要的作用是,在 linux 系统下进行固件的烧录
2.SDK编译
rk提供一键编译功能,使用一条命令编译出镜像文件。
./build.sh lunch ./build.sh
3.编译第三方库或者APP
./build.sh external/mpp app/mediaserver ./build.sh rootfs
4.编译rkmedia
source envsetup.sh alientek_rv1126 //选择环境变量 alientek_rv1126 make rkmedia-dirclean //清除刚刚编译的 rkmedia make rkmedia //重新编译 rkmedia ./build.sh rootfs //打包到文件系统里面
rkmedia编译文件输出目录
源码目录
/buildroot/output/alientek_rv1126/oem/usr/bin