2019 年 10 月 23 日
Embedded Linux Conference Europe 2018 参加レポート
サイバートラスト社員が2018年10月末に開催された 組込み Linux のカンファレンス Embedded Linux Conference Europe 2018 (以下ELCE)に初めて参加してきました。ELCE の簡単な紹介と、カンファレンスで発表されたセッション、ELCE の後に開催された Linux のテストに関する会議 Automated Testing Summit(以下ATS)、そしてELCE2018 に合わせて行われた CIP ミーティングについて簡単にレポートします。
ELCEとは
ELCE は Linux Foundation が主催する組込み Linux をメインとしたカンファレンスの一つで、最先端の技術や最新トレンドなどの発表や議論が行われます。毎年2回、北米(春)と欧州(秋)で行われ、Open Source Summit Europe (以下OSSE)など他のイベントと同時開催し、数千名を集客するイベントとなっています。今年は10月22日から24日の3日間、スコットランドのエジンバラで開催され、今回同時開催された ELCE2018 や OSSE2018 では、合わせて300を超えるキーノートとセッションが行われました。
セッション紹介
上記で説明したように、ELCE と OSSE では多くのセッションが行われました。全部紹介することは難しいので、当社参加者が興味を持ったセッションを紹介します。
KernelCI: A New Hope for Regressions
Collabora の Ana Guerrero López氏によるによる Linux カーネルのテストに利用されている KernelCI についての発表です。KernelCI は最新の Linux カーネルツリーはもちろん、LTS カーネルのビルド・ブートテストに利用されている Linux カーネルで重要なプロジェクトの一つです。去年から開発が活発になっており、カーネルに問題があった場合、問題の原因となったコミットの特定を自動的に行う仕組みなどの機能が追加されています。今回の発表ではV4L2 サブシステム(Video4Linux2。Linux のビデオ関連のサブシステム)を例に、v4l2-utils を使ったマルチメディア機能のテストに関しての実装と提案が行われました。ハードウェアに関わる自動テストはまだ行われていない部分が多いため、これを機に他ハードウェアに関連したサブシステムの自動テスト対応が活発になると良いですね。
これとは別に KernelCI が Linux Foundation のプロジェクトになることも(さらっと)発表されました。現在メンバー企業を募集中のようなので、Linuxカーネルの自動テストに興味のある企業の方は KernelCI にコンタクトをとってみてはいかがでしょうか。
The GNSS Subsystem
Linux カーネル 4.19 で取り込まれたGNSS (Global Navigation Satellite Systems)サブシステムについて、メンテナーの Johan Hovold氏による発表がありました。
GNSS(GPS)では gpsd が利用されることが多く、GPSデバイスとホストPCをUSB等で接続し、ユーザー空間で処理されていました。しかし組込み機器にGPSデバイスを接続し、精密なデータを取得する場合、細かい電源管理やUSB以外のバス、クロックの制御が必要になります。今回取り込まれたGNSSサブシステムでは、これらをコントロールする機能を追加し、/dev/gnss インターフェイスを提供しました。またGNSSの通信プロトコルに関してはLinuxカーネルは取り込まず、ユーザー空間で処理する方法を取り、ベンダー固有のプロトコルもサポートできるようになっています。
今後の課題として、ラインスピードハンドリングや、ホットプラグ対応、他ソフトウェアとの連携などが挙げられ、カーネル・ユーザー空間共にまだまだ改良の余地があることがわかりました。
Embedded Linux on RISC-V Architecture - Status Report
じわじわと人気が出ている RISC-V アーキテクチャーの Linux 関連の報告が Khem Raj氏によって行われました。 現在は開発環境はほとんど揃っており、GCC は7.0以降、binutils は 2.28以降、glibc は2.27でポーティングされています。よって Linux ディストリビューションへのサポートの活動も活発となっており、Debian や Fedora で既に多くのパッケージが利用可能になっています、また組込み Linux でよく利用される OpenEmbedded でも RISC-V をサポートしたレイヤーが開発されており、利用可能となっています。
RISC-V の Linux の動作環境についても述べられました。Linux が起動する RISC-V の実機として、HiFive Unleashed が有名ですが、これは値段も高く入手性もよくありません。しかし QEMU で CPU と仮想ボードのサポートが追加されたため、利用できるハードウェアが少ない現状、QEMU は重要な開発プラットホームとなっていることも言及されました。
その他 GRUB、UEFI などのブートローダーの開発も開始されており、LLVM、Rust や Node.js のサポートも始まっています。まだまだ開発者が足りないとのことですので、興味のある方は参加してみてはいかがでしょうか。
Elivepatch: Flexible Distributed Linux Kernel Live Patching
当社からも Alice Ferrazzi と Takanori Suzuki がディストリビューションやカーネルバージョン等に依存しない livepatch 作成システムである Elivepatch に関する発表を行いました。
Elivepatch は2017年の Gentoo Google Summer of Code プロジェクトの一つとして始まりました。2017年度の Google Summer of Code は既に終了していますが、社員である Alice が、当社の OSS 開発に関する制度を利用して Elivepatch の開発は継続しています。
今回の発表では Elivepatch が開発された背景と、今後の課題について説明し、機能などについて議論されました。Elivepatch が開発される前は、livepatch システムは Linux ディストリビューション毎に存在し、多くの場合ディストリビューションで提供されている Linux カーネルをベースに live patch を作成する事がほとんどだったため、カスタマイズされたカーネルや異なったカーネルバージョンをサポートすることがあまり考慮されていないなど、live patch 作成処理に課題が多くある状況でした。Elivepatch はこれらの問題の解決に取り組み、RedHat の Kpatch メンテナーや他の開発者と協力して作業しています。
Elivpatch はできるだけパッチを自動的に作成することにより、live patch の変化に対応するように開発されています。ユーザーが設定したカーネルの情報とパッチを Elivepatch サーバーに送信する事で、live patch を作成し、Elivepatch のクライアントにインストールして利用できるようにしたことが特徴の一つです。これにより、ディストリビューションやカーネルバージョンに依存しない live patch を作成できるようになっています。
また Elivepatch は発展途上のプロジェクトであり、より精度の高い live patch の自動化システムの構築、Gentoo 以外の配布リリース、署名のサポート、CI / CDチェックの実装などの対応が必要なことが分かっています。
その他のセッションについて
ELCE/OSSEに関する一部の発表は発表資料と動画が公開されています。スケジュールから他のセッションが気になった方は、ぜひチェックしてみてください。
当社社員が GKernelCI (Gentoo kernel CI)の代表および Buildbot の仮代表として Automated Testing Summit(以下、ATS)に参加しました。
今回の ATS は Linux テストシステム Fuego の開発者であるTim Bird氏と KernelCI の開発者である Kevin Hilman氏によってプライベートイベントとして開催され、CIソフトウェアや所属している企業の代表としておよそ35名が参加し、Linux カーネルや Linux システムのCIやテスト内容等に関して議論しました。
ATS のメイントピックは共通の機能と問題、共同作業の方法を見つけるために情報交換と議論をすることでした。まずCIシステムで利用さる単語の統一化などを議論しましたが、各 CI のソフトウェアによって仕組みや実装目的が異なるため、話を進めることが困難でした(例: DUT)。また共通のテスト内容や利用するソフトウェアの共通化についても議論され、電源コントロールを行う PDU(Power Distribution Units)に関して、よく利用される pdudaemon を共通で使用することなど、いくつかの方針が決定しました。その他ディスカッションの時間もありましたが、ディスカッションに必要なトピックは多すぎて時間切れになり、議論されなかったトピックはメーリングリストに移されることになりました。また議論中に出たアクションアイテムも公開されています。どのような会話がされたのか興味のある方は Wiki にまとまっていますので参照してください。
来年のELCEでもATSが開催される予定になっており、今度はオープンなイベントとなりそうです。他社でどのようなテストやシステムを使っているのか、Linux特有のテストに関する問題などに興味のある方は次回から参加を検討してみてはいかがでしょうか。
CIP ミーティング
当社もメンバーとして開発に参加している CIP(Civil Infrastructure Platform)ですが、ELCE 会期中に F2F(face-to-face)ミーティングが行われました。今回のミーティングでは、arm64 アーキテクチャーのサポート、制御システムのセキュリティに関する国際基準である IEC62443-4-2 のサポートなどについて議論されました。この結果、CIP では arm64 のサポート SoC としてルネサスエレクトロニクス社製の SoC が搭載されたボードのサポートなどが決定されています。またカーネルチームミーティングも行われ、新しく CIP のカーネルメンテナーとなった当社社員の岩松と他のカーネルチームメンバーとの今後の方針などについて議論しました。これまでは各メンテナーの持つ git リポジトリでカーネルソースコードを管理していましたが、CIP カーネルチームとして git.kernel.org にチームリポジトリを作成し、リポジトリの統一や CIP 管理パッチの管理方法などの改善を行いました。
今回のミーティングはプロジェクトメンバーのみによるものだったため、ブログに詳細を書く事ができないのですが、また何か新しい公開可能な情報がありましたら、ブログなどで情報発信していこうと考えております。
最後に
年次で行われている ELCE と OSSE に、初めての参加となりましたが、当社から発表者としても参加することができました。今回は多くの発表の聴講やOSS開発者との交流もでき、Linux カーネル開発者である Linus Torvalds 氏がLinux カーネルの開発から一時的に離れ、ELCE会期中に復帰というイベントもあったりなど、大変有意義なイベントでした。今後も継続して発表および参加できるようにしていきたいと考えております。
次回の ELC ですが、北米で開催される ELC はサンディエゴで、2019年8月21日から8月23日、欧州ではフランスのリヨンで2019年10月28日から10月30日の間、開催されることが決定しています。
当社はこれらの他にもイベントに参加し、情報発信する予定です。今後ともサイバートラストの取り組みにご期待ください。