[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:47533] TVキャプチャカード SAA7133GYC-STVLP/Rの動作報告



長部です。
Yahooメールの改行の仕方がひどいので、同名タイトルのメールを別メールアドレスから
再送します。

長部です。自己フォローです。長文になりますが。。。

玄人志向TVチューナー搭載ビデオキャプチャカードSAA7133GYC-STVLP/Rの動作に成功
しましたので、報告します。このカードはソフトウエアエンコードです。動作環境は、

マザーボード Gigabyte Pentium 4 Tian Series GA-8SRX
サウンド Creative Sound Blaster PCI127(オンボード)
TVチューナーカードの音声出力をサウンドボードの音声入力に接続

です。DebianのバージョンはSargeでカーネルは2.6.8ですが、カーネルにパッチを
あてて再構築するのと、SAA7133GYC-STVLP/R用のカーネルモジュールをインストール
する必要がありました。カーネルパッチは、
http://www.tadachi-net.com/pool/saa7133gyc-stvlp_040619.tar.Z
のカーネルパッチをカーネル2.6.8向けに修正したものを用い、また、カーネル
モジュールは上アーカイブを使ってインストールしました。2.6.8カーネル用のパッチ
は、メール末尾に掲載します。

■カーネルの再構築、カーネルモジュールインストール手順
1. kernel-packageのインストール
# apt-get install kernel-package

2. カーネルソースのインストール、展開
# apt-get install kernel-source-2.6.8
# cd /usr/src
# tar jxfv kernel-source-2.6.8.tar.bz2

3. 玄人志向TVチューナーカード SAA7133GYC-STVLP用パッチの適用
パッチsaa7134-k268-patch-saa7133gyc_061024(メール末尾掲載)を/tmpディレクトリに
置いているとします。
# cd /usr/src/kernel-source-2.6.8/drivers/media/video/saa7134
# patch -p1 < /tmp/saa7134-k268-patch-saa7133gyc_061024

4. Debian向けカーネルパッチパッケージのインストール
# apt-get install kernel-patch-debian-2.6.8

5. libncurses5-devパッケージのインストール
# apt-get install libncurses5-dev

6. カーネルの設定
カーネルソースコードを展開したディレクトリ( /usr/src/kernel-source-2.6.8 )に
移動して、
# make-kpkg clean
ターゲット名configureを指定して実行
インストールした後のカーネルパッチはmake-kpkgのときに自動的に適用されるという
情報があるので、--added-patchesはつけず
# make-kpkg --revision local.1.0 --config menuconfig configure
Load an Alternate Configuration Fileで、/boot/config-2.6.8-2-386 を入力後、
Exit。なお、config-2.6.8-2-386では、デフォルトで、
Device Drivers --->
Multimedia devices --->
Video For Linux --->
『Video For Linux』
<M> Philips SAA7134 support
となっています。

7. カーネルのコンパイル
# make-kpkg --initrd kernel-image

8. 作成したカーネルのインストール
カーネルイメージパッケージが、カーネルソースの1つ上のディレクトリに作られる
ので、それをインストールする。
# dpkg -i ../kernel-image-2.6.8_local.1.0_i386.deb

9. 玄人志向 SAA7133GYC-STVLP(/R)用カーネルモジュールのmake、install
まず、インストールしたカーネルで、再起動しておく。
http://www.tadachi-net.com/pool/saa7133gyc-stvlp_040619.tar.Z
を/tmpにダウンロード、展開
$ cd /tmp
$ tar zxfv saa7133gyc-stvlp_040619.tar.Z

make、install
$ cd saa7133gyc-stvlp_040619
$ su
# make all install
# demod -a

■SAA7133GYC-STVLP/Rを使用したテレビの視聴
SAA7133GYC-STVLP/R用のカーネルモジュールは初期化に失敗するようで、一度、
デュアルブートのWindowsで、テレビ視聴、録画ソフトPowerVCR IIを起動して、PCを
再起動してDebianを立ち上げていないといけないようです。電源断した後は、いつも
やらないといけないようです。

1. xawtvのインストール
# apt-get install xawtv

2. カーネルモジュールの読み込み
saa7134があらかじめ読み込まれているので、はじめにrmmodしておく。
# rmmod saa7134
# modprobe upd64031a card=6
# modprobe upd64083 card=6
# modprobe saa7133gyc_stvlp debug=1
# modprobe saa7134 oss=1

3. xawtvによるテレビの視聴
$ xawtv
音が出でないことがあるが、サウンドにalsaを使っている場合には、
$ alsamixer
として、LineのmuteをMキーで解除する。これは、PCを起動するたびにやらないと
いけないようです。

■SAA7133GYC-STVLP/Rを使用したテレビの録画、再生
1. mencoderのインストール
# apt-get install mencoder

2. aumixのインストール
# apt-get install mixer

3. aumixによる設定
$ aumix
録音する音源がデフォルトでマイクになっているので、Micの左にR(ecord)が付いて
いるのでLineにカーソルを合わせて[Space]する。これで、Lineの左にRが付く。

4. 録画
使用例
1チャンネルを60秒録画するとして、
$ mencoder \
-tv driver=v4l2:device=/dev/video0:input=2:amode=2:forceaudio \
-tv norm=NTSC:width=640:height=480 \
-tv chanlist=japan-bcast \
-vf pp=lb,crop=636:472:4:0,expand=-4:-8:2:4,scale=400:300 \
-ovc lavc \
-lavcopts vcodec=mpeg4:vqscale=4 \
-oac mp3lame -lameopts cbr:br=128 \
-endpos 60 \
tv://1 -o test.avi

