TorasenLab@はてな このページをアンテナに追加 RSSフィード

2010-12-24

Google Chromium OS + Chromiumのビルド方法

| 18:14 | Google Chromium OS + Chromiumのビルド方法 - TorasenLab@はてな を含むブックマーク Google Chromium OS + Chromiumのビルド方法 - TorasenLab@はてな のブックマークコメント

Google Chromium OSをソースからビルドする。ただしChromiumはローカルのソースを使用する。

[1]Chromium OS Developer Guide - The Chromium Projects

[2]Build Instructions (Chromium OS on Linux) - The Chromium Projects

以下は2010/12/23時点でのビルドログ兼ビルド方法です。ビルド方法は頻繁に変更されるため、最新のビルド方法は[1][2]を参照してください。

はじめに

ホームディレクトリ(/home/USER_NAME)に以下のような作業ディレクトリを作成するとします。

必要に応じて読み換えてください。

/home/USER_NAME
    /google
        /chromium
        /chromiumos

ビルドマシン

  • Intel Core i7-920 Processor (2.66 GHz × 8)
  • Memory 9GB
  • Ubuntu Lucid 10.04 64bit

準備

64ビット版Ubuntuのインストールとrootアクセス可能なアカウントの作成

Ubuntuのインストールに関しては他のサイトを参照してください。

Ubuntu Lucid 10.04が推奨されています。

~/$ uname -m

64ビット版でないといけません。上記のコマンドでx86_64と出力されれば64ビット版のようです。

Chromium OSのファイルサイズはソースのみで2GB、ビルド後は12GB、VMWare用イメージ等を作成すると15GB程度になります。

Chromiumのファイルサイズはソース・テストファイルのみで4GB、ビルド後は11GB程度になります。

合計で26GB程度使用するのでHDD容量には注意が必要です。

ビルドに必要なパッケージのインストール

[3]no title

[3]に書いてあるパッケージが必要です。インストール用のスクリプトが用意されているのでそれを利用します。

~/google$ wget http://src.chromium.org/svn/trunk/src/build/install-build-deps.sh
~/google$ sudo chmod +x install-build-deps.sh 
~/google$ ./install-build-deps.sh 
Do you want me to install them for you (y/N)  y

Gold is a new linker that links Chrome 5x faster than ld.
Don't use it if you need to link other apps (e.g. valgrind, wine)
REPLACE SYSTEM LINKER ld with gold and back up ld? (y/N) y
subversionのインストール
~/$ sudo apt-get install subversion
gitのインストールと設定
~/$ sudo aptitude install git-core gitk git-gui
~/$ git config --global user.email "you@example.com"
~/$ git config --global user.name "Your Name"

ソースコードの取得

depot_toolsの取得

[4]Install depot_tools - The Chromium Projects

[4]に書かれているdepot_toolsが必要です。

~/google$ wget http://src.chromium.org/svn/trunk/tools/depot_tools.zip
~/google$ unzip depot_tools.zip
depot_toolsにパスを通す
~/google$ export PATH=`pwd`/depot_tools:"$PATH"
gclientを設定する
~/google$ cd chromium
~/google/chromium$ gclient config http://src.chromium.org/svn/trunk/src

~/google/chromiumディレクトリに.gclientファイルが作成されます。

.gclientを編集する
solutions = [
  { "name"        : "src",
    "url"         : "http://src.chromium.org/svn/trunk/src",
    "custom_deps" : {
    },
    "safesync_url": "",
  },
  { "name"        : "cros_deps",
    "url"         : "http://src.chromium.org/svn/trunk/src/tools/cros.DEPS",
  },
]

赤色の3行を追加します。

Chromiumのソースを取得する
~/google/chromium$ gclient sync

2時間20分程度かかりました。38万ファイル。3.9GB

repoを設定する
~/google$ cd chromiumos
~/google/chromiumos$ repo init -u http://git.chromium.org/git/manifest

emailなどのビルドユーザ情報やターミナル上での文字の色の設定を行う。

-m minilayout.xmlのオプションを付けると取得するソース量が減るようです。

Chromium OSのソースを取得する
~/google/chromiumos$ repo sync

-m minilayout.xmlオプション無しで5時間程度かかりました。21万ファイル。1.9GB

ビルド

(任意)ソースの変更

ちゃんとローカルのChromiumのソースが使用されたかどうか確かめるためにChromiumのソースを少し変更しました。

