February 21, 2006

GLAN TANKでTV録画できた

まあ、できるのはだいたい分かっていたのですが、GLAN TANK+PX-TV402をやっと試してみました。カーネルのリビルドが必要ですのでカーネルのコンパイル環境が必須です。

付録のCD-ROMからカーネルソースをコピーしてきて/usr/srcの下あたりで展開します。必須なのはalsaサウンド関係、Multimedia deviceの下にあるVideo4Linux、firmware loaderあたりです。I2Cも必要ですが確かデフォでオンになっていたような気がします。そのほか、ブートに必要な諸々を組み込みます。
さらに、arch/arm/kernel/armksyms.cの最後の方に

EXPORT_SYMBOL(xscale_mc_clear_user_page);

を付け加える必要があります。clear_user_pageはSHでもexoprtされてなかったですね。i386以外ではexportされてないのかな?
そんなこんなで設定したらmake zImageしてzImageを/bootに転送します。
あとは、wischipからドライバのtarballをコンパイル-インストールするだけでOK。

録画は完璧のようで、ノイズなども載りません。録画中のCPU負荷もたいしたことはなく十分に実用的でした。

やってみたいけどカーネルのコンパイルとか面倒、という人がいたらコメントください。バイナリをアップしてみますので。

(追記)
バイナリは危険なので、とりあえずカーネルとドライバをコンパイルするために必要なファイル類をアップしておきます。

カーネルソースの差分
linux-2.6.10-iop1-20050909snap.go7007.diff

.config(config)
.config

wis-go7007ドライバソースの差分(単にgorecordの制約を取り払うだけです)
wis-go7007-linux-0.9.7.diff

手順は、GLAN TANK付属CDのカーネルソースを展開して差分をあて、ダウンロードしたconfigを.configにリネームしてカーネルソースツリーのトップにおいて

make zImage modules modules_install [Enter]

arch/arm/boot/zImageを/bootにコピーして再起動します。
その後、

apt-get install fxload [Enter]

してfxloadをインストールしておきます。
そしてwischipからドライバソースのtarballをダウンロードして展開、差分を当ててmake; make installします。
wischipのドライバソースのapp/の下にgorecordがあるので、これで録画が出来る様になります。

ちなみに、カーネルのconfigをいろいろいじくっているうちに、起動直後にスタックダンプを吐く様になってしまいました。