5. 再生
$ mplalyer test.avi

なお、上で出てきたソフトをインストールする際には、apt-lineに
deb http://www.debian-multimedia.org sarge main
を加えておかないといけないかもしれません。また、lameのインストールも必要かも
しれません。

参考文献、URL
http://blog.u-o-u.net/index.php?catid=4&subcatid=1
http://www.tadachi-net.com/desktop_pc/asus_terminator/avserver7.html
http://www.imlab.sie.dendai.ac.jp/wiki/index.php?VA1000POWER#content_1_7
http://www.geocities.jp/rattcv7/
Debian GNU/Linux 徹底入門 武藤健志著

以下、カーネル2.6.8向けカーネルパッチsaa7134-k268-patch-saa7133gyc_061024の内容
diff -urN saa7134_org/saa7134-cards.c saa7134_new/saa7134-cards.c
--- saa7134_org/saa7134-cards.c	2006-10-24 07:51:02.000000000 +0900
+++ saa7134_new/saa7134-cards.c	2006-10-24 08:15:08.000000000 +0900
@@ -22,6 +22,8 @@
 #include <linux/init.h>
 #include <linux/module.h>
 
+#include <linux/list.h>
+
 #include "saa7134-reg.h"
 #include "saa7134.h"
 
@@ -1025,6 +1027,26 @@
 			.amux = LINE2,
 		},
 	},
+        [SAA7134_BOARD_SAA7133GYC_STVLP] = {
+                .name           = "YUAN Tu800/KuroutoShikou SAA7133GYC-STVLP(/R)",
+                .audio_clock    = 0x00187de7,
+                .tuner_type     = 43,
+		.need_tda9887   = 1,
+                .inputs         = {{
+                        .name = name_svideo,
+                        .vmux = 8,
+                        .amux = LINE1,
+                },{
+                        .name = name_comp1,
+                        .vmux = 7,
+                        .amux = LINE1,
+                },{
+                        .name = name_tv,
+                        .vmux = 7,
+                        .amux = TV,
+                        .tv   = 1,
+                }},
+        },
 };
 const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards);
 
@@ -1221,6 +1243,23 @@
  		.driver_data  = SAA7133_BOARD_UPMOST_PURPLE_TV,
 		
  	},{
+        },/*{
+                // YUAN Tu800/Kurouto SAA7133GYC-STVLP
+                .vendor       = PCI_VENDOR_ID_PHILIPS,
+                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
+                .subvendor    = 0x0105,
+                .subdevice    = 0xc00b,
+                .driver_data  = SAA7134_BOARD_SAA7133GYC_STVLP,
+        },
+	*/
+	{
+                // YUAN Tu800/Kurouto SAA7133GYC-STVLP/R
+                .vendor       = PCI_VENDOR_ID_PHILIPS,
+                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
+                .subvendor    = 0x12ab,
+                .subdevice    = 0x0800,
+                .driver_data  = SAA7134_BOARD_SAA7133GYC_STVLP, // use same config
+        },{
 		/* --- boards without eeprom + subsystem ID --- */
                 .vendor       = PCI_VENDOR_ID_PHILIPS,
                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
diff -urN saa7134_org/saa7134-video.c saa7134_new/saa7134-video.c
--- saa7134_org/saa7134-video.c	2006-10-24 07:51:02.000000000 +0900
+++ saa7134_new/saa7134-video.c	2006-10-24 08:15:08.000000000 +0900
@@ -447,6 +447,18 @@
 	if (noninterlaced)
 		sync_control |= 0x20;
 
+	// for Yuan Tu800/Kurouto shikou SAA7133-STVLP(/R)  FIXME!--- tadachi
+        if (dev->board ==SAA7134_BOARD_SAA7133GYC_STVLP) {
+		// change to Tuner
+		if (strcmp(card_in(dev,dev->ctl_input).name,"Television") ==0)
+			saa7134_i2c_call_clients(dev, 0xFFEE7705, NULL);
+		// change to Composite
+		if (strcmp(card_in(dev,dev->ctl_input).name,"Composite1") ==0)
+			saa7134_i2c_call_clients(dev, 0xFFEE7706, NULL);
+		// change to S-Video
+		// nothing to do
+	}
+
 	/* setup cropping */
 	dev->crop_bounds.left    = norm->h_start;
 	dev->crop_defrect.left   = norm->h_start;
diff -urN saa7134_org/saa7134.h saa7134_new/saa7134.h
--- saa7134_org/saa7134.h	2006-10-24 07:51:02.000000000 +0900
+++ saa7134_new/saa7134.h	2006-10-24 08:15:08.000000000 +0900
@@ -153,6 +153,7 @@
 #define SAA7134_BOARD_AVACSSMARTTV     32
 #define SAA7134_BOARD_AVERMEDIA_DVD_EZMAKER 33
 #define SAA7134_BOARD_NOVAC_PRIMETV7133 34
+#define SAA7134_BOARD_SAA7133GYC_STVLP 34  // YUAN Tu800/Kurouto SAA7133GYC-ST\VLP(/R)
 #define SAA7134_BOARD_AVERMEDIA_305    35
 #define SAA7133_BOARD_UPMOST_PURPLE_TV 36
 #define SAA7134_BOARD_ITEMS_MTV005     37