~/google/chromium/src/chrome/browser/resources/options/about_page.htmlが[About Chromium OS]として表示されるHTMLファイルです。一部にTorasenLabと追加しておきました。

ビルド環境を作成する
~/google/chromiumos$ cd src/scripts/
~/google/chromiumos/src/scripts$ ./make_chroot

10分程度かかりました。~/google/chromiumosディレクトリにchrootディレクトリが作成されます。このディレクトリはrmで削除してはいけないようです。

ビルド環境に入る
~/google/chromiumos/src/scripts$ ./enter_chroot.sh --chrome_root=/home/USER_NAME/google/chromium

--chrome_rootにChromiumのソースディレクトリを指定します。絶対パスで指定する必要があるのかもしれません。~/google/chromiumではビルドに失敗しました。

boardを設定する
(cros-chroot) ~/trunk/src/scripts $./setup_board --board=x86-generic --default

ここではtargetをx86-genericにしています。

x86互換CPU用には x86-generic、ARMCPU用には arm-genericに設定します。

3分程度かかりました。

共有ユーザアカウントを設定する
(cros-chroot) ~/trunk/src/scripts $./set_shared_user_password.sh

ターミナル上でsudoを使用する際に必要となります。

cros_workonを起動する
(cros-chroot) ~/trunk/src/scripts $./cros_workon start chromeos-base/libcros
(cros-chroot) ~/trunk/src/scripts $repo sync
ローカルのChromiumソースを使用するように設定する
(cros-chroot) ~/trunk/src/scripts $export CHROME_ORIGIN=LOCAL_SOURCE
(cros-chroot) ~/trunk/src/scripts $export FEATURES="-usersandbox"
packageを作成する
(cros-chroot) ~/trunk/src/scripts $./build_packages

1時間程度かかりました。

imageを作成する
(cros-chroot) ~/trunk/src/scripts $./build_image

--withdev --noenable_rootfs_verificationフラグは開発者でもない限りつけないほうが良いらしい。10分程度かかりました。

イメージの作成

(任意)USBメモリにイメージを書き込む

4GB以上のUSBメモリをビルドマシンに挿入しておく。

(cros-chroot) ~/trunk/src/scripts $./image_to_usb.sh --to=/dev/sdX

--from=../build/images/SUBDIRオプションを追加するとバージョンを指定できます。SUBDIRはx86-generic/0.9.131.2010_12_23_1037-a1のようなバージョンやビルド日時をあらわすディレクトリです。

--fromオプションを追加しないと最新版が選択されます。

--to=/dev/sdXでChromium OSイメージを書き込むUSBを指定します。

中にはUSBメモリと認識しないデバイスがあるようですが、その場合は--force_non_usbオプションを追加します。

(任意)QEmu用イメージを作成する
(cros-chroot) ~/trunk/src/scripts $./image_to_vm.sh

~/google/chromiumos/src/build/images/SUBDIR/にchromiumos_qemu_image.binが作成されます。

(任意)VMWare用イメージを作成する

QEmuをビルド環境にインストールする。

(cros-chroot) ~/trunk/src/scripts $ sudo emerge app-emulation/qemu-softmmu

イメージを作成する。

(cros-chroot) ~/trunk/src/scripts $./image_to_vm.sh --format=vmware

~/google/chromiumos/src/build/images/SUBDIR/にchromiumos.vmxとide.vmdkが作成されます。

ビルド環境から出る
(cros-chroot) ~/trunk/src/scripts $exit

実行

f:id:torasenriwohashiru:20101224131043p:image

f:id:torasenriwohashiru:20101224131044p:image

QEmuでの実行結果のスクリーンショット。[About Chromium OS]ページにビルドユーザの情報などが載ります。追加したTorasenLabという文字も表示されています。

(任意)USBメモリからブートする
  1. USBメモリを対象マシンに挿入する
  2. USBメモリをブートするようにBIOSを設定する
  3. USBメモリからブートする

ビルドしたChromium OSがうまく動作するかどうかはハードウェアに依存するようです。

Let's note CF-F8、Let's note CF-W7ではうまく動作しました。

[5]Developer Hardware - The Chromium Projects

[5]でリストアップされているハードウェアではうまく動作するようです。

(任意)USBメモリからHDDへインストールする
  1. USBメモリからChromium OSを起動する
  2. ログインする
  3. Ctrl + Alt + tを押してターミナルを起動します
  4. HDDにインストールする
