2008年05月19日

chumbyにsshログインしてオレオレswfを実行するまでのメモ

はてなブックマークに登録

もうすぐChumby Niteが開催されるようですが、 たまたま某所からchumbyをお借りしたので、chumbyハックの導入として、

  • sshでログインできるようにする
  • 自作のswfファイルを実行する

ところまでのメモを残しておきます。

chumby


事前にやること - アカウントを作る

予めchumbyのサイトでアカウントを作っておきます。chumby本体をアクティベートするのにこのアカウントが必要になるので、事前にアカウントを作っておいてchumbyの到着を待ちましょう。

chumbyが届いたら

無線LANに繋げる

chumbyを起動すると、タッチスクリーンのテスト(タッチとドラッグ)をした後で、無線LANに接続する画面になります。

chumbyをハックするにはネットワーク接続が必須なので、ハックするなら無線LANに繋げられる環境でいじりましょう。
それから、無線LANのキーはASCIIではなく16進数での入力が求められます。 あわてずさわがず、

$ echo -n 'himitsuno_key' | od -t x1
0000000 68 69 6d 69 74 73 75 6e 6f 5f 6b 65 79
0000015

するなどして、16進数で入力しましょう。

余談ですが、USB⇔Ethernetアダプタを使えば、有線でのネットワーク接続も可能なようです。伝聞ですが、PLANEXUE-200TX-Gでも動くそうです。
ただし、v1.4やv1.5のファームウェアでは動かないので、v1.2に戻すか、v1.6を待つ必要があるようです。

アクティベーション

無線LANに繋がったら続いてはアクティベーションです。
chumby本体の画面を進めていくと、「Activate chumby」の画面で「コンピュータがあるならwww.chumby.comにアクセスしてね」と表示されます。
そこでPCブラウザで、chumby > activate a chumbyにアクセスすると、step 3のところに白と黒の碁石のような画像が表示されているはずです。

activation step 3

chumby本体でもNEXTの画面に、同じような白い碁石が表示されるので、画面をタッチしてPCブラウザに表示されているのと同じになるようにします。
activation chumby

同じ模様になったらNEXTをタッチします。アクティベーションが成功すると、PCブラウザにstep 4というのが現れchumby IDが表示され、chumby本体の画面には「Activation successfull」と表示されます。

このあとでデフォルトのチャンネルのダウンロードがはじまります。完了すると初期セットアップはおしまいです。

sshでログインできるようにする

いよいよsshでchumbyにログインします。
sshdを起動する前に重要な注意を。
sshdを起動しただけの状態は、IPアドレスさえわかればだれでもroot権限であなたのchumbyにログインできてしまいます。
信頼できないネットワークに繋げるときは、何かしらの制限や認証を課すべきです。

デフォルトではsshdが起動していないので、 Hidden screen in Control Panel の通りに隠しメニューを出してsshdを起動します。

  1. 本体上部のボタン的な部分を押して、コントルールパネルを表示して、 SETTINGSをタッチ
    control panel
  2. CHUMBY INFOをタッチ
    Settings
  3. 「Chumby Info」の画面の右上隅の「π」(パイ?)をタッチ
    Chumby Info
  4. 隠しメニューが表示されるので: secret menu
    • SSHDをタッチするとsshdが起動します。
    • FBCGIをタッチするとPCブラウザでchumbyの画面(フレームバッファ)が見られるようになります(後述します)

これでchumbyにsshログインできるようになりました。Chumby Infoや隠しメニューに表示されているIPアドレスに対してsshしてみます。このとき、ユーザ名にはrootを指定するのを忘れないようにしましょう。

$ ssh -l root IP_ADDRESS

login chumby

sshd起動の制御

この状態だと、chumbyを再起動するたびに隠しメニューからsshdを起動する必要があり面倒です。chumbyが起動したときに自動的にsshdも起動するようにするには、chumbyにログインして、/pspというディレクトリの下にstart_sshdというファイルを作ります。

# touch /psp/start_sshd

それからもう一つ。sshでログインしてから、sshdを停止したい場合や開始したい場合は次のようにすればできます。

# service_control sshd stop
# service_control sshd start

FBCGI - chumbyの画面をPCブラウザでみる

先ほどの隠しメニューの「FBCGI」をタッチすると、chumbyで動いているHTTPサーバを経由して、chumbyの画面を見ることができます。

隠しメニューの「FBCGI」をタッチしたら、まずはchumbyにSSHログインして、ls /psp/cgi-bin/ します。
もし、fb0とfb1というファイル(シンボリックリンク)があれば、ブラウザで

  • http://chumbyのIPアドレス/cgi-bin/custom/fb0 (widgetの画面)
  • http://chumbyのIPアドレス/cgi-bin/custom/fb1 (コントロールパネルの画面)

にアクセスすると、chumbyの画面が画像(jpg)で表示されます。
fb0、fb1がない場合は、Chumby tricks - Using a browser to see what's on your chumbyのようなCGIスクリプトを自分で作ればOKです。

自作swfを動かしてみる

最後に、自作のswfをchumbyで動かす方法を紹介します。

chumbyでサポートしているFlashのバージョン

Flash Lite 3.0です。 Developing widgets for chumby - ChumbyWikiからもう少し詳しい情報を引用します。

  • Supported Features
    • Flash video (FLV) encoded with ON2 and Sorenson Spark codecs
    • Video, NetStream and NetConnection classes
    • Internal PNG Transparent (PNG-24)
    • Internal GIF Transparent
    • External MP3 files
    • External PNG, GIF, non-progressive JPEGs
  • Not supported:
    • Bitmap caching, bitmap effects or enhancements
    • Stylesheets
    • non-default code pages
    • Focal gradients
    • Progressive JPEGs
    • External GIF Transparent

swfを実行する方法

(1)直接実行

FlashDevelop/Example - ChumbyWikiで紹介されている方法です。

scpやUSBメモリでchumbyから直接見えるところにswfファイルをコピーして、 コントロールパネルを終了して、flashplayerを使ってswfを実行します。
(コントロールパネルを終了するので)少々荒っぽい方法ですが、次に紹介するチャンネルに追加する方法に比べてこの実行方法の方が手間がかからないので、開発中にはよいと思います。

$ scp konnichiwa.swf root@mychumby:/tmp/

# stop_control_panel
# chumbyflashplayer.x -i /tmp/konnichiwa.swf
(2)チャンネルの中から実行

Chumby tricks - ChumbyWiki - Mixing local widgets into a channelで紹介されている方法です。

通常、チャンネルにwidgetを追加するには、chumbyのサイトでの操作が必要になりますが、swfファイルとprofile.xmlをUSBメモリにコピーして、USBメモリを差したままでchumbyを起動すると、USBメモリ上のswfをチャンネルに追加することができます。

profile.xmlはChumby tricksのMixing local widgets into a channelのをコピペして

  • name
  • description
  • thumbnail href
  • movie href

を書き換えればOKです。thumbnail hrefはとりあえずは存在しないjpgファイルを指していてもwidgetの動作には問題ないようです。

ここでひとつtipsを。
WindowsでフォーマットしたUSBメモリだと、この方法でのswfの実行に失敗するという情報があります。わたしの場合もそうだったのですが、ブートメッセージをよく見ると、/dev/sda1をマウントしようとして失敗していました。どうもWindowsでフォーマットすると、デバイスまるごと(/dev/sda)をフォーマットするので、パーティション(sda1)が存在しないためこのエラーが出ていたようです。
そこで、LinuxマシンにこのUSBメモリを差して、次のようにパーティション(sda1)を1つだけ切って、FATでフォーマットしたところ、chumbyがちゃんと認識してくれるようになりました。

# fdisk /dev/sda
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1        1021      127600    6  FAT16
# mkfs.msdos /dev/sda1

swfファイルを作る

Hello World!

まずはお約束のHello World!です。

こんな内容のHelloWorld.asを作って、

class HelloWorld {
    function HelloWorld(mc:MovieClip) {
        mc.createTextField("tf",mc.getNextHighestDepth(),0,0,100,20);
        mc.tf.text="Hello World!";
    }

    static function main() {
        var app:HelloWorld=new HelloWorld(_root);
    }
}

MTASC (Debian etchのmtasc-1.12-2を使いました)でコンパイルします。

$ mtasc -swf HelloWorld.swf -main -header 320:240:12 -version 8 HelloWorld.as

HelloWorld.swfができたら、先ほど紹介したswfの実行方法のどちらかでchumbyで実行してみましょう。

こんにちわ!こんにちわ!

chumbyには日本語フォントがないので、chumbyのswfで日本語の文字列を表示するにはフォントを埋め込む必要があります。

具体的な方法は、先人の解説をみてもらったほうがいいと思います。

Konnichiwa

ポイントは、フォントをまるごと埋め込むとサイズがかなり大きくなるので、表示したい文字が固定の場合はglyphs属性で埋め込む文字を指定するところです。これでかなりサイズは小さくなります。


(ひ)
klab_gijutsu2 at 14:22│Comments(1)TrackBack(0)

トラックバックURL

この記事へのコメント

1. Posted by Kubo   2008年07月29日 11:32
先週、FW1.6がリリースされたので、手元のChumbyとPLANEX UE-200TX-Gで有線接続できるか試してみました。
結果はすんなりつながりました。
設定は、上記本文中に紹介されているWikiページのLinksys USB200Mと同じでOKでした。

この記事にコメントする

名前:
URL:
  情報を記憶: 評価: 顔   
 
 
 
Blog内検索
このブログについて
DSASとは、KLab が構築し運用しているコンテンツサービス用のLinuxベースのインフラです。現在5ヶ所のデータセンタにて構築し、運用していますが、我々はDSASをより使いやすく、より安全に、そしてより省力で運用できることを目指して、日々改良に勤しんでいます。
このブログでは、そんな DSAS で使っている技術の紹介や、実験してみた結果の報告、トラブルに巻き込まれた時の経験談など、広く深く、色々な話題を織りまぜて紹介していきたいと思います。
最新コメント
最新トラックバック
Archives