SSブログ

Chromium OS のビルド [ChromeOS]

Googleが開発している「Chrome OS」は主にネットブックなどのPC向けOSである。
GoogleはChromiumプロジェクトにおいてChrome OSを「Chromium OS」という名前の
オープンソースプロジェクトとして公開している。

開発環境を用意し、公開されているソース・コードを入手してコンパイルすれば
Chromium OSを使用することができる。

Chromium OSは、2010年2月にビルド方法が大きく変更となり、
GentooのPortageが採用されている。

Chrome OS、クロスコンパイルにGentooのPortage採用
http://www.atmarkit.co.jp/news/201002/18/gentoo.html

今回は、Chromium OSのビルドに挑戦してみたい。
※今回は8月15日時点でChromiumプロジェクトのホームページに記載されていた方法を
 もとにビルドを行っています。現在では、ビルド方法が変更になっているようなので、
 追って確認をしたいと思います。

まず、最初にChromium OSのビルドについて記述された書籍を確認してみた。

日経Linux 2010年2月号

「Chrome OSの全貌」と題して28ページにわたって特集が組まれている。
この中でビルド方法についても記載されているが、
ビルド方法変更前に執筆されたものなので、当然ながら、
新しい(Portageを利用した)ビルド方法については記載されていない。
ただし、この特集では、ビルド方法だけではなく、内部構造やアプリ追加の方法についても
言及されているので、有用だと思う。

みてわかるクラウドマガジンvol.1

OSのビルドに関する記事は、日経Linux 2010年2月号の内容をブラッシュアップしたものだと感じられた。
日経Linux 2010年2月号では「gitで入手するとタイミングによってはうまくコンパイルできない。付録のtarファイルを使ってコンパイルする方法をお勧めする」
と書かれており、gitリポジトリからのソース・コード入手はコラム扱いになっているのに対し、クラウドマガジンでは、
メインの記事でgitを使用する方法で記載されていた。ただし、新しいビルド方法については、触れられていなかった。

Google Chrome OS ~最新技術と戦略を完全ガイド~

ビルド方法については、2010年2月にPortageを使った方式に変わった旨、注記があるが、
従来の方法でもビルドできたとの報告もあると記載されており、従来の方法での
ビルド方法が記載されている。

書籍に関しては、上記のような状態なので、
次のサイトを参考にしてソースコードの取得とビルドを行った。

Getting and Building a Chromium-Based OS
http://dev.chromium.org/chromium-os/building-chromium-os

Royal Windows
http://royalwin.blog.so-net.ne.jp/2010-07-27

必要な環境
Chromium Projectsのページによれば、ビルドには次の環境が必要となる。
・Ubuntu(10.04推奨。最低でも8.04。ビルドには64bit版が必要)
・rootでアクセスできるアカウント

今回は、先にVMware Player環境にインストールしたUbuntu 10.04LTS 64bit版環境を利用する。

1.ソースコードの入手
ソースコードの入手については、次のサイトを参考にした。

・gitとsubversionのインストール
Chromium Projectsのページには、先にdepot toolsをインストールするように記載されているが、
subversionリポジトリからdepot toolsを取得するためには、先にsubversionをインストールしておく必要がある。
端末を開いて次のコマンドを実行する。
$ sudo apt-get install git-core subversion


・depot toolsのインストール

次のコマンドを実行し、depot toolsを取得する。
$ svn co http://src.chromium.org/svn/trunk/tools/depot_tools


次のコマンドで環境変数PATHに設定をする。
$ export PATH=`pwd`/depot_tools:"$PATH"


ホームディレクトリの.profileの末尾に次の内容を追記しておくと、
再度ビルドを行う場合に便利かも。
PATH=`pwd`/depot_tools:"$PATH"


・ソースコードの取得
次のコマンドを実行し、Chromium OSのソースを取得する。
(ホームディレクトリにて実行)
$ mkdir chromeos
$ cd chromeos
$ gclient config http://src.chromium.org/git/chromiumos.git
$ gclient sync


自分の環境では1時間半近くかかった。

2.Chromium OSのビルド
・シンボリックリンクの作成