crosh> shell
chronos@localhost / $ /usr/sbin/chromeos-install
chronos@localhost / $ exit
crosh> exit
(任意)QEmuで起動する
~$ sudo kvm -m 1024 -vga std -pidfile /tmp/kvm.pid -net nic,model=e1000  -net user,hostfwd=tcp::922-:22 \
        -hda ~/google/chromiumos/src/build/images/SUBDIR/chromiumos_qemu_image.bin

など。

(任意)VMWareで起動する
  1. WMWareを起動する
  2. chromiumos.vmxを読み込む

後始末

ビルド環境を削除する
~/google/chromiumos/src/scripts$ ./make_chroot --delete
作業ディレクトリを削除する
~/$ rm -rf google

削除できなければsudoを付けます。

(任意)USBメモリからChromium OSを削除する

削除方法の一例です。

  1. UbuntuのDisk Utilityを使用し、USBメモリ上に作成されたパーティションをアンマウントしながら削除する
  2. Disk Utilityを使用し、USBメモリをフォーマットする

2010-12-20

Google Chromium OSのビルド方法

| 21:05 | Google Chromium OSのビルド方法 - TorasenLab@はてな を含むブックマーク Google Chromium OSのビルド方法 - TorasenLab@はてな のブックマークコメント

Google Chromium OSをソースからビルドする。

[1]Chromium OS Developer Guide - The Chromium Projects

以下は2010/12/17時点でのビルドログ兼ビルド方法です。ビルド方法は頻繁に変更されるため、最新のビルド方法は[1]を参照してください。

はじめに

ホームディレクトリ(/home/USER_NAME)に以下のような作業ディレクトリを作成するとします。

必要に応じて読み換えてください。

/home/USER_NAME
    /google
        /chromiumos

ビルドマシン

  • Intel Core i7-920 Processor (2.66 GHz × 8)
  • Memory 9GB
  • Ubuntu Lucid 10.04 64bit

準備

64ビット版Ubuntuのインストールとrootアクセス可能なアカウントの作成

Ubuntuのインストールに関しては他のサイトを参照してください。

Ubuntu Lucid 10.04が推奨されています。

~/$ uname -m

64ビット版でないといけません。上記のコマンドでx86_64と出力されれば64ビット版のようです。

Chromium OSのファイルサイズはソースのみで2GB、ビルド後は12GB、VMWare用イメージ等を作成すると15GB程度になるのでHDD容量には注意が必要です。

ビルドに必要なパッケージのインストール

[2]no title

ビルド手順更新の際に[1]からは削除されたようですが、恐らく[2]に書いてあるパッケージが必要です。インストール用のスクリプトが用意されているのでそれを利用します。

~/google$ wget http://src.chromium.org/svn/trunk/src/build/install-build-deps.sh
~/google$ sudo chmod +x install-build-deps.sh 
~/google$ ./install-build-deps.sh 
Do you want me to install them for you (y/N)  y

Gold is a new linker that links Chrome 5x faster than ld.
Don't use it if you need to link other apps (e.g. valgrind, wine)
REPLACE SYSTEM LINKER ld with gold and back up ld? (y/N) y
gitのインストールと設定
~/$ sudo aptitude install git-core gitk git-gui
~/$ git config --global user.email "you@example.com"
~/$ git config --global user.name "Your Name"

ソースコードの取得

depot_toolsの取得

[3]Install depot_tools - The Chromium Projects

[3]に書かれているdepot_toolsが必要です。

~/google$ wget http://src.chromium.org/svn/trunk/tools/depot_tools.zip
~/google$ unzip depot_tools.zip
depot_toolsにパスを通す
~/google$ export PATH=`pwd`/depot_tools:"$PATH"
repoを設定する
~/google$ cd chromiumos
~/google/chromiumos$ repo init -u http://git.chromium.org/git/manifest

emailなどのビルドユーザ情報やターミナル上での文字の色の設定を行う。

-m minilayout.xmlのオプションを付けると取得するソース量が減るようです。

Chromium OSのソースを取得する
~/google/chromiumos$ repo sync

-m minilayout.xmlオプション無しで5時間程度かかりました。21万ファイル。1.9GB

ビルド

ビルド環境を作成する
~/google/chromiumos$ cd src/scripts/
~/google/chromiumos/src/scripts$ ./make_chroot

10分程度かかりました。~/google/chromiumosディレクトリにchrootディレクトリが作成されます。このディレクトリはrmで削除してはいけないようです。

ビルド環境に入る
~/google/chromiumos/src/scripts$ ./enter_chroot.sh
boardを設定する
(cros-chroot) ~/trunk/src/scripts $./setup_board --board=x86-generic --default

ここではtargetをx86-genericにしています。

x86互換CPU用には x86-generic、ARMCPU用には arm-genericに設定します。

3分程度かかりました。

共有ユーザアカウントを設定する
(cros-chroot) ~/trunk/src/scripts $./set_shared_user_password.sh

ターミナル上でsudoを使用する際に必要となります。

packageを作成する
(cros-chroot) ~/trunk/src/scripts $./build_packages  --oldchromebinary

30分程度かかりました。

imageを作成する
(cros-chroot) ~/trunk/src/scripts $./build_image

--withdev --noenable_rootfs_verificationフラグは開発者でもない限りつけないほうが良いらしい。10分程度かかりました。

イメージの作成

(任意)USBメモリにイメージを書き込む

4GB以上のUSBメモリをビルドマシンに挿入しておく。

(cros-chroot) ~/trunk/src/scripts $./image_to_usb.sh --to=/dev/sdX

--from=../build/images/SUBDIRオプションを追加するとバージョンを指定できます。SUBDIRはx86-generic/0.9.131.2010_12_17_1141-a1のようなバージョンやビルド日時をあらわすディレクトリです。

--fromオプションを追加しないと最新版が選択されます。

--to=/dev/sdXでChromium OSイメージを書き込むUSBを指定します。

中にはUSBメモリと認識しないデバイスがあるようですが、その場合は--force_non_usbオプションを追加します。

(任意)QEmu用イメージを作成する
(cros-chroot) ~/trunk/src/scripts $./image_to_vm.sh

~/google/chromiumos/src/build/images/SUBDIR/にchromiumos_qemu_image.binが作成されます。

(任意)VMWare用イメージを作成する

QEmuをビルド環境にインストールする。

(cros-chroot) ~/trunk/src/scripts $ sudo emerge app-emulation/qemu-softmmu

イメージを作成する。

(cros-chroot) ~/trunk/src/scripts $./image_to_vm.sh --format=vmware

~/google/chromiumos/src/build/images/SUBDIR/にchromiumos.vmxとide.vmdkが作成されます。

ビルド環境から出る
(cros-chroot) ~/trunk/src/scripts $exit

実行

f:id:torasenriwohashiru:20101220134828p:image

f:id:torasenriwohashiru:20101220134826p:image

QEmuでの実行結果のスクリーンショット。[About Chromium OS]ページにビルドユーザの情報などが載ります。

(任意)USBメモリからブートする
  1. USBメモリを対象マシンに挿入する
  2. USBメモリをブートするようにBIOSを設定する
  3. USBメモリからブートする

ビルドしたChromium OSがうまく動作するかどうかはハードウェアに依存するようです。

Let's note CF-F8では動作しましたが、Let's note CF-W7ではethernetを認識しませんでした。

[4]Developer Hardware - The Chromium Projects

[4]でリストアップされているハードウェアではうまく動作するようです。

(任意)USBメモリからHDDへインストールする
  1. USBメモリからChromium OSを起動する
  2. ログインする
  3. Ctrl + Alt + tを押してターミナルを起動します
  4. HDDにインストールする
crosh> shell
chronos@localhost / $ /usr/sbin/chromeos-install
chronos@localhost / $ exit
crosh> exit
(任意)QEmuで起動する
~$ sudo kvm -m 1024 -vga std -pidfile /tmp/kvm.pid -net nic,model=e1000  -net user,hostfwd=tcp::922-:22 \
        -hda ~/google/chromiumos/src/build/images/SUBDIR/chromiumos_qemu_image.bin

など。

(任意)VMWareで起動する
  1. WMWareを起動する
  2. chromiumos.vmxを読み込む

VMWareで起動したときにethernetを認識しないときは、chromiumos.vmxをテキストエディタで開いて

ethernet0.virtualDev = "e1000"

を追加すれば動作する場合があります。詳しくは[5]を参照してください。 

[5]Google グループ

後始末

ビルド環境を削除する
~/google/chromiumos/src/scripts$ ./make_chroot --delete
作業ディレクトリを削除する
~/$ rm -rf google
(任意)USBメモリからChromium OSを削除する

