preload
9月 25

GV-MVP/RX2 を入手して以来、ubuntu desktop でのテレビ視聴設定に苦心してきたのだが、ivtv-1.0.2 を試してみたら、あっさりうまくいったという話。

基本的には、

  1. ivtvdriver.org で ivtv のソースと firmware を拾ってくる
  2. ぱ研さんとこ(というか macmil_co_jp さんとこ)のパッチを当てる
  3. ivtv 入れる
  4. firmware 入れる
  5. saa7115 やら ivtv やらを modprobe する設定を modprobe.conf へ

という流れなのだが、ivtv-0.9.8 くらい以降 ivtv-0.10.3 くらいまででいろいろ試したが、映像は出るものの、どうも音が出ない(かすかに出ているのだが、どうもデコードと同期に失敗してて聞き取れない)。mplayer で 10 秒くらい視聴していると

**** YOUR SYSTEM IS TOO SLOW TO PLAY THIS! ****

とか怒られて、だんだんカクカクになる。-cache しても -framedrop しても同じ。ライブが不要であれば $ cat /dev/video0 > hoge.mpg とかで録画すれば録画したモノは滑らかに再生できるので問題ないとしても、音が出ないのは致命的だ。

ちなみにマシンスペックは、GA-945G-S3 / Intel Core 2 Duo E6300 @1.86GHz / 2048KB cache / 1.5GB SDRAM / GeForce 7300 GS GPU で、そんなに低いとも思えなかった。

ふと、ivtvdriver.org を見に行ってみたら、ivtv-1.0.2 が出ていた。1.0 系が出ているのを知らなかったので、アーカイブを拾ってみたら README の supported cards に I/O Data GV-MVP/RX2E と、それっぽい記述が(もっとも 0.10 系でもこの記述はあった)。ということで、こいつをビルドしてみる。

ivtv-1.0.2 は kernels 2.6.22 以上対象なので、そのままだとビルドできない。まずはカーネルのバージョンアップから。Ubuntu Geekの記事を参考に、apt の sources.list に Gusty のリポジトリを追記。まさかこんな形で Gusty を試すことになるとは思わなかった。2.6.22-12 の各種ディストリビューションパッケージを $ sudo apt-get install => 再起動。NVIDIA カードの初期化に失敗したとかいって X 起動に失敗したので、nvidia 関連のパッケージ(nvidia-glx-new, nvidia-glx-new-dev とか)もインストールして、$ sudo modprobe -r nvidia && sudo modprobe nvidia-new した。

カーネルのバージョンアップが終わったら、ivtv-1.0.2 を $ make && sudo make install で OK。firmware をインストールしてから再起動。で、

$ ivtv-tune -d /dev/video0 -t japan-bcast -c1
$ mplayer /dev/video0 -cache 8192 -framedrop

で視聴開始。む、またも音が出ない。やはりパッチが必要か。

というわけで macmil_co_jp さんとこからパッチを取得。macmil_co_jp さんとこは相当数のパッチを公開されてて、目的のモノを捜し出すのがちと大変。僕が拾ってきたのは、

  • http://www.macmil.co.jp/macmil/dat/s7115f8p.tar
  • http://www.macmil.co.jp/macmil/dat/tvau-f8p.tar
  • http://www.macmil.co.jp/macmil/dat/kb10-f8.tar

この3つ。それぞれ、saa7115.c, tvaudio.c, Kbuild にリネームして ivtv-1.0.2 を再ビルド。ついでに と /etc/modprobe.conf に saa7115 やら tvaudio の設定を追加。

ivtv screenshotこれで再度 mplayer 起動。おお、音が出た!カクカクも起こらない!

あとは適当に tv コマンド(テレビ起動) やら ch コマンド(チャンネル変更) やらを整えて完了。Gusty 標準(?) の Compiz を有効にしてウィンドウふにふに 3D デスクトップしても、テレビ視聴問題なし。うーん、すばらしい。

ちなみに、S 端子入力にプレステ2の映像を突っ込んで、

