ラベル Media の投稿を表示しています。 すべての投稿を表示
ラベル Media の投稿を表示しています。 すべての投稿を表示

2010/03/25

[Nokia N900] 内蔵FMラジオを日本向け周波数帯にする。(失敗編)

美しき人間の日々

N900内蔵FMラジヲを日本向けの周波数帯にしようと試行錯誤した記録。
結論から言うと、周波数帯の変更には成功しましたが、受信は出来てません。
成功編は未定。

試行錯誤の道程*1
  • FMRadio.pyを読んでみる
  • /sys/class/i2c-adapter/i2c-3/3-0022/以下をいじってみる
  • FMRadio.pyとFMRadioUI.pyを改変してみる
  • fmコマンドだとかradioコマンドだとかを試してみる

*1
たたたっ高村光太郎ちゃうわ!

わかったこと
さて、(たしかN800のFMラジオ界隈でも活躍されてた)Martin Grimmeさん(pycage)の
直球ネームアプリケーション、"FMRadio"のソースを読む限り、N900では改変カーネルを焼く必要は無いようです。
そのかわり、sysfs(/sys/以下)を適切にいじってやることでリージョンの設定が出来ます。
具体的に述べていくと
/sys/class/i2c-adapter/i2c-3/3-0022/region
に国別のコードnを書き込むわけです。[n=0,1,2,3,4]
このコードnはカーネルソース中
drivers/media/radio/radio-bcm2048.cに定義されており、抄出すれば
/* USA */
{
.channel_spacing = 20,
.bottom_frequency = 87500,
.top_frequency = 108000,
.deemphasis = 75,
.region = 0,
},
/* Australia */
{
.channel_spacing = 20,
.bottom_frequency = 87500,
.top_frequency = 108000,
.deemphasis = 50,
.region = 1,
},
/* Europe */
{
.channel_spacing = 10,
.bottom_frequency = 87500,
.top_frequency = 108000,
.deemphasis = 50,
.region = 2,
},
/* Japan */
{
.channel_spacing = 10,
.bottom_frequency = 76000,
.top_frequency = 90000,
.deemphasis = 50,
.region = 3,
},
/* Japan wide band */
{
.channel_spacing = 10,
.bottom_frequency = 76000,
.top_frequency = 108000,
.deemphasis = 50,
.region = 4,
},
つまり日本向けの周波数にしたいなら、ルート権限で
echo 3 > /sys/class/i2c-adapter/i2c-3/3-0022/region
だとか
echo 4 > /sys/class/i2c-adapter/i2c-3/3-0022/region
とすればよく、実際にやってみると /sys/class/i2c-adapter/i2c-3/3-0022/以下
region_bottom_frequencyとregion_top_frequencyが上記の抄出範囲で定義された値になっていることが確認できます。
このうえで、リージョン決め打ちのFMRadio*2を少々改造します。
改造したのは/opt/fmradio/components/fmradio/以下FMRadio.pyとソースtarボールから抽出し、同ディレクトリに放りこんだFMRadioUI.py。
FMRadio.pyは258行目付近と268行目付近に追記およびコメントアウト
# return self.FM_BAND_EUR
return self.FM_BAND_JPN
# band = self.FM_BAND_EUR
band = self.FM_BAND_JPN
FMRadioUI.pyは124行目付近に追記およびコメントアウト。
# self.__fmscala.set_range(87500, 108000)
self.__fmscala.set_range(76000, 108000)

