正点原子 RK3562 Android14 Ubuntu 编译 SDK 环境准备:依赖、repo 与 Swap 配置一次搞定

在进行 Android、Linux SDK 或嵌入式 BSP 编译前,Ubuntu 主机环境是否完整,会直接影响后续源码同步和工程编译。本文整理了基础依赖安装、repo 工具配置以及 Swap 容量扩展三个步骤,适合在新搭建编译服务器或虚拟机环境时参考使用。

正点原子RK3562J开发板瑞芯微Linux开发板ARM工业控制AI人工智能

RK3562 Android14 Ubuntu 编译 SDK 环境准备:依赖、repo 与 Swap 配置一次搞定

一、安装基础依赖软件包

在开始源码同步和编译前,建议先更新 Ubuntu 软件源,并安装编译过程中常用的基础工具链、库文件以及设备树相关工具。

执行以下命令:

bash 复制代码
sudo apt-get update

然后安装常用依赖:

bash 复制代码
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

部分内核或 BSP 编译过程中,还可能会用到 libelf-dev 和 dwarves,建议一并安装:

bash 复制代码
sudo apt-get install libelf-dev
sudo apt-get install dwarves

其中,libelf-dev 常用于内核相关工具编译,dwarves 则常用于 BTF、调试信息等相关功能生成。如果缺失,后续编译内核时可能会出现依赖报错。

二、安装 repo 工具

很多 Android SDK 或大型嵌入式 Linux SDK 都采用 repo 管理多仓库源码,所以需要先安装 repo 工具。

创建本地工具目录:

bash 复制代码
mkdir ~/bin

将该目录加入环境变量:

bash 复制代码
export PATH=~/bin:$PATH

然后从清华源下载 repo:

bash 复制代码
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o ~/bin/repo

添加可执行权限:

bash 复制代码
chmod a+x ~/bin/repo

配置完成后,可以执行下面命令确认 repo 是否可用:

bash 复制代码
repo --version

如果能够正常输出版本信息,说明 repo 工具已经安装完成。

三、增加 Swap 容量

大型工程编译时,对内存要求比较高。如果主机内存较小,容易在编译过程中出现进程被杀、链接失败、内存不足等问题。

为了提高编译稳定性,可以额外增加一个 8GB 的 Swap 文件。

创建 Swap 文件:

bash 复制代码
sudo fallocate -l 8G /swapfile2

设置文件权限:

bash 复制代码
sudo chmod 600 /swapfile2

格式化为 Swap:

bash 复制代码
sudo mkswap /swapfile2

启用 Swap:

bash 复制代码
sudo swapon /swapfile2

启用后,可以通过以下命令查看当前 Swap 状态:

bash 复制代码
free -h

或者:

bash 复制代码
swapon --show

如果能看到 /swapfile2,说明新的 Swap 已经生效。

相关推荐
dawnsky.liu2 分钟前
在 RHEL 中使用 goose 实现远程主机管理
linux·运维·ai
Linux运维技术栈2 小时前
CVE-2026-91403 高危漏洞修复:Rocky Linux 9 多版本 JDK 环境清理实操
java·linux·运维
云上先途13 小时前
企业 AI 服务部署周期多久,会不会影响原有业务运转?
大数据·运维·人工智能
hhhjhl3 小时前
Undici 跨端三方库仓颉适配全流程
java·开发语言·ubuntu
执伞人ONLY3 小时前
AI知识库自动化知识加工没做对,人工整理永远追不上知识产生
运维·人工智能·自动化
slongzhang_3 小时前
linux 递归删除源码文件|递归删除目录下 *.js,但排除 *.min.js
linux·开发语言·javascript
叼烟扛炮4 小时前
Linux 学习笔记(三十三):线程互斥——互斥锁(Mutex)与死锁
linux·运维·服务器·笔记·学习·1024程序员节
无足鸟ICT4 小时前
【RHCA+】who命令(查看已登陆用户)
linux·运维·服务器
Escalating_xu4 小时前
【Linux 网络编程】应用层协议 HTTP(下):Header、连接管理与 C++ HTTP 服务器
linux·服务器·网络
RacentCLM4 小时前
证书即服务CaaS:从申请、续期到部署的自动化链路拆解
运维·数据库·自动化·ssl