$ v4l2-ctl -d /dev/video0 –set-input=1

とかすれば、S 端子外部入力に切り替えできる。–set-input=2 ならコンポジット(RCA)端子入力。でも、外部入力からの映像表示は遅延が大きく、コントローラ入力から映像への応答を見るに 2 秒弱遅延しているようだ。これはゲームには無理かなぁ。。

2007/10/01 追記。
-cache 8192 してたから遅延は当たり前でした。でも、-cache しなくても 1 秒弱は遅れるので、やぱしゲームでの利用は厳しいな。

Tagged with:
5月 10

その後、berylの調子が悪いので、結局フルで入れ直した。「デスクトップ効果」メニューで十分ぐりぐりできるし、確かに前よりサクサク動く。

で、開発(というかテスト)環境も久々に再構築。
僕の場合、パッケージに頼った方が無難とは分かっていながらも、

  • 自分流にアプリケーション配置したい
  • 更新に即対応できるようにしておきたい
  • いろんな条件のサーバに触ることになっても無難に対応できるようにしたい

とかの理由で、せめて開発にわりと直結するげなアプリについては、ソースからインストールすることが多い。パッケージによってはオリジナルと比較して全然違うファイル構成になってたりして、設定方法もわけわかんなくなっちゃってることあるし。なんかあったときに、動作を追うのが大変だから、入れるときに一通り確認するようにしてる。(でもmysqlはいつもビルド済みのバイナリを拾ってきてた。)

ということで、ubuntu 7.04 に apache-2.2.4, mysql-5.0.37 入れて、php-5.2.2 の設定に
進んだら、configure でエラー。

$ ./configure –prefix=PREFIX –with-apxs2=/path/to/apxs –with-mysql=/path/to/mysql –other-configure-option..
:
checking for mysql_close in -lmysqlclient… no
checking for mysql_error in -lmysqlclient… no
configure: error: mysql configure failed. Please check config.log for more information.

とか出ちゃう。いろいろログを追っていくと、どうも glibc 周りがクサい。で、glibc のバージョンを確認。

$ ls /lib/libc-*
/lib/libc-2.5.so

うお、2.5 だ。etch も 2.5 って聞いてたけど、$ cat /etc/debian_version したら 4.0 だし、なるほど、これは見逃していた。

ということで、今回インストールしてたのが mysql-5.0.37-linux-i686-icc-glibc23.tar.gz だったから、これをソースからインストールすることに決定。mysql-5.0.37.tar.gz を拾ってきて、configure する。mysql ソースインストールは初めてだ。

ところが、この configure も通らない。

$ ./configure –prefix=PREFIX
:
checking for tgetent in -ltermcap… no
checking for termcap functions library… configure: error
: No curses/termcap library found

ぬー、なんか足りないらしい。あまり深いライブラリ群まで一個一個用意するのはさすがに手間なので、このあたりからパッケージに頼ることにした。$ apt-get source mysql-server-5.0 でパッケージのソース一式を取得し、 *.dsc の中の Build-Depends を確認。libncurses5-dev が足りなかったらしい。

ここまでのまとめ

  • ソースインストールとパッケージインストールを中途半端に混在させると、バージョン合わせとか超大変。ソースでやるなら覚悟を決めて、着実にやる
  • 新しげな環境へのソフトウェアインストールは、ちゃんとマニュアルを読んで一歩一歩進める
  • READMEとINSTALLちゃんと読んでいけば、大体インストールできる
  • apt-get source で取得したファイル中でパッケージの依存関係がわかるので、糸口掴むのに使える

とりあえず、php-5.2.2 の configure までは通った。
でも、make test でまだコケる。なんでー?

=====================================================================
FAILED TEST SUMMARY
———————————————————————
Bug #41117 (Altering $this via argument) [Zend/tests/bug41117_1.phpt]
Bug #16069 [ext/iconv/tests/bug16069.phpt]
iconv stream filter [ext/iconv/tests/iconv_stream_filter.phpt]
json_encode() & endless loop – 3 [ext/json/tests/005.phpt]
Bug #22414 (passthru() does not read data correctly) [ext/standard/tests/file/bug22414.phpt]
proc_open [ext/standard/tests/general_functions/proc_open02.phpt]
=====================================================================