ここでコマンドラインからFMRadioを起動し、前出の方法でリージョンコードを4に書き換えてから、なるだけ素早くFMRadioを再起動。*3
指針は76.0Mhzを指し、成功か。と思いきや87.5Mhz以上でしか正常に選局できない。
エラー出力を読むと、V4l2インターフェースの_VIDIOC_S_FREQUENCYへの書き込みに失敗している。。。
改造*5がまずいんだろうか、気を取り直して、次へ進む。
さて、N900のFMラジオにはv4lのAPIを使って、/dev/radio1経由でアクセスできます。
と言うことはつまり、TVカードにFMラジオが乗っていた頃からのソフトウェア資産がそのまま利用できる。素晴らしきかなLinux!
コンパイルも面倒なのでdebianのリポジトリから適当にバイナリをとってくる。素晴らしきかなDebian!
(以下の操作は裏でFMRadioを起動し、リージョンを書き換えてから行っています。)
数あるラジオ関連ツールの中から、初めに試したのはFMRadioに勝るとも劣らないド直球ネームのradio
美しき人間の日々
radio -c /dev/radio1
が、うまくいかない。(リージョンの問題ではないはず、というのもradioは周波数帯制限のないラジオソフトウェアとして紹介されているのをどっかで見たよな気がしなくもないから。)
特にエラーメッセージも出ないので、次にfmtoolsを試してみる。
コマンドラインから
fm -d /dev/radio1 xx.x
するとまた出た!_VIDIOC_S_FREQUENCYのI/Oエラー!
ひょっとして、これはドライバのバグなんですかねぇ。
参考までにv4l-info /dev/radio1の出力(一部)は
### v4l2 device info [/dev/radio1] ###
general info
VIDIOC_QUERYCAP
driver : "bcm2048"
card : "Broadcom bcm2048 FM Radio Recei"
bus_info : "I2C: 0x22"
version : 0.0.1
capabilities : 0x50400 [?,TUNER,?]

standards

inputs

tuners
VIDIOC_G_TUNER(0)
index : 0
name : "FM Receiver"
type : RADIO
capability : 0x11 [LOW,STEREO]
rangelow : 1216000
rangehigh : 1728000
rxsubchans : 0x2 [STEREO]
audmode : STEREO
signal : 0
afc : 0
こんな感じ。
rangelowおよびrangehighは16で割ればそれぞれ76000/108000であり、一応適切に設定されているようだ。

*2
将来的にはsysfsから読んでくれるようになるらしい。
set_fm_band(self, band)なる未使用関数が有ったり、着々と進歩している。いろいろと頭の下がる思いです。
*3
なぜこんな面倒な手順をとるかというと、
FMRadioを起動すると同時にカーネルモジュールradio-bcm2048.koが読み込まれ、デバイスノードや/sys/class/i2c-adapter/i2c-3/3-0022/以下が作成される訳ですが、FMRadioは起動時にv4l2インターフェースから周波数帯の上限と下限を読み込むので、リージョンコードの書き換えをFMRadioに反映させるためにはFMRadioをいったん終了し、(多分/usr/libexec/n900-fmrx-enablerあたりが)カーネルモジュールをアンロードする前に、もう一度FMRadioを起動するという手順を踏む必要があるからです。復文長い。
ちなみに/etc/modprobe.d/を使ってradio_bcm2048.koのロード時に
リージョンコードを書き込む様に設定*4してみましたが、FMRadioによるロードではそれらの設定は無視されてしまいました。
というわけでFMRadio.pyの__init__内でos.systemとsudo echoを組み合わせて使うのが消極的かつそこそこマシな自動化だろうか。
*4
/etc/modprobe.d/radio-rx-jpnとして以下の内容のファイルを作成
install radio_bcm2048 /sbin/modprobe --ignore-install radio_bcm2048 && echo 4 > /sys/class/i2c-adapter/i2c-3/3-0022/region

*5
ざざざっ雑誌ちゃうわ!久米田康治やわ!

蛇足
FM送信機(/dev/radio0)の周波数帯を日本向けにしたい場合
/sys/class/i2c-adapter/i2c-2/2-0063/region
に上記と同じく3か4の値を書き込みます。
が、それだけでは設定UIは87.5Mhz〜108.0Mhzのままです。
周波数帯は決め打ちになっているのか、はたまたシステムのロケールにしたがって変更されるのか。
なかなか一筋縄には行きませんな。だがそれが良い。

2010/02/28

[Nokia N810] 車輪(ahostwin)をつくろう、そしてあなたは画面を回す。(オマ ケ:gst-playerのアップデート)