削除方法の一例です。

  1. UbuntuのDisk Utilityを使用し、USBメモリ上に作成されたパーティションをアンマウントしながら削除する
  2. Disk Utilityを使用し、USBメモリをフォーマットする

2010-12-15

マーク

| 22:51 | マーク - TorasenLab@はてな を含むブックマーク マーク - TorasenLab@はてな のブックマークコメント

久しぶりにChromium OSのソースをsyncさせたらこんなのが出力されました。

面白かったので記念に。

Syncing work tree: 100% (86/86), done.  

            ..77IIIIII7,.
           .$IOOOOOOOOOOZ$:.
        .IO8?OOOOOOZOOOOOOOO.
        ?=?~?ZO+D8888=+OZOOOOI.
      .7$+I+++888$IIO$8+=OZZZOI.
     .ZZ$$I?~I8$7?++?I7Z88888IZ:
     ~IZ$$7I~8OII?=~+I$Z8:++=ZD$
     IZZZ$$7~8ZZ$I??I$7D8:+++??I.
     I$ZZZ$$?=DOOZ$$ZOD8:=+++??I.
     77OZZZ$$+=8DDDDDDO:=+++???I
     .OOOOZZZ$$==7D,:::++++???I?
     .$$OOOOZZZ$8~===+++++???I?.
       7$OOOO$8=====+++++??II?..
        ?$ZO8:===+++++++?I???.
         .77$D8+++++++=?+??..
            ,7$8Z===+++??
               ........
Your sources have been sync'd successfully.

2010-11-13

Google Chromium OS + Chromiumのビルド方法

| 00:34 | Google Chromium OS + Chromiumのビルド方法 - TorasenLab@はてな を含むブックマーク Google Chromium OS + Chromiumのビルド方法 - TorasenLab@はてな のブックマークコメント

より新しいビルド方法はこちら

Google Chromium OSをソースからビルドする。ただしChromiumはローカルのソースを使用する。

[1]Page not found - The Chromium Projects

[2]Chromium OS + Chromiumビルドログ(まとめ): TorasenLab@Seesaa

以下はseesaaの方に書いておいたビルドログ[2]をまとめたものです。

以下は2010/11/01時点でのビルド方法です。ビルド方法は頻繁に変更されるため、最新のビルド方法は[1]を参照してください。

はじめに

ホームディレクトリ(/home/USER_NAME)に以下のような作業ディレクトリを作成するとします。

必要に応じて読み換えてください。

/home/USER_NAME
    /google
        /chromium
        /chromiumos

準備

64ビット版Ubuntuのインストールとrootアクセス可能なアカウントの作成

Ubuntuのインストールに関しては他のサイトを参照してください。

Ubuntu Lucid 10.04が推奨されています。

~/$ uname -m

64ビット版でないといけません。上記のコマンドでx86_64と出力されれば64ビット版のようです。

ビルドに必要なパッケージのインストール

[3]no title

[3]に書いてあるパッケージが必要です。インストール用のスクリプトが用意されているのでそれを利用します。

~/google$ wget http://src.chromium.org/svn/trunk/src/build/install-build-deps.sh
~/google$ sudo chmod +x install-build-deps.sh 
~/google$ ./install-build-deps.sh 
Do you want me to install them for you (y/N)  y

Gold is a new linker that links Chrome 5x faster than ld.
Don't use it if you need to link other apps (e.g. valgrind, wine)
REPLACE SYSTEM LINKER ld with gold and back up ld? (y/N) y
gitとsubversionのインストール
~/$ sudo apt-get install git-core subversion

gitは必要無いかもしれません。

ソースコードの取得

depot_toolsの取得

[4]Page not found - The Chromium Projects

[4]に書かれているdepot_toolsが必要です。

~/google$ svn co http://src.chromium.org/svn/trunk/tools/depot_tools
depot_toolsにパスを通す
~/google$ export PATH=`pwd`/depot_tools:"$PATH"
gclientを設定する
~/google$ cd chromium
~/google/chromium$ gclient config http://src.chromium.org/svn/trunk/src

~/google/chromiumディレクトリに.gclientファイルが作成されます。

.gclientを編集する
solutions = [
  {  "name" : "src",
     "url" : "http://src.chromium.org/svn/trunk/src",
     "custom_deps" : {
     },
     "safesync_url": "",
  },
  {  "name" : "cros_deps",
     "url" : "http://src.chromium.org/svn/trunk/cros_deps",
  },
]

