標籤

2010年11月9日 星期二

要如何 Build Google雲端SaaS的作業系統 Chromium OS

要自己build Google的Chromium OS不是一個太大的難事,如果你按照著Google他所提供的步驟來做build的起來的話我頭可以給你,因為你會遇到一些眉眉角角要處理的小問題。

Google Chromium OS的網頁提供了許多的資訊可以參考,要自己build Chromium OS的話就要到這裡看一下資料。 根據上面的資料你必須準備build之前所需要的東西, Ubuntu 64 bits 8.04以上的版本,以及一些所需要的software。 看這個內容真的是很模糊,頗有Alpha的水準,以下就分享一下我build的步驟。

A. 準備動作
1. Ubuntu 64 bits Desktop 的作業系統,你一定要用64 bits的版本,32 bit的Ubuntu build不起來,相信我所說的因為我試過了。
2. 如果你沒有額外的機器,你可以在VMware上安裝Ubuntu來build,不過真的很慢,我在我的Mac上跑VM來build花了我整整一天的時間。

B. 下載所需要的Tools
1. 安裝好Ubuntu 後請開啟console mode 的 Terminal 
2. 這時你會在home的 目錄下,請 建立一個 trunk 的目錄 (輸入 mkdir trunk)
3. 現在安裝git的核心軟體curl(輸入 sudo apt-get install git-core subversion curl)
4. 現在取得Google的depot tool 
(輸入 svn co http://src.chromium.org/svn/trunk/tools/depot_tools)
5. 接下來在 建立 etc的目錄 (輸入 mkdir etc) 然後進入到 etc的目錄下 (輸入 cd etc)
6. 取得bash_completion (輸入 curl "http://www.chromium.org/chromium-os/building-chromium-os/using-cros_workon/bash_completion?attredirects=0&d=1" -o bash_completion -L )
7. 現在回到home的目錄(輸入 cd ~)
8. 建立 工具的path (輸入 Add to ~/.profile
export PATH=~/trunk/depot_tools:"$PATH"
[ -f "$HOME/etc/bash_completion" ] && . "$HOME/etc/bash_completion"
export PS1='\h:\W$(__git_ps1 "(%10s)") \u\$ ')

C. 取得Chromium OS的source code
1. 進入 trunk 的目錄 (輸入 cd trunk)
2. 取得minilayout.xml (輸入 repo init -u http://git.chromium.org/git/manifest -m minilayout.xml)
3. 在取得  minilayout.xml 後開始來下載最新的Chromium OS 的source code (輸入 repo sync)
4. 接下來就慢慢的等吧..
5. 等到全部下載完成後 請到scripts的目錄下來建立 chroot的作業環境
(輸入 cd ./src/scripts)
(輸入 ./make_chroot)
6. 接下來就慢慢等吧

D. 進入 chroot的環境來build image
1. 等到 chroot的環境建立好之後請進入 chroot (輸入  ./enter_chroot.sh)
2. 進入chroot的環境後請先建立一個 share user所需的密碼 
(輸入 ./set_shared_user_password.sh)
shared user 的預設帳號名是 chronos,只後你可以用這個預設帳號與密碼進入你的 Chromium OS
3. 設定build目標的硬體設備 (輸入 ./setup_board --board=x86-generic --default)
4. 接下來就開始build package吧 (輸入 ./build_packages)
5. ok現在先去睡個覺慢慢等吧
6. 現在來開始 build image (輸入 ./build_image.sh)
7. ok 再去睡個覺吧
8. build好的image 會存在 /build/images/x86-generic/latest/ 的目錄下

E. 製作VMware image 
1. 確認一下qemu-img 是否存在 (輸入 which qemu-img)
2. 如果沒有的話就需要merge qemu-kvm (輸入 udo emerge -sq qemu)
3. 完成後可以下次確認 (輸入 which qemu-img)
4. 接下來開始 build VMware的image吧 (輸入 /image_to_vm.sh --from=../build/images/x86-generic/latest/ --board=x86-generic --make_vmx --format vmware --vmdk  chromiumos_vmware.vmdk --vmx chromiumos_vmware.vmx)
5. build 好VMware image後可以load vmx的設定檔來載入vmdk的image,在這之前你比需修改一下 vmx的內容要不然image load起來後會無法選擇網路,請在vmx檔內加入這一個網路介面 (ethernet0.virtualDev = "e1000" )

F. 製作USB boot up image
1. 你可以 輸入 sudo fdisk -l 的指令來確定你USB所在的位置
2. 輸入 ./image_to_usb.sh --to /dev/sdb 來安裝USB boot up image (/dev/sdb 是我usb device所在的位置)

我的USB boot up image製作並不成功,Boot up 的結果是螢幕一片黑,目前我還在想辦法解決中。 



沒有留言:

張貼留言