次のコマンドを実行
$ ln -s ~/chromeos/chromiumos.git ~/chromiumos


・ビルド環境の作成

次のコマンドを実行
$ cd ~/chromiumos/src/scripts
$ ./make_chroot


自分の環境では20分くらいかかった。

次のコマンドを実行する。
$ ./enter_chroot.sh


・board targetのセットアップ、パッケージのビルド

次のコマンドを実行する。
(cros-chroot) $ cd ~/trunk/src/scripts
(cros-chroot) $ ./setup_board --board=x86-generic
(cros-chroot) $ ./build_packages --board=x86-generic


処理時間は35分くらい?

・イメージのビルド、VMwareイメージの作成

次のコマンドを実行する。
(cros-chroot) $ ./build_image --board=x86-generic
(cros-chroot) $ sudo emerge app-emulation/qemu-softmmu
(cros-chroot) $ ./image_to_vm.sh --format vmware --from=../build/images/x86-generic/0.8.65.2010_08_15_2353-a1 --to=../build --board=x86-generic


3.作成したVMwareイメージをVMware Playerで起動

~/chromiumos/src/build にできているchromiumos.vmxとide.vmdkをホストOSとの共有フォルダにコピーし、
ホストOSでVMware Playerを起動し、chromiumos.vmxを開く。

仮想マシン設定を次のように変える。
・メモリ:0MB → 3600MB
・CPU:1コア → 2コア
・ゲストOSのバージョン:他のLinux2.2.xカーネル → 他のLinux2.6.xカーネル 64ビット

なお、作成されたVMwareイメージは、「Workstation 5.x 仮想マシン」となっており、
設定にはその制限もついているようである。最新バージョンのVmwareフォーマットの
イメージを作るのであれば、USBからの起動イメージを作ったうえでVM環境にインストールしたほうがいいかもしれない。

仮想マシンを起動すると、まず言語とネットワークを選択する画面が現れる。
ChromiumOS20100815_001.jpg

言語はプルダウンのMoreの中から日本語を選択し、Continueボタンを押す。
ChromiumOS20100815_002.jpg

OSへのログインは、Googleアカウントが必要となる。持っていなければ作成する。
ChromiumOS20100815_003.jpg

プロファイルイメージの選択では、キャンセルをする。
ChromiumOS20100815_004.jpg

ログイン完了。
ChromiumOS20100815_005.jpg

時刻が正しくないので、右上の時刻表示部分をクリックし、日時オプションを開く。
ChromiumOS20100815_006.jpg

タイムゾーンを日本標準時にする。
ChromiumOS20100815_007.jpg
タグ:chromeos
nice!(1)  コメント(3)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 1

コメント 3

よへい

大変参考になります。
良い記事をありがとうございます。

ひとつ質問なのですが、
$ export PATH=`pwd`/depot_tools:"$PATH"
のパスワードってUbuntuを起動するさいに入力する
パスワードでいいのですか?
by よへい (2010-08-30 00:09) 

Ben

パスワードというのは、`pwd`の部分を指しているということでよいでしょうか?
pwdはパスワードではなく、現在のディレクトリの場所を確認するためのコマンドです。
これをバッククォーテーション(シングルクォーテーション(')とは別文字です)でくくった場合、文字列`pwd`をコマンドpwdの出力結果で置き換える形となります。
カレントディレクトリをホームディレクトリから移動していない場合、コマンドpwdの出力結果は、ホームディレクトリのパスとなるので、ホームディレクトリが/home/hogeの場合、
$ export PATH=`pwd`/depot_tools:"$PATH"

$ export PATH=/home/hoge/depot_tools:"$PATH"
と同じ意味になります。
by Ben (2010-08-30 00:54) 

ようへい

早速のお返事ありがとうございます。
Linux初心者に詳しく説明していただき
ありがとうございます。

ChromiumOSの新しいビルド方法の記事に
また質問を載せてます。
もしよろしければ力をお貸しいただければと思います。
by ようへい (2010-08-30 07:58) 

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

VMware Player 3.1.1 ..Chromium OS の再ビルド ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。