Google Chromium OS + Chromiumのビルド方法
より新しいビルド方法はこちら
Google Chromium OSをソースからビルドする。ただしChromiumはローカルのソースを使用する。
[1]http://www.chromium.org/chromium-os/building-chromium-os
[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]chromium - An open-source project to help move the web forward. - Monorail
[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
ソースコードの取得
depot_toolsの取得
[4]http://www.chromium.org/developers/how-tos/install-gclient
[4]に書かれているdepot_toolsが必要です。
~/google$ svn co http://src.chromium.org/svn/trunk/tools/depot_tools
gclientを設定する
~/google$ cd chromium ~/google/chromium$ gclient config http://src.chromium.org/svn/trunk/src
.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", },
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
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
実行
QEmuでの実行結果のスクリーンショット。[About Chromium OS]ページにビルドユーザの情報などが載る。
(任意)USBメモリからブートする
ビルドしたChromium OSがうまく動作するかどうかはハードウェアに依存するようです。
Lenovo r500、Let's note CF-F8では動作しましたが、Let's note CF-W7ではネットワーク選択画面が一瞬映った後再起動してしまい、うまく動作しなかった。
[5]Developer Hardware - The Chromium Projects
[5]でリストアップされているハードウェアではうまく動作するようです。
(任意)USBメモリからHDDへインストールする
- USBメモリからChromium OSを起動する
- ログインする
- Ctrl + Alt + tを押す
- 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で起動する
- WMWareを起動する
- chromiumos.vmxを読み込む
VMWareで起動したときにethernetを認識しないときは、chromiumos.vmxをテキストエディタで開いて
ethernet0.virtualDev = "e1000"
を追加すれば動作する場合がある。詳しくは[6]を参照してください。
[6]Google グループ