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包编译完成后就会创建)
? ? ? ? 使用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
|
编译
recovery
|
./build.sh recovery
|
all
|
编译整个
SDK
模块代码包
|
./build.sh all
|
cleanall
|
清除整个 SDK 包
|
./build.sh cleanall
|
firmware
|
打包系统镜像
|
./build.sh firmware
|
updateimg
|
打包
update
镜像
|
./build.sh updateimg
|
app/<pkg>
|
编译
app
里面的模块代码
|
./build.sh app/ipc-daemon
|
external/<pkg>
|
编译
external
里面的模块代码
|
./build.sh external/rkmedia
|
?????????
? ? ? ? ?不太很懂。用到再说
????????envsetup.sh脚本主要的作用是,使能buildroot的配置文件。
? ? ? ? rv1126芯片中,可以选择的配置文件有3种:
? ? ? ? 1)文件系统的配置文件
? ? ? ? 2)recovery分区的配置文件(此分区用作升级和复原的文件系统,也是一个文件系统)
? ? ? ? 3)libs的配置文件(生成一些库,方便应用层测试)
? ? ? ? 运行如下代码
./envsetup.sh
? ? ? ? 显示如下
? ? ? ? 图中1是文件系统的配置文件
? ? ? ? 图中2是libs的配置文件
? ? ? ? 图中3是recovery分区的配置文件?
? ? ? ? Buildroot的输出目录下只能有一个“.config”文件,所以我们修改文件系统的配置文件,需要先使用./envsetup.sh选择相应的配置文件,就会在输出目录下生成 “.config”文件,运行结果如下:
?????????rkflash.sh 脚本主要的作用是,在 linux 系统下进行固件的烧录
? ? ? ? rk提供一键编译功能,使用一条命令编译出镜像文件。
./build.sh lunch
./build.sh
./build.sh external/mpp app/mediaserver
./build.sh rootfs
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