Docker系列(1)安装Linux系统编译Android源码

这篇具有很好参考价值的文章主要介绍了Docker系列(1)安装Linux系统编译Android源码。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、开发环境搭建

1.Windows docker环境安装

2.配置ubuntu18.04系统

2.0 准备工作

2.1 安装ubuntu18.04

2.2 安装常用工具

2.3 安装rk3568环境编译工具

2.4 新增用户

2.5 注意避坑!!

二、下载编译 Android_SDK

3.1 第一步,下载 SDK

3.2 第二步,更新 SDK

3.3 第二步,编译 SDK

手动编译 iCore-3568JQ Android 11.0

3.4 打包成统一固件 update.img


这笔记是前两年用Windows docker安装Linux Ubuntu镜像,然后编译rk3568的。当时有个问题,比如你电脑32G内存,如果你给docker分配了24G,你启用docker,就算没有编译也会占内存。

# 拷贝命令

docker cp Android11.0 1c962c6f7c6a70360fd5e731cd6bc5dff09c10efb0d8220899b9979f47c809f2:/sourcecode

# 启动新终端

docker exec --privileged -it 1c962c6f7c6a70360fd5e731cd6bc5dff09c10efb0d8220899b9979f47c809f2 /bin/bash

一、开发环境搭建

1.Windows docker环境安装

此处为语雀内容卡片,点击链接查看:https://www.yuque.com/28ln/is90rz/opbn0w

2.配置ubuntu18.04系统

2.0 准备工作

编译 Android 对机器的配置要求较高:

  • 64 位 CPU
  • 16GB 物理内存+交换内存
  • 250GB 空闲的磁盘空间.

官方建议用ubuntu18.04 版本 , 以上环境电脑如果达不到要求 请停止后续操作!

2.1 安装ubuntu18.04

cmd窗口输入docker pull ubuntu:18.04

Docker系列(1)安装Linux系统编译Android源码,【Linux 系统基础与定制】,docker,linux,容器

Docker系列(1)安装Linux系统编译Android源码,【Linux 系统基础与定制】,docker,linux,容器

# docker container run -p 8000:3000 -it ubuntu:18.04 /bin/bash
root@32b7b9ddcaab:/# cat /etc/issue
Ubuntu 18.04.6 LTS \n \l
2.2 安装常用工具
root@32b7b9ddcaab:/# apt update
root@32b7b9ddcaab:/# apt install byobu vim-gtk inetutils-ping net-tools wget cpio unzip rsync xz-utils bc time

过程中需要配置地区,选择亚洲上海:

Configuring tzdata
------------------

Please select the geographic area in which you live. Subsequent configuration questions will narrow this down by presenting a list of cities,
representing the time zones in which they are located.

  1. Africa   3. Antarctica  5. Arctic  7. Atlantic  9. Indian    11. SystemV  13. Etc
  2. America  4. Australia   6. Asia    8. Europe    10. Pacific  12. US
Geographic area: 6

Please select the city or region corresponding to your time zone.

  1. Aden      13. Barnaul     25. Dushanbe     37. Jerusalem     49. Macau         61. Pyongyang      73. Taipei         85. Vientiane
  2. Almaty    14. Beirut      26. Famagusta    38. Kabul         50. Magadan       62. Qatar          74. Tashkent       86. Vladivostok
  3. Amman     15. Bishkek     27. Gaza         39. Kamchatka     51. Makassar      63. Qostanay       75. Tbilisi        87. Yakutsk
  4. Anadyr    16. Brunei      28. Harbin       40. Karachi       52. Manila        64. Qyzylorda      76. Tehran         88. Yangon
  5. Aqtau     17. Chita       29. Hebron       41. Kashgar       53. Muscat        65. Rangoon        77. Tel_Aviv       89. Yekaterinburg
  6. Aqtobe    18. Choibalsan  30. Ho_Chi_Minh  42. Kathmandu     54. Nicosia       66. Riyadh         78. Thimphu        90. Yerevan
  7. Ashgabat  19. Chongqing   31. Hong_Kong    43. Khandyga      55. Novokuznetsk  67. Sakhalin       79. Tokyo
  8. Atyrau    20. Colombo     32. Hovd         44. Kolkata       56. Novosibirsk   68. Samarkand      80. Tomsk
  9. Baghdad   21. Damascus    33. Irkutsk      45. Krasnoyarsk   57. Omsk          69. Seoul          81. Ujung_Pandang
  10. Bahrain  22. Dhaka       34. Istanbul     46. Kuala_Lumpur  58. Oral          70. Shanghai       82. Ulaanbaatar
  11. Baku     23. Dili        35. Jakarta      47. Kuching       59. Phnom_Penh    71. Singapore      83. Urumqi
  12. Bangkok  24. Dubai       36. Jayapura     48. Kuwait        60. Pontianak     72. Srednekolymsk  84. Ust-Nera
Time zone: 70