(2007/05/30追記) その後、システム開発の備忘録 さんのエントリを発見。うちもFAILEDが6個だったから一緒かな。(クリーンインストールなので設置済みの php.ini があったわけではない。)
テストの内容、fixされたバグ的に、あまり重くない内容のようだったので、レポートだけ送って、オフィシャルの対応を待つことにした。そのまま make install できたし、いまのところ特に問題なく使えてる。うーん、ちと気持ち悪い。

Tagged with:
2月 17

ubuntu desktopにPlaggerをインストールした

Perl コメントは受け付けていません。

デスクトップ環境(ubuntu 6.10 desktop (Edgy))にもplaggerを、と思ったら、すげー面倒だった。前がうまく行き過ぎただけっぽい。
通常のインストール方法は、いろんなとこに解説があるので、表面的な作業ポイントだけメモ。

  • rootでインストールする。$ sudo su -
  • rootでインストールする際の設定は、/etc/perl/CPAN/Config.pm
  • 「suVeneのあれ」さんのエントリを参考(このエントリはローカルユーザ用なので、読み替えること)に、make時のログを仕込んでおく。これがどうにも困ったときの切り口になる
  • CPAN ring serverは、稼働確認してから。今回はkddiが繋がらなかったのでjaist使用
  • CPAN初期設定が終わったら、とりあえず
    # cpan install Bundle::LWP Bundle::CPAN Crypt::SSLeay
    しておく
  • # cpan install Plagger とりあえずやってみる
  • 途中でauto installするかどうか聞いてきたら、パッケージ名覚えて、Ctrl-Cとかで一旦抜ける(ここで任せてしまうと、凄い勢いでmake testメッセージが流れてしまうので依存関係がワケわかんなくなる)
  • そのパッケージ(たとえば、Test::Pod)を単独で cpan install してみる
  • そこから関連してるパッケージがあったら、また抜けて、単独で cpan install してみる
  • 上記を繰り返していると、たまにmake test失敗が出る。その名の通りテストプログラムの失敗によるもの。ログを追って、前後のソースを見て、適宜潰す(結構いっぱいあって、どこを変えたかわからなくなった)。自分で全部潰していると大変だが、大抵は検索すれば、そのパッケージをインストールする時の対応方法が見つかる。が、ほとんどの場合、(推奨はしないが) cpan> force install <パッケージ名> で make install は通ってしまう
  • そんなかんじで、ぐるぐるやってるとインストール終了。# cpan install Plagger で make install — OK が返る。結局4時間くらいかかった Orz

しかし、入れてみてなんだが、ラップトップに入れてしまうと、便利にすればする程、自分(の仕事時間とか)に割り込み機会を入れてしまうなあ。やり過ぎないようにせねば。

Tagged with:
1月 23

ubuntu+berylでデュアルモニタが使えない

Uncategorized コメントは受け付けていません。

Thinkpad X41 で ubuntuデスクトップ+beryl しているのだが、デュアルモニタ設定がどうもうまくいかない。

higeponさんエントリ を参考にして、外部ディスプレイで X が起動してマウスカーソルを相互移動できるところまでは行っているんだが、外部ディスプレイ側で GNOME が起動してくれない。当然ウィンドウの移動もできない。おかしなことに試行のたびに挙動が変わり、X が落ちたり、ログイン画面のフォーム以外真っ黒(フォームには入力文字が出ない)、手探り(キーボード操作だけ)でなんとかログインするも、なにやら切り替わった後のログイン後画面が真っ黒という状況もたびたび起こる。GNOME が一旦起動した後、母艦側ディスプレイで対角線状に線がパカパカ走り X が落ちる、という症状もよく見られる。

beryl を起動しない設定にすると、X 起動に失敗。惜しいところまでいってると思うんだけどなあ。

Tagged with: