firefly rk3399 android 编译打包详解
说明
硬件:ROC-RK3399-PC-Pro
固件:ROC-RK3399-PC-Pro_Industry7.1.2_HDMI
firefly-rk3399-Industry 为工程根目录,所有编译、烧录命令均在改目录下执行
官方教程:https://wiki.t-firefly.com/zh_CN/ROC-RK3399-PC-Pro/
个人专栏:firefly ROC-RK3399-PC-Pro开发板专栏
1 编译
1.1 整体编译
# 选项说明
# ./FFTools/make.sh [-u|k|a] [-d dts_file_name] [-l lunch] [-j make_thread]
# -u|k|a: make uboot|kernel|android alone, if this arg is not exist, make all images default
# -d: kernel dts name
# -l: lunch name when make android
# -j: make theard num, if have not this arg, default theard is 1
# 整体编译
./FFTools/make.sh -d rk3399-roc-pc-plus -j8 -l rk3399_roc_pc_plus-userdebug
编译成功截图,我这里不是首次编译,首次编译3h左右,当前6分28秒。
1.2 打包生成固件
# 打包生成固件
./FFTools/mkupdate/mkupdate.sh -l rk3399_roc_pc_plus-userdebug
1.3 升级固件
# 升级固件
# sudo upgrade_tool uf 固件路径
sudo upgrade_tool uf rockdev/Image-rk3399_roc_pc_plus/ROC-RK3399-PC-Pro_Industry7.1.2_HDMI_220525.img
连接操作见 https://wiki.t-firefly.com/zh_CN/ROC-RK3399-PC-Pro/03-upgrade_firmware.html
升级成功效果图
2 补充说明
2.1 编译选项 -l 取值
- 整体编译和打包生成固件时,
-l
选项的值不能改变,只能是rk3399_roc_pc_plus-userdebug
,中划线前面的部分rk3399_roc_pc_plus
将用于选择makefile,后半部分是编译变量TARGET_BUILD_VARIANT
, 详情请参考build/core/product_config.mk
、firefly-rk3399-Industry/mkimage.sh
,以下为修改编译报错截图
TARGET_BUILD_VARIANT
可取值为 user, eng , userdebug,具体参考下图
2.1 打包生成固件补充说明
firefly rk3399 打包统一固件
命令./FFTools/mkupdate/mkupdate.sh -l rk3399_roc_pc_plus-userdebug
- -l: lunch name when make android
将 ~/rk-project/firefly-rk3399-Industry/rockdev/Image-rk3399_roc_pc_plus
路径下的镜像(如下图所示),打包成对应固件。
注:镜像来源并非 ~/rk-project/firefly-rk3399-Industry/out/target/product/rk3399_roc_pc_plus
~/rk-project/firefly-rk3399-Industry/FFTools/mkupdate
路径下的package-file文件指定生成统一固件时,需要打包镜像的名称,如 Image/boot.img 即表示将 ~/rk-project/firefly-rk3399-Industry/rockdev/Image-rk3399_roc_pc_plus
路径下的 boot.img 打包到固件中
打包成功截图