--
Unable to handle kernel paging request at virtual address 20000000
pgd = c65f4000
[20000000] *pgd=00000000
Internal error: Oops: f5 [#1]
Modules linked in: ehci_hcd wis_sony_tuner wis_uda1342 wis_saa7115 go7007_usb go7007 v4l2_common videodev snd_go7007 snd_pcm_oss snd_mixer_oss snd_pcm snd_timer snd_page_alloc snd soundcore ohci_hcd btndrv buzdrv leddrv
CPU: 0
PC is at .c2u_0fupi+0xc/0x50
LR is at read_mem+0x84/0xb0
pc : [] lr : [] Tainted: P
sp : c65e7f34 ip : 00000000 fp : 00000000
r10: c65e7f84 r9 : beffe8b8 r8 : 00001000
r7 : 00000000 r6 : c65e7f84 r5 : 00001000 r4 : 00000000
r3 : 000000b6 r2 : 00000ffc r1 : 20000000 r0 : beffe8b8
Flags: nzCv IRQs on FIQs on Mode SVC_32 Segment user
Control: 397F Table: A65F4000 DAC: 00000015
Process xdm (pid: 2388, stack limit = 0xc65e6190)
Stack: (0xc65e7f34 to 0xc65e8000)
7f20: 00001000 00000000 00001000
7f40: c65e7f84 00000000 c016c054 00000000 c6e36c60 00000000 c006bfe8 c04a74e0
7f60: 00000101 c6e36c84 c6e36c60 c65e7f84 00000000 00000000 c65e6000 00034b40
7f80: c006c25c 00000000 00000000 00000000 00000000 00000003 beffe8b8 00000003
7fa0: c0022984 c0022800 00000000 c00227b4 00000003 beffe8b8 00001000 00000000
7fc0: 00000000 00000003 beffe8b8 00000000 00010000 000102ec 00034b40 00000000
7fe0: 00000000 beffe8b4 00001924 402be5c0 60000010 00000003 a0002001 a0002401
Backtrace: no frame pointer
Code: 1a000037 e2522004 4282c004 4a000026 (e4913004)
--

こんな感じ。変なアドレスを見に行こうとしているようです。実害がない(別に動作に支障がない)ので放ってますけど、ちょっと気味悪いです。configをいろいろいじって何がどうなってるのかいまいち良く分からなくなっているせいかもしれません。


(さらに追記)

なんかスタックダンプは直ってしまいました。/lib/modules/の下を片づけて、モジュールをインストールし直したら直ったんで、ゴミが残っていたんでしょうね良かった良かった

February 11, 2006

中の人は頑張っている?

遅ネタですけど。

ITmediaニュース:「こんな時だからこそ安定したサービスを」――ライブドアの技術者魂

逮捕当日、ポータルや社長ブログはかなり重くなってましたけど、確かに落ちることなく動いてましたね。そのことには関心しましたし、過去にライブドアが(たとえば)検索技術で新しい試みをしようとしたりしたことも覚えてます。技術志向の中の人がいたのは確かなんでしょう。

ただ、(こっからは少し厳しいことを書きますが)いま報道されていることによると、ライブドアは肝心のポータルをはじめとするネット事業では、ほとんど利益を出せていなかったといいます。報道されていることがすべて事実ではないかもしれませんが、仮に事実だとすれば、技術自慢の中の人たちも利益を上げてるに至ってなかった、ということですね。
国の支援で技術開発をしているとかなら、こんなすごい技術を開発しましたよとか、開発しますよ、というだけで評価されるでしょうけど、私企業の中で活動している限り、自分がどうして給料をもらえていたのか考えなきゃ駄目なんです。

ライブドアは海外のダミー会社まで使って売却益の還流をしていたそうで、これはまさに「虚業」です。そして、技術自慢の人たちがもらっていた給料も、虚業のおかげってことになってしまいます。

記事中で「虚業といわれるのが悔しかった」とか言ってますけど、我が身を振り返って自分らが利益を出せていなかったこと、そして虚業によって何とか運営でき給料がもらえていたことを知れば、虚業と呼ばれても仕方がないと自覚すべきでしょう。

「こういうときこそ淡々と」という健気な言葉からは、単なる視野狭窄しか感じられません。技術的にはすばらしい物を持っていたのかもしれませんが、視野狭窄に陥った技術屋なんてのは役に立たないんじゃないですか。虚業と呼ばれるのが悔しいなんて発言は、ライブドアが虚業でなかったことを証明してみせてからいえ、という話なんです。

December 21, 2005

Microsoft Virtual PC2004

Microsoft Virtual PC 2004を買ってみました。

仮想マシンは初期のVMware(当時、日本に代理店がまだ無くて安かったですが、そのライセンスは代理店が出来たときに無効にされてしまいました…)の後、Bochsなどフリーので済ませてましたが、BochsにSuSEのインストールができなかったので試しにVirtual PCの試用版を使ってみたところ異様に速いのに感心して、これは買ってみるかと。VMwareより安いですしね。ところが…
昨日、DebianをVirtual PCにインストールしてあれこれやっているうち、仮想マシンの元でもCPUはAthlon x2になっていることに気づきました。んで、これはSMPカーネルが使えるかなと、SMPカーネルでブートするように設定して再起動した瞬間、なんとブルースクリーンになりWindows XPごと落ちてしまったのです。
どうやらVirtual PCはWindowsのカーネルに食い込んで動いてるようですね、さすがMicrosoftプロダクト。速いわけです。
しかし、仮想マシンがOSを巻き込んで落ちるというのは……これだとクリティカルな(たとえばドライバとか)デバッグ作業には怖くて使えないですね、VirtualPC。問題あると思うけどなあ。

December 15, 2005

コメントスパム

nucleusの新しいNP_Blacklistはbsb.spamlookup.netなどに登録されているスパムを投げてくるIPアドレスをブロックします。かなりの効果があり、ほとんどのスパムがブロックされるようになりました。
ところで、ログを見てると、日本のIPも結構登録されているようです。たとえば、

p1015-ipad01takakise.saga.ocn.ne.jp
softbank219178138079.bbtec.net
i219-164-186-133.s02.a028.ap.plala.or.jp

とか。固定IPではないADSLか光かで自宅でProxyを動かしてるんでしょうね。便利だと思ってるのか知りませんが、ブラックリスト入りしてしまえばblogや何かで弾かれるわけで不自由でしょう。しかも、この手のIPは動的に割り当てられていると思うんで、IPが変わるたびにブラックリスト入りするのですから近隣の同じプロバイダに契約している人にも迷惑がかかるわけで、Proxyを動かすのはやめた方が良いのではないかと。

心当たりがある人は自分がブラックリスト入りしていないか調べた方が良いかもです。

December 13, 2005

LANTANK用PX-TV402U対応カーネル/VRS

ソフト置き場の方にアップしました。カーネルのパッチなどは追ってアップしようと思います。

December 05, 2005

LANTANKでPX-TV402Uを使う~その3 成功!…だが

こちらの記事で、kogiidenaさんが2.6.14用のパッチを用意してくれたので2.6.14でテストしてみました。モジュールとしてgo7007のドライバを組み込んでいる点は同じですが、録画に成功しました。
2.6.13では何をやってもUSB1.1でつながっていると思いこんでいたのですが、それが解消され(なぜだ?)PX-TV402Uでまともに録画できるようになりました。

しかし、完全ではありません。

画像がぐちゃぐちゃになることはなくなったのですが、まだ画面が急に切り替わるなどする場面でブロックノイズが走ります。ビットレートを6Mbpsくらいにあげるとブロックノイズはかなり抑制されますが、それでもたまにブロックノイズが走ります。
PX-TV402Uのエンコーダーがもともとこんなもん、というわけではなさそうなので、LANTANK側に問題があるのだろうと思います。ストリームは流れてきているようですから、LANTANK側の速度が追いつかずに、このような症状を起こしているのかもしれません。WinTV PVR USB2は音声込みのMPEG-2ストリームが/dev/video0から読み出せるのに対して、PX-TV402Uは音声ストリームが分かれているので、その辺でホスト側のCPUが必要なのかな、と。
もうちょっとテストする必要がありそうですね。

(単にPX-TV402Uが熱くなってるからかも? このPVRは熱設計が良くないらしいので…)

(追記)
ブロックノイズが載る頻度は低いものの画像に微妙に関連があるような感じがするのでPX-TV402U側の問題かも。
それから、映像に対して音声が少し遅れ気味。音声のズレが修正されているというおもてなしの空間で推奨されているgorecordmodは現ドライババージョンでは使えなくなっている模様。新しいのも見あたらないなあ。

December 02, 2005

LANTANKでPX-TV402Uを使う~その2

この記事にkogiidenaさんがコメントをくれたので少しテスト。
usb_control_msgを呼んでいる箇所は意外に少ないので書き換えは簡単でした。修正により、スタックダンプを吐くことはなくなったのですが、やっぱり駄目です。
--
go7007-usb: probing new GO7007 USB board
go7007-usb: error in WriteInterrupt: -110
--
エラーを出しているのはgo7007_usb_ezusb_write_interrupt()という関数内で、
--
       for (i = 0; i < 100; ++i) {
r = usb_control_msg(usb->usbdev,
usb_rcvctrlpipe(usb->usbdev, 0), 0x14,
USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_IN,
0, HPI_STATUS_ADDR, &status_reg,
sizeof(status_reg), timeout);
__le16_to_cpus(&status_reg);
if (r < 0)
goto write_int_error;
if (!(status_reg & 0x0010))
break;
msleep(10);
}

--
ここのところでusb_control_msg()が負を返すためにエラーになるようです。何をやっているのかはいまいちよく分からないので、適当に、
--
                if (!(status_reg & 0x0010))
break;
if (r < 0)
goto write_int_error;
msleep(20);

--
順番を入れ替えてみたらいちおう組み込まれるようになりました(付け焼き刃的だなあ)。
しかし、、
--
go7007-usb: probing new GO7007 USB board
go7007-usb: *** WARNING *** This device must be connected to a USB 2.0 port! Attempting
to stream video through a USB 1.1 port will result in stream corruption, even at low bitra
tes!
go7007: registering new Plextor PX-TV402U-JP
wis-saa7115: initializing SAA7115 at address 32 on WIS GO7007SB EZ-USB
wis-uda1342: initializing UDA1342 at address 26 on WIS GO7007SB EZ-USB
wis-sony-tuner: initializing tuner at address 96 on WIS GO7007SB EZ-USB
wis-sony-tuner: type set to 201 (Sony NTSC_JP (BTF-PK467Z))
usbcore: registered new driver go7007
--
USB2.0じゃないと怒ってます。うーん。
いちおうgorecordで録画はできるのですが画像はメロメロ。ブロックノイズが縦横に走り回り何が写っているかは分かるものの視聴に耐えるものではありません(音声はとれます)。

とりあえずスタックダンプを吐かなくなったのはかなりの前進ですけど、まだまだ何かいろいろやらなきゃならなそう。USBドライバ周りはいまいち良く知らないんで、まずはそこから勉強しないと駄目かも。

(追記)
ドライバソースばっか見てましたけど、もっと根源的な問題かもしれない。カーネルメッセージが次のようになってた。。。
--
usb 1-1: new full speed USB device using ohci_hcd and address 4
usb 1-1: not running at top speed; connect to a high speed hub
↑あれ?
go7007-usb: probing new GO7007 USB board
go7007-usb: *** WARNING *** This device must be connected to a USB 2.0 port! Attempting to stream video through a USB 1.1 port will result in stream corruption, even at low bitrates!
--
go7007_usb_probe()が呼ばれるときには、すでにUSB2.0じゃないことになっているわけです。しかし、PX-TV402UはLANTANKに直つなぎしてますんで。。
もしかしたら、ものすごく簡単なことで動くようになるかもしれません(USB2.0のハブを介すとか)。機材が事務所にあり土日は実機で試せないんで、LANTANK+PX-TV402Uを持ってる人は試してみませんか。わずか数行の書き換えです。
wis-go7007-linux-0.9.7.diff
kogiidenaさんのkernel 2.6.13で動作を調べています(2.6.14ではノーチェック)。i2c-coreが必要なので、カーネルをビルドしなおす必要があったと思います。あと、hotplugとfxloadが必要です。この記事のコメントが参考になるです。

December 01, 2005

Google Maps APIのサンプル

今度、本が出るGoogle Maps APIの本に掲載するサンプルを以下で体験できるようにしました。
サンプルページ
ソースも見られるのでGoogle Maps APIで遊んでみたい人には何かの参考になるかもしれません。



October 29, 2005

movietank IIの静音化

movie tankIIですが最初はあまり騒音が酷くなかったものの、ここ最近はとてつもない爆音を出すようになり実用性に?が付くくらいになってしまいました。オーディオ用どころかビデオ用ですらうるさ過ぎて使い物になりません。
調べてみると騒音源はファンです。

ファンが安物なのか爆音を立てます。HDDとデコーダーが発熱源で、こいつらのためにファンは仕方ないのかもしれませんが酷すぎる。5400rpmの発熱の少ないHDDを取り付けているので、ファンの電源を外してしまいました。
さらに、両側板に1mmの銅版を貼り付けました。

筐体が樹脂製でHDDの振動がモロに筐体を振動させてしまうので、筐体を重くして共振周波数を下げる作戦です。鉛とかがいいと思ったのですが近所のホームセンターには鉛板はなかったので代わりに銅板にしました。銅は熱伝導率が高いので、熱的にはいいかも、というのもあります。ずっしりと重くなりました。

足の裏にはスポンジを貼り付けました。本体の振動がラックに伝わらないようにするためです。

というわけで、これらの改造でかなり静かになりました。オーディオにも使える程度です。気温によっては熱暴走するかもしれませんが今のところ大丈夫みたい。

October 22, 2005

Quake4キター!

昨日、巷で話題の(本当か?)Quake4を買って参りました。

オマケでQuake IIが全部入ってるスペシャル版です。なんたって、このWebサーバーはゲームファンサイトなわけでquake4.jpというドメインでもアクセスできるのだから買わないわけにはいかないのです。

しかし実は、遊んでる暇がない状況なので、シングルプレイはやってません。マルチプレイはちょっと遊んでみましたけど、DOOM3に比べれば軽くて速く、Quake 3っぽい爽快感はあるみたいで面白いです。すでにレビュー記事でも既出ですがロケジャンを始めQuake3のテクもだいたい使えるようですね(ロケジャンはQ4の方がやりやすいみたい)。

Windows版インストール後、最初はまったく動かなくて困りましたがOpenALが必須で、これをインストールしていないと動かないんですね。だったらインストーラに同梱しとくかOpenALがないくらいのエラーは出して欲しいと思うのですが…。ちなみにOpenALというのはOpenGLのサウンド版みたいなもので、容易に3Dサウンドの開発ができるライブラリです。

Linux版もちょっとはまり気味。bash2の新しいのだとインストールに失敗するようでやむを得ずzshを使ってインストールしたりとか。あと、C3系のCPUでは不正な命令(Illegal instruction)が発生してまったく動きません。CPUの判定を端折ってるようでC3系は誤判定してサポートされない命令を使ってしまうようです(SSEかなんか使うのかな分かりませんが)。まあ、C3系のCPUでゲームをプレイする人はいないと思いますが、サーバーでは使ってる人はいると思うんでdedicatedなサーバーをlinuxで建てようと考えている人は注意が必要ですね(というかCPU変えるしかないです)。

本サイトでもテスト的にDMサーバーを動かしてみてますけど一晩たったらマップのローテーションが止まってました。どっかおかしいのかな?

September 24, 2005

MOVIETANKを買ってみた

LANTANKに引き続き、挑戦者ブランドのMovie Tank II。直販サイトに予約していたのがさっき届きました。

ACアダプタがでかい。ケーブル類はひとそろい同梱されてました。サポート無しですけどアナログAudio出力にOpticalが出ていて、これを使いたいんですけど普通の光コネクタは入るんですかね良く分かりません。

(追記)
いわゆる光ミニコネクタという奴が使えるようです。

サポート無しの挑戦者ブランドですけど、LANTANKとかMovie Tank IIは箱とか装丁が普通の製品と変わらないんで、そのあたりが一方の玄人志向とは違う感じがします。玄人志向ほどの割り切りはないというか。LANTANKはマニュアルもなかったんで最初、戸惑いましたが、Movie Tank IIはマニュアルもちゃんと付いてます。

これがマザボ。EM8510ってー奴がなんでもやっちゃうようなんで基板は小さいです。

SAMSUNGのHA250JC(250GB)というのを付けてみます。5400rpmと7200rpmを比較すると発熱、騒音ともに一般的には5400rpmの方が有利です。5400rpmの大容量HDDは選択肢が限られていて、このSAMSUNGのと、MAXTORのがあるくらい。後者はあまり売ってるのを見かけないので、これを選びました。SAMSUNGのHDDは使用したことはありませんが、DOS/V Magazine誌で騒音のテストをやったとき、他社製の静かなのに比べて遜色なかった、という経験はあります。

というわけで組み立ては、あっさり完了。LANTANKより簡単ですね。ちょっとメディアがないので自宅に戻ってから実際に使ってみますけど、やっぱり少々の音は出るみたい…。HDDとかファンの音というより箱鳴りですね、これは。樹脂製の胴が震動するようで抑えると静かになります。まあ、2mも離れると聞こえないくらいの音ですけど。

September 16, 2005

WinTV PVR USB2が投げ売り

若松でWinTV PVR USB2を投げ売りしているようです(若松の回し者ではありません)。投げ売りするってことは、そろそろ国内販売は打ち切りでしょうかね。本で取り上げただけに打ち切られるとネタ的に困るのですが。
しかし9800円は安い。LANTANKで動作実績があるTVチューナーですから、この機会に買っておくのもいいかも?

September 08, 2005

iTunes+mt-daapd

何やらTV録画にかまけていたら今までのmt-daapdで新しいiTunesが使えないという話が。早くも対応したようですけど、白箱の本には間に合わなかったなータイミングが悪い。

それはさておき、PX-TV402U+LANTANKはやや諦めモード入ってます。ドライバコードで怪しげな所をつつき回して様子を見てましたが、毎回、エラーを吐く場所が変わるし、ヘタするとハングアップするし、ちょっと分かりません。
PCでは順調に動くらしいんで、アーキテクチャの違いから来る問題なんでしょうね多分。そう考えるとWinTV PVR USB2のドライバはSH-4でも無修正でサクッと動いてしまうのだからドライバ作ってる人は偉いんだなあ。

PX-TV402U+LANTANK動作せず

うーん、プレクスターPX-TV402Uを手に入れて試してますけどLANTANKでは今のところ動かないですねえ。
--
go7007-usb: probing new GO7007 USB board
go7007-usb: WriteInterrupt: 0001 0001
go7007-usb: resetting EZ-USB buffers
go7007-usb: WriteInterrupt: 0001 0001
go7007-usb: device is hung, status reg = 0x0010
go7007: error transferring firmware
usbcore: deregistering driver go7007
go7007-usb: probing new GO7007 USB board
go7007-usb: WriteInterrupt: 0001 0001
go7007-usb: device is hung, status reg = 0x0010
BUG: FPU is used in kernel mode.
Unable to handle kernel paging request at virtual address 40008100
pc = 8fc826e0
*pde = 00000000
Oops: 0000 [#1]

Pid : 1897, Comm: modprobe
PC is at 0x8fc826e0
PC : 8fc826e0 SP : 8d3b7cf8 SR : 40000100 TEA : c011f5fc Not tainted
R0 : ffffffff R1 : 00000000 R2 : 40008100 R3 : 8c1fc76c
R4 : 8c1fc76c R5 : 8c29c550 R6 : 35a4e900 R7 : 00000000
R8 : 8d2a83e0 R9 : 8d3bc000 R10 : 8d3bc27c R11 : 8cd30000
R12 : 00000000 R13 : 8d2a83e0 R14 : 8e620b00
MACH: 00000120 MACL: 000000fc GBR : 296d6440 PR : 8fc826d8

Call trace:
....
--
"device is hung"と言っているあたり以降が怪しいのでソースを眺めてましたけど、go7007_usb_ezusb_write_interrupt()というところでusb_control_msg()を繰り返しやって100回やっても駄目なら、このエラーを吐くらしい。timeoutを増やせばいいのかなんなのか。
BUG: FPU is used in kernel mode.って何なのかなあ。ドライバはFPU使ってなさそうなんで関係ないのかなあ..

WIS GO7007の仲間

Linux用のリファレンスドライバが公開されているWIS GO7007を積んだ製品を調べてみた。

アルファデータAD-MPEG4
姿形からNorthQ NQ6600と同じ物と見て間違いなさそう。WISのリファレンスドライバが制限付き(固定解像度のみ)でサポート。昨年7月発売のようだけどアルファデータのホームページから製品情報が削除されているし、ほとんど市場にも流れてない模様。入手困難。

ノバックmicro CATCH TV Walker NV-UTH222
これは製品は入手しやすい模様。Philipsのチップチューナーを採用しているようなのでWISのリファレンスドライバそのまんまでは動かないと思う。

ノバックNV-UTH192
こちらは潤沢に製品が並んでいる模様。しかし、Philipsチューナー、SAA7135ビデオデコーダー採用らしいのでWISのリファレンスドライバでは動かなさそう。頑張って解析、リファレンスドライバをたたき台にドライバを書くしかないかも。

ELSA EX-VISION 1700TV USB"
Panasonicチューナー、NECゴーストリデューサー/3D Y/Cと積んでいるので、こちらもやはりWISドライバでは動かなさそう。ドライバを作るにしても難易度はさらに上になるかも。

うーん、なかなか難しいですね。

September 07, 2005

LANTANKで使えそうな他のTVチューナー発見

プレクスターのTV402U/JPが使えそうです。米プレクスターにLinux SDKのリンクがありました。ドライバソースアーカイブの中にファームウェアも含まれているので、WinTV PVR USB2のようにWindowsから抜いてくるというダーティな方法を使わなくて済むのがいいです。
ただ、これもV4Lを独自に拡張しているようなんで既存のTV録画関連のソフトが使えるかは微妙そう。DivXやMPEG-4のハードエンコに対応しているものの、その形式ではAVIファイルを吐く関係で最大1GBのファイルサイズまでしか録画できないとか。MPEG-2は最大6Mbpsまでみたいで、WinTV PVR USB2の方が画質はいいかもしれません。
でも割と値段は安いみたいだし使えるといいですね。

(追記)
こちらの方が詳しいリポートを掲載してました。ふむふむ。スペック的には10Mbpsまでいくけれど熱的に厳しいということですね。apps/の下にあるgorecordは音がずれる、と。
しかし、こちらの方が推奨しているgorecordmod4bのソースが見つかりません...

WIS GO7007はDivX対応ハードエンコの定番みたいで、プレクスターの他にも使える奴がありそうです。各製品でチューナーなんかが違うと、このドライバでは動かないと言うこともありそうですね。現物を手に入れてテストしてみたいところだなあ。

(さらに追記)
PX-TV402Uの現物は通販で購入。明日か明後日届くでしょう。ドライバはLANTANKでコンパイルできましたが、clear_user_pageがundefined symbolとかでロードできません。sh_ksyms.cを見ると確かにEXPORTされてない。clear_user_pageをclear_pageに置き換えればいいような気もするけれど、clear_user_pageをEXPORTするようにカーネルの方を書き換えてビルドし直してみよう..

(追追記)
通販屋からメールが。流通在庫がなければ七日以上かかるのだとか。秋葉の店に店頭在庫がなさそうだから、わざわざ「在庫あり」と明記されてた通販を選んだのに、表記は嘘だったのか……くそー。試すのは少し先になりそうです。

September 04, 2005

LANTANK de 6 ?

白箱本に付属させるCD-ROMのデータ締め切りは明日だそうで。TV録画する何かをつけてくれといわれましたが時間がありません(何かって何だ~)。
tvrecordは、iEPG対応でメール録画もできて、しかも大半シェルスクリプトで書いてあるんでLANTANK向きだろうと改造に着手。pvrusb2ドライバがVideo4Linuxのファンクションをほとんどサポートしていないようで、ごちゃごちゃと書き換える必要があり、昨日一日かけて何となく動くかもしれないくらいにはなりましたけど、あまりにダーティな書き換えに嫌気がさしてやめてしまいました。

仕方ないので大急ぎでatを使った簡単録画予約をでっち上げ~。

録画を予約することと勘で取り消すことしか出来ない、しょぼいツールですけど、何せ時間が無いので、これで勘弁してもらおうかな。

いちおうLANTANKで録画予約して録画できますよ。

(追記)
>ソフト置き場の方にWinTV PVR USB2ドライバを含むカーネルイメージと、即席録画予約システムのアーカイブをアップしました。

September 01, 2005

LANTANKにサインはVGAの緑・白をつなぐ

こちらの方が、白箱にサインはVGAというUSBのVGAドングルを接続しているのは有名です。さっそく追試してみました……が、いろいろと難しいです。

まず、VGAドングルは電気を食うらしく、HDD2基を取り付けた環境でVGAドングルを白箱本体のUSBポートに接続するとHDDのスピンドルが停止してハングアップしてしまいました。直接繋ぐのは危険で、セルフパワー式のUSBハブを介してVGAドングルを接続した方がいいようです。

あと、これは既知かもしれませんが、サインはVGAには青、緑、白と3機種が出ています。こちらの方は青を使っておられますが、白箱だから白だろうってんで白いのを買ってきてみました。

が、動きません。プロダクトIDが違うそうで、どうやらプロダクトIDは

0900 … 青
0901 … 緑
0902 … 白

みたいです。sisusbドライバが下の2つのプロダクトIDに対応していないのでデフォルトのカーネルでは使えませんでした。
カーネルソースのdrivers/usb/misc/sisusbvga/sisusb.cの該当箇所を次のように修正
--
…前略
static struct usb_device_id sisusb_table [] = {

    { USB_DEVICE(0x0711, 0x0900) },
    { USB_DEVICE(0x0711, 0x0901) }, // 緑
    { USB_DEVICE(0x0711, 0x0902) }, // 白
    { USB_DEVICE(0x182d, 0x021c) },

…あと同じ
--

モジュールを作り直せば緑、白に対応できます(白は確認、緑はノーチェックですが動くはずです)。


August 31, 2005

LANTANKでテレビ録画ができた!

何やら白箱の本を作ろうというので、LANTANKをいじってます。LANTANKのいいところはカーネルが簡単に上げられるところで、カーネル2.6を使ってビデオ録画に何となく成功。手順を簡単に書いておきます。やる気がある人は試してください。

・Debian26をインストール
こちらにあるDebian26をとにかく白箱に入れます。

・カーネルの再構築
カーネルのセルフビルド環境を作ってカーネルをビルドし直します。Generic Driver OptionsにあるHotplug firmware loading supportという項目をモジュールではなく組み込みす。あとはvideo4linuxとかもろもろ設定してカーネルをビルド、新しいカーネルで立ち上がるようにします。

・Hauppauge!のWinTV PVR USB2を用意する
 Linuxで使えて日本で手に入るUSB接続のチューナーはこれしかありません。WinTV PVR USB2をとにかく手に入れます。

・pvrusb2ドライバをインストール
こちらの方が作っているpvrusb2ドライバをいただきビルドします。
こいつを使うにはWindowsドライバからファームウェアを抜き出してこなければなりませんが、日本版WinTV PVR USB2に付属しているCD-ROMのドライバからはファームは抜けません。Hauppauge!のホームページからpvrusb2_27_23178.zipをダウンロードして、こいつからファームを抜き出します。ファームの抜き方とインストール先はこちらの方の説明を読んでください。

・hotplugをインストール

apt-get install hotplug

します。

・おもむろに接続
というような具合でドライバをインストールすればWinTV PVR USB2が使えるようになります。まず、

modprobe i2c-core [Enter]
modprobe saa7115 [Enter]
modprobe msp3400 [Enter]
modprobe tuner [Enter]
modprobe tveeprom [Enter]

とドライバを組みこんどいてWinTV PVR USB2を白箱に接続するとドライバが読み込まれます。
チャンネルの変更にはivtvに入っているptune.plが使えました。

ptune.pl --channel 1 --freqtable ntsc-bcast-jp [Enter]

とかやるとチャンネルが変わり、

cat /dev/video0 >/share/movies/hoge.mpg [Enter]

なんてやるとMPEG-2で録画できてしまいます。
その他の微調整は/sys/class/pvrusb2/sn-nnnnn(nnnnnは数字)/以下でコントロールすると良いみたいです。たとえば、

# echo 4000000 >/sys/class/pvrusb2/sn-nnnnnnn/ctl_video_average_bitrate/cur_val [Enter]

とかやるとビットレート4Mbpsになるとか。面倒ですけど、ツールを自作すれば使えそうな予感ですね。


August 22, 2005

C言語似の言語

久しぶりにC++でクラスを1つ書いてみました。USB接続のニキシーボードを
コントロールするのにC++を使おうかなあ、と。
しかし、長らくJavaやらPHPやら、C言語似の言語をいじっていたのでC++の書き方
とごっちゃになっていてミスばかり。ボードの機能が少ないので、書き上げるのは
あっという間ですけど、書き上げた後、メンバの参照のすべてにthis->を付けてる
のに気づいたり(PHPがそうなんですよね~)、newしたものをdeleteし忘れたり
散々です(this->は実害ありませんが)。
JavaやPHPはガーベッジで片づけてくれるのでリソースの解放を気にしなくて良く、
そういうクセが付いてしまうんですね。C++でメモリリークを出すプログラムが増える
のはC言語似のこうした言語とごっちゃになっているのも原因じゃないのかなあ、とか。

July 14, 2005

トロイの木馬入りシェアウェア

遅ネタですけど
Vectorがシェアウェア「Vocal Cancel」の公開停止、トロイの木馬と確認

やっちゃったか…、という感じ。本人は不正使用を裁く正義のつもりだったのかもしれませんが、やって良いことと悪いことの区別が付いてないというか、やることが子供っぽい。いずれにしてもVectorや他のシェアウェアに悪印象を与える事件でしょうね。HDDをクラッシュさせるシェアウェアなんてのもありましたし、ここんところ作る側のモラルが壊れてきてるのかもしれません。

ちょっと角度を変えますけど、私なんかは日立MB-S1とかX68Kとか、どちらかといえばマイナー系のコンピュータを渡り歩いて来ました。こうしたコンピュータのユーザーは連帯感があるというか、お互いに仲間じゃないか見たいなところもありますし、そもそもプログラムを作る人が多かったですから配布したプログラムを使う人もプログラムを作る人、みたいな状況で、仲間に対して害を及ぼすようなソフトウェアを配布するなんてことは頭にも浮かばなかったんですね(浮かんだ人もいたかもしれませんが少なくとも私は)。
そういう状況はDOS/V初期ごろまでは続いていたように思います。
いまはPCが当時とは比べものにならないほど普及して、サプライヤとユーザーが、ほとんど完全に分離してますんで、昔の甘い考えは通用しないんですね。

そういえば、今回はとばっちりを受けて、被害者になったSoftEhterの開発者、登氏の話を以前、聞きに行ったことがありますが、そのときにもジェネレーションギャップみたいのをヒシヒシと感じました。彼はプログラムを作るのが好きなんでしょうけど、ストレートにビジネスに結びつけていこうとする姿勢が、ああ違うなあ、みたいな。
これは悪い意味ではなく、そのバイタリティーに感心し頼もしいと思うと同時に、昔ならこういう風なストレートな形にはならなかっただろうなあ、と。
後ゲイツ世代とでもいうんですかね。PCが普及しきった後に育った新世代のプログラマで、サプライヤとユーザーが完全に分離した世界しか知らないのですから、余計な雑念なく一気にビジネスに結びつけていけるんでしょう。

しかし、サプライヤには一定のモラルが求められるわけで、事の善悪を判断できないようなサプライヤが事件を起こしてしまったのかな、みたいな所ですかね。
悪い製品は市場原理で淘汰されるわけですけど、半ばアマチュアがやっているシェアウェアみたいな形態では、「シェアウェアって信用できないよね、やっぱり」みたいな方向に行っても不思議はないので、その辺がはた迷惑かもしれません。

July 11, 2005

玄箱の電源を壊してしまった…

何やら検索に異変が…

それはさておき、玄箱/HGの電源を飛ばしてしまいました。さまざまなテストをする上でHDDを頻繁に取り替える必要があり、面倒なので剥き出し状態で(箱に入れず)使っていて、危ないなあとは思ってましたが、ついに使用中に金属片かなにかに触れてしまったらしく、派手にスパークしてお亡くなりに…
調べてみるとリードヒューズが飛んでます。

F1と書かれているところに小さなヒューズがあり、テスターで飛んでいることを確認しました。上の写真はヒューズを引っこ抜いた後の様子です。
ヒューズが飛んでるだけなら直すのは簡単。千石からリードヒューズを買ってきて付け替えました。

基板のAC付近が真っ黒。瞬間に大電流が流れたらしくパターンが一部火ぶくれになってますんで、リードヒューズのリードを使ってパターンも修理。基板右側にあるのがリードヒューズです。

問題なく動作するようです。同じ失敗を繰り返さないよう、プラケースに電源基板を入れました。めでたしめでたし。

July 06, 2005

Vine 3.1へのバージョンアップ

@Quake3.jpのサーバーはVine 2.6ベースで組み立てられていたため不満が多く、Vine 3.1へのバージョンアップを敢行、昨日なんとか予定通り? 終わらせることができました。まだ変なところがありそうな予感はしますが…。

フルバックアップを取った(これがまた時間がかかる)後、Vine 3.1のバージョンアップインストールを試しましたが、そのときに気づいたことなど記しておきます。誰かの参考になるでしょう(多分)。

まず、これは以前にも同じ経験をして、そのときは面倒になってインストールし直してしまったのですが、libsafe.soを利用しているVine 2.6でVine 3.1へのバージョンアップインストールを行うと、インストール終了後、すべてのコマンドが動作しなくなります。調べてみるとlibsafe.soがVinePlus側に移されているためとわかりました。古いlibsafe.soが残ってプリロードされるため、libcが呼べずエラーを吐き続けます。コマンドが1つも動かないのでrpmもapt-getもできず手も足も出ません。
今回はインストールし直しというわけにもいかないのでknoppixで立ち上げてHDDをマウントし、rpm2cpioを使って新しい(VinePlus 3.1の)libsafe.soをディレクトリツリーにぶちまけることで対応しました。
libsafe.soを使っている、すべてのVine 2.6のバージョンアップ時に同様のことが起こると思うのですが、Vineのドキュメントには何も記載されていなかったような…。しかし、読み込みが甘いですから、どこかに情報があったのかもしれません。

もうひとつ、はまったのがPostgresql。Postgresql 7.2から7.4に変わりユーザー認証周りが変更になっていたようで、最初は訳が分からず困りました。pg_passwdが廃止されたことを突き止めて、なんとか対応できましたがアレコレと無駄な時間を費やしてしまいました(うんざり)。

安定して動いているサーバーを変えるのは、なかなか面倒で、実行に勇気が必要ですね。

July 02, 2005

PC雑誌はインテルの圧力に負けたのか

元麻布春男の週刊PCホットライン

この記事が巨大掲示板あたりで話題になってるようですね。私が関わってきたのはDOS/V Magazine誌くらいのものですし、ここ数年はCPUの比較関連はほとんどやってませんが、経験した範囲ではインテルあるいはAMDどちらかにバイアスをかけるような話はありませんでした。

AMDとインテルのCPUの性能が伯仲して両者とも熱くなってる中でこういう話が飛び出したんでしょうけど、個人的にはベンチマークの下2桁を争うような記事には興味が無いというか、意味を見出せなくなっています。以前は後藤さんの記事とかも面白く読ませて頂いてましたけど、最近は、どうでもいいやという風にしか思えなくなっているというのが正直なところです。

CPUパワーなんてのは必要に応じて必要なだけあれば十分なわけですよ。ろくに使いこなせないCPUパワーを持っていても無意味でしょう、と思うんですけどね。
皆さん、日がな一日再エンコードでもやってるんでしょうか。

June 24, 2005

いよいよシンクライアント?

遅ネタですけど原発関連の情報がWinnyに流れてしまったようでニュースになってますね。

個人情報保護法の施行なんかもあり、企業は手持ちの情報の管理に神経質にならざるを得なくなってます。件のWinnyなんかは仕事関連のPCにnyを入れるのが非常識という話がありますけど、大きな会社なんかになると、上からいくら駄目と言い聞かせてもWinnyなどヤバ系のソフトを入れる人を根絶するのは難しいでしょう。
ノートPCも盗難や何かにより情報が外に漏れる原因になりがちです。保護しなければならない情報を扱う部署に関しては、ノートPCの外部からの持ち込み/外部への持ち出し禁止を徹底させる必要がありそうです。

こうなってくると、そもそも自由にユーザーがソフトをインストールでき、またUSBストレージ等を接続して情報を外に取り出せてしまうPCというのは、厄介な存在でしかなくなってきそうで、事実、一部の企業や自治体ではシンクライアントの導入を決めたり、あるいは導入を検討し始めているようです。

シンクライアントといえばJavaOSやらOracleのネットワークなんとかとか、過去に色々出ましたけど、結局、鳴かず飛ばずみたいな感じですが、情報漏洩が相次ぐ昨今、ふたたび脚光を浴びる存在になるかもしれません。