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 環境などで使ってしまうと結構危険と思われるところが微妙なところですね。
2009.11.23 Mon l SmartQ5 l コメント (0) トラックバック (0) l top
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)
を追記して、保存して閉じます。

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

ところで Chromium OS 上ではスクリーンショットを撮る方法は・・・やはり無いのでしょうかね。
2009.11.23 Mon l Chrome OS l コメント (0) トラックバック (0) l top
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 のパッケージが見つかればそれが使える可能性が高いと思います。

長くなってしまったので、パッケージをビルドさせる方法は次にします。
2009.11.22 Sun l Chrome OS l コメント (0) トラックバック (0) l top
とりあえずビルドして 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 ほど使用することになると思います。
2009.11.21 Sat l Chrome OS l コメント (0) トラックバック (0) l top
どうやら噂の 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 からストリートビューを見たりもできます。
2009.11.20 Fri l Chrome OS l コメント (0) トラックバック (0) l top