[Lab] Android虛擬機與編譯器 HW1 (崩潰過程全記錄)

 

看ubuntu版本指令:  lsb_release -a



HW #1 

Basic Environment Setup and Background Knowledge (Due: Feb 28, 2014)

Goals
  • Prepare the build environment for Android system development
  • Ability to discover the system internals by utilizing several open source tools
  • We start from virtual memory and process management of Android.
  • Simple Android/Java programming
  • "Learning by Doing" approach
  • Help yourself.
  • This is the prerequisite of this lecture!

Step1:

mkdir ntu-android  建一個 ntu-android 資料夾
cd ntu-android       進入資料夾
pwd                       顯示完整路徑
pwd > /tmp/ASOP_PATH 把資料夾的完整路徑導入 /tmp/ASOP_PATH
 

Step2:

接著打
repo init -u https://github.com/ntu-android/manifests.git --config-name

發現我沒有裝 repo

安裝repo

參考這個 https://source.android.com/source/downloading.html


照個上面方法安裝repo,發現少了 curl,照它顯示的指示安裝curl如下:



發現還是有error,有些套件沒更新
所以先 sudo apt-get update
再重新裝curl跟repo
最後再修改權限chmod a+x ~bin/repo,使得 repo 可以使用

終於可以回來執行剛剛卡關的地方了

repo init -u https://github.com/ntu-android/manifests.git --config-name

發現還是沒效
經過ls大法發現,bin裡面有repo
只好用../bin/......強制讓他看到

然後又發現沒安裝git (倒)


趕緊先 sudo apt-get install git

這下總算可以執行這行了

../bin/repo init -u https://github.com/ntu-android/manifests.git --config-name


做完一些相關設定後
repo sync
一樣發現找不到repo所以我用
../bin/repo sync

然後要等一段時間...


等到半夜,終於跑完了 Orz

Step3:

接著輸入

. build/envsetup.sh

Step4:

然後輸入  lunch aosp_arm-eng

發現又有東西沒裝 JDK6
那就依照指示去一趟java.sun.com 目前只有JDK7 我就去載了linux x64版本
 載完會看到在Downloads裡面


 將它解壓縮 tar zxvf ~/Downloads/jdk-7u51-linux-x64.tar.gz

跑完後會看到現在目錄裡面有裝好的 jdk1.7.0_51目錄

結果沒效 = =||| ...此時赫然發現助教說要JDK6才可以(囧)

換個方法到這裡去找JDK6


 
選好想要的jdk6按下去
按下OK
按下install

登登登~裝好JDK6了!
然後回到剛剛卡關的地方,再跑一次 lunch aosp_arm-eng

成功!

Step5:

萬事具備,可以make啦!:D

崩~~潰~~ 我剛剛才辛苦裝的open JDK6不被support ... ... ...=皿=|||


只好到這邊去看看還有什麼方法
https://help.ubuntu.com/community/Java
找到這裡有人問
http://askubuntu.com/questions/56104/how-can-i-install-sun-oracles-proprietary-java-6-7-jre-or-jdk
找到這個解法

意思是要先把剛剛載的jdk7 再tar -xvf一遍 (恩...好吧)
這次我直接在Download裡面做掉:
然後再
sudo mkdir /usr/lib/jvm
發現已經有了!恩...沒差
那就下一步 把東西搬過去  (p.s. 要用sudo才能搬)
sudo mv ./jdk1.7.0_51/  /usr/lib/jvm/jdk1.7.0
成功!
然後照著做一些設定:
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.7.0/bin/java" 1
sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk1.7.0/bin/javac" 1
sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/lib/jvm/jdk1.7.0/bin/javaws" 1
sudo chmod a+x /usr/bin/java
sudo chmod a+x /usr/bin/javac
sudo chmod a+x /usr/bin/javaws
都OK!

跑一跑發現還是有問題
 
檢查一下java -version時心又涼了

現在是早上3:40,抱著沒希望的心理準備敲了一下學長,結果發現學長還在線上@@
給了一道錦囊妙計
 
sudo apt-get install python-software-properties 
sudo add-apt-repository ppa:webupd8team/java 
sudo apt-get update

這三個用sudo裝完後再
sudo apt-get install oracle-java6-installer
 輸入y

然後一些確認給他OK,裝完oracle-java6-installer

sudo update-alternatives --config java
選個想要的版本
還有javac也要
sudo update-alternatives --config javac


sudo apt-get install flex bison



裝這麼久,可以make了吧!
這次跑比較久,噴了這個



既然卡gcc就來裝一下
sudo apt-get install gcc

sudo apt-get install g++
都好了後再重新make
等等等~ 再次崩潰 Orz

再重跑一次這兩個:
. build/envsetup.sh
lunch aosp_arm-eng
後再make
還是不行,我已經快打不出崩潰了 = =


懷疑是剛剛從系館出來回到家時套件沒有載完整
索性重來一次
../bin/repo sync
這樣等個幾小時...
先去睡好了~(倒)
續集 請期待

------------------------------------------

卡了許久最後發現原因是我的ubuntu是64 bit 的沒裝32 bit 的lib
而android的compiler是32 bit的

所以用 sudo apt-get install ia32-libs
裝上32bit的相容程式庫,讓64bit的os可以執行32bit的程式!



然後再一次make ...
現在他看起來順暢多了 >///<

compile了兩個多小時
終...終於compile好了(倒)



留言

這個網誌中的熱門文章

[筆記] CRLF跟LF之區別 --- 隱形的 bug

[ML筆記] Batch Normalization

[筆記] 統計實習(1) SAS 基礎用法 (匯入資料並另存SAS新檔,SUBSTR,計算總和與平均,BMI)

[ML筆記] Ensemble - Bagging, Boosting & Stacking