RK3568 Android13 源码编译

提示:RK3568 Android13 源码编译 脚本,源码编译管理方式优化

文章目录

  • 获取源码
  • 设置屏幕配置
    • 确认屏幕
    • 修改源码的设备树
  • 修改线程数
  • 整体编译Android固件
    • 配置JDK java 环境 source javaenv.sh
    • 使能编译 build/envsetup.sh lunch topeet_rk3568-userdebug
    • 整体编译固件 ./build.sh-AUCKu
  • 优化编译脚本,提升效率
    • 拓展
    • 总结


假设 源码 sdk 已经在ubuntu 上部署好了。接下来是编译的工作,这里核心规整编译脚本,对编译步骤简要给出。

获取源码

假设所有的编译环境编译脚本已经配置,拿到android 源码,解压

tar -vxf rk3568android13full20240918.tar.xzdrwxrwxr-x 37 wfc    wfc     4096 Mar 13 17:38 rk3568_android13
drwxr-xr-x  2 nobody nogroup 4096 Feb  6 00:10 rk3568_android13_full_20240918.tar

在这里插入图片描述

设置屏幕配置

最终是需要屏幕来显示的,如果自己只是拿个开发板学习而言,这里可以不配置的。但是还是建议根据自己的实际屏幕 来进行配置,没有屏幕显示 则呢么搞开发呢?

确认屏幕

确定要使用的屏幕种类,这个支持的屏幕是根据硬件方案选型来决定的

修改源码的设备树

修改源码kernel-5.10/arch/arm64/boot/dts/rockchip目录下的topeet-screen-lcds.dtsi文件。

路径: rk3568_android13/kernel-5.10/arch/arm64/boot/dts/rockchip/topeet-screen-lcds.dtsi根据自己需求,修改对应的值:rockchip$ cat topeet-screen-lcds.dtsi 
/************************单屏显示******************************/
#define LCD_TYPE_MIPI       //in vp 1
//#define LCD_TYPE_LVDS_10_1_1024X600  //in vp 2
//#define LCD_TYPE_LVDS_10_1_1280X800_gt911  //in vp 2
//#define LCD_TYPE_LVDS_10_1_1280X800_gt9271 //in vp 2
//#define LCD_TYPE_LVDS_7_0   //in vp 2
//#define LCD_TYPE_HDMI_VP0   //hdmi in vp 0
//#define LCD_TYPE_HDMI_VP1   //hdmi in vp 1
//#define LCD_TYPE_EDP_VGA //in vp 0 

修改线程数

在编译Android系统时,可以通过调整线程数来控制并行编译的任务数量,使用多线程可以加快构建速度。要注意根据Ubuntu的处理器内核总数以及内存大小来设置合适的线程数。过高的线程数可能导致系统资源的竞争,过低的线程数则不能充分利用系统的并行处理能力。找到合适的线程数可以加快编译速度,提高效率

可以在build.sh编译脚本中修改线程数,如下图所示:
在这里插入图片描述

这里注意一点:
线程数建议配置机器的3/4 ,配置过高编译失败,配置过低浪费了机器性能。

整体编译Android固件

注意:编译系统时一定要使用普通权限编译。

配置JDK java 环境 source javaenv.sh

进入到rk3568android13文件夹,输入以下命令设置java版本为1.8版本,确认java版本
是1.8版本之后,才可以进行下一步编译,如下图所示:

wfc@wfc-X99:~/wfc/Android/android13/rk3568_android13$ source javaenv.sh
wfc@wfc-X99:~/wfc/Android/android13/rk3568_android13$ java -version
openjdk version "1.8.0_442"
OpenJDK Runtime Environment (build 1.8.0_442-8u442-b06~us1-0ubuntu1~20.04-b06)
OpenJDK 64-Bit Server VM (build 25.442-b06, mixed mode)

使能编译 build/envsetup.sh lunch topeet_rk3568-userdebug

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

wfc@wfc-X99:~/wfc/Android/android13/rk3568_android13$ source build/envsetup.sh
wfc@wfc-X99:~/wfc/Android/android13/rk3568_android13$ lunch topeet_rk3568-userdebug

在这里插入图片描述

整体编译固件 ./build.sh-AUCKu

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

./build.sh-AUCKu

在这里插入图片描述

等待编译结束,在指定的文件下生成 打包相关的包文件

优化编译脚本,提升效率

上面介绍了配置环境,整编脚本。这里需要讲的就是整体编译脚本 如何写成脚本,执行编译脚本即可 直接编译。不用一步两步三步。 如下 ,在 源码目录写一个.sh 脚本,将编译的命令全部写在脚本里面,如下:

