前几天我发现ubuntu18.04已经停止维护了,就连吴工在直播中也提到了自己家里的电脑使用的是ubuntu20.04,好在文档中有ubuntu22.04编译的内容,不过整体上不是很连贯,有些环境是缺失的,这里我给汇总整理一下。但是虚拟机ubuntu22.04编译Android对内存要求比较高,建议32G以上。我电脑是64G,给虚拟机32G。
如果想快速编译,可以参考这个浓缩版
ubuntu22.04编译泰山派Android 11 浓缩版-CSDN博客
目录
Ubuntu22.04下载
镜像链接
Ubuntu 22.04.5 LTS (Jammy Jellyfish)

正常的安装流程就行
修改交换空间
-
调整系统交换空间 首先要说的是系统环境要求,内存 16GB 是至少的,虚拟机的性能释放跟实体机编译没法比。
如果本身电脑 16 GB 内存还是使用虚拟机编译,毕竟 Windows 自身空载也会占用,可能够呛。
编译 Android 时务必修改 Ubuntu 的交换空间,默认 2GB 绝对不够(对于系统内存16GB),可以调整到 8GB 或者 16 GB,最好在编译前就调整交换空间,以防之后编译报错 -
一、查看当前分区
查看当前系统的swap大小free -m
二、关闭现有的swap分区
将/etc/fstab文件中所有设置为swap的设备关闭,然后才能创建swapsudo swapoff -a
三、创建新的swap文件
bs×count=最后生成的swap大小,我电脑是64G的,分配给虚拟机32G,这里设置16Gsudo dd if=/dev/zero of=/swapfile bs=1G count=16
四、设置权限
出于安全原因,交换文件应该只能被root用户读写sudo chmod 600 /swapfile
五、设置swapsudo mkswap /swapfile
六、启用swap
sudo swapon /swapfile
编译泰山派Android
以下内容是直接根据立创开发板做了适配修改而来的
下载SDK
Android系统编译编译中提供了非repo版本的演示,这里我们就演示repo版本的,很多同学就会有疑问,repo是啥?为什么要用这个版本呢?
repo主要是用来管理git仓库的,有了repo你修改代码就会有记录,但是同样的也会比非repo版本占用空间大上一半资料在网盘:
SDK下载
📌 在 下载中心->百度网盘->第05章.【立创·泰山派】系统SDK->【SDK】Android中大家自行下载!!
需要下载的文件:
- 带repo版本的SDK
tspi_android_sdk_repo_20240202.tar.gz - 带repo版本的SDK校验文件
-
tspi_android_sdk_repo_20240202_md5sum.txt选择要下载的文件

直接通过百度网盘下载到我们前面搭建好的samba服务中,这选择浏览找到你samba映射的盘符,我这里映射到x盘,并且命名为ex_disk_a在这个盘下面我新建了一个名为android的目录来保存SDK相关文件

最终路径

下载完成


校验 校验的目的是为了防止下载过程中出现的错误,用md5sum 查看下载的SDK的md5值:
16936e9c6074ad753d50655ae53382edmd5sum tspi_android_sdk_repo_20240202.tar.gz 16936e9c6074ad753d50655ae53382ed tspi_android_sdk_repo_20240202.tar.gz在看一下我们给的mdk值看这里两个值是否一样,如果一样则正确
cat tspi_android_sdk_repo_20240202_md5sum.txt 16936e9c6074ad753d50655ae53382ed tspi_android_sdk_repo_20240202.tar.gz最终效果

