2012年02月23日
ABSとELCのセッションをひとことずつ紹介
先日レッドウッドシティで開催されたAndroid Builders SummitとEmbedded Linux Conferenceのセッションのスライドとビデオが公開されています。
私が聴いたセッションをひとことずつ紹介します。(日本から行った人のセッションは次回のテクニカルジャンボリーで聴けることを期待して、なるべく他のものを聴きました。)
Android Builders Summit 2/13 - 2/14
Integrating Projects Using Their Own Build System Into the Android Build System
Botao Sun, Linaro
https://events.linuxfoundation.org/images/stories/pdf/lf_abs12_sun.pdf
Androidに、BuildRootプロジェクトにあるbusyboxをビルドして組み込むときのやり方。
Android Device Porting Walkthrough
Benjamin Zores, Alcatel-Lucent
https://events.linuxfoundation.org/images/stories/pdf/lf_abs12_zores.pdf
多機能のビジネスホンをAndroidベースで開発したときに得たノウハウからのAndroidのポーティングのコツを紹介。幅広くカバーしている。おすすめ。
Headless Android
Karim Yaghmour, Opersys
http://www.cyborgstack.org/sites/default/files/headless-android-120214.pdf
AndroidをGUI無しで使用する実験。
ActivityはGUIと密接に結びついているので使えないが、Serviceは使用可能。amコマンドでServiceを起動する。
WindowManagerとSurfaceFlingerを起動しないようにすることでうまくいった。
Android on eMMC: Optimizing for Performance
Tom Foy, Intrinsyc
https://events.linuxfoundation.org/images/stories/pdf/lf_abs12_foy.pdf
eMMCはシーケンシャルなreadとseekは速いがランダムアクセスのwriteが遅い。キャッシュすることで弱点をカバーできる。
Write性能に注目して、EXT4, BTRFS, NILFS2のファイルシステムを比較。結論としてはEXT4がよい。バッテリーで動く機器は瞬電が無いのでジャーナリングは使用しなくてもそれほど危険ではない。使用するとしてもメモリ上に置くので十分。
Real-Time Android
Wolfgang Mauerer, Siemens
https://events.linuxfoundation.org/images/stories/pdf/lf_abs12_mauerer.pdf
産業機器にAndroidを使うため、LinuxカーネルにRTパッチをあてたものを使う話。
Improve Android System Component Performance
Jim Huang, 0xlab
https://events.linuxfoundation.org/images/stories/pdf/lf_abs12_huang.pdf
グラフィックス、ランタイム、ブートタイムのチューニングの話。おすすめ。
AndroidXRef: Speeding up the Development of Android Internals
Rodrigo Chiossi, Samsung
https://events.linuxfoundation.org/images/stories/pdf/lf_abs12_chiossi.pdf
オンラインで利用できるLinux カーネルのクロスリファレンス lxr.linux.no が非常によいので、Androidのソースも同様にアクセスできるようにした。
http://androidxref.com/source/
OpenGrok を使用している。
Embedded Linux Conference 2/15 - 2/17
What Android and Embedded Linux Can Learn From Each Other
Bernhard Rosenkranzer, Linaro
https://events.linuxfoundation.org/images/stories/pdf/lf_elc12_rosenkranzer.pdf
Androidは通常のLinuxと何が違うかということの話。さらに通常のLinuxにあるパッケージやセルフビルドをどうやったらAndroidに取り込めるかという話。
Binary Blobs Attack
Zach Pfeffer, Linaro
https://events.linuxfoundation.org/images/stories/pdf/lf_elc12_pfeffer.pdf
GPUのデバイスドライバなどバイナリでしか提供されないものがいかに開発を阻害するかということを小芝居を交えてのアピール。
Multiarch and Why You Should Care: Running, Installing and Crossbuilding With Multiple Architectures
Wookey, Linaro
https://events.linuxfoundation.org/images/stories/pdf/lf_elc12_wookey.pdf
Debianで導入されてUbuntuにも入ったmultiarchの話。/usr/lib/libfoo は /usr/lib/x64-linux-gnu/libfoo や /usr/lib/arm-linux-gnueabi/libfoo のようにアーキテクチャを含むディレクトリに置く。これによって複数のアーキテクチャが共存できるようになる。armelとarmhfも共存できる。クロスコンパイルも容易になり、ユーザーモードQEMUを使って実行もできる。
Experiences With Device Tree Support Development For ARM-Based SOC's
Thomas P. Abraham, Samsung Electronics
https://events.linuxfoundation.org/images/stories/pdf/lf_elc12_abraham.pdf
混沌としたARMのカーネルソースを整理するのに不可欠なDevice treeの話。簡単な具体例を示しながら説明しているのでわかりやすい。
Buildroot: A Nice, Simple, and Efficient Embedded Linux Build System
Thomas Petazzoni, Free Electrons
https://events.linuxfoundation.org/images/stories/pdf/lf_elc12_petazzoni.pdf
Buildrootの話。よくまとまっているので、Buildrootを使うなら、その前のこれを見ておきたい。
fakerootコマンドを使ってルートファイルシステムを生成するのでrootで作業する必要は無い。makedevでstaticな/dev/を作っておくこともできる。
Embedded-Appropriate Crash Handling in Linux
Tim Bird, Sony Network Entertainment
https://events.linuxfoundation.org/images/stories/pdf/lf_elc12_bird1.pdf
組み込み機器はCPUもストレージも余裕がないので、デスクトップやサーバ用のクラッシュダンプツールがそのままでは使えない。Androidのdebuggerdをベースにして組み込み機器の製品開発の現場で必要な機能をいれたクラッシュダンプツールを作成中。
http://elinux.org/Crash_handler
ARM Subarchitecture Status
Arnd Bergmann, Linaro
https://events.linuxfoundation.org/images/stories/pdf/lf_elc12_bergmann.pdf
ARMのカーネルソースの現状からこれから。Serverや64bit化やUnified kernel。
Using virtio to Talk With Remote Processors
Ohad Ben-Cohen, Wizery / Texas Instruments
https://events.linuxfoundation.org/images/stories/pdf/lf_elc12_ben-cohen.pdf
SoCには複数の種類のCPUが入っていることが多い。Cortex-A9とCortex-M3など。このような非対称マルチプロセッサのプロセッサ間の通信には共有メモリ等を使うことになるが、ここにlibvirtを利用できる。
LAVA Project Update
Paul Larson, Linaro
https://events.linuxfoundation.org/images/stories/pdf/lf_elc12_larson.pdf
自動テストの話。ARM Ubuntuではターゲット側でテストをコンパイルして実行してレポートするしくみになっている。操作はCUIとWeb UIがある。
Userland Tools and Techniques For Linux Board Bring-Up and Systems Integration
Hunyue Yau, HY Research LLC
https://events.linuxfoundation.org/images/stories/pdf/lf_elc12_yau.pdf
新しいボードにカーネル、デバイスドライバをポーティングするときに、GPIOやI2C, SPIなどをいじることになるが、これをユーザーランド側のツールを使ってつつく話。おすすめ。
Useful USB Gadgets on Linux
Gary Bisson, Adeneo Embedded
https://events.linuxfoundation.org/images/stories/pdf/lf_elc12_bisson.pdf
USB Gadgetsのしくみとデモ。興味深い。
Producing the Beaglebone and Supporting It
Koen Kooi, The Angstrom Distribution
Beagle boardよりもさらに小さいBeagleboneの紹介と活用方法。
Bonescript: Arduino like API, exposes GPIO, I2C, PWM, ADC and more
Pin Control Subsystem Overview
Linus Walleij, ST-Ericsson
https://events.linuxfoundation.org/images/stories/pdf/lf_elc12_walleij.pdf
SoCを使うときに必ず理解が必要なピンコンフィグの話。KZM-A9-Dualにポーティングしたときにはこのあたりをよくわかっていなかったために時間がかかってしまった。
Managing Kernel Modules With kmod
Lucas De Marchi, ProFUSION Embedded Systems
https://events.linuxfoundation.org/images/stories/pdf/lf_elc12_marchi.pdf
insmod, rmmodコマンドの機能をライブラリ化して、fork&execしなくてもこれらの機能を使えるようにする話。systemdなどではすでに利用されている。
全般的な感想
- Linaroの発表者が多い。実際に作業をしているので実質的な内容で面白い。
- multiarchやdevice treeなど理解があいまいだったものがクリアになった。
- 組み込みLinuxでのAndroidの存在の大きさ。2日間のABSはAndroidが主題なのでもちろんのこと、その後のELCでもAndroidの話題が多くでてくる。
- Googleの不在。スポンサーになっていないだけでなく、Googleの発表者は一人もいない。逆の言い方をすると、組み込み分野のAndroidはGoogleとは無関係に進んでいくようだ。