wfc_build.shwfc@wfc-X99:~/wfc/Android/android13/rk3568_android13$ cat wfc_build.sh 
#!/bin/bash
source javaenv.sh
source build/envsetup.sh
lunch topeet_rk3568-userdebug
./build.sh -AUCKu

当我们需要编译固件的时候,直接 执行 脚本即可。

./wfc_build.sh 

拓展

可以进一步优化脚本,写入固件属性值、日期、编译完成后 删除部分冗余文件,下面举一个例子

#!/bin/bash#生成软件路径
FS_SW_BIN_PATH=rockdev# WFC_CLOUD_20250311_V1.0.0.0
#项目名
export FS_PRODUCT_NAME=SM666_CLOUD
#日期
FS_SW_DATE=20250312
#版本号
export FS_PRODUCT_VERSION=1.0.0.0
#完整项目软件版本名
export FS_SW_VERSION=${FS_PRODUCT_NAME}_${FS_SW_DATE}_V${FS_PRODUCT_VERSION}function binPac()
{source build/envsetup.shlunch rk3566_r-userdebug./build.sh -UKAoup	#	带OTA
#	./build.sh -UKAup	#	无OTA	mkdir ./${FS_SW_BIN_PATH}/${FS_SW_VERSION}cp ./${FS_SW_BIN_PATH}/Image-rk3566_r/update.img ./${FS_SW_BIN_PATH}/${FS_SW_VERSION}/${FS_SW_VERSION}.imgcp ./${FS_SW_BIN_PATH}/Image-rk3566_r/rk3566_r-ota-*.zip ./${FS_SW_BIN_PATH}/${FS_SW_VERSION}/${FS_SW_VERSION}_ota.ziprm -rf ./${FS_SW_BIN_PATH}/Image-rk3566_rreturn 0;
}binPac;

总结

  • 这里以 RK3568 Android13 编译流程做了一个总结,RK体系356X 系列配置基本这个流程,参数稍微修改。
  • 其它平台,如MTK 平台,脚本的应用非常广泛,实际开发中 也是如此。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/33811.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【CentOS】搭建Radius服务器

目录 背景简介:Radius是什么?Radius服务器验证原理搭建Radius服务器环境信息yum在线安装配置FreeRADIUS相关文件clients.conf文件users文件重启服务 验证 参考链接 背景 在项目中需要用到Radius服务器作为数据库代理用户的外部验证服务器,做…

ToB公司找客户专用|大数据获客系统

对于ToB公司而言,找到并吸引合适的潜在客户并非易事。传统的获客手段如参加行业展会、电话推销以及直接拜访等,虽然在过去取得了一定成效,但如今却暴露出诸多问题。首先,这些方法往往成本高昂,无论是时间还是金钱上的投…

Linux 文件权限类

目录 文件属性 从左到右的10个字符表示 rwx作用文件和目录的不同解释 图标: 案例实操 chmod 改变权限 基本语法 经验技巧 案例实操 拓展:可以通过一个命令查看用户列表 chown改变所有者 基本语法 选项说明 案例实操 chgrp 改变所属组 基…

DeepSeek技术解析:MoE架构实现与代码实战

