2010年10月23日土曜日

Armadillo 440

Armadillo440に触る機会が出来ました。
ひとまずInfernoがインストールできるか確認です。
armadilloでセルフビルドが一番簡単そうなのでそのように。

2011/02/26 utilsのビルドはいらないっぽい。コメント参照

・debian環境の構築

アットマークテクノの提供するソフトウェアマニュアル「7.2. ストレージに配置する」を
参考にし、
Flash ROMの中のLinuxを立ち上げ、micro SDカードにdebianをインストール。
ドキュメントがよく整理されていてわかりやすい。さすが。

なんと開発用のLinux PC環境を用意しなくても出来ちゃう。

詳細は割愛。
以後はSDカードのdebianを立ち上げてから行う。

・ビルドに必要なパッケージをゲット

armadilloはEthernetでインターネットに接続できるようにしておきます。


apt-get update
apt-get install [パッケージ名]


パッケージ名は、


  • x-window-system-core
  • libxext-dev
  • gcc
  • make
  • mercurial


・infernoのソースをゲット

google codeからmercurialで持ってくる。


cd /
hg clone https://inferno-os.googlecode.com/hg/ inferno-os


・ビルド用の設定

パスの設定、コンフィグの書き換え、その他。


export PATH=$PATH:/inferno-os/Linux/arm/bin
cd /usr/bin
ln -s gcc arm-gcc


/inferno-os/mkconfigを一部書き換え


ROOT=/inferno-os
SYSHOST=Linux
SYSTARG=Linux
OBJTYPE=arm


・ユーティリティとOSのビルド


cd /inferno-os
./makemk.sh

cd /inferno-os/utils/iyacc
mk install

cd /inferno-os/utils
mk install

cd /inferno-os/limbo
mk install

cd /inferno-os
mk install



・実行


cd /inferno-os/Linux/arm/bin
./emu


infernoのプロンプトが現れる。すばらしい。

なお、wm/wmを実行してみたが、画面の色深度が16bppじゃだめと怒られた。
どうしたものか。

※ネットワーク上のxserverに画面を飛ばすのはOK。

2010年6月29日火曜日

一国一城の主に

オシロを買いました。
picoscope 2203というやつです。

http://www.picotech.com/ultracompact-oscilloscopes.html

かっこいい。

別に何か目的があるわけでは無いのですが、使い方を習得したかったので
弾みで購入しました。

いじる時間が取れなさそうなのが悩みです。

なお、このオシロスコープはiPhoneアプリも出ていて、
波形をiPhoneの画面に出すことができます。
これも面白い。

2010年3月14日日曜日

AndroidでStyx、略してStroid

ブログタイトルにサブタイトル入れておきました。なにもひねりがありませんが。

AndroidでStyxを動かしたくなりました。
略してStroid。
最終目標は、wmをAndroidアプリで実装して、ローカルorリモートのInfernoを
タッチパネルから操作できるようにする。

既存のStyxライブラリを検証してみました。

・Jstyx
結構外部ライブラリに依存している。
Androidでの起動に失敗。

・ninedroid
Android上で動く実装もあったので、簡単に動いた。
すばらしい。
サーバー側。

・styx-n-9p2000
Android上で動く実装があったので、簡単に動いた。
クライアント側。

・j9p/styxlib
ざっとソースツリーを眺めると結構大きい。
気力が尽きたのでポーティングは試みていない。
apache/antを使うとか、外部ライブラリへの依存があるのかも。

ちなみに、ninedroid とstyx-n-9pのAndroid端末内でのローカルホスト対向通信は
失敗。なぜだろう。

Styxはシンプルなプロトコルといわれているが、認証とか暗号とか考えると
意外と大変かも。

2010年2月25日木曜日

そういえば、Smart Q5でLinux Emuは動いてます



すっかり報告し忘れていましたが、Smart Q5上のubuntuで、
emuは動いています。

残念ながら、wmは動いていません。理由はXの画面モードのようで、
色深度16bppでは動かないそうです。
24bppにすれば多分動くと思うのですが、設定の仕方がまだわかっていません。
(ブートパラメーターなのか、設定ファイルなのかすら不明)

動かしたInfernoの出所は、Google codeの物を
beagle board上のubuntuでビルドしたものです。
もともとBeagle board用にセルフビルドしたものですが、
それがそのまま動きました。

写真はその時の模様です。
iPhone 3Gにはマクロレンズが無いので、虫めがねごしです。
ボケてゆがんでいるのはそのせいです。

ところで、Android上でemuを動かす試みは
まだうまくいっていません。
ただ、これがもしうまくいけば、バックグラウンドでInfernoを動かし、
UIはAndroidアプリで構築し、ローカルのInfernoに接続する、
なんてことができるかもしれません。
Android用のDrawtermがあるといいのかな。
(あれ?DrawtermってInfernoに使えるの?)

なお、Drawterm for iPhoneというのは構想があるそうです。
http://cm.bell-labs.com/wiki/plan9/iPhone_drawterm/index.html

2010年2月15日月曜日

曲を聴きながら眠りにつき、良いタイミングで起こしてもらう(Sleep Cycle Clock をiPodとともに使う)

大人気のiPhoneアプリSleep Cycle Clockというのがあります。
寝ている間の体の動きをセンサーで検知し、眠りの深さを計算し、
眠りの浅いときを見計らっておこしてくれる目覚まし時計アプリです。
常にアプリランキングに入っています。
こんなアプリを作れたらいいなぁ。

これを起動している最中は
音楽を鳴らすことが出来ないのが残念でした。
しかし、回避する方法があるそうです。

これをやると、「曲を聴きながら眠りにつき、良いタイミングで起こしてもらう」ができるのです。

参考サイト:
http://holygekko.posterous.com/combining-sleep-cyle-and-ipod-or-how-i-tricke

詳細は引用もとのサイトを参照してください。

やり方だけ抜粋。


1. あらかじめiPodコントロールを有効にしておく。(設定→一般→ホーム→iPodコントロールをONに)これは一度設定すればOK。

2. iPhone標準アプリの時計を起動。寝付くまでの時間を設定し、「タイマー終了時→iPodをスリープ」を設定。こうすることで、いつまでも曲が流れ続けるのを避け、途中で曲をストップしてくれる。

3. iPodを起動し、好みの曲をスタート。

4. Sleep Cycle Clockを起動。起動が完了する前にHOMEボタンをダブルタップ(←ここがコツ)

5. iPodコントロールというウィンドウがポップアップし、裏ではSleep Cycle Clockが起動完了し、iPodの再生を止めるはず。その状態になるまで待つ。

6. Playボタンを押し、iPodの再生を開始し、Closeを押してポップアップを閉じる。あとはSleep Cycle Clockを通常通りに使う。


ちょっと手順が込み入っているけど、慣れればそれほど難しくないかと。
iPhone3Gで試してみたところ、成功しました。

良くこんなウラワザ見つけたなー。

2010年2月11日木曜日

SmartQ5 のスクリーンショットを撮る

SmartQ5のAndroidでスクリーンショットの撮り方がよくわからなかったのですが、
フレームバッファをファイルにダンプすればいいそうです。
たぶんUbuntuでも有効。

参考:
http://hirokuma.justblog.jp/blog/2009/11/q5fb0.html

ネットワーク上の別のパソコンから、SmartQ5にTelnet接続。
特に認証は聞かれず、すぐにプロンプトが現れる。
SDカードを挿した状態でフレームバッファの中身をファイルにダンプする。


cat /dev/graphics/fb0 > /sdcard/fb0.raw


/sdcardにSDカードの第一パーティションがマウントされている。

これをパソコンにもってくる。
Irfan viewで見られるとのことなので、Irfanview32を持ってきて
ファイルを開いてみる。

が、プラグインが要るみたい。
Irfanviewのサイトからiv_formats.zipを持ってきて、
pluginsディレクトリに展開。

ただ、そのままでは開けず、Irfanviewにドラッグ&ドロップすると
ダイアログが開く。

サイズ:800x480
色:16 BPP 5:6:5


でOK。
表示方向に関係なく、横方向の画が得られる。

パソコンの画面に表示すると結構大きいね。
相当タッチパネルの画素密度は高いんじゃなかろうか。

※遠隔からログインしなくても、自身で操作できる。
アンドロイドマーケットにtelnetというアプリケーションがあるので、それをインストール。
自身に接続できるようだ。ターミナル代わりに使える。

2010年2月7日日曜日

Inferno Phone構想

Smart Q5をベースに、Inferno Phoneの仕様を考えてみます。

まずはプロトタイプです。現実的な目標をたてます。

・ハードウェア
Smart Q5そのもの

・OSブート方法

インストール済みのubootにてホストOSをブート(おそらくLinuxになると思われる)。
ホストOS上でemuを起動する。

・有効デバイス

タッチパネル、WIFI、SDカード

・ユーザーインターフェース

wm/wmをそのまま使用。
ただし、アプリケーションラウンチャがあると感じが出るので
limboで書くと良いかも。

ソフトウェアキーボードは既にあるので、それを利用。

ただし、日本語入力はまったく考えられていないので、
日本語FEP、日本語用ソフトウェアキーボードは別途開発の必要がある。

ペンでの手書き入力は特に考えていない。

その他、3ボタンマウスのエミュレーションは必要だろう。
本体のボタンを使うのが良いか?

・有用なソフトウェア

ウェブブラウザ

テキストエディタ

メーラー(む、どうするんだこれ)