zaurus で radiko の録音(再生できず)

言わずと知れた、インターネット経由でラジオのサイマル放送を行っている radiko.jp ですが、Ubuntu などの Linux 機でも聞けるんですね。radiko 自体は知ってましたが、Linux で聞けるのは最近知りました。

rtmpdump というソフトを使えば録音もできてしまうようです。放送局というとDRMとかガチガチにしてそうなイメージだったんですが、そんなことないんですねー。

だったら zaurus でも? と思ってググってみましたが、成功事例はありませんでした。

実用的かどうかは置いておいて、面白そうだったので rtmpdump をビルドしてみました。

rtmpdump.tar.gz を展開すると rtmpdump が作成されますので、それを zaurus にコピーしてください。libssl とかのライブラリもスタティックにリンクしているので単体で動作可能です。

一応、以下のコマンドで TBS ラジオを録音することはできました。

$ ./rtmpdump --rtmp "rtmpe://radiko.smartstream.ne.jp:1935" --playpath "simul-stream" --swfUrl "http://radiko-dl.ssdl1.smartstream.ne.jp/radiko-dl/1.1/player/player_0.1.2.swf" --pageUrl "http://radiko.jp/player/player.html#TBS" --app "TBS/_defInst_" --flashVer "LNX 10,1,53,64" --live -o aaaa.flv

