Linuxつかってみる

Linuxとivtvでテレビ。

Bugs

2006年12月25日 | TVsw
設定ファイルからの読み込みに対応したつもりだったけど、
バグってる。
チャンネルのアップダウンがおかしい。
直して出し直します。

TVsw 仕様変更

2006年12月24日 | TVsw
起動時設定ファイル読み込むようにした。
一度設定してしまえばそんなにさわる事も無いんだけど、オプションさわるだけなのにコンパイル面倒だし、気にはしてたんだ。
手元では一応うまくいってる感じなんだけど、プログラミング自体ど素人なので、いつもの如く力ずくです。
設定ファイルの書式もスペース区切りな怪しげな仕様。
あやふやなんだけど、取り敢えず動けばいいや的な感じです。

1〜12の選曲ボタンにチャンネル、表示番号、周波数テーブル(0がbcast、1がcable)
TVsw本体の表示位置
音声同期用のスリープする秒数
mplayerのコマンドとオプション(デバイス名は除く)
xineのコマンドとオプション(デバイス名は除く)
TVsw本体の色
画質
ボリューム
デバイス
辺りは対応した。

フィルタとビットレートはまだですが、クリスマスイブなので。。。

設定ファイル書き出したりはしません。
TVswrcを~/.TVswrcとして手動でコピーしてやって下さい。

Happy Merry Christmas !!

P.S.
ivtv-0.8.2用のボリュームパッチがぱ研にアップされてたのでその辺も以前の様に戻しました。

>> TVsw置き場

音声多重の件

2006年11月29日 | TVsw
v4l2-ctlのオプション、音声多重の部分見落としてた。
同じ機能だと思うんだけど、オプションがふたつあって、

v4l2-ctl -c audio_stereo_mode 1〜3

で最初試してたんだけど、

v4l2-ctl -t mono, stereo, lang2, lang1, bilingual

ってのがあった。試してみるとこちらはきちんと機能する。
amixerでの疑似対応とは違って、モノラルでも両方から音声が出る。大文字の -T オプションではきちんと表示されないけど、音声はきちんと切り替わっている模様。

