スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
Date: --.--.-- Category: スポンサー広告   

VNC2DL

DisplayLink で X を表示させる方法ですが、libdlo の ML アーカイブ に xinerama を有効にすることができた、とのコメントがありました。
ですが、私の環境では同じ設定にしてもうまくいきませんでした。ご本人も不満があるようですから、もう少し工夫が必要なのかも知れません。

と言うわけで、少し違ったアプローチを取ってみます。とはいえ、この方法も xinerama のようなふたつのスクリーンをひとつにまとめる方法ができていません。
そのため、アプリケーションは起動したスクリーンから出せませんが、メリットとしてすでに起動している X を終了する必要がないという点があります。

その方法は、VNC2DL を使う方法です。
これは VNC の画面を DisplayLink デバイスに出力するソフトウェアで、DisplayLink デバイスで X を起動させるのではなく、VNC サーバーで動いている画面を表示するだけです。
この方法ならカーネルモジュールをコンパイルすることもないので、あまり環境に依存しないで DisplayLink デバイスを使うことが出来ると思います。
とはいえ、カーネルモジュールを使わないのでパフォーマンス的には多少落ちると思います。また、複数のソフトウェアを組み合わせて使うため、コマンド入力がそこそこあります。
ひとつの方法として、こんなやり方もあったということで。

最初に、すでに udlfb や displaylink-mod がインストールされている場合、DisplayLink デバイスを接続してしまうと自動的にモジュールがロードされてしまうので、それを防ぐために modprobe の blacklist に指定します。

vi /etc/modprobe.d/blacklist-displaylink.conf

と新しいファイルを作成し、
blacklist udlfb
blacklist displaylink
の二行を記述して保存して閉じます。

libdlo をインストールします。DisplayLink Wiki から libdlo-0.1.2.tar.gz をダウンロードしてきます。コンパイルには libusb-dev が必要とのことなので、

sudo apt-get install libusb-dev
./configure && make
sudo make install

テストのために DisplayLink デバイスとモニターを接続してから

make check

テストパターンが表示されれば OK です。

次に vnc2dl です。vnc2dl は git を使ってソースを取得するため、

sudo apt-get install git-core
git clone git://github.com/quentinsf/vnc2dl.git vnc2dl

と実行して、ソースツリーを取得します。
取得したソースの vnc2dl/dldevice.c の 40 行目あたりに、
desc.view.width = 1280;
desc.view.height = 1024;
という行があるので、これを接続するモニターの解像度にあわせるとその解像度で表示されます。変更しなくても、1280x1024 の解像度を表示できるモニターであれば、とりあえずその解像度で表示することはできます。あとは必要なパッケージをインストールしてからコンパイルします。

sudo apt-get install xutils-dev zlib1g-dev libjpeg62-dev
xmkmf
make World
sudo make install


最後に x2vnc、vncserver をインストールします。

sudo apt-get install x2vnc tightvncserver



これで準備は完了です。

では実際に vnc2dl を使ってみます。手順は、VNC サーバーの起動 > DisplayLink デバイスを接続 (接続していない場合) > vnc2dl を起動 > x2vnc を起動となります。
VNC サーバーを起動するには、以下のコマンドを実行します。一般ユーザー権限で OK です。

Xvnc -geometry 1680x1050 -depth 16 -alwaysshare :1

-geometry は画面の解像度です。vnc2dl のソースを書き換えた場合はその解像度に、書き換えてない場合は 1280x1024 を使います。-depth は色数です。-alwaysshare は、この VNC サーバーに vnc2dl と x2vnc のふたつのクライアントが同時に接続するので、それを許可するオプションです。最後の :1 はディスプレイ番号です。オンボードのディスプレイが :0 を使っていると思うので、それ以外の任意の番号を使います。後の vnc2dl と x2vnc で指定するディスプレイ番号と一致させます。

vnc2dl を起動するには、以下のコマンドを実行します。このコマンドは root 権限が必要ですので、sudo を付けて実行します。

sudo vnc2dl :1


x2vnc を起動するには、以下のコマンドを実行します。

x2vnc -west :1

-west は、x2vnc を実行したディスプレイの左側に vnc2dl の画面を配置する形にするためのオプションです。-west の代わりに -north , -south , -east が指定できます。指定しない場合は -east を指定したのと同じになります。

これでメインディスプレイの左端にカーソルを移動すると、DisplayLink デバイスに接続したディスプレイにカーソルが行きます。最初に言ったように、アプリの移動は出来ません。
今回は 1680x1050 の解像度のディスプレイを接続したのですが、ウィンドウを最大化したときなどは描写にちょっともたつく感じがあります。
YouTube は標準画質ぐらいなら (私は) 見られると思います。ただ、どうせならメインディスプレイで見た方がいいと思いますが。。。

アプリの移動もできれば、X の起動中にディスプレイを追加できる便利さもあるので、多少のパフォーマンスは我慢できるかと思うのですが、なかなかそこがうまくいきません。
スポンサーサイト
Date: 2009.11.29 Category: DisplayLink  Comments (0) Trackbacks (0)

Chromium OS にパッケージを追加する (ビルドする場合とフォントに関する注意)

前回書けなかった、Chromium OS にパッケージを追加するときにソースからビルドして追加する方法です。
今回追加しようとするのはフォントの VL ゴシック。これは Ubuntu のパッケージがありますし、フォントはほとんど環境に依存しないのでそのまま使えるはずですが、逆に言えばフォントならビルドの際に問題も出にくいでしょうし、確実に Ubuntu パッケージは作れるという意味でも、Chromium OS にパッケージを追加するという作業の確認にはちょうどいいのではないかと思います。

では以前書いた Adding a new package のステップに沿って進めていきましょう。

1. ソースを入手して、Debian パッケージが作成できるようにビルドが行えるようにする
2. ソースディレクトリ内に debian ディレクトリを作成し、その中に control、changelog、rules ファイルを作成する
これは簡単です。Chromium OS をビルドしている環境が Ubuntu でしょうから、その Ubuntu のターミナル上で

apt-get source ttf-vlgothic

と実行します。
これで現在のディレクトリに VL ゴシックのソースと、それを .deb パッケージにビルドするためのパッチが適用されたディレクトリ (今回は ttf-vlgothic-20090204 という名前のディレクトリ) が作成されます。今回はこれでこの 2 つのステップは完了です。

3. ソースディレクトリのトップに make_pkg.sh ファイルを作成する
これは Chromium OS 向けのスクリプトのようです。記述しなければならない項目はある程度決まっているようですが、基本的に他のパッケージからコピーして、パッケージ名の部分だけ書き換える方法が推奨だと思います。
~/chromiumos/src/third_party/ 以下にいくつかディレクトリがあり、その中に make_pkg.sh ファイルがあると思うので、それを ttf-vlgothic-20090204 のディレクトリにコピーして、末尾の make_pkg_common の後を「"ttf-vlgothic"」に書き換えれば OK です。
その後、ttf-vlgothic-20090204 ディレクトリを ~/chromiumos/src/third_party/ ディレクトリにコピーします。

