如何下載tizen源碼(圖文教程)?

當前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發佈的各種版本的鏡像文件,找一個比較新的,比如:

http://download.tizen.org/releases/daily/2.0alpha/ivi-wayland/tizen-2.0alpha_20130522.2/images/ivi-wayland-release/,如下所示:


在此目錄下包含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一文.

好了,祝大家一切順利。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章