-s オプションではtunerのntsc-m とかntsc-m-jの切り替えも出来るっぽいんだけど、GV-MVP/RX2Wも追加してテストしようとしたら、rmmod ivtvでフリーズするし、saa711x.cにパッチ当てなきゃならないっぽいし、ぱ研さんのサイト雑然としててわけ分かんないし、そのうちなんとかなるだろうということで、すぐに外してしまった。(汗
rmmod フリーズは正直きつい。

その点、CX23416...の方は例のちらちらノイズ出たらもう一回読み直せば直るから、svnの方を入れたり、0.8.1にしたりと試行錯誤が容易で助かる。


一応、TVswの音声切り替え部分のコードだけど、タブとか削られるんだよな。気にしない気にしない。

// 音声多重切替
void Form1::Sap_Mode_clicked()
{
stringstream strstr;
string sap_command = "v4l2-ctl -d /dev/video";
strstr << sap_command ;
switch (sap_flag)
{
case 0:
strstr << sap_command << dev_no << " -t stereo"<< endl;
sapstat = "Stereo";
sap_flag = 1;
break;
case 1:
strstr << sap_command << dev_no << " -t mono"<< endl;
sapstat = "Main";
sap_flag = 2;
break;
case 2:
strstr << sap_command << dev_no << " -t lang2"<< endl;
sapstat = "Sub";
sap_flag = 0;
break;
default:
strstr << sap_command << dev_no << " -t stereo"<< endl;
sapstat = "Stereo";
sap_flag = 1;
break;
}
sap_command = strstr.str();
system(sap_command.c_str());
SAP_text->setText(sapstat);
}


Kensington Expert Mouse Pro

2006年11月29日 | FC6
momonga-linux の wikiにチルトホイールの付いたマウスで横スクロールの設定方法について載っている。
必要なパッケージは
xorg-x11-drv-evdev
xbindkeys

自分はKensingyon の Expert Mouse PROを使っている。(生産終了したのか?)
別にチルトホイールが付いているわけでもなければ、横スクロールがしたいわけでもない。

ただ、ハード的にはホイルを併せて全部で13ボタンあるのに、6個Linuxでは何も割り振ることもなく余らせていた。普通に使うには不便もないのでいいんだけど、せっかくあるんだし設定してみようと思って探してたら、これといった解決策がきちんとまとまった形での情報が掴めなくて、半ば諦めつつも2ちゃんねるで聞いてみたら、evdevというドライバで動くんじゃないかと指摘してもらって、以外とあっけなく全部のボタンを活用できるようになったので、メモ書き。

$ cat /proc/bus/input/devices
〜略〜
I: Bus=0003 Vendor=047d Product=1002 Version=0400
N: Name="Kensington USB/PS2 Wheel Mouse "
P: Phys=usb-0000:00:10.3-2/input0
S: Sysfs=/class/input/input2
H: Handlers=mouse0 event1
B: EV=7
B: KEY=7ff0000 0 0 0 0 0 0 0 0
B: REL=103
〜略〜

トラックボールの
Handlers=mouse0 event1
がxorg.confを編集時に必要になる。
編集したのはこれだけ。

Section "InputDevice"
Identifier "Mouse0"
Driver "evdev"
Option "Device" "/dev/input/event1"
EndSection

Xを再起動すると
$ xmodmap -pp
There are 13 pointer buttons defined.

Physical Button
Button Code
1 1
2 2
3 7
4 4
5 5
6 6
7 3
8 8
9 9
10 10
11 11
12 12
13 13
ってな感じで全てのボタン認識したのを確認できた。
7と3は右クリック野位置を右上にするために入れ替えてある。
xmodmap -e "pointer = 1 2 7 4 5 6 3 8 9 10 11 12 13"

ボタンが認識すれば、適当にコマンドを割り振るだけなんで
$HOME/.xbindkeysrc 作って、ランチャボタンとして使用してる。

"Terminal"
b:8
"QDevelop"
b:9
"jd"
b:10
"opera"
b:11
"TVsw"
b:12
"Thunar"
b:13

もっとこの辺のボタンは有効に使えるはずなんで、またその都度考えよう。
使わなくても別に不便は感じなかったんだけど、いざ設定して使いはじめると、ちょっと便利だ。

設定方法が分かってから調べ直すと、結構簡単に見付かる見たい。タブレットのひとが設定をメモってたりするらしい。

音声多重も amixer で疑似対応

2006年11月24日 | TVsw
今朝アップしたファイルが、HTMLからリンクされてなかったか、リンク文字の修正ミスしてたのと、make clean し忘れてて、でかいファイルになってたので更新。
音声多重に疑似対応したものを新たにアップしておいた。

amixer でsapボタンで左右片方ずつ0%にしているだけなんで、モノラルなスピーカーだと聞こえなくなるかも。
いつぞやもあった左右のチャンネルがほんの少し互いに混ざっているっぽい。

v4l2-commonがbug持ちらしいので、kernel上がればその辺もよくなるんだろうか?

>> TVsw置き場

TVsw 修正

2006年11月24日 | TVsw
音声回りがファーム側でうまくコントロールできないので、とりあえず、alsa側でボリューム調整と、ミュート処理をするようにした。具体的には

$ amixer -q set Master 80%
$ amixer -q set Master mute

みたいな感じ。
それと、画質調整の部分に、表示中のチャンネル再発行するコードを削除し忘れてたんで改めて削除した。音声多重は未対応。
チャンネルとボリューム、サンプリングレートが動けば、そこそこrawvideoモードで見られると思うのでしばらくまた様子見。

>> TVsw置き場

ivtv-0.8.1

2006年11月24日 | ivtvでテレビ
ぱ研さんに、rawvideo関係の報告が上がっていた。mplayer の -aspect 4:3 を-aspect 720:512 にするらしい。
ドライバのリビジョンが違うのかsvn 0.9 r3609(最新はr3611) にて当方では違いが見られなかった。
ivtvのリビジョンを遡って行くと、どこかでrawvideoが見られる所があるだろうと調べたりしてたんだけど、結果は得られず、気晴らしに、2006-11-19に出た本家0.8.1をいれてみたらrawvideoが映った。わけわからん。
音声回りは、相変わらずなんだけど、とりあえずrawvideoが見られる様なので一安心。
aspectは4:3のままで表示できている。

TVsw update for ivtv svn version

2006年11月19日 | TVsw
ivtv svn r3583 で暫定的に TVsw を更新アップしておいた。
v4l2-ctlと、ドライバがまだ音声回りを中心に不完全っぽいが、xineでmpeg見る用って感じ。
機能的な追加は一切なし。
ivtvctlからv4l2-ctlへの移行に伴う追随のみ。
結果、ドライバの完成度の問題により機能的にはダウン。

ivtv svn r3583 にてなんとか動作

2006年11月17日 | ivtvでテレビ
ぱ研方でもコメントがあるように、GV−MVP/RX2Wがフリーズの原因だったらしい。最近は両方挿してあって、FC6への移行やv4l2への移行具合も中途半端だったのでしばらく様子見だったんだけど、GV−MVP/RX2Wを外してしまった。そしたら、フリーズはなくなった。ファームウェアも一度削除して、改めてダウンロードしてきたものに入れ替えてどうやらmpeg2は映るようになった。ただraw−videoの方がちょっとおかしくなってしまった。
ピンクやら緑の横縞の映像が出てしまう。以前からmplayerの画面上でスクロールまたは方向キーを押すと、映像が乱れていく現象なんだけど、うまく表示出来ない。ズーッと方向キー押し続けると次第に正常な映像にまでいけたりずれてしまったり。
raw-videoは一端放置。

動作確認にcatしたりコマンド打つのがすこぶる面倒なんで、TVsw修正する。
ivtvctl から v4l2-ctlにコマンドが移ったのでその辺は修正が必要な模様。
オプションが整理されてて分かり易くていい感じだった。

音声回りがまだ、うまく機能していないみたい。
volume, mute, audio_stereo_mode あたりが効いてない。

xineやmplayer側で調整出来るしまぁいい。
映像回りは、ノイズリダクションは効いてる。以前は、コマンド発行と同時に反映されない不自然な動作があったんだけど、すぐに反映される様になってる。ビデオビットレートも、音声のサンプリングレート変更も大丈夫。
通常使用に関しては問題なさそう。
ノイズリダクションのモードを示す上から4番目のスライダーは要らない感じ。
ゴーストリデューサーはどう設定するんだかよくわからん。
0.2rc3jで機能してたんだけど0.5になった辺りから効いていないはず。

何かそのあたりの設定するコマンドがあったはずだけど、どこかに吸収されてしまったのかな。
まぁ、MythTVでも動くし色がおかしくなることも無いみたいでホッとした。

raw-video不調はファームのちがいなのか、ドライバに手が入ったのか要チェック。



デスクトップ背景にmpgが出来るそうなのでやってみた。
xwinwrap -ni -o 0.6 -s -st -sp -b -fs -nf -- mplayer -wid WID -really-quiet -vf lavcdeint -double -stop-xscreensaver -dr /dev/video0
意味ないのですぐやめたけど、妙に長いので一応メモ。


TVsw 久々にQtDesignerで.ui開いたら、チャンネルボタン作れねぇってすこぶる怒られた。自分で作っておきながら、plugin入れてなかった。geditで済ませる事ばっかだったんで、すっかり忘れてしまった。コンパイルはplugin無しで出来るから気にもしてなかった。

r3577 ファームロード出来ず

2006年11月14日 | ivtvでテレビ
問題発生。
$ ivtvctl -H でこれまで通りファームをリロードしようとするとこのオプションが既にどっかに移してしまっているのか、なんの反応もなくコンソールに帰ってくる。もちろんリロードはされていない。のちのちで調べるとして、
# rmmod ivtv
すると、完全にフリーズしてしまった。うんともすんともいう気配すら無し。
電源入れ直して普通に起動し、動作するものの目に見えない部分が怪しげ。
例のノイズが入ってしまった場合、リロードしたいんだけど、その度にリブートかと思うと気が思い。

で、カーネル2.6.18-1.2849.fc6が来たついでに、ivtvもsvn up。
r3577になった。
結果、ファームウェアのロードすら失敗するよ。

Linux video capture interface: v2.00
ivtv: ==================== START INIT IVTV ====================
ivtv: version 0.9.0 (development revision 3574) loading
ivtv: Linux version: 2.6.18-1.2849.fc6 SMP mod_unload 686 REGPARM 4KSTACKS gcc-4.1
ivtv: In case of problems please include the debug info between
ivtv: the START INIT IVTV and END INIT IVTV lines, along with
ivtv: any module options, when mailing the ivtv-users mailinglist.
ivtv0: Autodetected Yuan MPG600GR, Kuroutoshikou CX23416GYC-STVLP card (cx23416 based)
ACPI: PCI Interrupt 0000:00:05.0[A] -> GSI 16 (level, low) -> IRQ 185
ivtv0: Unreasonably low latency timer, setting to 64 (was 32)
ivtv0: retry: file loaded was not v4l-cx2341x-enc.fw (expected size 262144, got 376836)
ivtv0: retry: file loaded was not v4l-cx2341x-enc.fw (expected size 262144, got 376836)
ivtv0: retry: file loaded was not v4l-cx2341x-enc.fw (expected size 262144, got 376836)
ivtv0: unable to open firmware v4l-cx2341x-enc.fw (must be 262144 bytes)
ivtv0: did you put the firmware in the hotplug firmware directory?
ivtv0 warning: failed loading encoder firmware
ivtv0 warning: Error -3 loading firmware
ivtv0: Retry loading firmware
ivtv0: retry: file loaded was not v4l-cx2341x-enc.fw (expected size 262144, got 376836)
ivtv0: retry: file loaded was not v4l-cx2341x-enc.fw (expected size 262144, got 376836)
ivtv0: retry: file loaded was not v4l-cx2341x-enc.fw (expected size 262144, got 376836)
ivtv0: unable to open firmware v4l-cx2341x-enc.fw (must be 262144 bytes)
ivtv0: did you put the firmware in the hotplug firmware directory?
ivtv0 warning: failed loading encoder firmware
ivtv0 warning: Error -3 loading firmware
ivtv0: Error initializing firmware
ivtv0: Error -19 on initialization
ivtv: ==================== END INIT IVTV ====================

ファームの置き場所が変わったのか、別に今まで通り /lib/firmware/ に置きっぱなしなんだけど認識してくれない模様。ファームのサイズが違うからか?