目錄
一、開發(fā)環(huán)境搭建
1.Windows docker環(huán)境安裝
2.配置ubuntu18.04系統(tǒng)
2.0 準(zhǔn)備工作
2.1 安裝ubuntu18.04
2.2 安裝常用工具
2.3 安裝rk3568環(huán)境編譯工具
2.4 新增用戶
2.5 注意避坑!!
二、下載編譯 Android_SDK
3.1 第一步,下載 SDK
3.2 第二步,更新 SDK
3.3 第二步,編譯 SDK
手動(dòng)編譯 iCore-3568JQ Android 11.0
3.4 打包成統(tǒng)一固件 update.img
這筆記是前兩年用Windows docker安裝Linux Ubuntu鏡像,然后編譯rk3568的。當(dāng)時(shí)有個(gè)問(wèn)題,比如你電腦32G內(nèi)存,如果你給docker分配了24G,你啟用docker,就算沒(méi)有編譯也會(huì)占內(nèi)存。
# 拷貝命令
docker cp Android11.0 1c962c6f7c6a70360fd5e731cd6bc5dff09c10efb0d8220899b9979f47c809f2:/sourcecode
# 啟動(dòng)新終端
docker exec --privileged -it 1c962c6f7c6a70360fd5e731cd6bc5dff09c10efb0d8220899b9979f47c809f2 /bin/bash
一、開發(fā)環(huán)境搭建
1.Windows docker環(huán)境安裝
此處為語(yǔ)雀內(nèi)容卡片,點(diǎn)擊鏈接查看:https://www.yuque.com/28ln/is90rz/opbn0w
2.配置ubuntu18.04系統(tǒng)
2.0 準(zhǔn)備工作
編譯 Android 對(duì)機(jī)器的配置要求較高:
- 64 位 CPU
- 16GB 物理內(nèi)存+交換內(nèi)存
- 250GB 空閑的磁盤空間.
官方建議用ubuntu18.04 版本 , 以上環(huán)境電腦如果達(dá)不到要求 請(qǐng)停止后續(xù)操作!
2.1 安裝ubuntu18.04
cmd窗口輸入docker pull ubuntu:18.04
# 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
過(guò)程中需要配置地區(qū),選擇亞洲上海:
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環(huán)境編譯工具
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 新增用戶
# 設(shè)置超級(jí)用戶:
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源碼 :
- 首先是系統(tǒng)性能最少是300G + 16G 以上的要求 , 前期50%編譯都是使用4~5G內(nèi)存 , 后面是需要16G以上否則會(huì)報(bào)錯(cuò)。
- 不要使用root權(quán)限編譯,按照
2.4步驟
新增用戶 - 編譯會(huì)報(bào)錯(cuò) 少了 bc和time , 最好把
2.3步驟
全部安裝了 - 權(quán)限組都改成新增的用戶 , 不要用root! 。
- 還有一個(gè)權(quán)限問(wèn)題 , docker啟動(dòng)的時(shí)候
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 · 語(yǔ)雀
Resources Advanced You are using the WSL 2 backend, so resource limits are · 語(yǔ)雀
二、下載編譯 Android_SDK
Firefly | 讓科技更簡(jiǎn)單,讓生活更智能
3. 編譯 Android11.0 固件 — Firefly Wiki
3.1 第一步,下載 SDK
注意:不要在共享文件夾、掛載文件夾以及非英文目錄解壓SDK,避免產(chǎn)生不必要的錯(cuò)誤
$ 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. 進(jìn)入 SDK 根目錄
cd ~/proj/RK356X_Android11.0
#2. 下載遠(yuǎn)程 bundle 倉(cāng)庫(kù)
#git clone https://gitlab.com/TeeFirefly/rk356x-android11-bundle.git .bundle
#3. 若下載倉(cāng)庫(kù)失敗,目前 bundle 倉(cāng)庫(kù)占用空間較大,所以同步的時(shí)候可能會(huì)出現(xiàn)卡住或失敗的問(wèn)題,
# 可以從云盤下載 bundle 并解壓到 SDK 根目錄,解壓指令如下:
7z x rk356x-android11-bundle.7z -r -o. && mv rk356x-android11-bundle/ .bundle/
#4. 更新 SDK,并且后續(xù)更新不需要再次拉取遠(yuǎn)程倉(cāng)庫(kù),直接執(zhí)行以下命令即可
.bundle/update
#5. 按照提示已經(jīng)更新內(nèi)容到 FETCH_HEAD,同步 FETCH_HEAD 到 firefly 分支
git rebase FETCH_HEAD
3.3 第二步,編譯 SDK
手動(dòng)編譯 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
3.4 打包成統(tǒng)一固件 update.img
./FFTools/mkupdate/mkupdate.sh -l rk3568_firefly_itx_3568q-userdebug
打包完成后將在rockdev/Image-XXX/ 目錄下生成統(tǒng)一固件: product名XXX_XXX_日期XXX.img
在 Windows 下打包統(tǒng)一固件 update.img 也很簡(jiǎn)單,將編譯生成的文件拷貝到 AndroidTool 的 rockdev\Image 目錄中,然后運(yùn)行 rockdev 目錄下的 mkupdate.bat 批處理文件即可創(chuàng)建 update.img 并存放到 rockdev\Image 目錄里。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-678119.html
如果有任何問(wèn)題,請(qǐng)留言~文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-678119.html
到了這里,關(guān)于Docker系列(1)安裝Linux系統(tǒng)編譯Android源碼的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!