4. ソースディレクトリのトップに README ファイルを作成する
Chromium OS のサイトでは README ファイルと書いていますが、他のパッケージのソースを見ると README.chromium という名前のように思います。このファイルは無くてもビルドできますが、パッケージに関する説明、ソースの入手先、ライセンス、Chromium OS でビルドするにあたって適用したパッチなどを記述します。これも他のパッケージからひな形としてコピーして、適切な内容に書き換えるといいと思います。
また、明記されていませんが LICENSE という名前のファイルでライセンスを置きます。大体のソースアーカイブには同じようなファイル名でライセンスが明記されていると思いますので、それにリンクを張ってもいいようです。

5. 依存関係にあるパッケージを追加する
今回追加するパッケージにはありませんので、このステップはパスします。ビルドに必要な物は chroot 環境に、動作に必要な物はイメージに追加されるようにしなくてはならないと思います。

6. build_platform_packages.sh と build_image.sh ファイルを編集し、追加するパッケージもビルドとイメージに追加がされるようにする
このステップはそのうち変更がされることがあると思いますが、現在ではビルド対象のパッケージは build_platform_packages.sh のスクリプト内に直接書かれています。ですので、このスクリプトを書き換えないとビルドされません。通常の場合は build_image.sh を編集する必要は無いと思いますが、イメージ作成手順でファイルやディレクトリを増減している場合もあるので、インストールしたはずのパッケージが正常に動作しない場合はこちらもチェックが必要です。
まず build_platform_packages.sh の編集カ所です。このファイルの 34 行目付近に、「THIRD_PARTY_PACKAGES=」で始まる行があります。ここにビルドしたいパッケージのソースを配置したディレクトリを記述していきます。ディレクトリ名は ~/chromiumos/src/third_party/ ディレクトリからの位置で指定します。行を追加する場合はバックスラッシュを行末に追加し、最後の行はダブルクォーテーションで終わるようにします。
ビルドされた .deb パッケージは ~/chromiumos/src/build/x86/local_packages/ に配置されるので、~/chromiumos/src/package_repo/package-list-prod.txt ファイルにビルドしたパッケージ名を追記すればイメージ作成のときにパッケージがインストールされます。

これでうまくいくはずですが、今回のフォントの追加がうまくいきませんでした。作成したイメージで起動してみると、/usr/share/fonts/truetype/ 以下が ttf-droid しか存在しません。ここに vlgothic ディレクトリが追加されるはずです。試しに
dpkg -L ttf-vlgothic
と実行してみると、パッケージは正常にインストールされて /usr/share/fonts/truetype/vlgothic/
にフォントがインストールされている、という形になっています。

