RK3399 Android7.1 SDK软件介绍: SDK完整包解压之前大概88G,有点大哦 解压之后大概150G,编译至少需要300G空间 本 SDK 是基于谷歌 Android7.1 64bit 系统,适配瑞芯微 RK3399 芯片的软件包,适用于 laptop 产品形态、Tablet 产品形态、sapphire(蓝宝石)&excavator(挖掘机)开发板、及其他基于 RK3399 平台开发的产品。 使用的是 sapphire(蓝宝石) & excavator(挖掘机)开发板的,kernel 配置可直接使用 rk3399-sapphire-excavator-edp.dts 进行配置。 JDK安装 Android7.1 系统编译依赖于 JAVA 8。编译之前需安装 OpenJDK。 安装命令如下: file:///C:/Users/sw/AppData/Local/Temp/msohtmlclip1/01/clip_image005.gif sudo apt-get install openjdk-8-jdk 配置 JAVA 环境变量,例如,安装路径为/usr/lib/jvm/java-8-openjdk-amd64,可在终端 执行如下命令配置环境变量: file:///C:/Users/sw/AppData/Local/Temp/msohtmlclip1/01/clip_image006.gif exportJAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 export PATH=$JAVA_HOME/bin:$PATH exportCLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar SDK 带有 Open JDK8 的配置脚本,在工程根目录下,命名为 javaenv.sh。可直接执行以下命令,配置 JDK: file:///C:/Users/sw/AppData/Local/Temp/msohtmlclip1/01/clip_image007.gif source javaenv.sh 3.2.2 编译模式 SDK 默认以 userdebug 模式编译。 使用 adb 时,需要先执行 adb root ,adb disable-verity 关闭 system 分区的 verity 特性,重启后再执行 adb root, adbremount,进而进行 push 操作来 debug。 3.2.3 sunychip XCY-RK3399V45编译 uboot 编译: file:///C:/Users/sw/AppData/Local/Temp/msohtmlclip1/01/clip_image008.gif cd u-boot make rk3399_defconfig make ARCHV=aarch64 kernel 编译: file:///C:/Users/sw/AppData/Local/Temp/msohtmlclip1/01/clip_image008.gif cd kernel make ARCH=arm64 rockchip_defconfig -j8 make ARCH=arm64 rk3399-sapphire-excavator-edp.img-j12 android 编译: file:///C:/Users/sw/AppData/Local/Temp/msohtmlclip1/01/clip_image009.gif source build/envsetup.sh lunch rk3399_all-userdebug make -j12 11
file:///C:/Users/sw/AppData/Local/Temp/msohtmlclip1/01/clip_image010.giffile:///C:/Users/sw/AppData/Local/Temp/msohtmlclip1/01/clip_image011.gif ./mkimage.sh 3.2.4 固件生成步骤 执行./mkimage.sh 后,在rockdev/Image-xxx/目录生成完整的固件包(xxx 是具体 lunch 的产品名) file:///C:/Users/sw/AppData/Local/Temp/msohtmlclip1/01/clip_image012.gif rockdev/Image-xxx/ ├── boot.img ├── kernel.img ├── misc.img ├── parameter.txt ├── recovery.img ├── resource.img ├── RK3399MiniLoaderAll.bin ├── system.img ├── trust.img └── uboot.img 4.2 平台配置 平台配置文件位于U-Boot 根目录下的configs 文件夹下,其中Rockchip 相关的以RK 开头,并根据产品形态分为 MID 和 BOX 两种配置: file:///C:/Users/sw/AppData/Local/Temp/msohtmlclip1/01/clip_image013.gif rk3288_defconfig rk3126_defconfig rk3128_defconfig 16
file:///C:/Users/sw/AppData/Local/Temp/msohtmlclip1/01/clip_image015.gif福州瑞芯微电子股份有限公司 file:///C:/Users/sw/AppData/Local/Temp/msohtmlclip1/01/clip_image010.giffile:///C:/Users/sw/AppData/Local/Temp/msohtmlclip1/01/clip_image016.gif rk3368_defconfig rk3399_defconfig rk3288_box_defconfig rk3128_box_defconfig rk3036_box_defconfig rk3368_box_defconfig rk322x_box_defconfig rk3399_box_defconfig RK3399Laptop/Tablet 选用的是 rk3399_defconfig 配置。 4.3 固件生成 Rockchip 平台Loader 分为一级模式和二级模式,根据不同的平台配置生成相应的Loader 固 件。通过宏CONFIG_SECOND_LEVEL_BOOTLOADER 定义二级 Loader 模式。 4.3.1 一级Loader模式 U-BOOT 作为一级 Loader 模式,那么仅支持 EMMC 存储设备,编译完成后生成的镜像: file:///C:/Users/sw/AppData/Local/Temp/msohtmlclip1/01/clip_image017.gif rk3399_loader_v1.09.110.bin 其中 V1.09.110 是发布的版本号。 4.3.2 二级Loader模式 U-Boot 作为二级 Loader 模式,那么固件支持所有的存储设备,该模式下,需要 MiniLoader 支持,通过宏CONFIG_MERGER_MINILOADER 进行配置生成。同时引入 Arm Trusted Firmware 后会生成 trust image,这个通过宏CONFIG_MERGER_TRUSTIMAGE 进 行配置生成。 以 rk3399 编译生成的镜像为例: file:///C:/Users/sw/AppData/Local/Temp/msohtmlclip1/01/clip_image018.gif rk3399_loader_v1.09.110.bin uboot.img trust.img 其中 V1.09.110 是发布的版本号,rockchip 定义 U-Boot loader 的版本,其中 1.09.110 是根据存储版本定义的,客户务必不要修改这个版本。 uboot.img 是 U-Boot 作为二级 loader 的打包。 trust.img 是 U-Boot 作为二级 loader 的打包。 17
file:///C:/Users/sw/AppData/Local/Temp/msohtmlclip1/01/clip_image015.gif福州瑞芯微电子股份有限公司 file:///C:/Users/sw/AppData/Local/Temp/msohtmlclip1/01/clip_image019.gif RK3036、RK3126、RK3128、RK322x 、RK3368、RK3366、RK3399 等采用二级 loader 模式。 4.4 U-Boot编译 RK3399 SDK 编译使用的是如下配置: file:///C:/Users/sw/AppData/Local/Temp/msohtmlclip1/01/clip_image020.gif make rk3399_defconfig make ARCHV=aarch64 编译完,会生成 trust.img、rk3399_loader_v1.09.110.bin、uboot.img 三个文件。 目前编译出来的 rk3399_loader_v1.09.110.bin DDR 为定频 800Mhz 版本。 4.5 U-Boot充电相关配置 4.5.1 低电预充 u-boot 支持低电预充,需要在uboot/include/configs/rk33plat.h 中打开如下开关,默认 该功能是关闭的。 #define CONFIG_UBOOT_CHARGE #define CONFIG_SCREEN_ON_VOL_THRESD3400//3.4v #define CONFIG_SYSTEM_ON_VOL_THRESD 3500//3.5v 其中 CONFIG_SCREEN_ON_VOL_THRESD 是系统点亮屏幕的电压门限,低于这个电 压,禁止系统亮屏。CONFIG_SYSTEM_ON_VOL_THRESD 是系统正常启动的电压门限,低 于这个电压,禁止 uboot 启动内核。这两个电压可以根据具体的产品设计灵活调整。 产品板级 dts 中如下节点进行充电模式开关配置,可以灵活配置使用 uboot 还是 Android 的 关机充电模式: uboot-charge { compatible ="rockchip,uboot-charge"; rockchip,uboot-charge-on = <0>; rockchip,android-charge-on = <1>; }; rockchip,uboot-charge-on开关 uboot 阶段的充电动画,rockchip,android-charge-on开关 android 充电动画。
|