解压
在刚刚下载好的目录下运行,注意这个命令跟据电脑配置情况不同耗时不同,几分钟到个把小时不等,解压完成后可以删除
tspi_android_sdk_repo_20240202.tar.gz以减小空间tar -xzf tspi_android_sdk_repo_20240202.tar.gzsdk解压出来以后是一个.repo文件,
.开头的文件会隐藏想要查看需要用ls --all命令
同步代码 解压完成后只有.repo目录我们还需要通过repo命令把代码同步出来,运行repo命令需要我们ubuntu安装有git和python否则会报错 更新软件包(前面安装过就不用再安装了)
sudo apt-get update安装git(前面安装过就不用再安装了)
sudo apt-get install git -y安装repo(前面安装过就不用再安装了)
sudo apt install repo -y安装python2(前面安装过就不用再安装了)
sudo apt-get install python2.7安装python3(前面安装过就不用再安装了)
sudo apt-get install python3python版本切换设置,为什么要切换呢因为有时候我们会用python2有时候会用python3(前面做过了就不用再重复了)
-
注意:ubuntu22.04使用的是Python3.10,如果不确定就打一个Python3.,然后使用Tab
-
最好Python2.也这么做
$设置 python2.7 sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1 $设置 python3.10 sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.10 2切换
sudo update-alternatives --config python切换到python3.10
$ sudo update-alternatives --config python There are 2 choices for the alternative python (providing /usr/bin/python). Selection Path Priority Status ------------------------------------------------------------ * 0 /usr/bin/python3.10 2 auto mode 1 /usr/bin/python2.7 1 manual mode 2 /usr/bin/python3.10 2 manual mode Press <enter> to keep the current choice[*], or type selection number: 2同步
.repo/repo/repo sync -l -j88同步成功


切换到开发板分支
-
cd kernel/ && git clean -xdf && cd .. && repo forall -c "git checkout lckfb-tspi-v1.0.0"
命令解析,首先到cd kernel目录下git clean -xdf清除掉差异否则会同步失败,这个问题下一版解决,然后cd ..退回到SDK目录下

repo forall -c "git checkout lckfb-tspi-v1.0.0"通过repo命令切换到泰山派分支
失败请看下面内容
-
Linux 的命令按照文档直接复制进去也没啥问题,先安装安卓的编译环境再搞 Linux 就没啥问题
A. 前面的 repo 签出如果遇到问题,参考吴工的教程使用版本控制切换到 Python 2.6
B. 如果在编译安卓 repo 切换分支时还有可能遇到一次问题,会提示以下信息
总而言之,问题就是 ModuleNotFoundError:No module named 'formatter'
formatter 模块在 Python 3.4+ 中已被标记为废弃。而且好像手动切换版本到 Python 2.6 也不行
根据报错信息提示的位置并且按照下面的链接的方法,修改 help.py 文件即可。
【help.py】下载
📌 在
下载中心->百度网盘(立创·泰山派开发板资料)->第03章.【立创·泰山派】文档手册->【共建】文档附件->【共建】Ubuntu 22.04LTS编译文件夹中。
安装编译环境
这里修改过了,原来的会报错
sudo apt-get update &&sudo apt install -y git python2.7 make openjdk-8-jdk git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libgl1-mesa-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libxml2-utils xsltproc unzip python2.7 bc imagemagick ccache schedtool libssl-dev libncurses5-dev clang liblz4-tool libncurses5
全编译Android11
这个命令会编译boot、kernel、android。这里将-j16修改成了-j$(nproc),全核心编译
cd u-boot && ./make.sh rk3566 && cd ../kernel && make clean && make distclean && make ARCH=arm64 tspi_defconfig rk356x_evb.config android-11.config && make ARCH=arm64 tspi-rk3566-user-v10.img -j$(nproc) && cd .. && source build/envsetup.sh && lunch rk3566_tspi-userdebug && make installclean -j$(nproc) && make -j$(nproc) && ./mkimage.sh

电源选择,选择不对会编译报错,这里大家记住除了VCCIO4和6选1.8V其他都选3V3,如果没有弹电源选择框则需要安装sudo apt install whiptail后在重新编译。







剩下的关于编译kerner和烧录固件,可以参考立创开发板了
转载自CSDN-专业IT技术社区
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/ZYX_256/article/details/148068610



