當前tizen發佈的最新源碼版本是2.1,本文將以圖文教程講述如何下載tizen源碼,關於如何編譯後述文章將講解。
1 註冊及設置gerrit
1.1註冊郵箱
首先打開https://source.tizen.org/,在右上角點擊註冊一個你的用戶,成功註冊好後,再點擊https://review.tizen.org/gerrit登陸gerrit,將出現如下界面:
以之前註冊好的用戶名以密碼登陸。
注:tizen源碼是用gerrit來管理的。
登陸後的界面如下:
點擊右上角的Settings,然後在左邊點擊Contact Information在顯示的界面上添加自己的郵箱,Gerrit系統會自動發送一件驗證郵件到你所指定的郵箱中,點擊郵件中給出的驗證鏈接進行驗證,難證通過後,表示你的Gerrit帳戶已經激活,可以正常使用了。
2 配置訪問Gerrit的SSH
2.1 安裝ssh工具
首先得安裝ssh工具:
$ sudo apt-get install ssh
安裝ssh成功後會在~/目錄下自動生成.ssh隱藏目錄.2.2 生成RSA密鑰
通過如下指令生成RSA密鑰:
~/.ssh$ ssh-keygen -t rsa -C flydream0
其中flydream0爲提示內容,可以隨便寫點內容,一般寫做自己的用戶名就可以了.系統提示:
Generating public/private rsa key pair.
Enter file in which to save the key (/home/arthur/.ssh/id_rsa):
系統提示保存密鑰的保存地址,直接按回車鍵,默認保存到~/.ssh目錄下。然後系統回提示你設置一個你的密碼,兩次設置無誤後會出現如下界面:
2.3 配置SSH配置文件
進入~/.ssh目錄下,創建config文件,將如下內容拷貝進去:
Host tizen
Hostname review.tizen.org
IdentityFile ~/.ssh/id_rsa
User flydream0
Port 29418
#The line below is optional configuration applicable to Ubuntu and openSUSE.
#Add when using proxy, otherwise, skip it.
#ProxyCommand nc -X5 -x <Proxy Address>:<Port> %h %p
#The line below is optional configuration applicable to Fedora.
#Add when using proxy, otherwise, skip it.
#ProxyCommand nc --proxy-type socks4 --proxy <Proxy Address>:<Port> %h %p
其中flydream0替換掉你之前註冊的Gerrit用戶名,不要包含尖括號.2.4 上傳SSH公鑰到Gerrit
打開~/.ssh目錄下的id_rsa.pub文件:
$vim ~/.ssh/id_rsa.pub
複製裏邊的全部內容,然後返回到gerrit的設置界面,點擊左邊的SSH Public Keys,然後添加公鑰,如下圖所示:將你的公鑰添加到gerrit中,這樣的話你就可以通過git指令獲得gerrit中的tizen源碼了。
2.5 驗證SSH連接
執行如下指令:
$ ssh tizen
將會提示你輸入密碼:輸入你之前設置好的SSH密碼,然後回車,如果連接正常,將會出現如下界面:
這就表示SSH設置是OK的。
3 配置git
首先得確保安裝了git,如果未安裝,則執行如下指令進行安裝:
$ sudo apt-get install git
安裝完git後得配置git的全局用戶名及郵箱:
$ git config --global user.name flydream0
$ git config --global user.email [email protected]
將flydream0和[email protected]替換成你自己的gerrit用戶名及郵箱。然後你可以通過如下指令看到你配置好的內容:
arthur@arthur-laptop:~/.ssh$ git config --global -l
color.ui=auto
user.name=flydream0
[email protected]
arthur@arthur-laptop:~/.ssh$
4 下載並配置repo
tizen源碼下載借鑑了Android源碼下載的方式,因此,我們首先將 Androiod源碼下載工具repo下載並設置好。
在~/目錄下創建bin目錄:
$cd ~/
$mkdir bin
$PATH=~/bin:$PATH
$cd bin
安裝curl工具:
$sudo apt-get install curl
然後下載repo工具:
$curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
$chmod a+x ~/bin/repo
這裏就下載並配置好了repo工具.5 下載tizen源碼
5.1 在Gerrit中查看tizen源碼
在Gerrit中左上角點擊projects,projects字下面的List,然後就會看到tizen源碼下的所有project,如下所示:
可以發現,tizen下的工程太多了,那麼如何下載呢?下載哪些呢?
5.2 初始化repo環境
在瀏覽器中查找manifest,你會發現有一個工程爲:tools/manifest/tizen-2.0-main
我們就先將這個工程下載下來,然後利用這個manifest文件,用 repo工具同步所有tizen源碼文件。
我們先建立一下tizen目錄:、
$cd ~/
$mkdir tizen
$cd tizen
首先查看自己Gerrit的地址:
$ ssh tizen
**** Welcome to Gerrit Code Review ****
Hi arthur, you have successfully connected over SSH.
Unfortunately, interactive shells are disabled.
To clone a hosted Git repository, use:
git clone ssh://[email protected]:29418/REPOSITORY_NAME.git
Connection to review.tizen.org closed.
得出tizen源碼鏈接地址爲ssh://[email protected]:29418/......然後使用manifest/tizen-2.0-main初始化repo下載環境:
$ repo init -u ssh://[email protected]:29418/tools/manifest/tizen-2.0-main
將上面的flydream0替換成你自已的Gerrit用戶名,也可以用 $repo init -u ssh://[email protected]:29418/tools/mainifest/tizen-2.0-main.git
有沒有git後綴對repo來說都是一樣的。
接下來有可能要你輸入ssh的密碼。再接下來會將tizen源碼的環境同步到本地,在當前目錄下將會生成.repo隱藏目錄。如下圖:
注意:這一步下載有點難度,有很大概率會出現如下錯誤提示:
fatal: Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle
fatal: error [Errno 101] Network is unreachable
這個是由於網絡原因造成,也有人說是天朝神力所致。但不管怎樣,多試幾次應該會成功的。一旦失敗後,必須先檢查當前目錄下是否存在.repo子目錄($ls -al),一旦存在,則刪除它(rm -rf .repo/),然後在重新嘗試。
5.3 修改manifest.xml清單文件
接下來打開./.repo/manifests/default.xml清單文件:
$ vim .repo/manifests/default.xml
將fetch後面的內容修改爲:"ssh://[email protected]:29418",review後面的內容修改爲:"https://review.tizen.org/gerrit/"如下圖:
同樣將flydream0修改爲你自己的Gerrit用戶名.
5.4 同步tizen源碼
最後下載源碼:
$repo sync -j4
下載界面如下:
下載過程是一個漫長而痛苦的等待過程,之所以說痛苦,那是因爲中途還可能會出錯,得不斷重新輸入指令,最後下載完的時間取決於各自的機器與網絡速度。
好了,tizen源碼的下載就講到這了,下一章我將繼續講述如何編譯tizen 源碼及如何生成鏡像文件,敬請關注!
6 後續補充
上述方法沒有錯,但是後來發現用此方法下載時老是出錯,錯誤信息大概如下:
Fetching projects: 1% (10/915) fatal: '/adaptation/devices/alsa-scenario-files-0.0': not a Gerrit project
fatal: The remote end hung up unexpectedly
fatal: '/adaptation/devices/alsa-scenario-files-0.0': not a Gerrit project
fatal: The remote end hung up unexpectedly
error: Cannot fetch adaptation/devices/alsa-scenario-files-0.0
發現原來是清單文件的問題,清單文件的鏈接內容是已經過時的了,因此需要找一個比較新的清單文件來替換現有的清單文件。打開http://download.tizen.org/鏈接,會發現這裏邊有tizen發佈的各種版本的鏡像文件,找一個比較新的,比如:
在此目錄下包含tizen鏡像文件tizenxxx.raw.bz2,還有其對應的清單文件ivi-wayland-release-tizen-2.0alpha_20130522.2.manifest.xml,這個清單文件對我們來說非常重要,因爲它包含了此tizen版本對鏡像文件對應的所有資源鏈接信息,這樣一來,我們就可以利用此清單文件下載到所有源文件!
6.1 下載清單文件
如裏你是用firefox瀏覽單打開的此網頁,那麼可以右點擊 ivi-wayland-release-tizen-2.0alpha_20130522.2.manifest.xml,然後選擇cope link location,然後粘貼到wget後面:
$ wget http://download.tizen.org/releases/daily/2.0alpha/ivi-wayland/tizen-2.0alpha_20130522.2/images/ivi-wayland-release/ivi-wayland-release-tizen-2.0alpha_20130522.2.manifest.xml
這樣就將此清單文件下載到當前目錄下了,當然你也可以用其它方面下載此清單文件。6.2 修改清單文件的內容
用vim打開上面下載的清單文件:
$ vim ivi-wayland-release-tizen-2.0alpha_20130522.2.manifest.xml
同5.3節的步驟一樣,將fetch後面的內容修改成你自己的Gerrit地址:當然上述的flyream0需要修改成你自己的Gerrit用戶名.
6.3 替換現有的清單文件
先備份好現有的清單文件:
$ cp .repo/manifests/default.xml default.xml.bak
然後再替換它:$ cp ivi-wayland-release-tizen-2.0alpha_20130522.2.manifest.xml .repo/manifests/default.xml
6.4 同步tizen源碼
$repo sync -j4
再次進入漫長而痛苦的等待過程,這次下載不再出現中途會出現錯誤的情況了。
下載成功後的界面如下:
有關如何編譯tizen源碼請參考:http://blog.csdn.net/flydream0/article/details/9004746一文.
好了,祝大家一切順利。