一、前言:
本來打算用wsl來編譯AOSP,但是折騰了好幾天,以失敗告終。后來使用vmware反而成功了。
本篇同樣會把wsl遇到的問題與嘗試記錄下來。
環境:vmware ubuntu16.04。
為什么會使用ubuntu16.04呢,因為在公司有一個項目是android8.1的,推薦使用ubuntu14.04編譯,ubuntu12與16也可以。如果能通過wsl完成編譯,結合共用的文件系統,那就是王炸。由于現在的win10找不到ubuntu16以前的版本,而且ubuntu18不提供openjdk-8-jdk的apt安裝,要到ubuntu20才有,考慮到版本相差太多,有很多配置需要改,為了減少折騰,使用ubuntu16。使用文件appx安裝。
關鍵詞:
jack-server,
===============================分割線=====================================
======================使用vmware ubuntu16編譯成功===========================
===============================分割線=====================================
二、vmware ubuntu16方案
1、先安裝依賴:
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 x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip libssl-dev? openjdk-8-jdk -y
2、repo同步倉庫,python要用python3.6及以上,編譯時再切換回到python2.7。
-
wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tar.xz
-
tar -xvf Python-3.6.8.tar.xz
-
./configure --enable-optimizations --prefix=/usr/local/python3
-
sudo make
-
sudo make install
-
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
-
ln -s?/usr/bin/python3?/usr/bin/python
3、jack-server啟動失敗
為什么jack-server啟動失敗,因為和jdk8版本有關:
https://segmentfault.com/a/1190000039970343
原因就是編譯時用的是open-jdk 8u292,默認禁用了TLSv1, TLSv1.1,
從/etc/java-8-openjdk/security/java.security中取消TLSv1, TLSv1.1 禁用,
?
jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1,RC4, DES, MD5withRSA, \ DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \ include jdk.disabled.namedCurves
(修改后,重啟,編譯通過,立桿見影)
如果出現subcommand未找到,就重新make編譯,多來幾次就能成功。
4、手動開啟與關閉jack-server(一般不需要用,這里記錄下)
./prebuilts/sdk/tools/jack-admin kill-server
./prebuilts/sdk/tools/jack-admin start-server
5、內存不足
由于最開始用8G內存,在最后編譯1512個文件時總是說jvm虛擬機內存不足,最后改為10G,編譯通過。
===============================分割線=====================================
=========================使用wsl ubuntu16編譯失敗============================
===============================分割線=====================================
三、wsl方案(不要用,目前沒解決)
使用wsl種會遇到莫名奇妙的問題,wsl既要升級為wsl2,又要在win10上開始大小寫敏感。
ubuntu16 appx安裝包:
打開power shell,并輸入:
Add-AppxPackage e://Ubuntu_1604.2019.523.0_x64.appx
安裝包百度網盤鏈接:
Ubuntu_1604.2019.523.0_x64.appx
安裝好后,從左下角win圖標的最近安裝中找到。
升級wsl2配置:
1、控制面板開啟功能
2、將以下內容復制到.bat文件中,并以管理員權限執行:
pushd "%~dp0"
dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt
for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
del hyper-v.txt
Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL
3、安裝缺少組件:
wsl_update_x64.msi
4、查看wsl版本并升級
wsl -l -v
wsl --set-version Ubuntu-16.04 2
?
開啟win10下文件夾的大小寫敏感
1、查看是否開啟
fsutil.exe file queryCaseSensitiveInfo e:/Project/w377/code_w403_main
2、設置為開啟
用管理員權限打開cmd,并運行:
fsutil file setCaseSensitiveInfo e:/Project/w377/code_w403_main enable
注意,如果文件夾內有內容,不對子文件夾產生影響。如果開啟后,對該文件夾操作,如創建、復制新文件夾,則會繼承大小寫敏感。