以下の3行を追加する。

{  "name" : "cros_deps",
   "url" : "http://src.chromium.org/svn/trunk/cros_deps",
},
Chromiumのソースを取得する
~/google/chromium$ gclient sync
repoを設定する
~/google/chromium$ cd ~/google/chromiumos
~/google/chromiumos$ repo init -u http://git.chromium.org/git/manifest

emailなどのビルドユーザ情報やターミナル上での文字の色の設定を行う。

-m minilayout.xmlのオプションを付けると取得するべきソースコードの量が減るかもしれない。

Chromium OSのソースを取得する
~/google/chromiumos$ repo sync

ビルド

ビルド環境を作成する
~/google/chromiumos$ cd src/scripts/
~/google/chromiumos/src/scripts$ ./make_chroot --replace

~/google/chromiumosディレクトリにchrootディレクトリが作成される。このディレクトリはrmで削除してはいけないらしい。

ビルド環境に入る
~/google/chromiumos/src/scripts$ ./enter_chroot.sh --chrome_root=/home/USER_NAME/google/chromium

--chrome_rootにChromiumのソースディレクトリを指定する。絶対パスで指定した方がいいかもしれない。

boardを設定する
(cros-chroot) ~/trunk/src/scripts $./setup_board --board=x86-generic --default

ここではtargetをx86-genericにしています。

cros_workonを起動する
(cros-chroot) ~/trunk/src/scripts $./cros_workon start chromeos-base/libcros
(cros-chroot) ~/trunk/src/scripts $repo sync
ローカルのChromiumソースを使用するように設定する
(cros-chroot) ~/trunk/src/scripts $export CHROME_ORIGIN=LOCAL_SOURCE
(cros-chroot) ~/trunk/src/scripts $export FEATURES="-usersandbox"
packageを作成する
(cros-chroot) ~/trunk/src/scripts $./build_packages
imageを作成する
(cros-chroot) ~/trunk/src/scripts $./build_image

イメージの作成

(任意)USBメモリにイメージを書き込む

4GB(2GBでもいい?)以上のUSBメモリをビルドマシンに挿入しておく。

(cros-chroot) ~/trunk/src/scripts $./image_to_usb.sh --from=../build/images/SUBDIR --to=/dev/sdX

SUBDIRはx86-generic/0.9.111.2010_11_05_0109-a1のようなバージョンやビルド日時をあらわすディレクトリ。

--to=/dev/sdXでChromium OSイメージを書き込むUSBを指定します。

中にはUSBメモリと認識しないデバイスがあるようですが、その場合は--force_non_usbオプションを追加する。

(任意)QEmu用イメージを作成する
(cros-chroot) ~/trunk/src/scripts $./image_to_vm.sh --from=../build/images/SUBDIR --board=x86-generic

上記はtargetがx86-genericの場合のコマンドです。

~/google/chromiumos/src/build/images/SUBDIR/にchromiumos_qemu_image.binが作成されます。

(任意)VMWare用イメージを作成する

QEmuをビルド環境にインストールする。

(cros-chroot) ~/trunk/src/scripts $ sudo emerge app-emulation/qemu-softmmu

イメージを作成する。

(cros-chroot) ~/trunk/src/scripts $./image_to_vm.sh --format=vmware --from=../build/images/SUBDIR --board=x86-generic

上記はtargetがx86-genericの場合のコマンドです。

~/google/chromiumos/src/build/images/SUBDIR/にchromiumos.vmxとide.vmdkが作成されます。

ビルド環境から出る
(cros-chroot) ~/trunk/src/scripts $exit

実行

f:id:torasenriwohashiru:20101111231136p:image

f:id:torasenriwohashiru:20101111231137p:image

QEmuでの実行結果のスクリーンショット。[About Chromium OS]ページにビルドユーザの情報などが載る。

(任意)USBメモリからブートする
  1. USBメモリを対象マシンに挿入する
  2. USBメモリをブートするようにBIOSを設定する
  3. USBメモリからブートする

ビルドしたChromium OSがうまく動作するかどうかはハードウェアに依存するようです。

Lenovo r500、Let's note CF-F8では動作しましたが、Let's note CF-W7ではネットワーク選択画面が一瞬映った後再起動してしまい、うまく動作しなかった。

[5]Developer Hardware - The Chromium Projects

[5]でリストアップされているハードウェアではうまく動作するようです。