できっこないをやらなくちゃ
できっこないをやらなくちゃ

hostwinをX11ネイティブにしてみました
Another hostwinで、ahostwin・・・名前のセンスはないです。(オマージュ!*1)
車輪の大発明がqole氏のeasydebianにおけるBundyo氏のhostwinだとすれば、こいつがまさに車輪の再発明。
hostwinと比べてちょっとだけ良い点は
  • Gtkじゃないので立ち上がりが早い
  • 背景色が指定できる
  • フルスクリーンオプション(-fs)でwmctrlとおさらば出来る
所。悪い点は、、、悪い点を書くにはこの余白(ブログ)はあまりに狭すぎる。。。
じゃあそもそもなんでそんなモノを作ったかと言うと、
easydebian(Xephyr)がMaemo(Xomap)側の画面回転に応じてくれないのを何とかしたかったからなのです。
で、それは結局Xrandrの一連のコマンド
xrandr --newmode portrait 0 480 0 0 0 800 0 0 0
xrandr --addmode default portrait
xrandr --output default --mode portrait
によって実現できました。
かくして要らない子となったahostwinの記事を書く理由?それを書くにはこのネット(余白)はあまりに狭すぎる。。。

ファイル:使い方:
ahostwin [-fs] [-wn windowname] [-ic iconname] [-bg #FFFFFF] [-e command]

ビルド:
gunzip ahostwin.c.gz
chmod +x ahostwin.c
./ahostwin.c


gst-playerのアップデート
gstreamer vs mplayer (1)に出てきたアレです。
実行中にバックライトがフェードするのを抑止するようにしました。
ファイル:

*1
QuasarMediaPlayerのcompat/qt3とかを使って、かの伝説的アプリabookreaderの
abookreader
ガワ*2

まではmakeできたんですが、
肝心の描画部分がQDirectPainterを使ってfbに書く事で実現されていて難題。つまり詰っている。
drawPixmapで置き換えるにはどーすればいいんだろう。
*2
ガワと言えばNintendo DSのピクトチャットを傍受するBSD(/Linux)向けアプリPictoSniffもガワだけmakeで放置されている。
pictosniff
ピーピング・田代・トム(通称出歯ガメ)

2010/02/13

[Nokia N810] MPlayer SVN-r30541-4.3.2 (C) 2000-2010 MPlayer Team


光のロック

たまには人に親切にしようよ楽しいよ、と言ったばかりにひとりの男が木に釘付けにされてから二千年近く

いまだに人間はブログを書いてしまう罪な生き物でもあるので、こんな時間に更新。
MPlayer SVN-r30541-4.3.2*1でH.264再生できました。
とはいえ、rc1,rc2よりは格段に軽いものの、gstreamerには勝てませんでした。DSPつよし*2

ファイル: mplayer_r30541-4.3.2.gz

いきさつ:
先日のポストにこんなコメント
>r30479
1月終わりぐらいのものですか。ならもっと新しいrev使った方が良いかと。
ffmpegのr21696-r21705において、更なるarmv6向けの最適化が入ったようですし。

を頂いたので、さっそくsvn update。
出来上がったバイナリでh264なファイルを再生してみたところ、前回と同じでさっぱりダメ。
苦し紛れにlibavcodec以下h264と名の付くファイルを
-mfpu=vfp -mfloat-abi=softfp -mcpu=arm1136jf-s
ではなく
-mcpu=arm1136jf-s
オプション付きでリコンパイルしたところ、再生できるようになりました。

それから前回書き忘れていたんですが、asはCodeSourcery(http://www.codesourcery.com/)の新しい奴(GNU assembler version 2.19.51 (armv6l-unknown-linux-gnueabi) using BFD version (GNU Binutils) 2.19.51.20090709)を使ってます。

*1
3.4.4だったのはmaemoパッチのせい?
俺の中の怠け者の血が騒ぐので(つまりめんどくさいので)未確認。
*2
公園で全裸になって逮捕されてもテレビに復帰できるレベル*3
*3
誰とは言ってないし、鶴瓶師匠なんて生放送で”出し”ましたが大丈夫だったんですよ批判してる訳じゃないんですよジャニーズファンのみなさん

その他:
  • Maemo5向けにmplayerをポートしてる人がMaemo4向けにもポートするとかいう噂を聞きました
  • XDaliClockですが既にhidonizeされたポートがchinookのextrasにありました。有名アプリケーションだもんなぁ。。(S60でも動くとか)

2010/02/10

[Nokia N810] gstreamer(gst-ffmpeg) vs mplayer (SVN-r30479-3.4.4)で H.264+aac再生対決 (2)

言いたいことも言えずに! (少ないキューブリック*1知識でがんばって書いています)
ハイハイゼア!
前回のラポストのグラフはHeartRails GraphてえハラーショーなWebサービスで作ったんだ。いくらグルーピーな俺でもこのサイトが如何にキューブリックを偏愛してるかはすぐにわかったぜウジ虫!
ライティライト、今回はmplayerをbuildする訳だが、ソースコードをじっくりかわいがった結果、まるでオープンソース界にそびえ立つクソのようになって、なって、えーっと、
(ハートマン語彙が尽きた)

さりとてデイジィベルを歌う訳にもいかないので
さっさと結論に入りますと、mplayerのrc1,rc2*2ではとても再生できず、最新svnはH.264の判別にすら失敗しました。
(適当半手動パッチが原因?)
かくして、前回の冒頭に戻ってgstreamerの勝ち。

某不正献金問題に対するマスコミ各社同様に役に立たなくなってしまった(長い修辞)
SMplay(svnのmplayer)*3ですが、
さすが最新ソースというべきか、はたまた例の魔法の呪文*4のおかげか、
rc2よりキビキビ動くので、amrとlibcacaサポートを有効にしてコンパイルしてみました。
多分libncurseswも要るのでextras-develにある奴を使ってください。
オマケはlibgstcacasink.so。

ファイル:


インストール:
  • *.deb : dpkg -i
  • *.gz : gunzip後、mplayerは/usr/local/bin/だとか適当な所へ、
    libgstcacasink.soは/usr/lib/gstreamer-0.10/へ

使いかた:
mplayer_svn-30479-3.4.4 -vo caca -vf scale -tv driver=v4l2:width=192:height=144:noaudio -fps 15 tv://
だとか
gst-launch v4l2src ! 'video/x-yuv-rgb,width=320,height=240,framerate=8/1' ! ffmpegcolorspace ! cacasink

で前出のネオ拡張現実。*5
neoar
コレです

libcaca_0.99.16-maemo1_armel.debに同梱の
cacaview
cacaview

は"cacaview necofolder/koneko/*.jpg"(imlib2が要ります)


*1
声に出していってみよう!モバイラーならゾクッとするはず。
キュー、ブリック。
*2
extrasにある1.0rc1と、TMOのこのスレッド(http://forums.internettablettalk.com/showthread.php?t=18231 )にあるbundyo氏版rc2(SVN-r26265-3.4.4)
オプションはほとんどmaemoデフォルトのmplayer.conf +
-correct-pts -noframedrop -vfm ffmpeg -lavdopts fast:skiploopfilter=all
*3
その長く果てしないコンパイルの間にN810が二回落ちたことで知られている。
*4
-mfpu=vfp -mfloat-abi=softfp -mcpu=arm1136jf-s
高度に発達した科学や愛の実在並に理解不能デス。
*5
よくよく考えるとネオのは拡張仮想現実ですね。

ビルド:
libamr はここ(http://www.penguin.cz/~utx/amr)から
libcaca はこちら(http://caca.zoy.org/)から
mplayer はあちら(http://www.mplayerhq.hu/MPlayer/releases/mplayer-export-snapshot.tar.bz2)から
mplayerのmaemopatchはそこら(http://www.mediafire.com/?noc0lynd0gi)から 持ってきました。
libgstcacasinkはこのgstreamer-plugins-good(http://www.gstreamer.net/src/gst-plugins-good/)の中にあります。

mplayerのconfigureは
--enable-armv5te --enable-armv6 --enable-armvfp --enable-largefiles --prefix=/usr --confdir=/etc/mplayer --enable-alsa --disable-ossaudio --enable-menu --disable-md5sum --enable-freetype --enable-esd --enable-sdl --enable-mad --enable-caca --enable-fbdev --disable-mencoder --enable-libopencore_amrnb --enable-libopencore_amrwb
こんなかんじで、patchしてからconfig.makに例の呪文をつけました。
そのあと/usr/lib以下libamrnbからlibopencore_amrnbにシンボリックリンクしてmake。

2010/02/08

[Nokia N810] gstreamer(gst-ffmpeg) vs mplayer (SVN-r30479-3.4.4)でH.264+aac再生対決 (1)

wayv
どうもみなさんボンジュール

最近は動画共有サイトに高画質化の波が押し寄せてきているようで、N810ではちょっとつらい場面も増えてきたのでいろいろ試行錯誤しました。
結論からいえば、gstreamerの勝ち。しかし試合に勝って勝負に負けた感じ。
判りやすく言うと、gstreamerもmplayerも力不足でした。

収穫はmplayerでamr(nb/wb)が再生できるようになったこと。
よくあるガラケーの.3gpで音が出るようになります。
(標準のmediaplayerでは前から再生できたけど、あんなの重くて使ってられません。)
動画を文字列で表示する、いわばaalib(http://aa-project.sourceforge.net/gallery/)のカラー版、libcaca(http://caca.zoy.org/)をくっつけてみたりもしました(↑↓)。

wayv
縮小するとわかりやすい

カメラと繋げば、コレが拡張現実(http://www.youtube.com/watch?v=WR2GUWrxTmU)ってやつだ!(ネオ的な意味で)。
wayv
某アニメ風にZaurus

N8x0とおなじCPU(OMAP2420)を搭載したガラケーでH.264再生してたりしますし、
PowerVRMBXといっしょにIVAもオープンになったらもうちょっと望みが出てくるのかも。


まずgtreamer。
よさげなフロントエンドがなかったので*1、今回はコマンドラインからgst-launchを使います。
gst-lauchはべつだん動画再生ソフトという訳ではないので
  • シークや音量調節ができない
  • 今回はffmpegを使うので結局中身はmplayerと同じ(むしろバージョンが古い)
などはっきり言って良いとこ無しなのですが、
修造本気出せ
N810でのgstreamerにはmplayerにはない大きな利点がひとつあります。

そう、dspmp3sinkやdspaacsink、dsppcmsinkなどのエレメントから、dspにアクセス出来るのです。
たとえばmp3ではmplayerの固定小数点化されたlibmadと、dspでの再生に大きな差はないのですが、
これがaacとなると、現状手に入るmaemo向けmplayer(libfaad)ではやたらとCPUを食います。
ただでさえ重いh264ですので、少しでも他の計算は少なくしておきたいところです。
(ただし、フツーのカーネルではdspを使っている間cpuクロックが330Mhzに固定されるので、トレードオフではある)

さっそくやってみます。
最初から入っているgst-ffmpegはいろいろ機能が削除されているので、ここ(http://www.gstreamer.net/src/gst-ffmpeg/)からソースを手に入れてbuildします。
といってもあまりに新しいとgstreamer本体のバージョンが古すぎて怒られるのでちょい古めをチョイス。今回は0.10.2ぐらいにしておきました。
展開してconfigureし、いざmake、といきたいところですが
ここでMakefileに魔法の呪文を追加します。
-mfpu=vfp -mfloat-abi=softfp -mcpu=arm1136jf-s
これらをgccの引数にするとすこしだけarmに最適化されるらしいです。
バイナリサイズは確実に小さくなりますね。(Autobuilderでつくったバイナリのサイズが自前ビルドと変わるのはコレのせい?)
for FIL in `find . -name Makefile` ; do cp $FIL $FIL.bak ; sed -e "s/-O2/-O2 -mfpu=vfp -mfloat-abi=softfp -mcpu=arm1136jf-s/g" $FIL.bak > $FIL ; done
こんなかんじで大雑把にやりましたが、環境変数とかで一括指定する方法がある気もする。
makeできたら、
mv /usr/lib/gstreamer-0.10/libgstffmpeg.so /usr/lib/gstreamer-0.10/libgstffmpeg.so.old.maemo
として、 gstreamer0.10-ffmpeg-ossoのバックアップをとり、
mv .lib/libgstffmpeg.so /usr/lib/gstreamer-0.10/ 
で出来上がったlibgstffmpeg.soを/usr/lib/gstreamer-0.10に放り込んでいよいよ再生。
gst-launch filesrc location=hyper_egashira_kousien_2nd_008.flv ! ffdemux_mov_mp4_m4a_3gp_3g2_mj2 name=demuxer demuxer. ! queue ! ffdec_h264 !xvimagesink force-aspect-ratio=yes demuxer. ! queue ! dspaacsink
うーん。試してみたのは512x288/H.264/128kAACで動きの少ない動画だったのでそこそこいけましたが、動きの激しいシーンではだいぶコマ落ちしました。
好印象だったのは再生速度が変わらないところですね。
mplayerだと間延びしたように音声の再生がおくれるのですが、gstreamerだと映像と音声がずれません。
ファイル: libgstffmpeg.so.gz


*1Totem以外にも日本の方が作られているYuumo(http://www.ryuuo.com/movie/)なんてのがありますが、多分一番シンプルなのはMarc-André Lureauさんが書かれてFelipe Contrerasさん(http://felipec.wordpress.com)がメンテしているgst-player(http://github.com/felipec/gst-player)。
gnome関連のライブラリがいらなくてmakeは楽チン、Youtubeのflvだとかvimeoのmp4はdspを使って再生してくれますし、シークもできますが、今回再生した動画とはどうも相性がわるいようでした(自動判別が失敗する)。
もちろん使い分ければ便利です。フルスクリーンキー(F6)が効くようにしたバイナリをおいておきます。使いかたはgst-player /path/to/yourfile.hoost.ernesto
ファイル: gst-player.gz

以下もっと余談。Felipe氏はgst-omapfb(http://github.com/felipec/gst-omapfb)なんてのにも関わっていて、こりゃ便利そうだとmakeしてみたのですが、N810では岸辺露伴ばりに動きません。

#gst-launch ~~~ ! omapfbsink
Setting pipeline to PAUSED ...
ERROR: Pipeline doesn't want to pause.
Setting pipeline to NULL ...
FREEING pipeline ...

どうやらフレームバッファのmmapで失敗してるようなので、mplayerのvo_nokia770.c(-vo omapfb)からコードを失敬していじっていると、ひとたび再生すればもれなく再起動まで画面をぶっ壊すおののき系最恐バイナリが出来てしまい、あえなくお蔵入りとなりました。


さてと、随分と長くなりました(約500わたし彼女)。よってmplayerとlibcaca編は後半へつづく

2009/10/29

[Nokia N810] Quasarパッケージのアップデート2



ダウンロード : quasar_0.96r172r31-maemo1_armel.deb

変更点 :
  • Quasarからシステム音量を変更できるようになりました。
  • 新しいバージョンのソースからビルドしました。

Todo :
  • 音量調節周りがsystem()的適当改造なのでもうちょっとなんとかする。

2009/10/05

[Nokia N810] mYTube+mplayerRC2でYoutubeをストリーミング再生

N810でYoutubeを見るとき、
  • ブラウザから見れば保存の手間を省けるが、重い。
  • mYTube経由mplayerから見ればサクサク、しかし一旦保存することになり、ちょっと面倒。
某デンマーク王子並にアンビバレンツな状況だ。死ぬべきか。
しかし、Officeのイルカを削除する方法をググっている最中、ひらめいた。
そう。たった一つの冴えたやり方は、mYTube経由mplayerでyoutubeをストリーミング再生する事。
(それからイルカ野郎をOfficeごと削除する事)
と、言うわけでしょぼいシェルスクリプトを書きつつ、mYTubeを間改造(マは間抜けのマ)してみました。
あのイルカ野郎は地球上で二番目に賢い生き物に対する侮辱だよ!(さすが一番賢いネズミはうまく情報操作しているようですが)


インストール : dpkg -i でインストール。mYTubeの0.1.5-1が必要です。入れてないなんてありえない。

使い方 : インストール後、mYTubeを起動。playの代わりにPlaySTをクリッククリック。
      数秒後に再生されます。シークもできるよ。
      ところで、クリックなんて書くといつかのイルカを懐かしく思い出す。あいつ、元気してるかな。

学校食罪?

mYTubeの作者さん、コードを汚して御免なさい。
mplayer-rc2はココから勝手にもって来ました。
ライセンス違反は「RMS様が見てる!」(Big RMS IS Watching YOU!) 許して!

2009/09/14

[Nokia N810] 俺のN810が火を噴くぜ!


----警告----
Nokiaと私は
この記事を読んだ結果引き起こされた事件、事故、損害等に関して一切の法的責任を負いません。
もし肺活量に自信のあるあなたが(空気摩擦で)N810の発火を引き起こしても、それは貴方の責任です。
用法用量を守って正しくお使いください。

某アニキ「お前のN810で火を噴け」(語呂がわるい)

と、言うわけで東西東西、N810で火遁の術でござるの巻。
などと書くとすわN810でも発火問題か。という方向に行きそうですがそうではありません。

arecord + Synaesthesia(AudioVisualizer) + esddsp = iPhone風なジョークアプリ
という話。

ファイル :  blowthefire-v2.tar.gz

用法用量 :
  1. blowthefire-v2.tar.gzをダウンロード
  2. N810のext2/ext3/jffs2なパーティションで解凍 
     "#tar xvzf /home/user/MyDocs/blowthefire-v2.tar.gz"
  3. 出てきたblowthefireフォルダに移動
     "#cd /home/usr/MyDocs/blowthefire"
  4. "./blowthefire.sh" もしくは "./blowthefire-lite.sh"
  5. N810に思いっきり息を吹きかける(マイクのあたりを吹くと効果的です)
  6. N810が大炎上、記事を削除するも収まらず、結局ブログごと閉鎖。
  7. 疲れて来たらqキーを押して終了


その他 :
Synaesthesiaはもちろん本来の用途にも使えます。
とりあえず
"mplayer -ao esd /home/user/MyDocs/.sounds/*.mp3"
"./synaesthesia esd"
で動作確認済み。
もっと多機能で遅延が少ないのをお求めの方にはeXtaceをeasydebianで使うのがお勧めです。



スクリーンショット :





おまけ:eXtaceのスクリーンショット :




2009/08/25

[Nokia N810] Quasarパッケージのアップデート

変更点 :
Quasarの作者さんから直々にアドバイスを頂いて、音量調節が効くようになりました。
(ただしmplayerの音量調節を行うものであって、Maemo自体の音量を調節するものではありません。)

Todo :
  • AdvacedBacklightのソースを見たりしつつ、Gconf経由で音量変えられると良いなと模索中。 (でも現行のままの方がいい人もいるのか)
  • 安定性の向上。ってどうすればいいんじゃ。libqt3まわりなのかなあ。

その他 :
QuasarはあのAGAWA大先生作、ZPlayerをベースにしているらしい。
何気に日本と縁があるわけですね。

2009/08/21

Nokia N810をBluetoothヘッドセットとして使う。

-------ぜんかいまでのあらすじ----
幼いころから、N810をA2DPのSinkにしてみたかった俺。
Google先生に尋ねてみれば、しかし、国内では推定お二人程しか挑戦していない、実にニッチなテーマであった。
足がかりとなったこちらhttp://osdevj.g.hatena.ne.jp/osdevj/comment?date=20080612)のブログ様を発見したのが、去年の冬頃。
なんでも古いbluetooth-alsa中にa2recvとかいうA2DP再生プログラムがあるらしい。
というところまでは判ったものの、/dev/dspを使うからそのままでは動かないとか、armだからリトルエンディアンだとか、紆余曲折があって、最近ようやく動作したのだった。
-----------------------------------

....orz
そこで問題だ!このえぐられた心でどうするか?3択―ひとつだけ選びなさい

答え①ハンサムのポルナレフは豆腐の角に頭をぶつけて自害する。
答え②ハンサムのポルナレフは醤油を飲んで自害する。
答え③①の豆腐と②の醤油で冷奴をつくって食べる。

冷奴おいしいよね。 と脳内会議で決定されましたので、以下手順。なんてながい前振りだ。
  1. a2recv-esd.tar.gzをダウンロード。
  2. # tar xvzf a2recv-esd.tar.gz
  3. # cd a2recv-esd
  4. #./sdptool add A2SNK  //A2DP再生可能だとクエリに対して答える。
  5. #./a2recv-esd //a2recvを立ち上げる。
同梱のhciconfigで"./hciconfig hci0 class 0x200404"とかやれば、接続元デバイスから、N810がBluetoothヘッドセットに見えるようになります。
また、適当にesdを組み込んだだけなので、大概のスタックにおいて、ブツ切れ状態になります。
対処法としては、a2recvで繋ぎつつ、同梱のl2pingとかを"./l2ping <接続元BTアドレス>"とバックグラウンド実行してやるとまともになったりならなかったり。

ちなみに2recv-esd.tar.gzの中身はこんな感じになっております。
a2recv-esd/
a2recv-esd/a2recv-esd
a2recv-esd/avrecv (おまけ:AVRCP 受信)
a2recv-esd/avsnd (おまけ:AVRCP 送信)
a2recv-esd/hcitool
a2recv-esd/l2ping
a2recv-esd/sdptool

それからダメージソースコードはコチラ。diffとかとれよ自分。



[Nokia N810] Quasarをつくってみた。



Zaurus向けのiTunesっぽいMplayerフロントエンド、Quasarをビルドしてみた。
Zaurus向けとは言ったものの、実際は
  • Linux
  • OSX
  • Windows
  • Pdaxrom(ほとんどzaurusだけど)
向けにもビルド可能で、今回はLinux用コンフィグを使ってビルドした。
ザウルス用ソフトは大半QTEで書かれているわけで、N810用にビルドし直すにはQT3を使うように書き直さなければいけないのだけれど、Quasarはそのへん最初からやってあるようなモノなので何事も初心者な自分にも楽勝なのであった。
ちなみにこのあいだはaBookReaderに挑んで惨敗しました。(sed -e s/QPEApplication/QApplication/gごときでは太刀打ちできません)

感想:
  • Zaurusで使ってたころにはなかった機能が目白押し。
  • CoverFlowはZaurusだとサクサクしてるが、N810だとちょっとつらいかも。
  • nightlyですが一通り安定している様子。
  • Quasarからの音量調節は効きません(/dev/dspを見ている様子)。 *追記 効くようになりました
  • (全画面で終了した後?)起動しなくなるが、~/.quasar/quasar.conf最下部のhadFrame を0から1に指定し直すことで回復可能。
  • 民主党どうなっちゃうの。
インストール:
1.Mplayerが入ってなかったら入れる。
2.MythTVのgarageから libxinerama1_1.0.1-4.1_armel.deb およびlibqt3-mt_3.3.7-4chinook1_armel.deb をダウンロードしてインストール。
3. quasar_0.96r169r31-maemo1_armel.debをダウンロードしてインストール。(アップローダーをなんとかせねば) *追記 アップデートしました。
スクリーンショット: