RK3588快速上手 | 编译与打包Firefly ITX-3588J主板Android 12固件

Posted Neutionwei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RK3588快速上手 | 编译与打包Firefly ITX-3588J主板Android 12固件相关的知识,希望对你有一定的参考价值。

🍇 博主主页:Systemcall小酒屋
🍇 博主简介:Neutionwei,C站嵌入式领域新星创作者之一,一枚热爱开源技术、喜欢分享技术心得的极客,注重简约风格,热衷于用简单的案例讲述复杂的技术,“假传万卷书,真传一案例”,这是厦大一位教数学的院士说过的一句话,另外“成就是最好的老师”,技术既要沉淀,也得分享,成就感的正反馈是支持我持续耕耘的动力!
🍇 专栏目录:Firefly-RK3588板卡
🍇 专栏说明:本专栏主要基于Firefly旗下的RK3588板卡进行入门篇讲述,欢迎订阅,博主会持续更新!

ITX-3588J资料下载处(包含SDK、硬件资料、芯片手册、官方固件等):https://www.t-firefly.com/doc/download/160.html

文章目录

一、开发环境搭建

android 12 SDK的编译对PC机的要求不低,据官方介绍:

  • 64 位 CPU
  • 16GB 物理内存 + 交换内存
  • 250GB 空闲的磁盘空间

编译系统最好选用Ubuntu 18.04,以下是基于18.04的环境搭建:

$ sudo apt-get update
$ sudo apt-get install git gnupg flex bison gperf libsdl1.2-dev \\
libesd-java libwxgtk3.0-dev squashfs-tools build-essential zip curl \\
libncurses5-dev zlib1g-dev pngcrush schedtool libxml2 libxml2-utils \\
xsltproc lzop libc6-dev schedtool g++-multilib lib32z1-dev lib32ncurses5-dev \\
lib32readline-dev gcc-multilib libswitch-perl libssl-dev unzip zip device-tree-compiler \\
liblz4-tool python-pyelftools python3-pyelftools -y 

值得注意的是编译Android 12 SDK还需要用到较新版本的lz4命令,不然在编译5.10版本内核的时候会报以下错误:

  LZ4C    arch/arm64/boot/Image.lz4
Incorrect parameters
Usage :
      lz4 [arg] [input] [output]

input   : a filename
          with no FILE, or when FILE is - or stdin, read standard input
Arguments :
 -1     : Fast compression (default) 
 -9     : High compression 
 -d     : decompression (default for .lz4 extension)
 -z     : force compression
 -f     : overwrite output without prompting 
 -h/-H  : display help/long help and exit
arch/arm64/boot/Makefile:31: recipe for target 'arch/arm64/boot/Image.lz4' failed

要解决lz4命令有两种方法:

  1. 官方提到可以先编译Android下面的lz4并替换系统的lz4(这一步要在下载SDK后方可操作):
$ mmm external/lz4/ 
$ sudo cp /usr/bin/lz4 /usr/bin/lz4.org   # 备份
$ sudo cp out/host/linux-x86/bin/lz4 /usr/bin/lz4 # 替换系统原有lz4
  1. 直接从GitHub下载lz4最新源代码编译:
$ git clone https://github.com/lz4/lz4.git
$ make
$ sudo make install

二、下载Android 12 SDK

直接从ITX-3588J资料下载处(https://www.t-firefly.com/doc/download/160.html)找到SDK下载即可!

下载完成后验证一下MD5码,参考官方维基:

$ md5sum /path/to/firefly_rk3588_android12.0_git_20220311.7z.001
$ md5sum /path/to/firefly_rk3588_android12.0_git_20220311.7z.002
$ md5sum /path/to/firefly_rk3588_android12.0_git_20220311.7z.003
$ md5sum /path/to/firefly_rk3588_android12.0_git_20220311.7z.004
$ md5sum /path/to/firefly_rk3588_android12.0_git_20220311.7z.005
$ md5sum /path/to/firefly_rk3588_android12.0_git_20220311.7z.006

8f48ca82f247426d0a7111b851d65f0f  firefly_rk3588_android12.0_git_20220311.7z.001
e99d68485860b86c2ec5b67aeda7249d  firefly_rk3588_android12.0_git_20220311.7z.002
cb45fc9e39848b459398467c08acd6f1  firefly_rk3588_android12.0_git_20220311.7z.003
7774a64cc73dbf4381c100ad1d703fa9  firefly_rk3588_android12.0_git_20220311.7z.004
cd53c8c752a5162a0638da1cf9a0ed8f  firefly_rk3588_android12.0_git_20220311.7z.005
fd7744c8098791a8f1dd62527fcac32c  firefly_rk3588_android12.0_git_20220311.7z.006

在一般目录解压SDK(非共享文件夹、非挂载文件夹以及非英文目录):

$ 7z x ./firefly_rk3588_android12.0_git_20220311.7z.001 -oRK3588_Android12.0
$ cd ./RK3588_Android12.0
$ git reset --hard

三、编译Android 12 SDK

Firefly官方为了降低用户的编译成本,支持了SDK的一键编译操作!

目前有两种编译选择,一种是支持HDMI:

$ ./FFTools/make.sh -d rk3588-firefly-itx-3588j -j8 -l rk3588_firefly_itx_3588j-userdebug

另一种是支持10.1寸MIPI DSI0:

$ ./FFTools/make.sh -d rk3588-firefly-itx-3588j-mipi101-M101014-BE45-A1 -j8 -l rk3588_firefly_itx_3588j-userdebug

四、打包Android 12固件

执行以下命令:

$ ./FFTools/mkupdate/mkupdate.sh -l rk3588_firefly_itx_3588j-userdebug

生成的固件位于rockdev/Image-XXX/目录下!

以上是关于RK3588快速上手 | 编译与打包Firefly ITX-3588J主板Android 12固件的主要内容,如果未能解决你的问题,请参考以下文章

RK3588快速上手 | 使用USB线刷官方固件到Firefly ITX-3588J主板

RK3588快速上手 | 01-RK3588开发板快速上手

RK3588快速上手 | 01-RK3588开发板快速上手

rk3588编译Ubuntu固件,Linux SDK开发

RK3566快速上手 | ROC-RK3566-PC开发板快速上手

RK3566快速上手 | ROC-RK3566-PC开发板快速上手