【第2回】Chrome OS を独自にビルドしてみる

スポンサーリンク

Chrome OS は独自にビルドもできる

基本的に「ちょっとChrome OS を使ってみたいな」

という方にはあまりオススメしませんが、今回初めて独自ビルドにも挑戦してみたので、ご紹介です。

簡単に使ってみたいという方は前回記事である

【第1回】chromebook の個人提供がなかなか来ないので chromium os をUSB ブートする

こちらを参考にされてください。

ビルドする環境は Ubuntu 12.04

今回ビルドするのに参照にしたサイトは、公式サイトです。

Chromium OS Developer Guide

ここで紹介されている手順で進めば上手く生きます。

ただ、ビルド環境の推奨が Ubuntu 12.04 だけというのは用意するのが面倒くさい・・・。

Xubuntu 14.04 で実行

他のサイトの記事などでは、Virtual Box などを利用して仮想環境にビルド環境を構築しているみたいですが、正直めんどくさいので今、個人的なメイン環境である Xubuntu 14.04 で実行しました。

独自ビルドしたものの、そのへんがちょっと中途半端です・・・。

Chrome os ビルドの手順

1,必要なツールのインストール(git,subversion)

2,depot_toolsのインストール

3,sudo の tty_tickets オプションをオフに

4,git の設定

5,ソース用のディレクトリを作成

6,ソースコードを取得

7,ビルド

8,イメージファイルの作成

といった手順になります。

基本的には公式ページの手順に沿っているだけです。

手順1 必要なツールのインストール

まずは、git などを準備します。

sudo apt-get install git-core gitk git-gui subversion curl

基本、インストールするのを待つだけ。

手順2 depot_tools をインストール

git で取得します。

git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git

ホームディレクトリ配下に depot_tools というディレクトリができます。

あとは、ここにパスを通しておきます。

vi. ~/.bashrc

で、ファイルを開いたら、最終行あたりに

PATH=”$PATH”:~/depot_tools

を追加しておきます。

手順3 sudo の tty_tickets オプションをオフに

Chrome os のビルドが正常に行われるようにするための設定です。

まず、tmp ディレクトリへ移動し、そこにファイルを作成して、実行権限を付与する流れ。

cd /tmp
cat > ./sudo_editor <<EOF
#!/bin/sh
echo Defaults \!tty_tickets > \$1          # Entering your password in one shell affects all shells 
echo Defaults timestamp_timeout=180 >> \$1 # Time between re-requesting your password, in minutes
EOF
chmod +x ./sudo_editor 
sudo EDITOR=./sudo_editor visudo -f /etc/sudoers.d/relax_requirements

手順4 git を設定

メールアドレスと、ユーザーネームを追加しておきます。

git config --global user.email "you@example.com"
git config --global user.name "Your Name"

手順5 ソース用のディレクトリを作成

ソースコードを取得する前にちょっと確認

64ビットマシンか確認。

uname -m

x86_64

と、出てくればOKです。自分のマシンが64ビットマシンであるという確証があれば必要ないかも。

仮に32ビットだった場合はビルドはできないようです。

ファイル作成時のパーミションの設定

umask 022
$ touch ~/foo
$ ls -la ~/foo
-rw-r--r-- 1 user group 0 2012-08-30 23:09 /home/user/foo

最終行が「-rw-r–r–」となっていればOK。

ここまできたらソースコードを格納するディレクトリを作成

mkdir -p ${HOME}/chromiumos

手順6 git を使ってソースコードを取得

今回は、とりあえず「最新バージョン」のソースを取ってきます。

この他、「安定版」のソースを取ってくることも可能です。

ただ、Xubuntu 14.04 では「最新版」はビルド出来ましたが、「安定版」はビルドできたんですが。出来上がった USB から起動できず。
※2014年8月15日現在 Chrome os の安定版は「36.0.1985.143」です。です。

cd ~/chromiumos
repo init -u https://chromium.googlesource.com/chromiumos/manifest.git --repo-url https://chromium.googlesource.com/external/repo.git
repo sync

結構時間がかかりますので、待ちます。

最終的に、「Your sources have been sync’d successfully.」

と、表示されたら OK です。

手順7 ビルドします

Chrome sdk を起動

cros_sdk

で起動します。

起動しない時は、depo_tools へのパスが通ってないかもしれません。パスを見直すか、depo_tools 内のcros_sdk までのパスを記述して、実行します。

これ以降、ターミナル画面の表記が若干変わると思います。

「~/trunk/src/scripts $ 」

今後は、この配下での作業となります。

ターゲットアーキテクチャの指定

Chrome OS を64ビット、32ビットマシンどれで動かすのか指定します。

64ビットの場合

export BOARD=amd64-generic
./setup_board --board=${BOARD}

32ビットの場合

export BOARD=x86-generic
./setup_board --board=${BOARD}

以上を実行します。

指定できると、

Done!
The SYSROOT is: /build/x86-generic

と、返ってきます。

chronosパスワードの設定

chrome os のシェルで利用するパスワードです。

./set_shared_user_password.sh

上記を実行し、あとはパスワードを入力してエンターです。

ここまで準備出来たら、あとは実行のみです。

 ./build_packages --board=${BOARD}

で、実行です。

だいぶ待ちます。

Merge complete
Done
Builds complete
INFO    : Elapsed time (build_packages): 120m44s
Done

なんて出てきたら、成功です。

手順8 イメージディスク作成

ビルドが完了したらイメージディスクを作成します。

./build_image --board=${BOARD} --noenable_rootfs_verification dev

これまた時間がかかりますのでしばらく待ちます。

USBにイメージを焼く

./image_to_usb.sh --board=${BOARD}

イメージディスクができたら、USBに焼きます。

上記のコマンドを実行すると、挿してあるUSBを自動で判別して、実行してくれます。

これが終われば完成です。

あとは、USBから起動すればOK。

最新版のビルドをしたものの・・・

一応、起動はしたものの個人的に残念なのは、ローカルのハードディスクを認識してくれない点。

第1回で紹介した配布されているものは安定版だとローカルのハードディスクを認識します。

安定版もビルドできれば良いんですが、Xubuntu が悪いのかビルドしても、完成した USB から起動できず・・・。

またすごい時間かかるので、あまり何回もしたくない。というのもあります。

とりあえず、Chromium OS が起動できる環境はあるので、第3回以降は実際の利用編としていきたいと思います。

スポンサーリンク

シェアする

フォローする

スポンサーリンク

コメント

  1. 竹内 秀次 より:

    記事を拝見し、色々と参考にさせて頂いております。
    当方もChromium OSのビルドにトライしています。
    しかし、UbuntuにもOSのビルドにも疎く 行き詰ってしまいました。
    もし可能なら教えて頂けないでしょうか?

    当方ではクライドのUbuntu上にビルド環境を作りました。
    手順8 イメージディスク作成の「イメージディスクを作成」まで出来たのですが、USBにイメージを焼く方法がわかりません。
    クライド上のOSで作業しているので、物理的にUSBメモリを挿すことが出来ないのです。
    これをどうやって取り出せば良いのか? そもそも作成されたイメージディスクが何処にどういう名前で保存されているのか? 判らないでおります。

    ご教示頂けると大変助かります。
    どうぞ宜しくお願いします。

    • ざかしんく より:

      コメントありがとうございます。

      手順 8 まで実行されたということですが。

      私は、ローカルのマシンで実行しているので、USBメモリー は自動認識してくれました。
      クラウド上の OS 作業ということでそれが難しい。
      ということですが、すいません。私の力量では判らないです・・・。
      せっかくコメントいただいたのに、お役にて立てず残念です。

      ただ、根本的なところでいうと、Chrome OS のビルド作業というのは手元の PC 端末にあわせた Chrome OS を作る作業。
      だと個人的には理解しています。
      Ubuntu 環境でビルドするものの、ビルドする過程でお手元の PC に合わせた Chrome OS が生成されるわけです。
      よって、クラウド上で作業してしまうと、その「クラウド上に構築された環境」に合わせた chrome OS をビルドしていることになるのではないでしょうか?
      そうすると、仮にイメージファイルを取り出せたとしても、それはお手元の PC では起動できないか、起動してもどこか不具合をもっていると推測されます。

      なぜなら、お手元の PC ではなく、クラウド上の環境にあわせてビルドしたものだからです。

      なので、可能であればローカルに環境を構築されることをおすすめします。

  2. 竹内 秀次 より:

    ご回答ありがとうございます。
    クラウド上で作業しようと考えた理由は、ビルド環境の構築に加えてオートアップデートの環境を作りたかったからなのです。
    Chromebookのようにネット上でアップデートできるように・・・
    もう少し勉強してみます。
    また情報交換させて頂けると幸いです。よろしくお願いします。