关注

Ubuntu22.04 环境 编译泰山派 RK3566 Android

前几天我发现ubuntu18.04已经停止维护了,就连吴工在直播中也提到了自己家里的电脑使用的是ubuntu20.04,好在文档中有ubuntu22.04编译的内容,不过整体上不是很连贯,有些环境是缺失的,这里我给汇总整理一下。但是虚拟机ubuntu22.04编译Android对内存要求比较高,建议32G以上。我电脑是64G,给虚拟机32G。

如果想快速编译,可以参考这个浓缩版

ubuntu22.04编译泰山派Android 11 浓缩版-CSDN博客

目录

Ubuntu22.04下载

镜像链接

修改交换空间

编译泰山派Android

下载SDK​

解压​

切换到开发板分支

安装编译环境

全编译Android11​


Ubuntu22.04下载

镜像链接

Ubuntu 22.04.5 LTS (Jammy Jellyfish)

正常的安装流程就行

修改交换空间

  1. 调整系统交换空间 首先要说的是系统环境要求,内存 16GB 是至少的,虚拟机的性能释放跟实体机编译没法比。
    如果本身电脑 16 GB 内存还是使用虚拟机编译,毕竟 Windows 自身空载也会占用,可能够呛。
    编译 Android 时务必修改 Ubuntu 的交换空间,默认 2GB 绝对不够(对于系统内存16GB),可以调整到 8GB 或者 16 GB,最好在编译前就调整交换空间,以防之后编译报错

  2. 一、查看当前分区
    查看当前系统的swap大小

    free -m


    二、关闭现有的swap分区
    将/etc/fstab文件中所有设置为swap的设备关闭,然后才能创建swap

    sudo swapoff -a


    三、创建新的swap文件
    bs×count=最后生成的swap大小,我电脑是64G的,分配给虚拟机32G,这里设置16G

    sudo dd if=/dev/zero of=/swapfile bs=1G count=16


    四、设置权限
    出于安全原因,交换文件应该只能被root用户读写

    sudo chmod 600 /swapfile


     五、设置swap

    sudo 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值:16936e9c6074ad753d50655ae53382ed

    md5sum 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.gz

    sdk解压出来以后是一个.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 python3

    python版本切换设置,为什么要切换呢因为有时候我们会用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编译文件夹中。

  • ModuleNotFoundError: No module named ‘formatter‘_modulenotfounderror: no module named 'formatter-CSDN博客


安装编译环境

这里修改过了,原来的会报错

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和烧录固件,可以参考立创开发板了

2. SDK编译 | 立创开发板技术文档中心

转载自CSDN-专业IT技术社区

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/ZYX_256/article/details/148068610

评论

赞0

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--