はじめに
2017年7月6日の記事で紹介した通り、クリアコードは組み込みLinux向けにMozilla Firefoxを移植するプロジェクトGecko EmbeddedをWebDINO Japan(旧Mozilla Japan)様と共同で立ち上げ、開発を進めております。Yoctoを使用してFirefoxをビルドしたりハードウェアクセラレーションを有効化する際のノウハウを蓄積して公開することで、同じ問題に悩む開発者の助けになることを目指しています。
この記事では、Gecko Embedded本体ではなく周辺のミドルウェアのFluent Bitを移植した話を書きます。 Fluent Bitは、センサなどの組み込み機器向けのデータコレクタで、Fluentdより軽量です。
現在のステータス
ターゲットボード
1月時点では、fluent-bitのビルド及び動作は以下のボードで確認しています。
-
Raspberry Pi 3 Model B
ビルド方法
レシピはGitHubにて公開しています。https://github.com/clear-code/meta-fluent
Yoctoに組み込むには、meta-fluentを git clone
したのち、(bitbakeのビルドディレクトリ)/conf/local.confへ
IMAGE_INSTALL_append = " fluent-bit "
(bitbakeのビルドディレクトリ)/conf/bblayers.confへ
BBLAYEYS += " ${TOPDIR}/../meta-fluent "
をそれぞれ追加し、bitbakeを実行します。
また、fluent-bit本体にもYoctoレシピがありましたがx86_64向けのビルドしかされていないようだったため、armv7hまたはaarch64向けのクロスビルドが通らないことをIssueにしました。
このIssueはこのpull requestによって解決済みです。
動作確認
fluent-bitを上記の設定ででビルドした場合、fluent-bit
コマンドが起動イメージにインストールされます。
$ fluent-bit -i dummy -o stdout
Fluent-Bit v0.12.10
Copyright (C) Treasure Data
[2017/12/27 14:04:42] [ info] [engine] started
となれば動作確認は完了です。 設定ファイルの書き方やどのようなプラグインがあるかはFluent Bitの公式サイトのドキュメントを参照してください。
まとめ
fluent-bitをarmv7hとaarch64がターゲットのYoctoレシピに載せ、RZ/Gシリーズのボードに載せた話を紹介しました。 ARMなどの組み込み向けボードはPCに比べてリソースの制約がありますが、fluent-bitではFluentdよりも軽量のため、リソース不足により動作が遅くなることは少ないでしょう。