yocto

Yocto GUIツール Toasterを使ってみた

Yocto GUIツール Toasterを使ってみた

Toasterとは

ToasterはYoctoの操作をGUI(ブラウザ上)で行うためのツールです。
Yoctoはビルドにかなりの時間がかかる(以前かなりの低スペでビルドを走らせた時に完了まで4日かかったことがある、普通は6時間ほど)上に、ビルドをするたびにガッツリストレージを食っていく(50GBくらい)ため、Yocto専用のサーバーを立てて、そこでビルドを行うことも多いでしょう。
そういった時にToasterを使えば、いちいちsshログインせずにビルドを走らせることが出来るので、効率が上がるのではないかと思い、今まで存在は知っていても触っていなかったToasterを使ってみることにしました。

Toasterのセットアップ・起動

セットアップ・初回起動

Toasterの依存しているパッケージをインストールします。
必要なパッケージはpoky/bitbake/toaster-requirements.txtに書いてあるので、それを使います。

以下では、/home/user/work下にpokyディレクトリ(や他のレイヤーディレクトリ)があると仮定しています。

$ sudo apt-get install python3-pip
$ pip3 install --user -r /home/user/work/poky/bitbake/toaster-requirements.txt

次にToasterを起動します。
Toasterの起動はbuildディレクトリ内で行います。
buildディレクトリ内でsource toaster startで起動、source toaster stopで停止です。

$ cd /home/user/work
$ source poky/oe-init-build-env
$ source toaster start

初回起動時はレイヤー情報等を読み込むため起動まで時間がかかるようです。
次のような画面が表示されます。

The system will start.
Check if toaster can listen on localhost:8000
OK
Operations to perform:
<snip>
-2017-12-24 16:36:24,758 INFO Fetching metadata releases for morty HEAD
Updating Releases 100%
<snip>
You can now run 'bitbake <target>' on the command line and monitor your build in Toaster.
You can also use a Toaster project to configure and run a build.

Successful start.

Successful startが表示されたら、http://localhost:8000を見るとToasterを起動できます。

IPアドレス・ポートを指定して起動

IPアドレス・ポートを起動時に渡してやることでIPアドレス・ポートを指定して起動することができます。
次のようにwebport=<IPアドレス>:<ポート>で指定できます。

$ source toaster stop #Toasterを既に起動していたら停止する
$ source toaster start webport=192.168.0.xx:8000

Toasterの使い方

基本的な使い方はこのビデオを見ればわかります。
おおまかな流れとしては

  1. New Projectで新規プロジェクトを立ち上げて、プロジェクト名・Yoctoのバージョンを選択
  2. Image recipesからビルドしたいイメージを選択(Add layer)する(これによって依存レイヤーが全て追加されるので楽)
  3. その他に追加したいレシピがあれば、Software recipesから探して同じように追加する
  4. Configurationでビルドターゲットマシン(Machine)を選択する
  5. 必要があればbitbake variablesからBitbake変数を編集する。
  6. 右上のType the recipe you want to buildと書かれているテキストボックスにビルドしたいレシピを入力し、ビルド

となっています。

まだ、本格的に使用できていませんが、少し触ったから感触からはかなり使いやすいツールだと思います。
新しいレシピを試してみたり、新しいボードをビルドするときはlocal.confbblayers.confをあっちゃこっちゃすることも多く、結構時間がかかっていたのですが、Toasterでは一画面でそれらの操作を完結出来るため、効率アップが期待できそうです。
Yoctoの最も悩ましい側面であるビルドエラーもそこそこ見やすいので、現状満足しています。


参考資料

Toaster Usetr Manual