Current default time zone: 'Asia/Shanghai'
Local time is now:      Tue Nov 30 18:05:30 CST 2021.
Universal Time is now:  Tue Nov 30 10:05:30 UTC 2021.
Run 'dpkg-reconfigure tzdata' if you wish to change it.
2.3 安装rk3568环境编译工具
sudo apt-get update

sudo apt-get install git gnupg flex bison gperf libsdl1.2-dev \
libesd-java libwxgtk3.0-dev squashfs-tools build-essential zip curl \
libncurses5-dev zlib1g-dev pngcrush schedtool libxml2 libxml2-utils \
xsltproc lzop libc6-dev schedtool g++-multilib lib32z1-dev lib32ncurses5-dev \
lib32readline-dev gcc-multilib libswitch-perl libssl-dev unzip zip device-tree-compiler \
liblz4-tool python-pyelftools python3-pyelftools -y 
2.4 新增用户
# 设置超级用户:
root@32b7b9ddcaab:/# apt install sudo
root@32b7b9ddcaab:/# visudo
# 添加自己的用户名,!wq保存并退出:
ln28	ALL=(ALL:ALL) ALL
# 切换到普通用户:
root@32b7b9ddcaab:/# adduser ln28
root@32b7b9ddcaab:/# su ln28
2.5 注意避坑!!

在windows下面安装docker 再安装ubuntu去编译Android源码 :

  1. 首先是系统性能最少是300G + 16G 以上的要求 , 前期50%编译都是使用4~5G内存 , 后面是需要16G以上否则会报错。
  2. 不要使用root权限编译,按照 2.4步骤新增用户
  3. 编译会报错 少了 bc和time , 最好把2.3步骤全部安装了
  4. 权限组都改成新增的用户 , 不要用root! 。
  5. 还有一个权限问题 , docker启动的时候 docker exec --privileged -it 1c962c6f7c6a70360fd5e731cd6bc5dff09c10efb0d8220899b9979f47c809f2 /bin/bash。

You are trying to start Docker Desktop but you don't have enough memory. Free some memory or change · 语雀

Resources Advanced You are using the WSL 2 backend, so resource limits are · 语雀

二、下载编译 Android_SDK

Firefly | 让科技更简单,让生活更智能

3. 编译 Android11.0 固件 — Firefly Wiki

Docker系列(1)安装Linux系统编译Android源码,【Linux 系统基础与定制】,docker,linux,容器

3.1 第一步,下载 SDK

注意:不要在共享文件夹、挂载文件夹以及非英文目录解压SDK,避免产生不必要的错误

$ mkdir ~/proj
$ mv /path/to/Firefly-RK356X_Android11.0_git_20210824.7z.*  ~/proj
$ cd ~/proj/
$ 7z x ./Firefly-RK356X_Android11.0_git_20210824.7z.001 -oRK356X_Android11.0
$ cd ./RK356X_Android11.0
$ git reset --hard
3.2 第二步,更新 SDK

我是直接下载百度云盘里面的, 解压后操作步骤4/5即可。

#1. 进入 SDK 根目录
cd ~/proj/RK356X_Android11.0

#2. 下载远程 bundle 仓库
#git clone https://gitlab.com/TeeFirefly/rk356x-android11-bundle.git .bundle

#3. 若下载仓库失败,目前 bundle 仓库占用空间较大,所以同步的时候可能会出现卡住或失败的问题,
# 可以从云盘下载 bundle 并解压到 SDK 根目录,解压指令如下:

7z x rk356x-android11-bundle.7z  -r -o. && mv rk356x-android11-bundle/ .bundle/

#4. 更新 SDK,并且后续更新不需要再次拉取远程仓库,直接执行以下命令即可
.bundle/update

#5. 按照提示已经更新内容到 FETCH_HEAD,同步 FETCH_HEAD 到 firefly 分支
git rebase FETCH_HEAD
3.3 第二步,编译 SDK
手动编译 iCore-3568JQ Android 11.0
  • 编译 kernel:
cd ~/proj/RK356X_Android11.0/kernel/
make ARCH=arm64 firefly_defconfig android-11.config rk356x.config firefly_wifi.config
make ARCH=arm64 BOOT_IMG=../rockdev/Image-rk3568_firefly_itx_3568q/boot.img rk3568-firefly-itx-3568q.img -j8
  • 编译 uboot:
cd ~/proj/RK356X_Android11.0/u-boot/
./make.sh rk3568
  • 编译 Android:
cd ~/proj/RK356X_Android11.0/
source build/envsetup.sh
lunch rk3568_firefly_itx_3568q-userdebug
make installclean
make -j24
./mkimage.sh

Docker系列(1)安装Linux系统编译Android源码,【Linux 系统基础与定制】,docker,linux,容器

3.4 打包成统一固件 update.img
./FFTools/mkupdate/mkupdate.sh -l rk3568_firefly_itx_3568q-userdebug

打包完成后将在rockdev/Image-XXX/ 目录下生成统一固件: product名XXX_XXX_日期XXX.img