以下是一篇结合DeepSeek技术解析与代码示例的技术文章,重点展示其核心算法实现与落地应用: DeepSeek技术解析:MoE架构实现与代码实战 作为中国AI领域的创新代表,DeepSeek在混合专家模型(Mixture of Experts, MoE&…

vue3:八、登录界面实现-页面初始搭建、基础实现

一、初始工作 1、创建登录文件 在src/views中创建文件LoginView.vue文件 2、创建路由 在router/index.js中增加登录的信息 代码 import { createRouter, createWebHistory } from vue-router import HomeView from ../views/HomeView.vue const router createRouter({hist…

dify+mysql的诗词助手

目录 数据库表结构: 数据库查询的http服务搭建: 流程引擎搭建: 开始, HTTP查询数据库, LLM数据分析, 直接回复, 效果测试: 下载链接: 数据库表结构:…

jenkins 配置邮件问题整理

版本:Jenkins 2.492.1 插件: A.jenkins自带的, B.安装功能强大的插件 配置流程: 1. jenkins->系统配置->Jenkins Location 此处的”系统管理员邮件地址“,是配置之后发件人的email。 2.配置系统自带的邮件A…

谷歌Chrome或微软Edge浏览器修改网页任意内容

在谷歌或微软浏览器按F12,打开开发者工具,切换到console选项卡: 在下面的输入行输入下面的命令回车: document.body.contentEditable"true"效果如下:

blender使用初体验(甜甜圈教程)

使用blender 建模了甜甜圈,时间空闲了,但愿能创建点好玩的吸引人的东西

Adobe Firefly 技术浅析(三):GANs 的改进

生成式对抗网络(GANs)在图像生成领域取得了显著的进展,但原始的 GANs 在训练稳定性、生成质量以及多样性方面存在一些挑战。Adobe Firefly 在其图像生成技术中采用了多种改进的 GANs 方法,以提高生成图像的质量和多样性。 1. 条件生成式对抗网络(cGANs) 1.1 基本原理 …

go GRPC学习笔记

本博文源于笔者正在学习的gprc,相关配套书籍素材来源是《Go编程进阶实战》,博文内容主要包含了RPC模式讲解,RPC通过htttp访问、拦截器、提高服务端与客户端容错的内容配置 在此之前需要下载protoc,这里不做下载过程 1、RPC模式 …

CentOS 系统安装 docker 以及常用插件

博主用的的是WindTerm软件链接的服务器,因为好用 1.链接上服务器登入后,在/root/目录下 2.执行以下命令安装docker sudo yum install -y yum-utilssudo yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.reposudo…

MindGYM:一个用于增强视觉-语言模型推理能力的合成数据集框架,通过生成自挑战问题来提升模型的多跳推理能力。

2025-03-13,由中山大学和阿里巴巴集团的研究团队提出了MindGYM框架,通过合成自挑战问题来增强视觉-语言模型(VLMs)的推理能力。MindGYM框架通过生成多跳推理问题和结构化课程训练,显著提升了模型在推理深度和广度上的表…

论文阅读笔记——LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS

LoRA 论文 传统全面微调&#xff0c;对每个任务学习的参数与原始模型相同&#xff1a; m a x Φ ∑ ( x , y ) ∈ Z ∑ t 1 ∣ y ∣ l o g ( P Φ ( y t ∣ x , y < t ) ) 式(1) max_{\Phi}\sum_{(x,y)\in Z}\sum^{|y|}_{t1}log(P_{\Phi}(y_t|x,y<t)) \qquad \text{式(…

Umi-OCR 全家桶

介绍&#xff1a; 下载 访问官网地址 https://github.com/hiroi-sora/umi-ocrhttps://github.com/hiroi-sora/umi-ocr 点击下载&#xff08;.exe 文件 安装即可&#xff09; 桌面使用 安装完毕后去安装路径下点击 Umi-OCR.exe &#xff08;默认不会生成桌面的快捷方式&…

oracle中OS BLOCK的含义

在Oracle数据库中&#xff0c;OS BLOCK&#xff08;操作系统数据块&#xff09;是指操作系统层面上的数据块&#xff0c;它与Oracle数据库内部的逻辑存储单元BLOCK&#xff08;数据块&#xff09;有所区别但密切相关。以下是对OS BLOCK的详细解释&#xff1a; 定义与概念 OS BL…

mac部署GPT-SoVITS,生成粤语踩坑点及使用记录

自己录音&#xff0c;普通话或者粤语 注意&#xff1a; 与在其他设备上训练的模型相比&#xff0c;在mac上使用gpu训练的模型的质量明显较低&#xff0c;因此我们暂时使用cpu代替。 Install Xcode command-line tools by running xcode-select --install.Install FFmpeg by …

STM32-SPI通信外设

目录 一&#xff1a;SPI外设简介 SPI框图​编辑 SPI逻辑 ​编辑 主模式全双工连续传输 ​编辑 非连续传输 二&#xff1a;硬件SPI读写W25Q64 1.接线&#xff1a; 2. 代码 SPI外设的初始化 生成时序 一&#xff1a;SPI外设简介 STM32内部集成了硬件SPI收发电路&#…

游戏引擎学习第158天

回顾和今天的计划 我们在这里会实时编码一个完整的游戏&#xff0c;没有使用引擎或库&#xff0c;一切都由我们自己做所有的编程工作&#xff0c;游戏中的每一部分&#xff0c;无论需要做什么&#xff0c;我们都亲自实现&#xff0c;并展示如何完成这些任务。今天&#xff0c;…

指令微调 (Instruction Tuning) 与 Prompt 工程

引言 预训练语言模型 (PLMs) 在通用语言能力方面展现出强大的潜力。然而&#xff0c;如何有效地引导 PLMs 遵循人类指令&#xff0c; 并输出符合人类意图的响应&#xff0c; 成为释放 PLMs 价值的关键挑战。 指令微调 (Instruction Tuning) 和 Prompt 工程 (Prompt Engineerin…