ChromiumOSをビルドする方法 (2021/08/10)

通常よりダウンロードが早くなってます。ちなみに、okaitsのPCは処理能力が足りずにフリーズしてしまったので、成功の保証はできません。

作業フォルダを作る

作業フォルダを作ります。

cd $HOME
umask 022
mkdir -p google/chromiumos

依存ソフトのインストール

ビルドに必要なソフトのインストールです。

sudo apt-get install git-core gitk git-gui curl lvm2 thin-provisioning-tools python3-pkg-resources python3-virtualenv python3-oauth2client xz-utils python3.6

depot_tools導入

depot_toolsとは、ソースコードのダウンロードなどに使う「repo」コマンドなどをまとめたツールセットです。
導入は簡単です。

cd ${HOME}/google/
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
echo 'export PATH="${HOME}/google/depot_tools:${PATH}"' >> ${HOME}/.bashrc
source ${HOME}/.bashrc

ソースコードのダウンロード

ソースコードのダウンロードです。普通めっちゃ時間かるんですが、なんと--depth=1というオプションをrepo initコマンドにつけ足すと、ものすごく速くなります。

cd ${HOME}/google/chromiumos/
repo init -u https://chromium.googlesource.com/chromiumos/manifest.git --repo-url https://chromium.googlesource.com/external/repo.git --depth=1
repo sync -j4
??? note "速くなる理由"

ちなみに、なぜ--depth=1オプションをつけると速くなるというと、Gitには変更履歴を保存する機能があって、デフォルトではその変更履歴が一からダウンロードされます。Chrome OSのような変更履歴がものすごく多いレポジトリは、もちろんダウンロードに時間がかかります。そこで、--depth=1オプションをつけると変更履歴が最後から1番目までしかダウンロードされません。なので、速くなるわけです。ちなみに、gitコマンドでも使えます。


??? warn

すみません間違ってるかもしれません。


Google APIの設定

Google APIを設定してChromium OSからログインできるようにします。
まず、ここに参加します。
参加したら、ここへ行って、左上の「My First Project」をクリックします。
そしたら、右上の「新しいプロジェクト」をクリックして、適当に名前をつけて作成してください。
それができたら、左上の「My First Project」をもう一度クリックして、自分でつけた名前が表示されているところの読み込みが終わるまで待ちます。
読み込みが終わったら、そこをクリックしてください。
そしたら、上の検索ボックスに、次の文字例をいれ、有効化してください。

  • Cloud Search API
  • Geolocation API
  • Google Drive API
  • Safe Browsing API
  • Time Zone API
  • Admin SDK API
  • Geocoding API
  • Google Assistant API
  • Google Calendar API
  • Nearby Messages API

終わったら、左のメニューの「APIとサービス」、「認証情報」の順にクリックしてください。
そして、「+ 認証情報を作成」、「OAuth クライアントID」、「同意画面の設定」の順にクリックし、
「外部」を選択し、「作成」をクリックしてください。
そして、アプリ名に適当な名前を入力し、ユーザーサポートメールとデベロッパーの連絡先情報に自分のメールアドレスを選択し、「保存して次へ」をクリックします。
そして、「スコープを追加または削除」ボタンを押し、すべてにチェックをつけ、「更新」を押します。
そして、「保存して次へ」を押します。
そして、「+ ADD USERS」ボタンを押し、Chromium OSにログインするユーザーのメールアドレスを入力して、「追加」ボタンを押してください。
そして、「保存して次へ」を押し、「ダッシュボードに戻る」ボタンを押してください。
そしたらまた、「+ 認証情報を作成」、「OAuth クライアント ID」の順にクリックし、
アプリケーションの種類に「デスクトップ アプリ」、名前に適当な名前をつけて作成してください。
そしたら、クライアントIDとクライアントシークレットが出るので、どこかに保存してください。
そしたらまた「+ 認証情報を作成」、「API キー」の順にクリックしてください。
そしたら、APIキーが出てくるので、保存してください。
そしたら、これを実行してください。

api=[メモしておいたAPIキー]
clientId=メモしておいたクライアントID
clientSecret=メモしておいたクライアントシークレット
echo "'google_api_key': '"${api}"'," > ${HOME}/.googleapikeys
echo "'google_default_client_id: '"${clientId}"'," >> ${HOME}/.googleapikeys
echo "'google_default_client_secret': '"${clientSecret}"'," >> ${HOME}/.googleapikeys
↑ 編集できるようになってます。コピーする前に最初のところのAPIキーとクライアントID,シークレットだけ書き換えたほうがいいと思います。

ビルド

いよいよビルドです。

cros_sdk
export BOARD=amd64-generic
setup_board --board=${BOARD}
./set_shared_user_password.sh
./build_packages --board=${BOARD}
./build_image --board=${BOARD} --noenable_rootfs_verification test
これで終わりです。