Linux Zaurus/PDA事情

第6回オープンソースセミナー

2004/09/11

野首貴嗣

takatsugu.nokubi@toppan.co.jp

knok@linux.or.jp

knok@fsij.org

Agenda

Linux Zaurus概要

Qt/Embedded

Qtopia

OPIE

PDAでのGNU/Linux利用の利点

PDAでのGNU/Linux利用の問題点

Linux Zaurus概要

シャープより販売されているPDA

StrongArm系 SL-5500,5600

アメリカ、ドイツでのみ販売

XScale系 SL-A300,B500,C700,C760,C860,SL-6000

A, B, Cシリーズは日本でのみ販売

SL-6000は日本、アメリカで販売

共通仕様

Linux 2.4系カーネルの採用

OpenPDA/Metrowerks

旧EmbeddedLinux/Lineo

SDカードスロットドライバあり(バイナリのみ)

GUI toolkit: Qt/Embedded 2.3

Trolltech開発 (シャープの独自改良あり)

PIM環境: Qtopia 1.5

Trolltech開発 (シャープの独自改良あり)

toolchain: gcc 2.95

Qt/Embedded

Trolltechが開発したGUI Toolkit

Qt/X11を改良し、組込み向けにしたもの

Qt2をベースとしている

いくつかの機能をQt3からバックポート

現在のQtにはない機構をもつ

Input Method plugins

ソフトウェアキーボード、手書き入力、かな漢字変換処理などをプラグインとして実装可能

プラグインは多段に接続可能

ソフトウェアキーボード-かな漢字変換 等

Qt/Embedded開発環境

Qtの開発環境がそのまま利用できる

GUIを設計するQt Designer

フリー版クロス開発環境

armv4l向けtoolchain(gcc, binutils)

GPL版Qt/Embedded

商用版開発環境

Metrowerks CodeWarrior Development Studio

Qt/Embedded Pro(非GPL)付属

Qtopia

Trolltechが開発したPIM環境

ランチャ

スケジューラ

アドレス帳

ToDo管理

メモ帳

GPL版と商用版がある

ABI互換性を持つ

PDA Edition, Phone Editionがある

デスクトップとの連携

Qtopia Desktop

TrollTech開発のデスクトップ用ソフトウェア

ソース非公開

開発キットが公開されており、plugin開発が可能

Windows, Linux 用バイナリがある

Qtopiaとスケジュール等の同期ができる

multisync

http://multisync.sf.net/

さまざまなアプリケーション間の同期が可能

Evolution

OPIE

Open Palmtop Integrated Environment

Qtopiaから派生したソフトウェア

GPL

http://opie.handhelds.org/

さまざまな機種で動作

Linux Zaurus

iPAQ

Jornada (700系)

Qtopia上でOPIE applicatiomも動作

Qtopiaとの互換性を重視

OPIE派生の経緯

QtopiaはTrollTechがサポートするプラットフォームに限定される

多くの機種に対応させるためには改良が必要

TrollTechに改良部分を提出するのは労苦を伴う

著作権の譲渡を求められる

商用版Qt/Embedded, Qtopiaの存在のため

GNU/Linuxの利点

他のアーキテクチャへの移植性が高い

ARM系CPUを標準でサポート

さまざまなプロトコルスタックを持つ

TCP/IP

IrDA

Bluetooth

自由な開発環境の存在

gcc, binutils

利点を生かした例

OpenZaurus Project

日本語版Zaurusを海外で利用

OPIEベース

C700,C760,C860で動作している

Zaurus-ja Project

海外版Zaurusの日本語化

SL-5500で動作している

日本語版が販売され初めてから活動停滞

利点を生かした例

C860のUSB Storage機能の移植

シャープは独自改良したカーネルソースを公開している

それをもとにC700,C760に移植http://paipai.org/~humorum/pukiwiki/pukiwiki.php?ZaurusUsbStorage

GNU/Linuxの問題点

カーネル、基本的なユーザランドの多くがGPL

改良した部分のソースコードを秘匿できない

流出させられないノウハウがあるなら、ソースコード改良以外の方法をとらなければならない

SDドライバのようにバイナリモジュール化

ソフトウェアを外注する場合、外注先もGPLを理解している必要がある

toolchainの互換性問題

toolchain互換性問題

C++ ABI互換性問題

gcc 3.2とそれ以前で互換性がない

gcc 3.4でまた変わる(予定)

対応アーキテクチャ問題

XScale対応はgcc 3から

gcc 2.95ではStrongARM対応コードしか生成できない

StrongARM向けのバイナリはXScaleでも動作するが、パフォーマンスが劣る

問題の具体例

バイナリ互換性の担保

Zaurusは全てgcc 2.95, Qtopia 1.5に統一

パフォーマンスが犠牲になる

OPIE/OpenZaurusとの共存問題

gcc 2.95版とgcc 3.3版のバイナリを用意

製品版アプリケーションと共存させたい人はgcc 2.95版を使う

そうでなければgcc 3.3版を使う

バイナリモジュール問題

OpenZaurusでも、SDカードドライバはシャープ製のバイナリモジュールを利用

SDカード部分の仕様は未公開

SDコンソーシアムとNDA契約を結ぶ必要がある

バイナリモジュールにもABI互換性問題がある

シャープが公開しているバージョンのカーネルをベースにせざるをえない

最新のカーネルが提供する機能はそのままでは使えない

まとめ

Linux Zaurus周辺の諸事情を紹介

GPL版と商用版を提供するTrollTech

ビジネスとしてうまく機能

GPL版からの派生発生は避けられない

GNU/Linuxを用いることの利点、問題点を紹介

GPLによるソース公開の義務

ユーザからみれば利点だが、ベンダから見れば欠点となることがある

ビジネスユースでは、互換性を最大限担保しなければならない

その分他のものが犠牲に

参考

ザウルス宝箱Pro

http://developer.ezaurus.com/

Qt/Embedded, Qtopia

http://www.trolltech.com/download/qt/embedded.html

http://www.trolltech.com/download/qtopia/index.html

OpenZaurus

http://www.openzaurus.org/

Zaurus-ja

http://zaurus-ja.sourceforge.jp/

2004-08-06T10:38:16