(任意)USBメモリからHDDへインストールする
  1. USBメモリからChromium OSを起動する
  2. ログインする
  3. Ctrl + Alt + tを押す
  4. HDDにインストールする
crosh> shell
chronos@localhost / $ /usr/sbin/chromeos-install
chronos@localhost / $ exit
crosh> exit
(任意)QEmuで起動する
~$ sudo kvm -m 1024 -vga std -pidfile /tmp/kvm.pid -net nic,model=e1000  -net user,hostfwd=tcp::922-:22 \
        -hda ~/google/chromiumos/src/build/images/SUBDIR/chromiumos_qemu_image.bin

など。

(任意)VMWareで起動する
  1. WMWareを起動する
  2. chromiumos.vmxを読み込む

VMWareで起動したときにethernetを認識しないときは、chromiumos.vmxをテキストエディタで開いて

ethernet0.virtualDev = "e1000"

を追加すれば動作する場合がある。詳しくは[6]を参照してください。 

[6]Google グループ

後始末

ビルド環境を削除する
~/google/chromiumos/src/scripts$ ./make_chroot --delete
作業ディレクトリを削除する
~/$ rm -rf google
(任意)USBメモリからChromium OSを削除する

削除方法の一例です。

  1. UbuntuのDisk Utilityを使用し、USBメモリ上に作成されたパーティションをアンマウントしながら削除する
  2. Disk Utilityを使用し、USBメモリをフォーマットする

2010-11-11

Google Chromium OSのビルド方法

| 23:17 | Google Chromium OSのビルド方法 - TorasenLab@はてな を含むブックマーク Google Chromium OSのビルド方法 - TorasenLab@はてな のブックマークコメント

より新しいビルド方法はこちら

Google Chromium OSをソースからビルドする。

[1]Page not found - The Chromium Projects

[2]Chromium OS ビルドログ(まとめ): TorasenLab@Seesaa

以下はseesaaの方に書いておいたビルドログ[2]をまとめたものです。

以下は2010/11/01時点でのビルド方法です。ビルド方法は頻繁に変更されるため、最新のビルド方法は[1]を参照してください。

はじめに

ホームディレクトリ(/home/USER_NAME)に以下のような作業ディレクトリを作成するとします。

必要に応じて読み換えてください。

/home/USER_NAME
    /google
        /chromiumos

準備

64ビット版Ubuntuのインストールとrootアクセス可能なアカウントの作成

Ubuntuのインストールに関しては他のサイトを参照してください。

Ubuntu Lucid 10.04が推奨されています。

~/$ uname -m

64ビット版でないといけません。上記のコマンドでx86_64と出力されれば64ビット版のようです。

Chromium OSのファイルサイズはソースのみで2GB、ビルド後は12GB、VMWare用イメージ等を作成すると15GB程度になるのでHDD容量には注意が必要です。

ビルドに必要なパッケージのインストール

[3]no title

[3]に書いてあるパッケージが必要です。インストール用のスクリプトが用意されているのでそれを利用します。

~/google$ wget http://src.chromium.org/svn/trunk/src/build/install-build-deps.sh
~/google$ sudo chmod +x install-build-deps.sh 
~/google$ ./install-build-deps.sh 
Do you want me to install them for you (y/N)  y

Gold is a new linker that links Chrome 5x faster than ld.
Don't use it if you need to link other apps (e.g. valgrind, wine)
REPLACE SYSTEM LINKER ld with gold and back up ld? (y/N) y
gitとsubversionのインストール
~/$ sudo apt-get install git-core subversion

gitは必要無いかもしれません。

ソースコードの取得

depot_toolsの取得

[4]Page not found - The Chromium Projects

[4]に書かれているdepot_toolsが必要です。

~/google$ svn co http://src.chromium.org/svn/trunk/tools/depot_tools
depot_toolsにパスを通す
~/google$ export PATH=`pwd`/depot_tools:"$PATH"
repoを設定する
~/google$ cd chromiumos
~/google/chromiumos$ repo init -u http://git.chromium.org/git/manifest

emailなどのビルドユーザ情報やターミナル上での文字の色の設定を行う。

-m minilayout.xmlのオプションを付けると取得するべきソースコードの量が減るかもしれない。

Chromium OSのソースを取得する
~/google/chromiumos$ repo sync

ビルド

ビルド環境を作成する
~/google/chromiumos$ cd src/scripts/
~/google/chromiumos/src/scripts$ ./make_chroot --replace

