编译、烧录系统8-RK3568

前言

下面开始学习如何编译和烧录镜像

获取瑞芯微官方源码

一般情况下,大家可以找供应商提供,如果大家没有的话,请@我
获取到源码之后,大家如果是压缩包就解压即可。

编译

编译的话分为一键编译和单独编译,其中的差异当然是时间的问题了,哈哈!!

1.一键编译

所谓的一键编译就是,把整个Android全部编译一遍,包过uboot、kernel、Android系统等。
步骤:
大家进入到Android目录:
在这里插入图片描述
执行下面语句:

source javaenv.sh
java -version

输入以上命令设置 java 版本为 1.8 版本,确认 java 版
本是 1.8 版本之后,才可以进行下一步编译,如下图:
在这里插入图片描述

输入以下命令使能编译环境:

source build/envsetup.sh
lunch rk3568_r-userdebug

最后输入以下命令开始整体编译

./build.sh -AUCKu

在这里插入图片描述
如上图所示之后就会编译成功
编译kernel过程中会出现选择电源域配置的选择,大家按照前面的电源域配置章节进行对比设备树选择即可,如果校对准确,那么就会编译成功

2.镜像的位置

rockdev/Image-rk3568_r 目录下
在这里插入图片描述

生成的镜像包括 MiniLoaderAll.bin、uboot.img、trust.img、resource.img、 boot.img 、
misc.img 、 recovery.img 、 boot-debug.img 、 dtbo.img 、 pcba_small_misc.img
pcba_whole_misc.img 、super.img 、vbmeta.img 等 13 个镜像,但是在烧写系统时,这 13 个镜
像并不需要全部使用。
镜像作用如下:
在这里插入图片描述
在这里插入图片描述

3.烧录整镜像

如果想要烧整个镜像的话,直接烧录update.img即可,这个镜像大约有1.5G左右

4.单独编译和烧录

注意:在单独编译之前,一定要整编 Android 源码

编译 uboot

输入以下命令使能编译环境:

source build/envsetup.sh
lunch rk3568_r-userdebug

在 Android 源码目录下执行如下命令编译 uboot:

./build.sh -U

在这里插入图片描述
编译成功之后:在这里插入图片描述
编译完成后在 u-boot 目录会生成 rk356x_spl_loader_v1.10.111.bin 文件、uboot.img 文件、
resource.img 三个镜像文件

单独烧录uboot

编译成功后会将 rk356x_spl_loader_v1.10.111.binuboot.img 拷贝到rockdev/Image-rk3568_r 目录下,rk356x_spl_loader_v1.10.111 会改名为 MiniLoaderAll.bin
只需要将 MiniLoaderAll.bin 和 uboot.img 烧写到开发板即可更新 uboot
在这里插入图片描述

编译 Android 内核

方式1:

在 Android 源码目录下执行如下命令编译 Android 内核。

./build.sh -CKA

在这里插入图片描述
编译后会在 rockdev/Image-rk3588_r 目录下生成 boot.img,boot.img 为内核镜像。boot.img
镜像里面包含了设备树镜像。所以烧写 boot.img 即可更新内核镜像

参数-C 表示用 clang 编译器编译,如果不带 C 则使用 gcc 编译,如果需要过 GMS 认证的
google 有要求要用 clang 编译。
因为 kernel 编译完后需要通过 Android 去打包成 boot.img,所以这里需要加上 A 参数,即
编译 kernel 的时需要一起编译 Android 才能打包 boot.img。通过以上介绍可以知道单独编译
kernel 需要同时编译 Android,导致编译很耗时,针对这个问题,我们推荐使用方法二来单独
编译内核。

方式2:
此方法常用于 kernel 的开发和调试,以下的方法既编译 kernel 部分时,同时打包成boot.img,这样加快了我们开发的速度;

在 kernel 目录下创建 makekernel.sh,在调试的过程中直接在 kernel 目录下执行该脚本,makekernel.sh 内容为:

#!/bin/sh
make ARCH=arm64 CC=../prebuilts/clang/host/linux-x86/clang-r383902b/bin/clang \
LD=../prebuilts/clang/host/linux-x86/clang-r383902b/bin/ld.lld rockchip_defconfig \
android-11.config && make ARCH=arm64 \
CC=../prebuilts/clang/host/linux-x86/clang-r383902b/bin/clang \
LD=../prebuilts/clang/host/linux-x86/clang-r383902b/bin/ld.lld \
BOOT_IMG=../rockdev/Image-rk3568_r/boot.img rk3568-evb1-ddr4-v10.img

BOOT_IMG 是指整编 Android 源码之后在 rockdev 目录下生成的 boot.img,所以在单独编 译 Android
内核之前,一定要整编 Android 源码。整编 Android 源码生成的 rockdev 目录下的 boot.img 镜像里面不仅仅只有kernel 和 resource,还有其他文件。当我们修改了内核源码并单 独编译 Android 内核时,kernel 和
resource 发生了改变,这时候需要指定一个 boot.img,然后 将新编译的 kernel 和 resource
覆盖进去。打包完成之后,在 kernel 目录下会有新 boot.img 镜像 生成,就可以把这个 boot.img
镜像单独烧写到开发板中进行调试了 如果不指定 BOOT_IMG,会在下载镜像之后,系统跑进 recovery 模式,而不是进入正常的启动流程 rk3568-evb1-ddr4-v10.img 的意思是指定所使用的设备树 DTS;

单独烧录内核

打包完后,在 kernel 目录有 boot.img 镜像生成,就可以把这个 boot.img 镜像单独烧入到
机器中进行调试了

单独编译Android文件系统

单独烧录Android文件系统

烧录工具的使用

  • 起始时间:
    2023/8/16
  • 更新时间:
    2023.8.16
  • 状态:
    未完成
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不知道起个啥名“”

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值