ここで build_image.sh の内容を確認してみると、同じディレクトリの customize_rootfs.sh というスクリプトを呼び出しています。このスクリプトの 218 行目あたりに
UNNEEDED_TRUETYPE_FONTS=$(ls -d /usr/share/fonts/truetype/* | grep -v ttf-droid)
という行があります。この後で UNNEEDED_TRUETYPE_FONTS に入っているディレクトリを削除しているので、ここで ttf-droid 以外のフォントが削除されているようです。なので、フォントを追加する場合はこの行を
UNNEEDED_TRUETYPE_FONTS=$(ls -d /usr/share/fonts/truetype/* | grep -v "ttf-droid\|vlgothic")
のように書き換えます。
ついでに、そのすこし下で gtk-font-name に DroidSans を割り当てているので、これを VL PGothic に変更すれば UI のフォントも VL ゴシックになります。フォントサイズに 8 を指定していますが、これを大きくすると Options 画面のボタンが押せなくなったりするので注意が必要です。

ブラウザ内のフォントを指定するには、Options の Under the Hood タブを開き、Web Content 項目にある Change font and language settings ボタンをクリックすれば、フォントを指定することができます。

こんな感じでパッケージをビルドして追加することができます。とはいえ、Ubuntu や Debian のパッケージがそのまま使える可能性が高いことを考えれば、ビルドをしなければならないパターンはそんなにないかもしれません。
Date: 2009.11.26 Category: Chrome OS  Comments (0) Trackbacks (0)

Chromium OS についてのあれこれ

・ログインアカウントは gmail アカウント。ビルドした際にローカルユーザーアカウントを設定していれば、そのアカウントでもログイン可能。gmail アカウントでログインした場合は、各種 google サービスにそのままログインできる。

・ネットワークがない状態では、ローカルユーザーアカウントか、過去に一度でもログインしたことのあるアカウントでのログインのみが可能。

・NetworkManager のようなネットワーク管理ツールでネットワークの管理を行う。無線 LAN も使えるはずですが、mini9 のモジュールがうまく読み込まれないため未確認。e-mobile の D02HW はカーネルモジュールが無く、使用不可。静的 IP アドレスの設定を行うインターフェイスは見あたらない。

・プロクシは Options の「Under th Hood」タブにある。(実際に使ってはいないので、動作は不明)

・設定などはすべて英語。

・USB キーボードやマウスはポートに接続すればそのまま使える。

・USB メモリを接続すると、Content Browser という小窓が開いてファイルを選択することが出来る。ブラウザで表示できる形式のファイルを選択すれば、ブラウザで表示することができる。マウント先は /media の下。SD カードスロットはカーネルモジュールがないため使用不可。

・USB メモリのアンマウント方法は不明。ターミナルを開いて手動でアンマウントしてもすぐに再マウントされる。

・液晶を閉じるとスリープになる。開くとロックされた状態で、パスワードの入力が必要。シャットダウンは電源ボタンを押す。動作中に Ctrl+Alt+L を押すと手動でロックできる。また、一定時間操作をしないと自動的にロックされる。その時間を変更する方法は不明。

・F12 を押すと開いているウィンドウの一覧。Ctrl+Alt+T でターミナルを表示。Alt+Tab で開いているウィンドウを切り替える。F8 を押すとキーボードがポップアップで表示され、そこで Shift、Ctrl、Alt を押すことで組み合わせたキーのショートカットの機能を表示できる。

・/ (ルート) ディレクトリはリードオンリーでマウントされている。/etc、/home、/var 以下は第二パーティションに変更されたファイルが書き出される。

・YouTube の再生などは問題なく可能だが、Fn+5/6 の音量調整はできない。YouTube のプレイヤーにある音量操作で調整するしかなさそう。

とりあえずこのくらいでしょうか。
Chromium OS を使ってみて、個人的には Windows 7 Starter で行われる予定だった仕様を思い出します。もし Windows 7 Starter が当初の予定通りの仕様で進められていれば、あと一年も待たずに同じような機能のものが製品として使えた可能性があるのですよね。
そういう意味では、使い方によっては Chromium OS も面白い効果があるかもしれません。
なにより、OS へのログインではなくそのまま Google サービスにログインするというこの方式は、意外と便利に思えますね。
Date: 2009.11.25 Category: Chrome OS  Comments (1) Trackbacks (0)

Android Developer Challenge 2 final round

ADC2 で試用したアプリをメモしておきます。メモしていないアプリもいくつかあったと思いますが、とりあえず本日分まででメモした分だけです。

Smart Alarm Clock
予期せず終了しましたで起動しません。

Open Gesture
Home 置き換えのアプリです。Home で上方向にスライドすると Wifi や Bluetooth のオン・オフ、音量やバックライト調整へのショートカットを、下方向へスライドすると、メモリや SD カード容量、バッテリー残量などを表示します。
また、ジェスチャーでアプリを起動する機能もあり、なかなか便利そうです。ウィジェットなどは標準の Home 用の物がそのまま使えます。

Web Clip Widget
任意の Web サイトの一部をウィジェットとして Home 画面に貼り付けることが出来ます。特定の間隔で自動更新、または手動で更新することができ、ウィジェットをタップすることで表示しているサイトをブラウザで開くことも可能なようです。
RSS などとは違い、ブラウザで表示する Web サイトの一部を表示することが出来るので、うまく使えばとても便利かと思います。
ただ、ウィジェットのサイズに縮小されてしまうので、表示するエリアを適切なサイズにしないと、内容が読めないサイズになってしまうのが難しいところのように感じました。

Learn!
単語帳、というのかな?問題を書いておいて、その裏に答えを書いておいて暗記などに使うあれ。そのアプリです。
当然、自分で問題を作ることが可能ですが、どうやらそれをアップロードして公開することも出来るようです。最初のメニューの「Share」からダウンロード・アップロードが選択できます。ダウンロードでは Wiktionary や Alphabet の練習、Hiragana なんてのもありますね。問題部分には画像や音楽を入れることも出来るので、いろんな使い道があるかもしれません。なかなか面白いアプリだと思いました。

Pocoro
ゲームです。マス目に描かれた数字の数だけそのマス目を通過してゴールを目指すというルールかと思います。操作感も良く、グラフィックや音楽もきれいにまとまっていますし、ゲームのルールもわかりやすく、少し頭を使うあたりよくできていると思います。

Decades
落ち物系と呼ばれるゲームでしょうか。色の付いたブロックの組み合わせが落ちてくるので、それを回転して移動して3つ(多分)そろえると消えるという、なんとなく雰囲気はわかりそうな内容です。
変わっているのはブロックに文字が書かれていて、それを消すと画面下のマス目を埋めていき、だんだんとそこに文章が表示されていきます。それをヒントにクイズに答えるとボーナスが入るというところでしょうか。

musikCube
Windows が稼働する PC で専用のサーバーを動作させ、このアプリでそのサーバーから音楽を配信して端末で再生するアプリだと思います。
端末に音楽ファイルを保持する必要がないので便利には便利ですが、PC 側にも専用のサーバーが必要というのはちょっと不便かもしれません。レスポンスが良い等のよっぽどのメリットがあればいいのですが、ちょっと使った限りではそのような感じはしませんでした。

Swift
Twitter クライアントです。インターフェイスは他の Twitter クライアントとほとんど変わりませんが、つぶやくときに写真の添付、カメラがあれば添付する写真の撮影、動画の添付、bit.ly を使った短縮 URL の添付などができるメニューがあります。
この辺の機能をよく使う場合はとても便利なのでは、と思います。

SongDNA
歌手名や曲名から詳しい情報を検索することができます。ただし日本語での検索は出来ない模様。検索結果で BBC のデータを表示していることから、BBC にデータベースがあるのかもしれません。海外でも名前の知れている人ならローマ字で検索すれば出てきます。

Animal Compass
マップ上に飼っている (飼っていなくても良さそうですが) ペットの写真やデータを表示したり、近くにどんな動物がいるかを見ることが出来るアプリです。Android Around のようなアプリの動物版といったところでしょうか。結構楽しめそうです。

Fusion WebServer - Phone2Web
Android 端末を Web サーバーにして、設定やメールのバックアップといった操作を行えるようにします。PC の Web ブラウザから操作できますし、専用のアプリも必要ないので便利だと思います。
ただ、やはりレスポンスはあまり良くないのと、公衆無線 LAN 環境などで使ってしまうと結構危険と思われるところが微妙なところですね。
Date: 2009.11.23 Category: SmartQ5  Comments (0) Trackbacks (0)

Chromium OS で日本語入力

11/25 locale 設定の部分を追記。

uim.jpg
少々手順が不明な部分もありますが、とりあえず日本語入力が出来ました。いろいろと試行錯誤したので、不要な手順なんかも混じってそうですが。。。
使用したのは uim と anthy です。今回はこれらのビルドはせず、Ubuntu 9.10 のパッケージを流用します。

手順は、とりあえず build_platform_packages.sh までは終わらせて、パッケージのビルドを完了させます。
そして、前回書いたパッケージを追加数方法で uim と anthy のパッケージを追加して、イメージの作成をしてからいくつか設定を行います。

まずパッケージの追加です。以下のパッケージを、~/chromiumos/src/build/x86/local_packages ディレクトリに置きます。
anthy_9100h-0ubuntu1_i386.deb
im-switch_1.16ubuntu1_all.deb
libanthy0_9100h-0ubuntu1_i386.deb
libcanna1g_3.7p3-6.1_i386.deb
libgcroots0_0.8.3-4_i386.deb
libuim-data_1%3a1.5.3-1_i386.deb
libuim6_1%3a1.5.3-1_i386.deb
uim-anthy_1%3a1.5.3-1_i386.deb
uim-common_1%3a1.5.3-1_all.deb
uim-gtk2.0_1%3a1.5.3-1_i386.deb
uim-utils_1%3a1.5.3-1_i386.deb
uim-xim_1%3a1.5.3-1_i386.deb

それから、~/chromiumos/src/package_repo/package-list-prod.txt に以下の行を追加します。
im-switch
anthy
uim-common
uim-utils
uim-xim
uim-anthy
libcanna1g
uim-gtk2.0

次に build_image.sh を実行し、イメージを作成します。できあがった rootfs.img をループバックマウントします。

sudo mount -o loop ~/chromiumos/src/build/image/ID/rootfs.img /mnt

(chroot 環境の外で行います)
マウント先に chroot します。

sudo chroot /mnt

im-switch コマンドでデフォルトの IM を変更します。

im-switch -c

uim-toolbar が選択されていると思うので、これを uim にします。
また、デフォルトだと uim の入力方式が直接入力になっているため、これを anthy に変更します。これはファイルを直接編集します。

vi /usr/share/uim/default.scm

一行コメントがあるだけだと思うので、その下に
(define default-im-name 'anthy-utf8)
を追記して、保存して閉じます。

** 2009/11/25 追記
uim はロケールの設定が必要となります。日本語ロケールにしないと日本語入力ができないと思います。設定するのは /etc/default/locale (当然 chroot 内です) 。このファイルに

LANG="ja_JP.UTF-8"

と記述します。
デフォルトでは ja_JP のロケールは定義されていないので、

locale-gen --lang ja_JP.UTF-8

と実行して、ロケールを定義します。
** 追記ここまで

これで chroot 環境から exit し、/mnt をアンマウントして image_to_usb.sh で USB メモリにイメージを書き込みます。
Chromium OS が起動したらログインして、テキスト入力エリアで Shift+Space を押すと (SCIM 等とは違い、Ctrl+Space ではないので注意) 日本語入力が出来ると思います。

ところで Chromium OS 上ではスクリーンショットを撮る方法は・・・やはり無いのでしょうかね。
Date: 2009.11.23 Category: Chrome OS  Comments (0) Trackbacks (0)

Chromium OS にパッケージを追加する

Chromium OS はデフォルトで Android でも使われていたフォントを使用するので、日本語サイトの表示などには問題ありません。
しかし当然のことながら日本語の入力ができません。
アプリに関してはブラウザ以外は使えないのですから、ほとんど不要と言えますが、日本語入力環境は必要ですよね。
と言うわけで、まずは Chromium OS にパッケージを追加する方法を調べてみます。

Chromium OS のサイトに、Adding a new packae というページがあり、ここにパッケージを追加する方法が記述されています。これによると、
1. ソースを入手して、Debian パッケージが作成できるようにビルドが行えるようにする
2. ソースディレクトリ内に debian ディレクトリを作成し、その中に control、changelog、rules ファイルを作成する
3. ソースディレクトリのトップに make_pkg.sh ファイルを作成する
4. ソースディレクトリのトップに README ファイルを作成する
5. 依存関係にあるパッケージを追加する
6. build_platform_packages.sh と build_image.sh ファイルを編集し、追加するパッケージもビルドとイメージに追加がされるようにする

という手順が必要なようです。結構な手間ですし、特定のパッケージのみをビルドするオプションも見あたらないため、毎回全てのパッケージをビルドすることになります。
この方法は後で説明するとして、もう少し簡単に追加する方法があったのでそれをメモしておきます。

簡単なのは、Ubuntu のパッケージをそのまま流用してしまう方法です。
流用したいパッケージが、Chromium OS に含まれないパッケージに依存していたりすると手間が増えますが、ビルドするよりはよっぽど楽だと思います。
Ubuntu のパッケージをインストールする方法は、イメージを作成する時と、イメージ作成後に行う方法があります。
イメージ作成後は dpkg コマンドでインストールしていくだけなので、手間はかかりますがひとつずつ確実に作業を進められます。依存関係の解決が確実でない場合は、まずこの方法を使ってインストールしてみるといいと思います。
イメージ作成時にインストールする方法は、ファイルを書き換えるなどして事前の準備があります。しかし一度作業してしまえばイメージ作成時に自動的にインストールされるようになるので、必ず必要となるパッケージはこの手順を使うといいと思います。

まずイメージ作成後にパッケージを追加する方法です。
まず chroot 環境で build_image.sh まで完了させます。そのとき作成された rootfs.img (~/chromiumos/src/build/image/(ID)/ ディレクトリ内にある) を、以下のようにしてループバックマウントします。

sudo mount -o loop rootfs.img /mnt


これで rootfs.img が /mnt にマウントされたので、インストールしたい .deb パッケージを /mnt 以下の適当なディレクトリ (/mnt/tmp など) にコピーします。
rootfs.img へ chroot します。

sudo chroot /mnt


.deb をコピーしたディレクトリへ移動して、dpkg -i コマンドでパッケージをインストールします。インストールが終わったら不要なパッケージは削除した方がいいと思います。

cd /tmp
dpkg -i package.deb
rm package(s).deb


あとは chroot 環境から抜けて、アンマウントします。

exit
sudo umount /mnt


これで rootfs.img 内の環境にパッケージをインストールできたので、image_to_usb.sh コマンドで USB メモリに書き出せば OK です。

イメージ作成時にパッケージを追加する方法です。
まずインストールしたいパッケージを、依存関係の解決に必要なパッケージも含めてすべて ~/chromiumos/src/build/x86/local_packages ディレクトリーにコピーします。
次に、~/chromiumos/src/package_repo/package-list-prod.txt をエディタで開き、末尾にでも (場所はどこでもいいと思います) 追加したいパッケージ名を記述していきます。そのパッケージと依存関係のパッケージは自動的に選択されると思いますが、場合によっては build_image.sh で依存関係のエラーが出るかもしれません。その場合は必要なパッケージ名をこのファイルに追加してください。
これで chroot 環境から build_image.sh を実行すれば、追加したパッケージもインストールされたイメージができあがります。


Chromium OS は Ubuntu の Karmic (9.10) をベースにしているので、Ubuntu package search を使って Karmic のパッケージが見つかればそれが使える可能性が高いと思います。

長くなってしまったので、パッケージをビルドさせる方法は次にします。
Date: 2009.11.22 Category: Chrome OS  Comments (0) Trackbacks (0)

Chromium OS でローカルコンソール

とりあえずビルドして mini9 で起動した Chromium OS ですが、本当にログインするとブラウザのみです。
なので、ログを見たり何らかのコマンドを実行するためには、Ctrl+Alt+F2 を押してテキストモードのターミナルに切り替えます。
当然ログインプロンプトなので、ユーザー名とパスワードが必要ですが、ここは gmail のアカウントではログインできません。ビルド時に作成したローカルユーザーアカウントでも駄目でした。

build_image.sh のスクリプトの中を確認してわかったのですが、ユーザー名は「chronos」のようです。そして、Chromium OS をビルドするときにユーザーパスワードを設定した場合は chronos ユーザーのパスワードがそのパスワードに、パスワードを設定しなかった場合はランダムなパスワードに設定されます。
つまり、パスワードを設定しなかった場合は GUI 以外では事実上ログイン不可となるのでしょう。

また、Chromium OS をビルドした場合は ssh サーバーもインストールされています。
ローカルコンソールにログインした後、
sudo /etc/init.d/ssh start
とすればリモートからログインできます。

前回書き忘れたのですが、ビルド後のディスク使用量です。
chromiumos ディレクトリ全体で 5GB 弱使っていました。これには OS イメージがふたつ含まれています。イメージひとつでおよそ 1GB 近く使用するので、それ以外でも 3GB ほど使用することになると思います。
Date: 2009.11.21 Category: Chrome OS  Comments (0) Trackbacks (0)

Chromium OS をビルドしてみる

どうやら噂の Chrome OS のソースコードが公開されたようですね。そのうち USB ブートできるライブイメージあたりも公開されそうな気がしますが、試しにビルドをしてみましょう。

入手先は Chromium OS のサイトです。
右側の「Source code」の下、「Getting and building the Chromium OS source code」のリンクを開きます。
ここでビルドに関する情報を得ることが出来ます。環境としては、Ubuntu を使うようです。8.04 LTS 以降であればいいようですが、最新の 9.10 を推奨しています。
今回は 9.04 の環境を使いました。
また、ビルド中に chroot を使う必要があるので、sudo コマンドが使えるユーザーでビルドを行う必要があるようです。

ざっと流れをみてみると、
ソースコードの入手 > ビルド環境の構築 > (オプションで) Chromium のソースの入手とビルド > Chromium OS のビルド となるようです。
Chromium はブラウザ本体ですが、これはプレビルドを使うことも出来るようです。
また、Chromium OS のソースコードは tar でアーカイブされた物をダウンロードするか、git から取得するかのどちらかの方法が使えます。
今回は、ソースは tar アーカイブを使い、Chromium はプレビルドされた物を使うことにします。

まずは Chromium OS のソースコードをダウンロードします。
「Getting the Chromium OS Source Code」というリンクがあるので、これをクリックします。開いたページの最初のセクション、「Get the source code for the browser (optional)」は Chromium のソースコードなので、今回はここは飛ばします。
その下のセクション、「Get the Source Code for the OS」にある「Method One: Download the code directly (cannot commit changes)」の下にあるリンク、「Download the tarball」からソースコードの tar アーカイブをダウンロードできます。今回は chromiumos-0.4.22.8.tar.gz というファイルをダウンロードしました。
ファイルサイズは 233MB ありました。

次にビルド環境を整えます。
(そういえばビルドに必要なディスク容量の記述が見あたりません。とりあえずソースコードを展開したディレクトリの容量は 648MB でした。コンパイル後にどうなっているか再確認してみましょう。)

まずソースを展開します。

tar zxvf chromiumos-0.4.22.8.tar.gz

これで、カレントディレクトリに chromiumos-0.4.22.8 というディレクトリが作成され、その中にソースが展開されます。

次に、ホームディレクトリにソースコードのディレクトリへのシンボリックリンクを作成します。これは必要な手順ではありませんが、上記サイトでは説明がこのホームディレクトリへのリンクでおこなわれているので、作成した方がわかりやすいと思います。/opt でソースを展開したとすると、

ln -s /opt/chromiumos-0.4.22.8 ~/chromiumos

次にローカルリポジトリの作成です。~/chromiumos/src/scripts/ ディレクトリに必要なスクリプトがあるので、そこへ移動します。

cd ~/chromiumos/src/scripts/

次のスクリプトを実行します。

./make_local_repo.sh

この手順におよそ1時間かかりました。350MB 弱の deb パッケージのダウンロードと、chroot 用にそのパッケージを展開するようです。
*エラー1:9.10 より以前のバージョンを使っていると、debootstrap コマンドの挙動の違いによってエラーが出る場合があるようです。この場合、Chromium OS のサイトにあるように、一時的に Chromium OS のリポジトリを登録して debootstrap のパッケージを更新するとうまくいくと思います。
*エラー2:システムの / パーティションにソースを展開して実行する場合は問題ないと思いますが、もし外付けの HDD などでこのコマンドを実行する場合、自動マウントをさせていたりするとマウントオプションによっては debootstrap でエラーがでます。おそらく dev オプションが必要なのと、後ほどの作業で suid オプションも必要と思われるので、
sudo mount -o rw,dev,exec,suid,remount /opt
または
sudo mount -o default /opt
(外付け HDD を /opt にマウント済みの場合) として各オプションを有効にして、
sudo rm -r ~/chromiumos/repo/
と中途半端にできてしまったローカルリポジトリのディレクトリを削除してから、再度
./make_local_repo.sh
を実行します。

次に

./make_chroot.sh

を実行します。
ビルドに必要なパッケージを追加するようです。ビルド用の環境に追加するだけなので、元の環境には (多分) パッケージを追加することはありません。
およそ 30 分かかりました。また、最後に initrd を作成するためにパスワードの入力を求められます。パスワードを入力すると、chroot 内で rm -rf を使うなという注意が表示されます。chroot 内に元のシステムのディレクトリを再マウントしているので、それを消してしまわないように注意しなければならないようです。
もし chroot 環境を削除する場合は、

./make_chroot --delete

を使うようです。

次に、Chrome のバイナリーをダウンロードして指定された位置に配置します。
手順のところにあるリンクをクリックすると、「chrome-linux.zip」というファイルをダウンロードすることが出来るので、それをホームディレクトリにダウンロードし、

mkdir -p ~/chromiumos/src/build/x86/local_assets
mv ~/chrome-linux.zip ~/chromiumos/src/build/x86/local_assets/chrome-chromeos.zip

とします。

chroot 環境に移行します。

./enter_chroot.sh

この時、ターミナルのプロンプトの先頭に (chroot) が追加されるので、元の環境か chroot 内かを注意してください。

chroot 環境で、デバッグ用にユーザーアカウントを作成することも出来ます。通常の動作には不要なようなので、この手順は飛ばしてもいいようです。

( cd ../platform/pam_google && ./enable_localaccount.sh USERNAME )

USERNAME の部分は任意のユーザー名を指定します。
このユーザーアカウントを削除するには、chromeos_pam_localaccount.h を削除すればいいようですが、このファイルがどこにあるかは調べてませんでした。
さらに、このユーザーアカウントのパスワードは自動的にランダムな値に設定されるようですが、それを任意のパスワードにするには

./set_shared_user_password.sh

を実行して、プロンプトが出るのでそこにパスワードを入力します。
このパスワードは、chroot 環境の ~/trunk/src/scripts/shared_user_passwd.txt にあります。

これで準備ができたので、ビルドします。と言っても、ビルドはスクリプトが用意されているので、それを実行するだけです。
chroot 環境内で、

./build_platform_packages.sh
./build_kernel.sh


./build_platform_packages.sh は「All packages built.」とターミナルに出力されていれば完了です。今回は一時間強かかりました。
./build_kernel.sh は「Kernel build successful」と出力され、カーネルのパッケージ名が表示されます。こちらは 75 分ほどかかりました。

後はイメージのビルドを行います。

./build_image.sh

と実行します。
最後に USB メモリーや VMware のイメージへの変換方法が表示されて完了です。およそ 20 分かかりました。

ここまでで chroot 内の作業は完了です。

作成されたイメージは、~/chromiumos/src/build/images/ 以下に、一意の数字のディレクトリが作成され、その中に作成されます。
おそらく何度かイメージを作成すると、そのたびにディレクトリが作成されると思うので、イメージの再作成をした場合はどのディレクトリが最新かを確かめてください。多分、新しい方が数字が大きくなると思います。

今回作成した rootfs.img は 950MB ありました。ではこのイメージから Chromium OS をブートする USB メモリを作成します。

./image_to_usb.sh --from=~/chromium/src/build/images/SUBDIR --to=/dev/USBKEYDEV

と実行します。
SUBDIR は先ほどイメージが生成されたディレクトリです。イメージファイルではなくディレクトリを指定します。USBKEYDEV は USB メモリーのデバイスです。USB メモリーが /dev/sdc1 などでマウントされる場合は、/dev/sdc とパーティション番号は含めずに指定します。USB メモリーはフォーマットしていなくても使えますが、すべてのデータは消去されます。

で、それを mini9 に接続してブートしてみました。

Dell のロゴの後にブートデバイスを選ぶ白の四角が表示されています。それが消えてからが起動です。
さすがに 7 秒は無理ですが、かなり高速に起動しますね。
また、ログインは chroot に移行した後に作成したローカル・ユーザーアカウントか、gmail のアカウントが使えるようです。ネットワークに繋がっていなければローカルユーザーアカウントだけだと思います。
また、mini9 は無線 LAN は使用できません。有線 LAN は有効です。標準で Flash player が組み込まれているので、そのまま YouTube や Google maps からストリートビューを見たりもできます。
Date: 2009.11.20 Category: Chrome OS  Comments (0) Trackbacks (0)

Fedora12 リリース (マルチポインターを試す)

Fedora12 が正式にリリースされました。
いろいろと新しい機能がありますが、今回試してみたのがマルチポインター。

これは Xorg 7.5 (X server 1.7) に含まれる xinput2 の新機能らしく、ひとつのデスクトップ画面で複数のキーボード/マウスを扱えるようになるもの。
従来はひとつのスクリーンにひとつずつのキーボードとマウスが定義され (core pointer や core keyboard と定義される)、USB 等でマウスを追加するとその USB マウスの操作は core pointer へ送られてスクリーンに反映されていました。
Fedora12 でもデフォルトでは同じ動作をするのですが、xinput コマンドを使うことで複数のポインターを扱うことが可能となり、また複数のウィンドウに同時にキーボードの入力を行うことが出来るようになります。


では実際にマルチポインターを表示してみましょう。事前に xorg.conf を書き換える必要はありません。また、root 権限を使う必要もありません。一般ユーザーからコマンドを実行することが出来ます。
また、なぜか xinput コマンドがインストールされていない環境がありました。もし xinput コマンドが無い場合は、
yum install xorg-x11-apps
でインストールできます。


まず、現在の入力デバイスの状況を確認します。まだ追加のキーボード・マウスは接続していません。

[vboxf12 ~] $ xinput --list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ ImExPS/2 Generic Explorer Mouse id=7 [slave pointer (2)]
⎜ ↳ Macintosh mouse button emulation id=8 [slave pointer (2)]
⎜ ↳ VirtualBox Guest Service id=11 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=6 [slave keyboard (3)]
↳ Sleep Button id=9 [slave keyboard (3)]
↳ Power Button id=10 [slave keyboard (3)]


スペースが消えて見づらいですが、Virtual core pointer と Virtual core keyboard があるのがわかると思います。これがデフォルトで使用される core pointer と core keyboard。その左側が罫線で繋がっているのが、この二つがセットになっていることを示します。

次に USB キーボード・マウスを繋げてみます。今回はタッチパッド付きのキーボードを繋げてみました。

[vboxf12 ~] $ xinput --list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ ImExPS/2 Generic Explorer Mouse id=7 [slave pointer (2)]
⎜ ↳ Macintosh mouse button emulation id=8 [slave pointer (2)]
⎜ ↳ VirtualBox Guest Service id=11 [slave pointer (2)]
⎜ ↳ Synaptics Inc. Composite TouchPad / TrackPoint id=14 [slave pointer (2)]
⎜ ↳ Synaptics Inc. Composite TouchPad / TrackPoint id=15 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=6 [slave keyboard (3)]
↳ Sleep Button id=9 [slave keyboard (3)]
↳ Power Button id=10 [slave keyboard (3)]
↳ Lite-On Tech IBM USB Travel Keyboard with UltraNav id=12 [slave keyboard (3)]
↳ Lite-On Tech IBM USB Travel Keyboard with UltraNav id=13 [slave keyboard (3)]


Virtual core pointer と Virtual core keyboard の下にそれぞれふたつのデバイスが追加されました。これが接続した USB キーボード・マウスを xinput から認識された状態です。この状態では、デフォルトの core pointer と core keyboard にそれぞれの操作が出力されるので、どのマウスを動かしてもひとつのポインターが動きますし、どのキーボードを操作してもそのときフォーカスのあるウィンドウにキーボードの入力がされるはずです。

では、マルチポインターを実現するために core pointer と core keyboard を追加します。コマンドは、xinput create-master "name" です。この name は識別名を指定します。識別名は任意の名前で、多分アルファベットや数字が使えます。当然他の識別名と重なってはいけません。

[vboxf12 ~] $ xinput create-master "USB device"
[vboxf12 ~] $ xinput --list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ ImExPS/2 Generic Explorer Mouse id=7 [slave pointer (2)]
⎜ ↳ Macintosh mouse button emulation id=8 [slave pointer (2)]
⎜ ↳ VirtualBox Guest Service id=11 [slave pointer (2)]
⎜ ↳ Synaptics Inc. Composite TouchPad / TrackPoint id=14 [slave pointer (2)]
⎜ ↳ Synaptics Inc. Composite TouchPad / TrackPoint id=15 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=6 [slave keyboard (3)]
↳ Sleep Button id=9 [slave keyboard (3)]
↳ Power Button id=10 [slave keyboard (3)]
↳ Lite-On Tech IBM USB Travel Keyboard with UltraNav id=12 [slave keyboard (3)]
↳ Lite-On Tech IBM USB Travel Keyboard with UltraNav id=13 [slave keyboard (3)]
⎡ USB device pointer id=16 [master pointer (17)]
⎜ ↳ USB device XTEST pointer id=18 [slave pointer (16)]
⎣ USB device keyboard id=17 [master keyboard (16)]
↳ USB device XTEST keyboard id=19 [slave keyboard (17)]


USB device pointer と USB device keyboard というのが追加されたのがわかります。この時点でふたつめのマウスポインターがデスクトップに表示されると思います。

しかしこのままではふたつめのポインターを動かすことは出来ません。現状ではすべてのデバイスが Virtual core pointer と Virtual core keyboard に割り当てられているからです。なので、USB のキーボード・マウスを再割り当てします。

[vboxf12 ~] $ xinput reattach 14 "USB device pointer"
[vboxf12 ~] $ xinput reattach 15 "USB device pointer"
[vboxf12 ~] $ xinput reattach 12 "USB device keyboard"
[vboxf12 ~] $ xinput reattach 13 "USB device keyboard"
[vboxf12 ~] $ xinput --list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ ImExPS/2 Generic Explorer Mouse id=7 [slave pointer (2)]
⎜ ↳ Macintosh mouse button emulation id=8 [slave pointer (2)]
⎜ ↳ VirtualBox Guest Service id=11 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=6 [slave keyboard (3)]
↳ Sleep Button id=9 [slave keyboard (3)]
↳ Power Button id=10 [slave keyboard (3)]
⎡ USB device pointer id=16 [master pointer (17)]
⎜ ↳ Synaptics Inc. Composite TouchPad / TrackPoint id=14 [slave pointer (16)]
⎜ ↳ Synaptics Inc. Composite TouchPad / TrackPoint id=15 [slave pointer (16)]
⎜ ↳ USB device XTEST pointer id=18 [slave pointer (16)]
⎣ USB device keyboard id=17 [master keyboard (16)]
↳ Lite-On Tech IBM USB Travel Keyboard with UltraNav id=12 [slave keyboard (17)]
↳ Lite-On Tech IBM USB Travel Keyboard with UltraNav id=13 [slave keyboard (17)]
↳ USB device XTEST keyboard id=19 [slave keyboard (17)]


こんな感じです。これでふたつめのポインターは USB キーボード・マウスで動かすことができ、さらにひとつめのポインターでフォーカスしたウィンドウには PC のキーボードから、ふたつめのポインターでフォーカスしたウィンドウには USB キーボードからそれぞれ同時に入力することができます。
この時のセットは、左側が罫線で繋がれたポインターとキーボードがセットになります。設定を間違えるとごちゃごちゃになりそうなので、注意が必要でしょう。
ここでは reattach の時にデバイスの id で指定しましたが、デバイス名 (「Synaptics Inc. Composite TouchPad / TrackPoint」や「Lite-On Tech IBM USB Travel Keyboard with UltraNav」など) で指定することも出来ます。ID 番号は変わってしまう場合もあるでしょうから、スクリプトなどで設定する場合はデバイス名を使用した方がいいと思います。

もしマルチポインターのセットを消したい場合は、xinput remove-master "name" を使います。name は識別名ですが、この場合は pointer か keyboard も含めて指定する必要があります。ただしどちらかを削除すれば pointer と keyboard はセットで削除されるようです。

[vboxf12 ~] $ xinput remove-master "USB device pointer"
[vboxf12 ~] $ xinput --list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ ImExPS/2 Generic Explorer Mouse id=7 [slave pointer (2)]
⎜ ↳ Macintosh mouse button emulation id=8 [slave pointer (2)]
⎜ ↳ VirtualBox Guest Service id=11 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=6 [slave keyboard (3)]
↳ Sleep Button id=9 [slave keyboard (3)]
↳ Power Button id=10 [slave keyboard (3)]
∼ Lite-On Tech IBM USB Travel Keyboard with UltraNav id=12 [floating slave]
∼ Lite-On Tech IBM USB Travel Keyboard with UltraNav id=13 [floating slave]
∼ Synaptics Inc. Composite TouchPad / TrackPoint id=14 [floating slave]
∼ Synaptics Inc. Composite TouchPad / TrackPoint id=15 [floating slave]


削除すると、先ほど割り当てたデバイスが floating slave となります。この状態だとこのデバイスからの入力がどこにも届かないので、必要であれば reattach する必要があります。面倒であれば、また USB のようにホットプラグできるのなら、一度抜いて差し直した方が楽かもしれません。


こんな感じです。従来のデスクトップだとマルチポインターのメリットは・・・あまり感じませんね。ですが、マルチポインターに対応したアプリが出てくれば、なにか思いもよらない便利な使い方が出てくるかもしれません。マルチタッチなども、これをベースに対応できそうですしね。
Date: 2009.11.18 Category: Linux  Comments (0) Trackbacks (0)

Flash player 10.1 beta

2010年前半に登場と言われている Flash player 10.1 のプレリリース版 (beta) がダウンロードできる ようです。
モバイルプラットフォームもサポートとのことですが、今のところ Windows/Mac/Linux の 32 ビット版のみ。リリースノートを見ると、Windows 版は H.264 ビデオのハードウェアアクセラレーションが有効になるようです。
ただしインテルは 4 シリーズ?のチップセットでのみサポートとのことなので、ネットブックでの対応はまだかもしれません。ただ、Broadcom のチップでもアクセラレーションが効くようなので、Mini-PCIe 接続のアクセラレーションカードを使えば効果があるのかもしれません。

とりあえず mini9 の Fedora12 32bit 環境にインストールしてみました。
flash10_1-beta.png
これは 10.0 をアンインストールしていませんが、10.0 をアンインストールしないと 10.1 は動作しません。
ざっと使った感じでは特に違いは感じません。Linux 版なのでアクセラレーションも効いていないと思うので、YouTube あたりも今までと状況はあまり変わらないと思います。
Date: 2009.11.17 Category: 未分類  Comments (0) Trackbacks (0)

Grab and Drag が日本語化?

Firefox のアドオンの Grab and Drag が 2.7.6 にアップデートしたようで、それと同時に設定などのメッセージが日本語化されたようです。
今までは日本語化されていないので、ロケールが日本語の Firefox からアドオン検索すると、すべてのアドオンを表示するとかしないと Grab and Drag はリストされませんでしたが、日本語化されたことで検索すればすぐに出てくるようになりました。
今回の更新履歴を見ても特に日本語ロケールに対応したとのことは書いていないのですが、きっと対応してくれたのでしょう。
どこかで見たおぼえのある日本語なのが微妙ですが。。。
Date: 2009.11.16 Category: 未分類  Comments (0) Trackbacks (0)

eclipse を使うときの小ネタ

開発環境を構築していろいろと試してみたところ、気がついた点があるのでメモしておきます。

・Android のプロジェクトを作成するには、File -> New -> Android Project。これで New Android Project ダイアログが開きますが、PC の解像度によっては Build Target の欄がつぶれてしまい表示されません。E4200 の縦 800 でギリギリです。ここは必ず指定する必要があるので、Finish ボタンが押せないときは注意する必要があります。

・既存のプロジェクトをインポートするには、File -> Import...。Import source: で General -> Existing Project into Workspace を選んで Next をクリック。Select archive file の Browse をクリックして、zip ファイルを選択します。zip は展開しないでそのままインポートするようです。

・上記方法でインポートすると、Eclipse の下部、console に
[2009-11-15 18:23:06 - Activity Lifecycle]Project has no target set. Edit the project properties to set one.
というメッセージが表示される場合があります。これはターゲットの Platform が指定されていないために出るメッセージなので、Package のリストからインポートしたプロジェクトを選択し、Project メニューから Properties を選びます。
開いたダイアログの左ペインで Android を選択し、右ペインの Target Name でターゲットとなる Platform にチェックを入れるとエラーが消えます。

・少し古いプロジェクトをインポートして、上記手順でターゲットを 1.5 や 1.6 に指定した場合、Problems に
The type R is already defined
というエラーが出ることがあります。これは R.java という自動生成されるファイルの位置が変更されていることによるみたいです。エラーが出ているプロジェクトの、src 以下にある R.java を右クリックして Delete するとエラーは消えます。gen 以下にある R.java は新しく生成されたファイルなので、これは消してはいけません。

・実機でデバッグする方法。SDK にエミュレーターがあるので、動作チェックはそれでも可能です。実機でデバッグする場合は USB ケーブルで接続するかネットワーク経由で接続するかどちらかの方法が使えます。
SmartQ5 も 11/1 ファームで ADB モードが使えるようになったので、USB 接続のデバッグが使えるはず・・・ですが、Android Developers の Developing on a Device に書かれている方法を使ってもうまく認識できませんでした。なので、ネットワーク経由の方法です。
まず、ターミナルから
export ADBHOST=SmartQ5 (Android) の IP アドレス
adb kill-server
adb start-server
として、同じターミナル上から
eclipse
として eclipse を起動します。これで起動した eclipse 上であれば、プロジェクトを右クリック -> Run As -> Android Application とすれば、(プロジェクトに問題がなければ) 実機で実行されます。この時、エミュレーターも起動していればどちらで実行するか選択できるようです。
Date: 2009.11.15 Category: android  Comments (0) Trackbacks (0)

Ubuntu9.10 で Android 開発環境を整える

私はプログラミングをやろうとすると途中で挫折することが多いのですが、それでも以前と比べれば無償で開発環境を構築することも出来るので、駄目でもいいからトライしてみようという気にはなります。
肝心の開発環境の構築方法は今月号の日経Linux に詳しく書いてありますので、これをみながらやればスムーズに進められると思います。
ちなみに、Ubuntu9.10 では APT からインストールできる Eclipse はバージョン 3.5 です。なので Android のプラグインも対応しているはずですが、どうも依存関係などでうまくいきません。
そのため、Ubuntu9.10 でも Eclipse は APT からインストールせずに、Eclipse のダウンロードサイトからダウンロードしてきた方がいいと思います。
この場合は問題なく Android のプラグインを使うことが出来ます。


まずは必要な物をダウンロードします。ダウンロードするのは Eclipse 本体と Android の SDK。
Eclipse は、Eclipse のダウンロードサイト から、「Eclipse IDE for Java Developers (92 MB)」の Linux 32bit となっているリンクからダウンロードします。似た名前のパッケージがいろいろありますので注意してください。(Java の IDE であればどれでもいいのかもしれませんが。。。)
Android の SDK は、SDK のダウンロードサイト からダウンロードします。従来は 1.5 や 1.6 のように Android のバージョン?で区分されていましたが、2.0 相当は r3 という表記に変わったようです。これの「android-sdk_r3-linux.tgz」をダウンロードします。
(1.5 や 1.6 をターゲットとする場合でも最新の SDK をダウンロードして、必要なバージョンの Platform をダウンロードする流れになるようです)


次にインストールです。

まずは JDK をインストールします。
sudo apt-get install sun-java6-bin

次に Android SDK をインストールします。ホームディレクトリで、
tar zxvf android-sdk_r3-linux.tgz
とします。すると「android-sdk-linux」というディレクトリができるので、ここにパスを通します。ホームディレクトリで、
vi .profile
で .profile ファイルを開き、末尾に以下の内容を追加します。

#set Android SDK tools dir
export PATH="$HOME/android-sdk-linux/tools/:$PATH"

ここで一旦再ログインします。再ログイン後、ターミナルから
android
と実行して、Android SDK and AVD Manager を起動します。
eclipse-01.png
新しいバージョンから、Platform は SDK のパッケージには同梱されず、必要に応じてダウンロードするようになったようなので、このツールからダウンロードします。
ダウンロードするには、左ペインの「Available Packages」をクリックし、表示された右ペインの「https://dl-ssl.google~」の左にある矢印をクリックします。するとこのリポジトリから入手できる Platform 等の一覧が表示されます。
eclipse-02.png
(もしエラーが出るときは、「Setting」で「Force https://... sources ~」を選択してから「Available Packages」に戻り、「Refresh」をクリックしてみて下さい)
eclipse-03.png
リストから、SDK Platform の必要なバージョンにチェックを入れ、「Install Selected」をクリックするとダウンロードとインストールが行われます。
インストールが終わったら Android SDK and AVD Manager を閉じます。

次に Eclipse のインストールです。といっても、アーカイブを展開するだけです。ホームディレクトリで、
tar zxvf eclipse-java-galileo-SR1-linux-gtk.tar.gz
と実行すると、eclipse というディレクトリが作成されるので、その中にある eclipse という実行ファイルを実行すると Eclipse が起動します。

最後に Eclipse に Android のプラグイン、ADT をインストールします。
eclipse を起動して、Help -> Install New Software を選択します。開いたウィンドウの右上にある「Add...」をクリックして、Name は「Android Development Tools」(任意の名前で OK です)、Location に 「https://dl-ssl.google.com/android/eclipse/」と入力して OK をクリックします。
表示された Development Tools にチェックを入れてインストールをします。
インストールが完了すると Eclipse が再起動します。再起動後、Window -> Preferences と選び、左ペインで Android を選びます。すると最初は警告が表示され、SDK の位置を指定するように指示がされます。
eclipse-04.png
この右ペインにある「Browse...」をクリックし、SDK のパッケージを展開した android-sdk-linux ディレクトリを指定します。
すると、SDK にインストールした Platform の一覧が表示されます。

これで、インストールは完了です。
Date: 2009.11.14 Category: android  Comments (0) Trackbacks (0)

Android のアプリ その4

31. Androids Around 2
aaround.png
マップ上に同じアプリを起動している人を表示するアプリです。今までは位置情報を送信できなかったので使えませんでしたが、Wifi による位置情報検出に対応したことによって使えるようになりました。位置を表示すると言っても、ある程度拡大するとユーザー表示がされなくなるので、正確な位置を特定される心配は無いようです。
画面の上の方にユーザー情報が表示されるのですが、字が細かすぎて読めません。

32. 天気予報
tenki.png
ウィジェットとして使う天気予報です。これも Wifi の位置情報によって現在位置が認識され、表示できました。今までは天気予報系はうまく動かなかったのですが、位置情報がとれると動くのかもしれませんね。
天気予報関連のアプリは、どうしてもみんな似たような名前になってしまいますよね。これはアイコンが晴れた太陽の下に漢字で天気予報と書いてあるものです。


アップデートされたものを再度試してみました。

26. PaintNote
アプリ自体のアップデートではなく、アクセラレーションが効いた状態がどんなものか試してみました。
確かにある程度追従性は良くなっています。とはいえ、なめらかに書けるというほどではありませんが。
一応、普通に文字は書ける程度にはなっています。

28. 旬れぴ
アップデートされて、レシピの画面でタップすることで次のステップへ進むようになりました。
また、このアプリについてちょっと勘違いしていたのですが、すべてのレシピを表示するのではなく、タイトルの通りその時期で旬の食材をリストするアプリなのですね。
だから検索機能は付いていないのか、と勝手に理解しました。

30. Trap!
アクセラレーションが効いたらまったくの別ゲームになりました。こんなにもスピード感のあるゲームだったのですね。一段と面白くなりました。

Date: 2009.11.05 Category: SmartQ5  Comments (0) Trackbacks (0)

SmartQ5 の Android で日本語のフォントを変更する

Android のフォントは日本語表示もできるのですが、一部の字体が中国語のフォントになっています。個人的に気になるのが「直」の字体。
どうやら日本語フォントを入れてあげれば認識するらしいので、フォントを追加してみます。
追加するフォントは VL ゴシック。現行の Ubuntu や Fedora もデフォルトの日本語フォントに使用している、Vine Linux 由来?の日本語フォントです。

最初は SDK に含まれる DDMS を使おうと思いました。これには File Explorer があるので、ここからコピーすれば簡単か、と思ったのですが、フォントをコピーする先は読み込み専用となっており、そのままではコピーできませんでした。
しかし、次の方法で簡単に実行できたので、この方法はあきらめました。

簡単なのは、SD カードから Ubuntu か Mer を起動して、そこからコピーする方法です。しかも、今回使用した VL ゴシックはパッケージがあるので、これらの OS なら簡単に入手できるのもメリットです。

SD カードから起動したらコンソールを開き、内蔵フラッシュをマウントします。
SmartQ5@tablet:~$ sudo mount /dev/mmcblk0p1 /mnt/

次に、フォントをコピーします。コピーするときのファイル名は、以下のように変更する必要があります。(このファイルは VL ゴシックをパッケージでインストールしたときの場所です)
SmartQ5@tablet:~$ sudo cp /usr/share/fonts/truetype/vlgothic/VL-PGothic-Regular.ttf /mnt/fonts/DroidSansJapanese.ttf

あとは /mnt をアンマウントして、再起動して Android を起動すれば、日本語フォントとして VL ゴシックが使われます。
vlgothic.png
これは一段階拡大してますが、デフォルトのフォントとはちょっと雰囲気が違うと思います。デフォルトの SS は撮り忘れました。。。
Date: 2009.11.02 Category: SmartQ5  Comments (0) Trackbacks (0)
最新記事
最新コメント
ウィジェット
月別アーカイブ
カテゴリ
プロフィール

Author:SC3WO06A
FC2ブログへようこそ!


検索フォーム
RSSリンクの表示
リンク
このブログをリンクに追加する
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード
最新トラックバック
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。