~/google/chromiumosディレクトリにchrootディレクトリが作成される。このディレクトリはrmで削除してはいけないらしい。

ビルド環境に入る
~/google/chromiumos/src/scripts$ ./enter_chroot.sh
boardを設定する
(cros-chroot) ~/trunk/src/scripts $./setup_board --board=x86-generic --default

ここではtargetをx86-genericにしています。

packageを作成する
(cros-chroot) ~/trunk/src/scripts $./build_packages
imageを作成する
(cros-chroot) ~/trunk/src/scripts $./build_image

イメージの作成

(任意)USBメモリにイメージを書き込む

4GB(2GBでもいい?)以上のUSBメモリをビルドマシンに挿入しておく。

(cros-chroot) ~/trunk/src/scripts $./image_to_usb.sh --from=../build/images/SUBDIR --to=/dev/sdX

SUBDIRはx86-generic/0.9.111.2010_11_05_0109-a1のようなバージョンやビルド日時をあらわすディレクトリ。

--to=/dev/sdXでChromium OSイメージを書き込むUSBを指定します。

中にはUSBメモリと認識しないデバイスがあるようですが、その場合は--force_non_usbオプションを追加する。

(任意)QEmu用イメージを作成する
(cros-chroot) ~/trunk/src/scripts $./image_to_vm.sh --from=../build/images/SUBDIR --board=x86-generic

上記はtargetがx86-genericの場合のコマンドです。

~/google/chromiumos/src/build/images/SUBDIR/にchromiumos_qemu_image.binが作成されます。

(任意)VMWare用イメージを作成する

QEmuをビルド環境にインストールする。

(cros-chroot) ~/trunk/src/scripts $ sudo emerge app-emulation/qemu-softmmu

イメージを作成する。

(cros-chroot) ~/trunk/src/scripts $./image_to_vm.sh --format=vmware --from=../build/images/SUBDIR --board=x86-generic

上記はtargetがx86-genericの場合のコマンドです。

~/google/chromiumos/src/build/images/SUBDIR/にchromiumos.vmxとide.vmdkが作成されます。

ビルド環境から出る
(cros-chroot) ~/trunk/src/scripts $exit

実行

f:id:torasenriwohashiru:20101111231136p:image

f:id:torasenriwohashiru:20101111231137p:image

QEmuでの実行結果のスクリーンショット。[About Chromium OS]ページにビルドユーザの情報などが載る。

(任意)USBメモリからブートする
  1. USBメモリを対象マシンに挿入する
  2. USBメモリをブートするようにBIOSを設定する
  3. USBメモリからブートする

ビルドしたChromium OSがうまく動作するかどうかはハードウェアに依存するようです。

Lenovo r500、Let's note CF-F8では動作しましたが、Let's note CF-W7ではネットワーク選択画面が一瞬映った後再起動してしまい、うまく動作しなかった。

[5]Developer Hardware - The Chromium Projects

[5]でリストアップされているハードウェアではうまく動作するようです。

(任意)USBメモリからHDDへインストールする
  1. USBメモリからChromium OSを起動する
  2. ログインする
  3. Ctrl + Alt + tを押す
  4. HDDにインストールする
crosh> shell
chronos@localhost / $ /usr/sbin/chromeos-install
chronos@localhost / $ exit
crosh> exit
(任意)QEmuで起動する
~$ sudo kvm -m 1024 -vga std -pidfile /tmp/kvm.pid -net nic,model=e1000  -net user,hostfwd=tcp::922-:22 \
        -hda ~/google/chromiumos/src/build/images/SUBDIR/chromiumos_qemu_image.bin

など。

(任意)VMWareで起動する
  1. WMWareを起動する
  2. chromiumos.vmxを読み込む

VMWareで起動したときにethernetを認識しないときは、chromiumos.vmxをテキストエディタで開いて

ethernet0.virtualDev = "e1000"

を追加すれば動作する場合がある。詳しくは[6]を参照してください。 

[6]Google グループ

後始末

ビルド環境を削除する
~/google/chromiumos/src/scripts$ ./make_chroot --delete
作業ディレクトリを削除する
~/$ rm -rf google
(任意)USBメモリからChromium OSを削除する

削除方法の一例です。

  1. UbuntuのDisk Utilityを使用し、USBメモリ上に作成されたパーティションをアンマウントしながら削除する
  2. Disk Utilityを使用し、USBメモリをフォーマットする