玄箱/HGのハックとかに挑戦してみる(そして未完)

※続報:裏技(笑)で完成http://d.hatena.ne.jp/shun_t/20060520/p1
何年か前、玄箱を売り始めたのを見て、かつ玄箱をハックしよう!玄箱をハックしよう!―ハックキットで夢のVine Linuxホームサーバーを店頭で立ち読みし、いつか玄箱でPCレス録画サーバでも作ってみたいなと思っていた私。


院生当時経済的な余裕はそこそこあったものの、修了するまでは院を出て行くシャットダウン処理に追われ、結局職についた今になって作ってみる気になったと。


今回そろえてみたのは玄箱/HG及びPC-MV71DX/U2という最新コンビ。
でも、ハックする側にとってみると、この新しさが障害になってくるんだろうなぁと思いつつ。
・・・結局、色々やってみたものの、予想通り録画サーバ未完ということで。
ちなみに、現在玄箱をハックしよう!を手に入れるのは非常に難しい模様です。生産終了してます。クロネコヤマトブックサービスとか在庫あり表示になっているところもありますが、大抵うそつきでしょう。実際、クロネコは注文してみて在庫ないって返事がきました。
運良く友人Pが、玄箱開発関係に近い知り合いがいたということで、そこから本を借りることができました。コピーしまくりました。超ありがたや。未開封のCD開けてごめんなさい♪


参考にしたページは色々。
(勿論)http://www.yamasita.jp/linkstation/index.html
(dummy.cのHG用ソース)http://www.yamasita.jp/cgi-bin/BBS/eztree.cgi?action=view&view_num=2730
(玄箱HG + PC-MV7DX/U2)http://www.yamasita.jp/cgi-bin/BBS/eztree.cgi?action=thread_view&view_thread=2680
(玄箱/HGでのPC-MV71DX/U2動作)http://www.yamasita.jp/cgi-bin/BBS/eztree.cgi?action=thread_view&view_thread=3700
(初代玄箱でPC-MV7DX/U2 新ドライバを使用する)http://www.yamasita.jp/cgi-bin/BBS/eztree.cgi?action=thread_view&view_thread=3760
(HackKitとのすり合わせ3)http://www4.point.ne.jp/~name-box/0502/050215_2.html


結局なんだかんだやってみて、ドライバのロードまではうまくいく場合があるものの、認識する側がドライバとデバイスを結びつけられていない感じとなってしまい・・・。


基本的に玄箱/HGのファームは最新(1.01,多分)、使わせて頂くハックキットは1.2です。

新ドライバからのアプローチ

http://www.yamasita.jp/cgi-bin/BBS/eztree.cgi?action=thread_view&view_thread=3760
を参考に進めてみる。内容は初代玄箱 + PC-MV7DX/U2
http://furai.exblog.jp/2978895#2978895_1を見せていただき作ったdummy.oのforce loadは成功です。
が、mv7*系のドライバは、forceでも読み込んでくれません。vermodする前はinsmodでkernelのバージョンが違う、と怒られたのに、vermodするとそんなバージョンのkernelは動いてねぇぞと怒られます。よく分からないので終了。
確か、ハックキット2.0αでもこうなったような・・・。

書き込みNo2744からのアプローチ

http://www.yamasita.jp/cgi-bin/BBS/eztree.cgi?action=thread_view&view_thread=2680
このスレ2744の方は、このスレの通りにやって快調に動いてらっしゃるようです。
内容は玄箱HG + PC-MV7DX/U2ということで、少し自分の環境に近づきます。
dummy.cのコンパイルで出てくるautoconf-up.hのエラーは、この掲示板のどこかに書いてあったようにecho "" > /boot/autoconf-up.hで回避。*1
dummy.cのシンボル交換コンパイル・ロードは快調、LSUVCD.oのロードも快調、共にlsmodで出てきます。しかも/proc/LSUVCDが出現しています!これは期待できますねぇ!
しかし・・・cat /proc/LSUVCDは全てnone。全くやる気を感じません。


ドライバを読み込んだままでUSBケーブルを抜き差ししてdmesgを見てみると・・・

usb.c: registered new driver LSUVCD
usb.c: USB disconnect on device 00:0e.2-1 address 2
hub.c: new USB device 00:0e.2-1, assigned address 3
usb.c: USB device 3 (vend/prod 0x411/0xa3) is not claimed by any active driver.

なんですか?抜き差しは認識してるんですが、どのドライバにも関連づいてないようです?0x411/0xa3を何とかしてmodules.usbmapに書き込めばいいんだろうか・・・。
なんか分かったような分からないようなということで、http://www.shino.pos.to/linux/scanner.htmlやらhttp://www.linux.or.jp/JM/html/modutils/man5/modules.conf.5.htmlやら見ながら、vendorやproductを指定してmoduleを読み込んでみる。

#insmod -f /lib/modules/2.4.17_mvl21/kernel/drivers/LSUVCD.o vendor=0x411 product=0x3a
Warning: loading /lib/modules/2.4.17_mvl21/kernel/drivers/LSUVCD.o will taint th
e kernel: non-GPL license - Proprietary
See http://www.tux.org/lkml/#export-tainted for information about tainted modules
Warning: loading /lib/modules/2.4.17_mvl21/kernel/drivers/LSUVCD.o will taint the kernel: forced load
Warning: ignoring vendor=0x411, no such parameter in this module
Warning: ignoring product=0x3a, no such parameter in this module
Module LSUVCD loaded, with warnings

・・・きっと変な事してますね、私?勿論デバイスは認識されません。
このアプローチ、ギブンアップ。*2

最後の晩餐

http://yamasita.jp/BBS/3700.html
こちらはビンゴな組み合わせで、玄箱/HG+PC-MV71DX/U2
スレッドの流れを見てみると・・・見放されている。完全に。


気を落ち着けつつHGLANの1.49ファームウェアからimage.datを用意し、ハックキット2.0αを試してみることに。
viがめんどい私は常にemacsをapt-getしているのですが、ハックキット1.2では-nwが正常動作しているのに、2.0αでは、そのままでは正常動作しないようです。解決はきっとどなたかが(逃避


順に、シンボルを変更したり関数を加えたりし、unresolved symbol関連のエラーをなくすのはOK。
dummy.oを読み込んで。
LSUVCD.oをinsmodっと・・・・・・・・・・
ハング
このスレッド、問題解決になってないのですな・・・。
ちなみに、USB端子にキャプチャはつないでいません。


http://www4.point.ne.jp/~name-box/0502/050215_2.htmlにあったジェイさんの「しかし、LSUVCD.oはそう簡単に行きません。insmodでインストールしようとすると、即死です」というのは、恐らくこの状態をいうのでしょうね。
完全にハングして、TeraTermは強制切断(強制的に閉じる)、電源ボタン長押しでも電源落ちない、コンセント抜くほかない、と。勿論telnet接続もできません。

終了

はい、そんな訳で。技量不足見え見えでサーバ未完成、死亡・・・。
訳わからんなぁー。無駄に数日時間食うのは悲しいなぁー。

※続報:裏技(笑)で完成http://d.hatena.ne.jp/shun_t/20060520/p1

*1:autoconf.hをautoconf-up.hにしてコピってもコンパイルだけはできました。いいのか?それは?

*2:give upよりgiven upの方が、音的にもうだめだ感が出る気がする