録音はできましたが、肝心の再生はできてません(ぉぃ

どうも超有名な阿川さん作の mplayer では 1.1.5-1 でも 1.2.0-1 でも再生できないようです。AAC には対応しているみたいなんですけどねぇ。

録音したファイルを PC に持ってきて再生すればちゃんと聞けたので、多分 rtmpdump 自体は正しくビルドできていそうな感じです。

だれか mplayer のビルドに挑戦してみる人いませんか?

うまくいけばストリーム再生もできちゃうかも??

 

ちなみに、rtmpdump-nosrc.tar.gz の方はビルドスクリプトとパッチです。展開して make すれば必要なソースをダウンロードしてビルドしてくれます。

自動 qinstall パッチツール

だいぶ時間がかかってしまいましたが、自動で qinstall.so にパッチを当てるツールができました。私が該当機種の qinstall.so を持っていなくても qinstall-fix 相当のパッチを自動で当ててくれます。

mokusei さんから、SL-6000 シリーズでも qinstall-fix を使いたいとご要望をいただいたのですが、 SL-6000 シリーズは ROM バージョンもまちまちで、アップデートイメージもSHARPから提供されていないようなので、今までの方法で全てのバージョンに対応することは不可能でした。

今回のツールを使うことで、そのような方でも qinstall-fix 相当が使えるようになるかもしれません。

ただし、自動でバイナリパッチを当てるというのはものすごく危険で、最悪 NAND Restore しないと起動しなくなる可能性がありますので、ご使用になる場合はご自身の責任でお使いください。

qinstall-fixが対応している機種をお持ちの方はqinstall-fixをお使いください。qinstall-fixが対応していない SL-6000 系の方のみお試しください。

ファイル

使い方

1. ザウルスの NAND backup を取ってください。

2. PCでファイルをダウンロードし、SD か CF に展開します。

展開すると readelf と generate-info という2つのファイルが作成されます。これを CF か SD のルートディレクトリに入れてください。

3. ザウルスに SD, CF を挿します。

4. ターミナルソフト (qpe-embeddedkonsole-ja 等) から以下のコマンドを実行します。

$ cd /mnt/card      ※ SD の場合
$ su
# ./generate-info /opt/QtPalmtop/binlib/qinstall.so

ファイルのチェックと自動パッチを行います。成功すると、 /opt/QtPalmtop/binlib/qinstall.so.patched というファイルが作成されます。

実行したときのログは重要な情報源になりますので、コピペして保存しておいてください。

ちなみに私が借りている SL-6000 では以下のようなログになりました。

# ./generate-info /opt/QtPalmtop/binlib/qinstall.so
/opt/QtPalmtop/binlib/qinstall.so
I: .text section found.
D: id: 12 addr:0x00012180 file:0x00012180
I: .rodata section found.
D: id: 14 addr:0x0003318c file:0x0003318c
I: getAvaliableSize symbol found.
D: symbol: 0x00026d78
D: str: /home/namikosi/cvs/c700.daito/qt-master/qt-2.3.2/include/qlistbox.h
D: embed area: 0x0000008c length: 68
I: Code found!! offset = 0x1e0 vaddr = 0x26f60
D: cat /opt/QtPalmtop/binlib/qinstall.so > /opt/QtPalmtop/binlib/qinstall.so.patched
I: ADDR mul:0x26f60 embed code:0x33218
I: File mul:0x26f60 embed code:0x33218
I: mul code: eb0030ae
I: 00026f60:ae3000eb
I: 00033218:2f866f00ffffffff925380e0000050e308509f15000055e300509f450ef0a0e1ffffff7f
I: 1db173a57facb468270cae6f946c751c /opt/QtPalmtop/binlib/qinstall.so
I: 0f4c9360fb875b57659b2c12d2f71ad2 /opt/QtPalmtop/binlib/qinstall.so.patched

5. オリジナルを保存して、qinstall.so.patched に差し替えます。

# mv /opt/QtPalmtop/binlib/qinstall.so /opt/QtPalmtop/binlib/qinstall.so-bak
# mv /opt/QtPalmtop/binlib/qinstall.so.patched /opt/QtPalmtop/binlib/qinstall.so

6. ザウルスを再起動します

7. パッチ当てが成功していれば 2GB を超えるメディアにも ipk をインストールできるはずです。

試してみた方は、以下の内容をコメント欄に張り付けてください。

  • 機種名 (SL-6000Nなど)
  • ROM version
  • 成功か失敗か
  • generate-infoコマンドを実行したときのログ

成功した場合は qinstall-fix にその結果をマージしたいと思います。

少々危険が伴いますが、SL-6000系をお持ちで人柱になってくださる方はご協力をお願いします。

Zaurus 用 bluetooth モジュール作っちゃうぞ-失敗 その2

前回に引き続き、失敗ネタです。

さて、やっとのことで手に入れた J27H002 ですが、解析しないと使い方が分かりません。

そこでこいつの出番です。

 

ZEROPLUS ロジックアナライザ LAP-C(16032)
ZEROPLUS ロジックアナライザ LAP-C(16032)

 

本体はこんな感じです
本体はこんな感じです

 

前からロジアナが欲しかったものの、なかなか踏ん切りがつかなかったんですが、これを機に買ってしまいました!!

私は strawberry linux で買いました。秋月でも販売していて、単純に価格だけなら秋月の方が安いんですが、strawberry linux の方がクリップが精密らしいとどこかのブログにかかれていたので。

代引き手数料・送料込みで14,500円。個人では決して安くないですが、ロジアナの相場からすると破格です。

しかも! この機器はちょっといじるとグレードアップできちゃうらしいです。

ch 数を 16->32 にするのは無理そうですが、メモリは 16128 相当分が載っているらしいので、デバイスIDを書き換えるだけで 38,800 円相当になるようです。こちらも後で試してみたいです。

ということで、ロジアナも手に入れたことですし、解析開始です。

まず、買った Bluetooth モジュールが使えることを確認します。Wii を分解し、Bluetooth モジュールを交換します。

 

Bluetooth モジュール
左:取り出したBluetoothモジュール  右:買った J27H002

 

裏面はこんな感じです。

 

Bluetoothモジュール
左:取り出したBluetoothモジュール  右:買った J27H002

 

私の Wii にはここのWii分解レポートと同じく、ミツミ製の WML-C43 が載っていました。Wii を買ったのが発売してすぐだったので、初期ロットに近かったためだと思います。

さっそく Wii 本体に J27H002 を搭載して、電源 ON・・・・。 あれ? 認識しない??

と、はじめは Wii リモコンを認識しなくて焦りましたが、SYNC ボタンを押して登録すれば無事認識してくれました。リモコンの追加なんてしばらくやってなかったのでやり方をググってしまいました。

さて、J27H002 が使えることが分かったので、信号線を引き出して解析です。

とりあえずジュンフロン線をはんだ付けします。ワイヤの色が6色しかなかったので、2色使う線は間違えないように結び目を付けておきました。

 

パッドに線をハンダ付け
パッドから線を引き出します

 

写真がブレているのは半田付けの汚さを隠すためです(笑)

それを Wii に装着。こんな感じになりました。


Wiiに装着!!

 

うん、ハードウェアハッキングっぽくて素敵です。

早速ロジアナで波形を観測します。すると・・・・

 

ロジアナの波形
ロジアナの波形

 

こんな波形になりました。

あれ?あれれれ? UART じゃないの?しかもこの差動系で1パルス幅が8ns (=約12.5MHz) の波形といえば・・・・

USB 1.1 Full speed でした (泣)

このロジアナの USB プロトコル解析モジュールの PDF にそのままズバリの図がありました。

 

USBプロトコルのマニュアルより引用
USBプロトコルのマニュアルより引用

 

D+ と D- が逆ですが、形が一緒です・・・・。

まぁ、値段を考えれば普通の USB-Bluetooth ドングルと同じくらいの値段なので、後から考えてみれば確かにあり得る結果だったんですが・・・・ちょっとガッカリです。

残念ながら Bluetooth アダプタを作る夢は遠のいてしまいました・・・。

Zaurus 用 bluetooth モジュール作っちゃうぞ-失敗 その1

最初に謝っておきますが、失敗ネタです。
失敗だったのですが、面白かったので恥をさらしておこうと思います。

ブログを読まれている方はお気づきかと思いますが、個人的にSL-A300が結構気に入ってまして、なんとかSL-A300に bluetooth 機器が繋げられないかなと考えてました。

先日 bluetooth の CF カードを入手したのでコミュニケーションアダプタを使えば SL-A300 でも GPS on Bluetooth を楽しめます。ですが、できればSL-A300単体+αで繋げられるといいなーと考えてました。

 

こんなんできたらいいなイメージ
こんなんできたらいいなイメージ (注意:画像は合成です)

 

オプションポート16の端子には UART が出ているので、UART で繋げられる Bluetooth モジュールを繋げてあげれば Bluetooth アダプタも作れるんじゃないかと。

そんな Bluetooth モジュールが手に入ればいいのですが、高かったり(1万前後します)、技適の認証を受けていなかったりとなかなか手頃な物がありませんでした。

USB の Bluetooth ドングルなら1000円以下で売ってるのに、それより I/F 的には簡素な UART のモジュールが高いというのは腑に落ちませんでしたが、調べると以下のような理由らしいです。

一般的なUSBドングルはRF部分のみで製品にスタックが含まれておらず、スタックはPCに搭載されているものを使用することではじめてBluetoothとしての機能を満たします。USBドングルが非常に安価なのは大量生産品であることも一因ですが、「スタック」が含まれていないという点も大きな要因の一つと言えます。

なるほどー。スタックが載っているからなんですね。高価な Bluetooth モジュールはそれ単体で Bluetooth デバイスとして動作するための SPP プロファイルが実装されていることがほとんどです。そのスタックも値段に入っているようです。

ただ、Zaurus に繋げる場合はスタックは blueZ があるので、素の(?) RF 部分だけでいいのになー。HCI-UART で繋げられればそれでいいのにー。

と思いながら色々 web をさまよっていたところ、以下のページを発見!

Wii 本体用の Bluetooth モジュール J27H002 が $6~7 位で買えるらしいじゃないですか!

値段から考えてもプロトコルが載ってるような値段じゃない。これなら UART で繋げられるかも?かも?

ということで早速買ってみました。初の海外通販! focalprice.com というお店はなんと全世界送料無料! すげー。

ですが、この focalprice がクセ者でした・・・。まぁ、それはまた別の機会に書こうと思います。

J27H002届きました
J27H002届きました

かなり日数がかかりましたが、何とか入手することができました。3つまとめて買うと値段が下がるので3つ買っちゃいました。

だってー、電圧間違えて壊しちゃうかもしれないしぃー、成功すれば SL-A300 用の他に SL-C760 用にも作りたいしぃー。SL-C1000 に内蔵もいいなー。そうすると追加で買わないと足りないかも。ぐふふ。

などと、夢は膨らむ一方です。この時はまだ・・ね・・。

つづく

Holux m-241 vs Desire GPS対決!!

最近 GPS ロガーを持って出歩いて OpenStreetMap に地図を書くのが地味に趣味になってます。

今までは Holux m-241 でログを取っては地図を書いていたのですが、Desire にも GPS が搭載されていて、アプリをインストールすればログも取れるらしいので、ロガー専用機の Holux m-241 と精度の比較を行ってみました。

Desireにインストールしたアプリは無料の「My Tracks」を使いました。
リンク貼るために検索して知ったんですが、OpenSource なんですね。

横浜駅から適当に歩いて調べてみました。 条件がなるべく近くなるよう、どちらも肩掛け鞄の中に入れました。

横浜から少し歩いたところ
横浜駅から少し歩いたところ(赤:実際のルート 緑:Desire 青:m-241)

右のあたりはまだビルやマンションが多く、空が開けてない路地が多かったので GPS にはちょっと厳しい環境でしたが、Desire は結構頑張ってました。m-241 はちょっとフラフラしちゃってます。

 

天王町駅付近
天王町駅付近 (赤:実際のルート 緑:Desire 青:m-241)

別の地点です。この辺は住宅地や商店街といった感じのところで、2階建てくらいの高さの建物が道の両脇に並んでいる感じの所です。

どっちもどっちな所もありますが、どちらかというと Desire の方が誤差が少ないみたいです。

まとめると、全体的に Desire の方が誤差が少ないですね。これはちょっと意外&ショックでした。 いくら m-241 に比べて新しい機器とはいえ、それなりの値段をする専用機が負けるとは・・・。

電池の持ちとかを考えると、旅行などのログは m-241 の方がいいですが、OpenStreetMap のマッピングのために近所を歩き回るような短時間でできるだけ精度を上げたい用途なら Desire の方がいいですね。

横浜駅前辺りのある程度の高さの建物に囲まれた状況では m-241 はかなりログが暴れて地図を書くのは困難なので、精度が高い GPS ロガーが手に入ったと思えばラッキーなんですけどね。

でもなんとなく悔しくて精度が高いと噂の Transystem 747Pro が無性に欲しくなってしまいました・・・が、最近物欲旺盛すぎて金欠なので買えません・・・。