在 Windows 下打包统一固件 update.img 也很简单,将编译生成的文件拷贝到 AndroidTool 的 rockdev\Image 目录中,然后运行 rockdev 目录下的 mkupdate.bat 批处理文件即可创建 update.img 并存放到 rockdev\Image 目录里。

如果有任何问题,请留言~文章来源地址https://www.toymoban.com/news/detail-678119.html

到了这里,关于Docker系列(1)安装Linux系统编译Android源码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android 系统源码编译

    Android系统源码编译网上流传着很多优秀的文章,为什么我要写这个呢,主要的原因是记录编译系统的过程,这里以Android9.0,手机设备Piexl一代为例来讲述编译和刷机过程。 ubuntu18.04 内存至少12G RAM 硬盘空间至少200GB (1) 安装python (2)安装Git 配置Git信息 (3)安装curl (4)

    2024年02月07日
    浏览(44)
  • 【Android】系统源码下载及编译

    步骤 1 :创建一个空目录来存放源码: 步骤 2 :获取最新版本的 repo 并签出 android-8.1.0_r1 分支: 其中, android-8.1.0_r1 代表源码标记,代表我们将要获取 Android 8.1 的源码,如需查看其他版本的源码标记,可参阅 源代码标记和 build。 步骤 3 :将 Android 源码从默认清单中指定的

    2024年02月13日
    浏览(53)
  • 从 0 开始编译 Android 系统源码

    在开始学习 Android Framework 的知识前,准备好相关的源码环境是非常有必要的。可以选择直接在 https://cs.android.com/ 网站在线看,但是跳转这些还是不如在 IDE 下来的方便。或者也可以下载好指定版本的源码,并通过 IDE 来查看,但是这样无法编译源码,所以也就无法修改源码后

    2024年02月06日
    浏览(48)
  • 迅为iTOP-4412之Android 4.0/Linux源码编译

    搭建配置好   uboot 、 Linux3.0 和 Android4.0的 编译环境,完整搭建配置过程可参照下述博文: 迅为iTOP-4412之Android 4.0系统编译环境的搭建(完整版)-CSDN博客  https://blog.csdn.net/Eva20192020/article/details/134668004?spm=1001.2014.3001.5502 提示:虚拟机中解压完后的原打包文件建议删除,可以节

    2024年02月03日
    浏览(48)
  • 【安装】grpc源码编译安装(Linux)

    修改构建套件的CMake Tool为新建的CMake 选择grpc源码目录中的CMakeLists.txt(grpc/CMakeLists.txt) 初始打开,会弹出窗,设置cmake编译的构建目录;(构建产生的构建文件都会生成在该目录下) 初始打开,设置构建目录后,会弹出窗设置CMake参数; 点击CMake,执行CMake;(最终会生成

    2024年04月27日
    浏览(48)
  • ARM架构银河麒麟docker,源码编译安装GDAL

    docker中安装依赖 去官网下载GDAL源码 下载GDAL3.4.3版本 进入到GDAL源码目录并执行 以6个cpu核心编译源码 安装到python

    2024年02月13日
    浏览(46)
  • linux编译源码,安装valgrind

    目录 1 下载源码 2 在虚拟机上解压 3 进入解压的目录,执行make 4 安装 5 检查安装是否成功 本文参考了内存检查工具valgrind介绍、安装与使用-CSDN博客 我到Valgrind: Current Releases 下载了valgrind 3.22.0源码 我使用的虚拟机是银河麒麟

    2024年01月22日
    浏览(49)
  • 国内镜像:极速下载编译WebRTC源码(For Android/Linux/IOS)(二十四)

    简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏: Audio工程师进阶系列 【 原创干货持续更新中…… 】🚀 优质专栏: 多媒体系统工程师系列 【 原创干货持续更新中…… 】🚀 人生格言: 人生从来没有捷径

    2024年01月17日
    浏览(60)
  • Linux 上安装PostgreSQL-源码编译安装(超详细版!!!)

    服务器:CentOS Linux 7 (Core),4CPU 8GB  100GB磁盘。 最小配置 CPU: 至少 2 核心 内存: 至少 2 GB 硬盘: 至少 10 GB 空间,推荐使用 SSD 以提高性能 网络: 100 Mbps 场景:这种配置适用于轻量级的测试,如功能验证、小型应用的开发等。 推荐配置 CPU: 4 核心或以上 内存: 8 GB 或以上 硬盘:

    2024年01月23日
    浏览(95)
  • Android:Linux上编译OpenCV的Android库,从源码编译出一个轻量级的OpenCV安卓库

    (原文在这里,我根据这篇文章终于也能编译成功可以使用的OpenCV库文件了: Linux上编译OpenCV的Android库 https://zhuanlan.zhihu.com/p/301203711 整个编译过程只用下载Android NDK和OpenCV源码。工具链android.toolchain.cmake,是NDK:android-ndk-r19c-linux-x86_64自带的,不用自己编译了。使用WSL Ubuntu记

    2024年02月05日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包