在開始建置 B2G 前,要先複製整個倉儲 (repository)並且作編譯的設定。這篇文章說明要怎麼做。
複製 B2G 倉儲(repository)
在第一次編譯前,要做的第一步就是複製 B2G 的倉儲(repository)。這個步驟將不會把所有東西抓下來!相反地,他會抓 B2G 建置系統和安裝工具。B2G 大部分的程式碼都在主要的 Mozilla Mercurial 倉儲。
用 git 來複製倉儲:
git clone git://github.com/mozilla-b2g/B2G.git
複製了之後(應該會花個幾分鐘),cd
到 B2G 的目錄:
cd B2G
複製 B2G 樹(tree)到一台新機器
當您有一台新電腦時(超幸運的!),您會覺得把 B2G tree 從一台電腦轉移到另一台電腦的話,生活會簡單很多。
將您就電腦的磁碟掛上(mount)到新的電腦,然後敲入下面的指令,就可以做到:
rsync -a source/ dest/
source
是整個原始碼樹(source tree)的完整路徑 (包括後面的斜線),而 dest
是您要複製的目的位置 (同樣也包含後面的斜線,它很重要!)。
這樣做之後,您可以跳過這篇文章剩下的部份,然後直接跳到的「建置」部份。
設定專屬於您的行動裝置的 B2G
擷取了核心的 B2G 建置系統之後,您需要為了要安裝的行動裝置作設定。您可以使用 config.sh
工具來擷取支援的行動裝置列表,如下:
./config.sh
這會顯示支援的行動裝置列表;舉例來說:
Usage: ./config.sh [-cdflnq] (device name) Flags are passed through to |./repo sync|. Valid devices to configure are: - galaxy-s2 - galaxy-nexus - nexus-4 - nexus-4-kk - nexus-5 - nexus-5-l - nexus-s - nexus-s-4g - flo (Nexus 7 2013) - otoro - unagi - inari - keon - peak - hamachi - helix - tarako - dolphin - dolphin-512 - pandaboard - vixen - flatfish - flame - flame-kk - flame-l - rpi (Revision B) - emulator - emulator-jb - emulator-kk - emulator-l - emulator-x86 - emulator-x86-jb - emulator-x86-kk - emulator-x86-l > Sony Xperia devices - aries (Z3 Compact KK) - aries-l (Z3 Compact L) - leo-kk (Z3 KK) - leo-l (Z3 L) - scorpion-l (Z3 Tablet Compact L) - sirius-l (Z2 L) - tianchi-l (T2U L) - flamingo-l (E3 L)
如果您的行動裝置沒被列出,您應該馬上停止來幫忙將 B2G 移植到您的行動裝置,或是等到某個人移植完之後再安裝。我們當然比較希望您可以幫忙移植!
設定給行動裝置
首先,連接您的裝置;設定的過程會需要存取它。
如果您的裝置有被列出,您可以再執行一次 config.sh 來開始設定的程序,這次需要指名您的行動裝置的名字。舉例來說,如果要編譯給 Samsung Google Nexus S的話,您要打:
./config.sh nexus-s
在設定一開始的附近您可能會需要設定使用顏色的選項,而在這之後設定程序會繼續下去。接著可以去喝個咖啡休息一下,因為這個時候您會第一次把建置 Boot to Gecko 中所有需要的程式碼都抓下來。
如果您的手機不再使用 Android 且 B2G tree 還沒裝到手機上,而您又有遵照前幾頁所說、聰明地作了一份 /system
磁區的備份的話,您可以這樣使用它:
ANDROIDFS_DIR=<absolute path to parent dir of system dir> ./config.sh <target>
設定來建置模擬器
如果您要編譯模擬器的話,就需要指定 "emulator" 來使用 ARM 的模擬器,或是 "emulator-x86" 來編譯 x86 模擬器。後者比較快,但也因此在表現實際行動裝置上較不準確。
舉例來說,您要像下面這樣設定來編譯 ARM 模擬器:
./config.sh emulator
在設定一開始的附近您可能會需要設定使用顏色的選項,而在這之後設定程序會繼續下去。接著可以去喝個咖啡休息一下,因為這個時候您會第一次把建置 Boot to Gecko 中所有需要的程式碼都抓下來。
編譯客製的 Gecko
可能您會想要或需要以好幾種版本的 Gecko 來編譯 Boot to Gecko (manifest 中預設是一種)。您可以在您抓倉儲 (在上述的 config.sh 之前),藉由編輯 .userconfig 來做到這件事情。舉例來說,如果您要根據 mozilla-central 來編譯:
GECKO_PATH=/path/to/mozilla-central GECKO_OBJDIR=/path/to/mozilla-central/objdir-gonk
注意: 如果是在 Mac OS X 下客製化編譯的話,檔案系統本身會注意 mozilla-central 的大小寫。
您可以參考 客製化 .userconfig 設定檔 來客製化更多東西。
接著,開始編譯