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の使い方
基本的な使い方はこのビデオを見ればわかります。
おおまかな流れとしては
- New Projectで新規プロジェクトを立ち上げて、プロジェクト名・Yoctoのバージョンを選択
- Image recipesからビルドしたいイメージを選択(Add layer)する(これによって依存レイヤーが全て追加されるので楽)
- その他に追加したいレシピがあれば、Software recipesから探して同じように追加する
- Configurationでビルドターゲットマシン(Machine)を選択する
- 必要があればbitbake variablesからBitbake変数を編集する。
- 右上のType the recipe you want to buildと書かれているテキストボックスにビルドしたいレシピを入力し、ビルド
となっています。
まだ、本格的に使用できていませんが、少し触ったから感触からはかなり使いやすいツールだと思います。
新しいレシピを試してみたり、新しいボードをビルドするときはlocal.conf
やbblayers.conf
をあっちゃこっちゃすることも多く、結構時間がかかっていたのですが、Toasterでは一画面でそれらの操作を完結出来るため、効率アップが期待できそうです。
Yoctoの最も悩ましい側面であるビルドエラーもそこそこ見やすいので、現状満足しています。