Open webOSをUbuntu上で動かしてみました

2012/09/10

もう覚えているかたも少ないかもしれませんが、スマートフォンがここまで一般的になる前にPDAの一時代を築いたPalmというガジェットがありました。

今まで個別の道具で管理していたスケジュール・アドレス帳・メモ・時計・電卓などを一元管理できるデバイスの登場によりビジネスパーソンを中心にかなり普及しました。

そのPalmを動作させるためのPalm OSが紆余曲折あって今はオープンソースのOpen webOS(以下、webOS)になっています。

とあるニュースでこのwebOSのベータ版がUbuntu上のデスクトップ環境として動作させられることを知ったのでメインマシンのUbuntu 12.04上で動作させてみました。

以下にそのセットアップメモを残しておきます。手順はhttps://github.com/openwebos/build-desktopに書いてあります。

webOSが動作するのに必要なパッケージを事前にインストール

かなり大量ですが、apt-getでパッケージ間の依存関係などもお任せで簡単に導入できます。いい時代になりました。

% sudo apt-get update

% sudo apt-get install git git-core pkg-config make autoconf libtool g++ \
tcl unzip libyajl-dev libyajl1 qt4-qmake libsqlite3-dev curl

% sudo apt-get install gperf bison libglib2.0-dev libssl-dev libxi-dev \
libxrandr-dev libxfixes-dev libxcursor-dev libfreetype6-dev \
libxinerama-dev libgl1-mesa-dev libgstreamer0.10-dev \
libgstreamer-plugins-base0.10-dev flex libicu-dev

% sudo apt-get install libboost-system-dev libboost-filesystem-dev \
libboost-regex-dev libboost-program-options-dev liburiparser-dev \
libc-ares-dev libsigc++-2.0-dev libglibmm-2.4-dev libdb4.8-dev \
libcurl4-openssl-dev

% sudo apt-get install xcb libx11-xcb-dev libxcb-sync0-dev \
libxcb1-dev libxcb-keysyms1-dev libxcb-image0-dev libxcb-render-util0-dev \
libxcb-icccm1-dev
:
パッケージ libxcb-icccm1-dev はデータベースには存在しますが、利用できません。
おそらく、そのパッケージが見つからないか、もう古くなっているか、
あるいは別のソースからのみしか利用できないという状況が考えられます
しかし、以下のパッケージで置き換えられています:
  libxcb-icccm4-dev

ここで上記のメッセージとともにlibxcb-icccm1-devがインストールできないと告げられるので、かわりにlibxcb-icccm4-devをインストールします。

% sudo apt-get install xcb libx11-xcb-dev libxcb-sync0-dev \
libxcb1-dev libxcb-keysyms1-dev libxcb-image0-dev libxcb-render-util0-dev \
libxcb-icccm4-dev

% sudo apt-get build-dep qt4-qmake

webOSインストール用ディレクトリ作成

ディレクトリは任意の場所でいいのですが、ここではホームディレクトリ配下にwebosディレクトリを作成してそこにインストールするものとします。

% cd
% mkdir webos
% cd webos

ビルド用ファイル一式を入手してビルド

まずhttps://github.com/openwebos/build-desktopよりzipファイルを入手し、先ほどのwebosディレクトリ配下に展開します。

% unzip openwebos-build-desktop-7-1-ga260441.zip
% cd openwebos-build-desktop-a260441

続いてビルドを行いますが、かなり時間がかかります。

% ./build-webos-desktop.sh

今となってはかなり非力なIntel Core 2 Duo 2.80GHzのマシンで2時間半かかりました。

ビルド物は~/luna-desktop-binariesに配置されます。

インストール

最後にインストールスクリプトを実行して完了です。

% sudo ./install-webos-desktop.sh 

ビルドに比べてインストールはあっさり終わります。

理由は単に以下のシンボリックリンクを張っているだけだからです。

/etc/palm -> ~/luna-desktop-binaries/rootfs/etc/palm/
/etc/ls2 -> ~/luna-desktop-binaries/rootfs/etc/ls2/

/usr/palm -> ~/luna-desktop-binaries/rootfs/usr/palm/
/usr/lib/luna -> ~/luna-desktop-binaries/rootfs/usr/lib/luna/
/usr/share/ls2/roles -> ~/luna-desktop-binaries/rootfs/usr/share/ls2/roles/
/usr/share/ls2/services -> ~/luna-desktop-binaries/rootfs/usr/share/ls2/services/
/usr/share/ls2/system-services -> ~/luna-desktop-binaries/rootfs/usr/share/ls2/system-services/

/var/db -> ~/luna-desktop-binaries/rootfs/var/db/
/var/luna -> ~/luna-desktop-binaries/rootfs/var/luna/
/var/file-cache -> ~/luna-desktop-binaries/rootfs/var/file-cache/
/var/palm -> ~/luna-desktop-binaries/rootfs/var/palm/
/var/usr/palm -> /home/neo/luna-desktop-binaries/rootfs/var/usr/palm/

起動

インストールが終わったらサービス起動スクリプトを実行します。

まずservice busを起動します。

% ./service-bus.sh start

これによりls-hubdデーモンが2つ起動します。

ls-hubd --conf ~/luna-desktop-binaries/rootfs/etc/ls2/ls-private.conf
ls-hubd --public --conf ~/luna-desktop-binaries/rootfs/etc/ls2/ls-public.conf

続いてnative webOS servicesを起動します。

% ./service-bus.sh services

これにより以下のサービスが起動します。

/usr/lib/luna/LunaSysService
/usr/lib/luna/filecache
/usr/lib/luna/activitymanager
/usr/lib/luna/mojodb-luna -c /etc/palm/mojodb.conf /var/db

最初の起動時はデフォルトアカウントの作成が必要です。

% ./service-bus.sh init

最後にwebOS System Managerを起動します。

% ./run-luna-sysmgr.sh

しばらく待って、デスクトップに以下のような画面が出現すればセットアップ完了です。

サービスを停止するには以下を実行すれば関連プロセスが全て終了します。

% ./service-bus.sh stop

使い勝手と雑感

右下の矢印アイコンをクリックするとアプリ一覧が表示されます。

Webブラウザ、メーラ、カレンダーなど一般的なアプリが用意されています。

あとはスマートフォンなどと同じ要領で操作していきます。

起動したアプリはフルスクリーン表示され、画面下部のホームボタンを押すと一覧表示に切り替わります。

アプリを終了させるにはアプリをつかんで上か下に持っていくだけです。直感的ですね。

ここまで完成度が高いにも関わらずスマートフォンが登場すると徐々に市場から姿を消していきました。

やはりスマートフォンのように電話アプリというキラーアプリを搭載していなかったことや、このOSが快適に動作するスペックをハードウェアが満たす前に製品として出荷してしまったことなどが広く普及しなかった要因だと思います。

Palm OSが現実的な機能とタイミングで出荷されていればスマートフォン市場も今とは様子が変わっていたかもしれません。

そんなことを想像するのも楽しいですね。