Chromium osをコンパイルしてみる
http://journal.mycom.co.jp/news/2009/11/20/011/index.html
http://sites.google.com/a/chromium.org/dev/chromium-os/building-chromium-os
なんかchromiumosプロジェクトが公開されたので、せっかくなのでbuildだけしてみる
先に結論だけ書いとくと楽勝でした。GoといいGoogle関連のOSSはドキュメント読みやすいです。
環境はUbuntu 9.10(x86)です。当然ですが自己責任で。
- 2009/11/21 11:02 このエントリの後ろに追記しました
- 2009/11/21 13:11 記述ミスがあったので修正しました(thx vine_user!)
コンパイルに必要なライブラリを揃える
$ wget http://src.chromium.org/svn/trunk/src/build/install-build-deps.sh
$ sudo sh install-build-deps.sh
depot_toolsを取ってくる
$ svn co http://src.chromium.org/svn/trunk/tools/depot_tools
パスも設定しておく。.bashrcあたりに書いておけば起動するたびに打ち込む必要はなくなりますね。
$ export PATH=`pwd`/depot_tools:"$PATH"
chromium osのソースを取ってくる
$ sudo apt-get install git-core
$ mkdir chromiumos
$ cd chromiumos
$ gclient config http://src.chromium.org/git/chromiumos.git
$ gclient sync
時間長いです。っていうかgclientってなんだ?
chromiumを取ってくる
手順どおりに読むとchromiumのビルドになるんだけど、いちいちやりたくないのでその次に書いてるchromiumのバイナリを取っておく。
$ cd ~/chromeos/chromiumos.git/src
$ mkdir -p build/x86/local_assets
$ wget http://build.chromium.org/buildbot/archives/chromium-chromiumos-r32516/chrome-linux.zip
$ mv chrome-linux.zip build/x86/local_assets/chrome-chromeos.zip
ビルド環境に入る
$ cd scripts
$ ./enter_chroot.sh
共有ユーザのパスワードを設定する
(chroot)$./set_shared_user_password.sh
ビルドする
(chroot)$ ./build_platform_packages.sh
(chroot)$ ./build_kernel.sh
(chroot)$ ./build_image.sh
~/chromiumos/src/build/imagesの下にバージョンっぽい数字の付いたディレクトリができます(うちの場合999.999.32409.024640-a1って書いてる)
入ってるかどうかテスト
$ cd ~/chromeos/chromiumos.git/src/build/images/SUBDIR
$ sudo mount -o loop rootfs.image rootfs
$ sudo chroot rootfs
でビルドしたシステムに入れる
$ df
$ dpkg -l
サンプルには上のとおり書いてるけどdfやったらエラーっぽいものが返ってきた。dpkg -lは普通に入ってるパッケージ返してくるんだけど・・謎だ。
出来上がったイメージディスクに入れる
入れたいんだけど空いてるディスクがないのでvmware用のimageにした。
まずroot環境をビルド前までに戻す
$ exit
(chroot) $ exit
$
次にvmware向けに転送する。qemu-imgが必要なので先にqemuを入れておく
$ sudo apt-get install qemu
転送する
$ ./image_to_vmware.sh --from=~/chromeos/chromiumos.git/src/build/images/(バージョン)
src/build/(バージョン)にide.vmdkが出力されます。
実際に動かしてみる
この辺はvmware playerがあるならそっちを使えばいいと思うけど、ちょうど手元にVirtualBox OSEがあったのでそれを使って立ち上げてみた。
成功!でもまさかログインにgmailアカウント使うとは思わなかった・・
11/21 11:02追記
http://d.hatena.ne.jp/r_kurain/20091121/1258768687 より。
cd ../platform/pam_google && ./enable_localaccount.sh USERNAME
この行は本来非推奨なのだけれど、USERNAMEで chromium osにログインできるようにするため処理。
これをしておかないと、chromium osはgmailアカウントでログインするため、ネットワークにつながらないときにログインできない。後述する、EeePCなどの実機に入れるところで必要になる
ということなので、$ ./enter_chroot.shの直後に上のコマンドを実行したほうがいいみたいです。私は面倒だったしそんなに使い込まないと思ったので入れてませんでしたが。ログインしないとワイヤレスの設定もできそうもないし、無いと困りそうですね。