当前位置: 首页 > news >正文

Android车机DIY开发之学习篇(六)编译讯为3568开发板安卓

Android车机DIY开发之学习篇(六)编译讯为3568开发板安卓

1.SDK解压到家目录下的 rk3588_android_sdk 目录

一. 全部编译

###安装所需环境

sudo apt-get update
sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib
g+±multilib libc6-dev-i386 lib32ncurses5-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev
libxml2-utils xsltproc unzip python-pyelftools python3-pyelftools device-tree-compiler libfdt-dev
libfdt1 libssl-dev liblz4-tool python-dev libncurses5 make

执行以下命令
sudo rm -rf /usr/bin/python
sudo ln -s /usr/bin/python2 /usr/bin/python

git config --global user.name “zc9527”
git config --global user.email"1508890767@qq.com"

cd ~/rk3588_android_sdk/
.repo/repo/repo sync -l -j16

source build/envsetup.sh
lunch rk3568_r-userdebug
./build.sh -UKA -J10

二. 编译u-boot

在根目录下执行
source build/envsetup.sh
make clean
lunch rk3568_r-userdebug
. /build.sh -U

U-boot 中添加自己的开发板

1.u-boot/configs 目录下创建默认配置文件, 复制 rk3568_defconfig, 然后重新命名为 AAOS_defconfig
2.修改uboot下编译脚本 make.sh
echo "	./make.sh evb-rk3399               --- build for evb-rk3399_defconfig"
echo "	./make.sh firefly-rk3288           --- build for firefly-rk3288_defconfig"
**echo "	./make.sh AAOS                     --- build for AAOS_defconfig"**
echo "	./make.sh EXT_DTB=rk-kernel.dtb    --- build with exist .config and external dtb"
echo "	./make.sh                          --- build with exist .config"
echo "	./make.sh env                      --- build envtools"
3. 修改 device/rockchip/rk356x/BoardConfig.mk 文件, 修改

PRODUCT_UBOOT_CONFIG 的值为 AAOS_defconfig

4.在 u-boot/arch/arm/dts/目录下创建默认配置文件, 复制 rk3568-evb.dts , 然

后重新命名为AAOS-evb.dts

5.修改 u-boot/configs AAOS_defconfig 文件, 设置默认的设备树为

AAOS-evb.dts
CONFIG_DEFAULT_DEVICE_TREE="AAOS-evb"

6. 打开u-boot/arch/arm/dts/AAOS-evb.dts 设备树

model = “AAOS Evaluation Board”;

三. 编译Kernel

方法一:在根目录下执行

source build/envsetup.sh
make clean
lunch rk3568_r-userdebug
./build.sh -CKA
### 方法二:在kernel目录下执行
cd kernel
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

内核本地化

1.拷贝参考模板

进入/device/rockchip/rk3588 目录, 将/device/rockchip/rk3588/rk3588_s 作
为 模 板 ( 如 果 是 Android13 , 选 择 rk3588_t 作 为 模 板 ) , 将 其 拷 贝 到
/device/rockchip/rk3588/AAOS_rk3588

2.修改 device/rockchip/rk3588/AndroidProducts.mk 文件

PRODUCT_MAKEFILES :=
$(LOCAL_DIR)/my_rk3588/AAOS_rk3588.mk
$(LOCAL_DIR)/rk3588_s/rk3588_s.mk
$(LOCAL_DIR)/ATK_DLRK3588/ATK_DLRK3588.mk
$(LOCAL_DIR)/rk3588s_s/rk3588s_s.mk
$(LOCAL_DIR)/rk3588_box/rk3588_box.mk
$(LOCAL_DIR)/rk3588_xr/rk3588_xr.mk
$(LOCAL_DIR)/rk3588m_s/rk3588m_s.mk
$(LOCAL_DIR)/rk3588m_car/rk3588m_car.mk \

COMMON_LUNCH_CHOICES :=
AAOS_rk3588-userdebug
AAOS_rk3588-user
ATK_DLRK3588-userdebug
ATK_DLRK3588-user
rk3588_s-userdebug
rk3588_s-user
rk3588s_s-userdebug
rk3588s_s-user
rk3588_box-userdebug
rk3588_box-user
rk3588_xr-userdebug
rk3588_xr-user
rk3588m_s-userdebug
rk3588m_s-user
rk3588m_car-userdebug \

3.修改 my_rk3588.mk

进入到 device/rockchip/rk3588/my_rk3588 目录, 将该目录下的 rk3588_s.mk 文件重命
名为 my_rk3588.mk,修改内容

PRODUCT_NAME := AAOS_rk3588
PRODUCT_DEVICE := AAOS_rk3588
PRODUCT_BRAND := rockchip
PRODUCT_MODEL := AAOS_rk3588
PRODUCT_MANUFACTURER := rockchip
PRODUCT_AAPT_PREF_CONFIG := xhdpi

4.修改路径信息

修改 AAOS_rk3588.mk
include device/rockchip/common/build/rockchip/DynamicPartitions.mk
include device/rockchip/rk3588/AAOS_rk3588/BoardConfig.mk
include device/rockchip/common/BoardConfig.mk
修改BoardConfig.mk 文件
ifeq ($(strip $(BOARD_USES_AB_IMAGE)), true)
include device/rockchip/common/BoardConfig_AB.mk
TARGET_RECOVERY_FSTAB := device/rockchip/rk3588/AAOS_rk3588/recovery.fstab_AB
endif

5.lunch 选择新产品 AAOS_rk3588

相关文章:

Android车机DIY开发之学习篇(六)编译讯为3568开发板安卓

Android车机DIY开发之学习篇(六)编译讯为3568开发板安卓 1.SDK解压到家目录下的 rk3588_android_sdk 目录 一. 全部编译 ###安装所需环境 sudo apt-get update sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g…...

Codeforces Round 863 (Div. 3) E. Living Sequence

题目链接 头一回用不是正解的方法做出来,也是比较极限,直接说做法就是二分数位dp 数位 d p dp dp 求 1 − n 1-n 1−n出现多少含 4 4 4的数字个数 这纯纯板子了 \sout{这纯纯板子了} 这纯纯板子了 设 f ( x ) f(x) f(x) 为 1 − x 1-x 1−x 中含有4的…...

一文讲解HashMap线程安全相关问题(上)

HashMap不是线程安全的,主要有以下几个问题: ①、多线程下扩容会死循环。JDK1.7 中的 HashMap 使用的是头插法插入元素,在多线程的环境下,扩容的时候就有可能导致出现环形链表,造成死循环。 JDK 8 时已经修复了这个问…...

MFC 创建Ribbon样式窗口

然后点击下一步直到完成即可...

uv 安装包

是的,你可以使用 uv 来安装 Python 包。uv 是一个高性能的 Python 包安装器和解析器,由 astral.sh 团队开发,旨在替代 pip 和 pip-tools,提供更快的包安装体验。 ### 如何使用 uv 安装包 1. **安装 uv**: 如果你还…...

IELTS口语练习题库

IELTS口语1-4月题库 Part 1 Gifts Have you ever sent handmade gifts to others? Yes, I have. I once made a scrapbook for my best friend’s birthday. It included photos of our memories together and some handwritten notes. She loved it because it was personal…...

图书管理系统 Axios 源码__获取图书列表

目录 核心功能 源码介绍 1. 获取图书列表 技术要点 适用人群 本项目是一个基于 HTML Bootstrap JavaScript Axios 开发的图书管理系统,可用于 添加、编辑、删除和管理图书信息,适合前端开发者学习 前端交互设计、Axios 数据请求 以及 Bootstrap 样…...

基于OSAL的嵌入式裸机事件驱动框架——整体架构调度机制

参考B站up主【架构分析】嵌入式祼机事件驱动框架 感谢大佬分享 任务ID : TASK_XXX TASK_XXX 在系统中每个任务的ID是唯一的,范围是 0 to 0xFFFE,0xFFFF保留为SYS_TSK_INIT。 同时任务ID的大小也充当任务调度的优先级,ID越大&#…...

c++ string类 +底层模拟实现

提醒: 本片博客只是小编的听课笔记&#xff0c;介意勿看。 基础 包含在头文件<string>&#xff0c;才能使用string类似函数接口。 string常见构造类 string s1; cin>>s1;//无参构造 string s2(s1);//拷贝构造 string s1("jfksa");//传参构造 三种…...

六十分之三十七——一转眼、时光飞逝

一、目标 明确可落地&#xff0c;对于自身执行完成需要一定的努力才可以完成的 1.第三版分组、激励、立体化权限、智能设备、AIPPT做课 2.8本书 3.得到&#xff1a;头条、吴军来信2、卓克科技参考3 4.总结思考 二、计划 科学规律的&#xff0c;要结合番茄工作法、快速阅读、…...

Shell基础:中括号的使用

在Shell脚本中&#xff0c;中括号&#xff08;[ ... ] 和 [[ ... ]]&#xff09;是一种常见的条件测试结构。它们用于进行文件类型检查、值比较以及逻辑判断。通过了解它们的不同特点和用法&#xff0c;能够帮助你编写更加高效、安全且易读的脚本。本文将详细介绍Shell中单中括…...

《基于Scapy的综合性网络扫描与通信工具集解析》

在网络管理和安全评估中&#xff0c;网络扫描和通信是两个至关重要的环节。Python 的 Scapy 库因其强大的网络数据包处理能力&#xff0c;成为开发和实现这些功能的理想工具。本文将介绍一个基于 Scapy 编写的 Python 脚本&#xff0c;该脚本集成了 ARP 扫描、端口扫描以及 TCP…...

面经--C语言——sizeof和strlen,数组和链表,#include <>和 #include ““ #define 和typedef 内存对齐概述

文章目录 sizeof 和 strlen数组和链表总结 #include <>和 #include ""#define 和typedef内存对齐概述对齐规则示例&#xff1a;结构体的内存对齐分析&#xff1a; 内存对齐的常见规则&#xff1a;填充字节的计算对齐影响的实际例子 sizeof 和 strlen 特性size…...

使用 Kotlin 将 Vertx 和 Springboot 整合

本篇文章目的是将 Springboot 和 Vertx 进行简单整合。整合目的仅仅是为了整活&#xff0c;因为两个不同的东西整合在一起提升的性能并没有只使用 Vertx 性能高&#xff0c;因此追求高性能的话这是在我来说不推荐。而且他们不仅没有提高很多性能甚至增加了学习成本 一、整合流…...

线性回归算法-01

线性回归简介 学习目标 了解线性回归的应用场景知道线性回归的定义 1 线性回归应用场景 房价预测销售额度预测贷款额度预测 2 什么是线性回归 2.1 定义与公式 线性回归(Linear regression)是利用 回归方程(函数)对 一个或多个自变量(特征值)和因变量(目标值)之间关系进行建模…...

洛谷 P1130 红牌 C语言

题目描述 某地临时居民想获得长期居住权就必须申请拿到红牌。获得红牌的过程是相当复杂&#xff0c;一共包括 N 个步骤。每一步骤都由政府的某个工作人员负责检查你所提交的材料是否符合条件。为了加快进程&#xff0c;每一步政府都派了 M 个工作人员来检查材料。不幸的是&…...

虚幻UE5手机安卓Android Studio开发设置2025

一、下载Android Studio历史版本 步骤1&#xff1a;虚幻4.27、5.0、5.1、5.2官方要求Andrd Studio 4.0版本&#xff1b; 5.3、5.4、5.5官方要求的版本为Android Studio Flamingo | 2022.2.1 Patch 2 May 24, 2023 虚幻官网查看对应Andrd Studiob下载版本&#xff1a; https:/…...

线性代数复习笔记

1. 课程学习 1.1 3Blue1Brown 线性代数 2. 基本术语 eigenvector&#xff08;特征向量&#xff09;&#xff1a;线性变换中方向保持不变的向量 可以视作3D旋转矩阵形成的旋转的轴...

你需要更深层次的解放

先谈一谈理性认知中的属性替换原则。简单来说&#xff0c;属性替换就是用简单的问题取代难题。 当人们需要评估属性A时&#xff0c;却发现评估属性B更容易一些&#xff08;A与B之间存在一定的关系&#xff09;&#xff0c;于是就改为评估属性B。这叫做属性替换。 作为一种认知…...

机器学习算法在网络安全中的实践

机器学习算法在网络安全中的实践 本文将深入探讨机器学习算法在网络安全领域的应用实践&#xff0c;包括基本概念、常见算法及其应用案例&#xff0c;从而帮助程序员更好地理解和应用这一领域的技术。"> 序言 网络安全一直是信息技术领域的重要议题&#xff0c;随着互联…...

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频

使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...

srs linux

下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935&#xff0c;SRS管理页面端口是8080&#xff0c;可…...

C# SqlSugar:依赖注入与仓储模式实践

C# SqlSugar&#xff1a;依赖注入与仓储模式实践 在 C# 的应用开发中&#xff0c;数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护&#xff0c;许多开发者会选择成熟的 ORM&#xff08;对象关系映射&#xff09;框架&#xff0c;SqlSugar 就是其中备受…...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

OPENCV形态学基础之二腐蚀

一.腐蚀的原理 (图1) 数学表达式&#xff1a;dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一&#xff0c;腐蚀跟膨胀属于反向操作&#xff0c;膨胀是把图像图像变大&#xff0c;而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...

使用LangGraph和LangSmith构建多智能体人工智能系统

现在&#xff0c;通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战&#xff0c;比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...

【C++特殊工具与技术】优化内存分配(一):C++中的内存分配

目录 一、C 内存的基本概念​ 1.1 内存的物理与逻辑结构​ 1.2 C 程序的内存区域划分​ 二、栈内存分配​ 2.1 栈内存的特点​ 2.2 栈内存分配示例​ 三、堆内存分配​ 3.1 new和delete操作符​ 4.2 内存泄漏与悬空指针问题​ 4.3 new和delete的重载​ 四、智能指针…...

深入浅出Diffusion模型:从原理到实践的全方位教程

I. 引言&#xff1a;生成式AI的黎明 – Diffusion模型是什么&#xff1f; 近年来&#xff0c;生成式人工智能&#xff08;Generative AI&#xff09;领域取得了爆炸性的进展&#xff0c;模型能够根据简单的文本提示创作出逼真的图像、连贯的文本&#xff0c;乃至更多令人惊叹的…...

Xcode 16 集成 cocoapods 报错

基于 Xcode 16 新建工程项目&#xff0c;集成 cocoapods 执行 pod init 报错 ### Error RuntimeError - PBXGroup attempted to initialize an object with unknown ISA PBXFileSystemSynchronizedRootGroup from attributes: {"isa">"PBXFileSystemSynchro…...