昨年11月19日に, 「Google Chrome OS」のオープンソース版「Chromium OS」が公開され, 直後に窓の杜の記事[1]を参考にVMPlayer上でChromium OSに少し触れてみた. このときは, とりあえず最低限の機能/サービスが動作するようになったといった感じであった.
あれから約半年が経過し, 「
Chrome OS」の「秋後半」リリースも明らかになったので, 一度ソースからビルドしてみることにした.

Chromium OSのビルドに関しては, 多くの方のビルド情報[2][3][4]が公開されているが, 本家The Chromium ProjectsのGetting and Building a Chromium-Based OS[5]を参考にビルドしてみた.

基本的には, Getting and Building a Chromium-Base OSに書かれているPrerequisites, Get the source, Build Chromium OSの順に作業すればよい.

1. ビルド環境を構築する.
1.1 ビルドPC
Ubuntu 9.10が推奨であるが, 先日Ubuntu 10.04 LTSにアップグレードしたので, この環境でビルドしてみる.
PC環境
  CPU : Intel Core(TM)2 Quad Q8400 @ 2.66GHz
  OS : Windows 7 Ultimate
  Memory : 4.0GB
 ビルド環境 : VMPlayer 3.0.1 / Ubuntu 10.04 LTS
1.2 必要なパッケージをインストールする
LinuxBuildInstructionsPrerequisites[6]にChromium OSをビルドするのに必要なパッケージがリストされている. 今回はこのページのAutomated Setupにあるスクリプトを使ってインストールした.

$ mkdir tools
$ cd tools

$ wget http://src.chromium.org/svn/trunk/src/build/install-build-deps.sh
$ chmod +x install-build-deps.sh
$ sudo ./install-build-deps.sh
[sudo] password for xxxx: yyyy
This script installs all tools and libraries needed to build Chromium.

For most of the libraries, it can also install debugging symbols, which
will allow you to debug code in the system libraries. Most developers
won't need these symbols.
Do you want me to install them for you (y/N)
y

スクリプトを実行すると, インストールするか聞いてくるので, "y"とすると, 必要なパッケージのインストールが行われる.

2. ソースコードを取得する.
Getting the Chromium OS Source Code[7]Get the Source Code for the OSにソースコードの取得方法が書かれているので, それに従って作業していく.
2.1 depot_toolsをインストールする
subversionを使って~/toolsにdepot_toolsをインストールし, depot_toolsのパスを設定する.

$ sudo apt-get install subversion
$ svn co 
http://src.chromium.org/svn/trunk/tools/depot_tools
$ export PATH=`pwd`/depot_tools:"$PATH"

2.2 ソースコードをダウンロードする
gitを使ってChromium OSのソースコードをダウンロードする.

$ sudo apt-get install git-core
$ mkdir ChromiumOS
$ cd ChromiumOS
$ gclient config http://src.chromium.org/git/chromiumos.git
$ gclient sync


3. ビルドする.  [8]
3.1 ビルド環境をセットアップする.
Chromium OSのソースツリーを"~/chromiumos"にシンボリックリンスし, chroot環境を作成する.

$ ln -s /<path to your local disk>/chromiumos/chromiumos.git ~/chromiumos
$ cd ~/chromiumos/src/scripts
$ ./make_chroot
make_chroot: i686 is not supported as a host machine architecture.

ここで, 上記のようなエラーが発生. Prerequisitesを読み直すと, なんと64bitシステム(x86_64)でないとだめだと書いてある. 公開直後は, 32bit(x86/i686)システムでもOKだったはずだが...
make_chrootの中をのぞいてみると, L19-22に
if [[ "$ARCHITECTURE" != "x86_64" ]]; then
  echo "$PROG: $ARCHITECTURE is not supported as a host machine architecture."
  exit 1
fi

と, アーキテクチャーを判断している部分があるので, これをコメントアウトして再度ためしてみた.

$ cp make_chroot make_chroot_i686
$ gedit make_chroot_i686   ← 上記の部分をコメントアウト
$ ./make_chroot_i686

make_chroot_i686: Unpacking STAGE3...
[sudo] password for xxxx:
yyyy
make_chroot_i686: Set timezone...
chroot: cannot run command `[': Exec format error
chroot: cannot run command `rm': Exec format error

make_chroot_i686のfunction init_users()のタイムゾーンの設定でエラーが発生. ここは手動でタイムゾーンを設定した.

$ cd /chromiumos/chroot/etc
$ sudo mv localtime localtime.bak
$ sudo ln -s ../usr/share/zoneinfo/Japan localtime

しかし, またまたエラーが...
簡単には, x86/i686ではビルドできないようだ... 残念!!

今度時間があるときに, 64-bit版Ubuntuをインストールし, 再度ビルドにチャレンジしてみます.

-----
参考URL:
 [1] 窓の杜 - 【特別企画】Googleの新OS「Chrome OS」のオープンソース版「Chromium OS」を試す
 [2] Chromium osをコンパイルしてみる - 崩壊現実-全てはvirtualに収束する -
 [3] chrome OSが公開されたので buildしてみる - kurainの壷
 [4] Chromium OSをビルドする - maruko2 Note.
 [5] Getting and Building a Chromium-Base OS (The Chromium Projects)
 [6] LinuxBuildInstructionsPrerequisites - chromium -
 [7] Getting the Chromium OS Source Code (The Chromium Projects)
 [8] Build Instructions (The Chromium Projects)