! ivtv、というかCX23416GYC-STVLP関連の情報
とりあえずkernel 2.4.26で動いてはいるが。あ
ioctl: IVTV_IOC_G_CODEC Codec parameters aspect : 2 audio : 0x00e9 bframes : 3 bitrate_mode: 0 bitrate : 8000000 bitrate_peak: 16000000 dnr_mode : 0 dnr_spatial : 0 dnr_temporal: 0 dnr_type : 0 framerate : 0 framespergop: 15 gop_closure : 0 pulldown : 0 stream_type : 0 ioctl: VIDIOC_G_FMT Type : Video Capture Width : 720 Height : 480 ioctl: VIDIOC_QUERYCAP Driver name : ivtv Card type : Vanilla iTVC15 card Bus info : 0 Driver version: 265 Capabilities : 0x01030001 ioctl: VIDIOC_ENUMINPUT Name : Composite 0 ← 1 Type : 0x00000002 Audioset: 0x00000001 Tuner : 0x00000000 Standard: 0x 3000 ( NTSC ) Status : 0 Name : N/A ← 2 Type : 0x00000002 Audioset: 0x00000001 Tuner : 0x00000000 Standard: 0x 3000 ( NTSC ) Status : 0 Name : N/A ← 3 Type : 0x00000002 Audioset: 0x00000001 Tuner : 0x00000000 Standard: 0x 3000 ( NTSC ) Status : 0 Name : N/A ← 4 Type : 0x00000002 Audioset: 0x00000001 Tuner : 0x00000000 Standard: 0x 3000 ( NTSC ) Status : 0 Name : N/A ← 5 Type : 0x00000001 Audioset: 0x00000001 Tuner : 0x00000000 Standard: 0x 3000 ( NTSC ) Status : 0 Name : N/A ← 6 Type : 0x00000002 Audioset: 0x00000001 Tuner : 0x00000000 Standard: 0x 3000 ( NTSC ) Status : 0 Name : Tuner 0 ← 7 Type : 0x00000002 Audioset: 0x00000000 Tuner : 0x00000000 Standard: 0x 3000 ( NTSC ) Status : 0 Name : N/A ← 8 Type : 0x00000002 Audioset: 0x00000001 Tuner : 0x00000000 Standard: 0x 3000 ( NTSC ) Status : 0 Name : S-Video 0 ← 9 Type : 0x00000002 Audioset: 0x00000001 Tuner : 0x00000000 Standard: 0x 3000 ( NTSC ) Status : 0 Name : N/A ← 10 Type : 0x00000002 Audioset: 0x00000001 Tuner : 0x00000000 Standard: 0x 3000 ( NTSC ) Status : 0 ioctl: VIDIOC_G_INPUT Input = 0 ioctl: VIDIOC_G_FREQUENCY Frequency = 0 ioctl: VIDIOC_ENUMSTD ID : 0x 3000 Name : NTSC Frame period: 1001/30000 Frame lines : 525 ID : 0x FF Name : PAL Frame period: 1/25 Frame lines : 625 ID : 0x 7F0000 Name : SECAM Frame period: 1/25 Frame lines : 625 ioctl: VIDIOC_G_STD Standard = 0x00003000 ioctl: VIDIOC_QUERYCTRL Brightness = 128 Contrast = 68 Saturation = 64 Hue = 0 Volume = 47103 Mute = 0
│ #!/bin/sh │ │ # time date ch rec_time[sec] │ │ # usage: ivtv_rec.sh 22:00 11/05/03 4 3600 │ │ echo "/usr/local/bin/tv_rec.sh $3 $4" | at $1 $2 │ 実行方法は至って簡単で, "ivtv_rec.sh <時間> <日> <チャンネル> <録画時間>"と コマンドラインで叩くだけです.例えば 2003/12/31 12:00 から 1ch を 1時間録画する 場合は,"ivtv_rec.sh 12:00 12/31/03 1 3600" のように実行します.ちなみに日時の 記述フォーマットは, at コマンドに準じます.
(http://www.tadachi-net.com/desktop_pc/asus_terminator/avserver3.html)
動くかどうかはわからん。
lspciの結果。
0000:02:0c.0 Multimedia video controller: Internext Compression Inc iTVC16 (CX23416) MPEG-2 Encoder (rev 01) 0000:02:0c.0 0400: 4444:0016 (rev 01) Subsystem: 1718:1479 Flags: bus master, medium devsel, latency 64, IRQ 225 Memory at e8000000 (32-bit, prefetchable) [size=64M] Capabilities: [44] Power Management version 2
ぱ研からivtv-0.2.0-rc3b-paken.041217-1.tar.gzをダウンロード。
カーネルはSargeのkernel-image-2.6.8-1-686のまま。kernel-headers-2.6.8-1-686、kernel-source-2.6.8をインストール。
ivtvアーカイブを展開し、driver/にkernel-sourceからdriver/media/video/tuner.cをコピー。さらに、tuner.cの#include <media/tuner.h>を#include "tuner.h"に。ついでに以下も追加しておいた。
{ "Microtune 4049 FM5",Microtune,PAL, 16*141.00,16*464.00,0xa0,0x90,0x30,0x8e,623}, + { "Panasonic VP27s/ENGE4324D", Panasonic, NTSC, + 16*160.00,16*454.00,0x01,0x02,0x08,0xce,940},
make、make install、depmod -a。カーネルと衝突する名前があるものは/lib/modules/2.6.8-1-686/drivers/media/video/の中のものを消して(リネーム)おく。
utils/でもmake。
modprobe ivtv tuner=<チューナ番号>
でいちお依存モノが全部入る。チューナ番号はtuner.cの配列によるもので、43が"Philips NTSC MK3 (FM1236MK3 or FM1236/F)"。46が"Panasonic VP27s/ENGE4324D"。
で、modprobe ivtv tuner=、cat /dev/video > test.mpg、rmmod ivtvといろいろやってみたのだが、どれもまっくら(砂嵐にもならない)でダメ。
modprobe ivtv cardtype=<カードタイプ>
で強制的に指定できる。このとき、9(YUAN MPG600GR/Kuroutoshikou CX23416GYC-STVLP)を指定すると、認識されるっぽい。砂嵐が出た。cardtypeとはどういうことをしているのか?
ただ、このあとのptuneなどで選ぶことはまだ成功してない。いつまでも砂嵐…。うーん。
filename: /lib/modules/2.6.8-1-686/extra/ivtv.ko parm: tuner:Tuner type selection, see tuner.h for values parm: tda9887:Enable or disable tda9887 module, 0 = normal, 1+ = pinnacle_id parm: radio:Enable or disable the radio. Use only if autodetection fails. 0 = disable, 1 = enable parm: autoload:automatically load i2c modules like tuner.o, default is 1 (yes) parm: cardtype:Only use this option if your card is not detected properly. Specify card type: 1 = WinTV PVR 250 2 = WinTV PVR 350 3 = AVerMedia M179 4 = YUAN MPG600/Kuroutoshikou iTVC16-STVLP 5 = YUAN MPG160/Kuroutoshikou iTVC15-STVLP 6 = NAGASE TRANSGEAR 5000TV 7 = AOpen VA2000MAX-STN6 8 = I/O Data GV-MVP/RX 9 = YUAN MPG600GR/Kuroutoshikou CX23416GYC-STVLP Default: Autodetect parm: ivtv_debug:Debug level (bitmask). Default: errors only (ivtv_debug = 255 gives full debugging) parm: ivtv_std:Specify video standard: 1 = NTSC, 2 = PAL, 3 = SECAM, Default: Autodetect parm: ivtv_first_minor:Set minor assigned to first card author: Kevin Thayer description: iTVC15_16 driver license: GPL version: 0.2.0-rc3b vermagic: 2.6.8-1-686 preempt 686 gcc-3.3 depends: videodev,i2c-algo-bit
dmesg。
ivtv: version 0.2.0 (rc3b) loading ivtv: Linux version: 2.6.8-1-686 preempt 686 gcc-3.3 ivtv: In case of problems please include the debug info ivtv: between the START INIT IVTV and END INIT IVTV lines when ivtv: mailing the ivtv-devel mailinglist. ivtv: User specified YUAN MPG600GR/Kuroutoshikou CX23416GYC-STVLP card ivtv: Found an iTVC16 based chip ACPI: PCI interrupt 0000:02:0c.0[A] -> GSI 20 (level, low) -> IRQ 225 ivtv: XXX PCI device: 0x1a30 vendor: 0x8086 tuner: chip found at addr 0xc0 i2c-bus ivtv i2c driver #0 ivtv: i2c attach [client=(tuner unset),ok] status: (1E) 0x00, (1F) 0x00 ivtv: i2c attach [client=saa7173[0],ok] ivtv: i2c attach [client=uPD64031A [0],ok] This MPG600GR card has GR chip. ivtv: i2c attach [client=uPD64083 [0],ok] This MPG600GR card has 3DY/C chip. ivtv: Encoder revision: 0x02040011 ivtv: Configuring YUAN MPG600GR/Kuroutoshikou CX23416GYC-STVLP card with 4 strea ms ivtv: Create DMA stream 0 using 256 16384 byte buffers 4194304 kbytes total ivtv: Registered v4l2 device, streamtype 0 minor 0 ivtv: Create DMA stream 1 ivtv: Registered v4l2 device, streamtype 1 minor 32 ivtv: Create stream 2 using 40 52224 byte buffers 2097152 kbytes total ivtv: Registered v4l2 device, streamtype 2 minor 224 ivtv: Create DMA stream 3 using 455 4608 byte buffers 2097152 kbytes total ivtv: Registered v4l2 device, streamtype 3 minor 24 ivtv: ivtv_enc_thread: pid = 10716, itv = 0xe0b584e0 ivtv: Could not detect tuner standard, defaulting to NTSC. ivtv: i2c client addr: 0x61 not found! saa7173[0]: IOCTL: 40046404 ivtv: Switching standard to NTSC. ivtv: i2c client addr: 0x61 not found! saa7173[0]: IOCTL: 40046403 saa7173[0]: IOCTL: 40046464 ivtv: Initialized YUAN MPG600GR/Kuroutoshikou CX23416GYC-STVLP, card #0 ivtv: ==================== END INIT IVTV ====================
i2c client addr: 0x61はIVTV_TUNER_I2C_ADDRのときなので、IVTV_MPG160_TUNER_I2C_ADDRを使うようにドライバを変更。登録時にエラーが出なくなった。
ivtv: ==================== START INIT IVTV ==================== ivtv: version 0.2.0 (rc3b) loading ivtv: Linux version: 2.6.8-1-686 preempt 686 gcc-3.3 ivtv: In case of problems please include the debug info ivtv: between the START INIT IVTV and END INIT IVTV lines when ivtv: mailing the ivtv-devel mailinglist. ivtv: User specified YUAN MPG600GR/Kuroutoshikou CX23416GYC-STVLP card ivtv: Found an iTVC16 based chip ACPI: PCI interrupt 0000:02:0c.0[A] -> GSI 20 (level, low) -> IRQ 225 ivtv: XXX PCI device: 0x1a30 vendor: 0x8086 tuner: chip found at addr 0xc0 i2c-bus ivtv i2c driver #0 ivtv: i2c attach [client=(tuner unset),ok] status: (1E) 0x00, (1F) 0x00 ivtv: i2c attach [client=saa7173[0],ok] ivtv: i2c attach [client=uPD64031A [0],ok] This MPG600GR card has GR chip. ivtv: i2c attach [client=uPD64083 [0],ok] ivtv: Configuring YUAN MPG600GR/Kuroutoshikou CX23416GYC-STVLP card with 4 strea ms ivtv: Create DMA stream 0 using 256 16384 byte buffers 4194304 kbytes total ivtv: Registered v4l2 device, streamtype 0 minor 0 ivtv: Create DMA stream 1 ivtv: Registered v4l2 device, streamtype 1 minor 32 ivtv: Create stream 2 using 40 52224 byte buffers 2097152 kbytes total ivtv: Registered v4l2 device, streamtype 2 minor 224 ivtv: Create DMA stream 3 using 455 4608 byte buffers 2097152 kbytes total ivtv: Registered v4l2 device, streamtype 3 minor 24 ivtv: ivtv_enc_thread: pid = 12280, itv = 0xe0b58580 ivtv: Could not detect tuner standard, defaulting to NTSC. tuner: tuner type not set saa7173[0]: IOCTL: 40046404 ivtv: Switching standard to NTSC. tuner: tuner type not set saa7173[0]: IOCTL: 40046403 saa7173[0]: IOCTL: 40046464 ivtv: Initialized YUAN MPG600GR/Kuroutoshikou CX23416GYC-STVLP, card #0 ivtv: ==================== END INIT IVTV ====================
さらに、modprobe ivtv cardtype=9 tuner=43 とするようにしてみる。
ivtv: ==================== START INIT IVTV ==================== ivtv: version 0.2.0 (rc3b) loading ivtv: Linux version: 2.6.8-1-686 preempt 686 gcc-3.3 ivtv: In case of problems please include the debug info ivtv: between the START INIT IVTV and END INIT IVTV lines when ivtv: mailing the ivtv-devel mailinglist. ivtv: User specified YUAN MPG600GR/Kuroutoshikou CX23416GYC-STVLP card ivtv: Found an iTVC16 based chip ACPI: PCI interrupt 0000:02:0c.0[A] -> GSI 20 (level, low) -> IRQ 225 ivtv: XXX PCI device: 0x1a30 vendor: 0x8086 tuner: chip found at addr 0xc0 i2c-bus ivtv i2c driver #0 ivtv: i2c attach [client=(tuner unset),ok] status: (1E) 0x00, (1F) 0x00 ivtv: i2c attach [client=saa7173[0],ok] ivtv: i2c attach [client=uPD64031A [0],ok] This MPG600GR card has GR chip. ivtv: i2c attach [client=uPD64083 [0],ok] This MPG600GR card has 3DY/C chip. ivtv: Encoder revision: 0x02040011 ivtv: Configuring YUAN MPG600GR/Kuroutoshikou CX23416GYC-STVLP card with 4 strea ms ivtv: Create DMA stream 0 using 256 16384 byte buffers 4194304 kbytes total ivtv: Registered v4l2 device, streamtype 0 minor 0 ivtv: Create DMA stream 1 ivtv: Registered v4l2 device, streamtype 1 minor 32 ivtv: Create stream 2 using 40 52224 byte buffers 2097152 kbytes total ivtv: Registered v4l2 device, streamtype 2 minor 224 ivtv: Create DMA stream 3 using 455 4608 byte buffers 2097152 kbytes total ivtv: Registered v4l2 device, streamtype 3 minor 24 ivtv: ivtv_enc_thread: pid = 12411, itv = 0xe0b58580 ivtv: Setting Tuner 43 tuner: type set to 43 (Philips NTSC MK3 (FM1236MK3 or FM1236/F)) by ivtv i2c dri ver #0 ivtv: Could not detect tuner standard, defaulting to NTSC. saa7173[0]: IOCTL: 40046404 ivtv: Switching standard to NTSC. saa7173[0]: IOCTL: 40046403 saa7173[0]: IOCTL: 40046464 ivtv: Initialized YUAN MPG600GR/Kuroutoshikou CX23416GYC-STVLP, card #0 ivtv: ==================== END INIT IVTV ====================
ivtvctl -pで0,6,9のときには、/dev/videoに出るのは綺麗な灰色。残りでは砂嵐。
ivtv_ctrl -aの結果。
ioctl: IVTV_IOC_G_CODEC Codec parameters aspect : 2 audio : 0x00e9 bframes : 3 bitrate_mode: 0 bitrate : 8000000 bitrate_peak: 9600000 dnr_mode : 0 dnr_spatial : 0 dnr_temporal: 0 dnr_type : 0 framerate : 0 framespergop: 0 gop_closure : 1 pulldown : 0 stream_type : 0 ioctl: VIDIOC_G_FMT Type : Video Capture Width : 720 Height : 480 ioctl: VIDIOC_QUERYCAP Driver name : ivtv Card type : Vanilla iTVC15 card Bus info : 0 Driver version: 512 Capabilities : 0x01030011 ioctl: VIDIOC_ENUMINPUT Input : 0 Name : Composite 0 Type : 0x00000002 Audioset: 0x00000003 Tuner : 0x00000000 Standard: 0x00000000007F3FFF ( PAL NTSC SECAM ) Status : 0 Input : 1 Name : N/A Type : 0x00000002 Audioset: 0x00000003 Tuner : 0x00000000 Standard: 0x00000000007F3FFF ( PAL NTSC SECAM ) Status : 0 Input : 2 Name : N/A Type : 0x00000002 Audioset: 0x00000003 Tuner : 0x00000000 Standard: 0x00000000007F3FFF ( PAL NTSC SECAM ) Status : 0 Input : 3 Name : N/A Type : 0x00000002 Audioset: 0x00000003 Tuner : 0x00000000 Standard: 0x00000000007F3FFF ( PAL NTSC SECAM ) Status : 0 Input : 4 Name : N/A Type : 0x00000002 Audioset: 0x00000003 Tuner : 0x00000000 Standard: 0x00000000007F3FFF ( PAL NTSC SECAM ) Status : 0 Input : 5 Name : N/A Type : 0x00000002 Audioset: 0x00000003 Tuner : 0x00000000 Standard: 0x00000000007F3FFF ( PAL NTSC SECAM ) Status : 0 Input : 6 Name : S-Video 0 Type : 0x00000002 Audioset: 0x00000003 Tuner : 0x00000000 Standard: 0x00000000007F3FFF ( PAL NTSC SECAM ) Status : 0 Input : 7 Name : N/A Type : 0x00000002 Audioset: 0x00000003 Tuner : 0x00000000 Standard: 0x00000000007F3FFF ( PAL NTSC SECAM ) Status : 0 Input : 8 Name : N/A Type : 0x00000002 Audioset: 0x00000003 Tuner : 0x00000000 Standard: 0x00000000007F3FFF ( PAL NTSC SECAM ) Status : 0 Input : 9 Name : Tuner 0 Type : 0x00000001 Audioset: 0x00000003 Tuner : 0x00000000 Standard: 0x0000000000003000 ( NTSC ) Status : 0 ioctl: VIDIOC_G_INPUT Input = 0 ioctl: VIDIOC_ENUMOUTPUT ioctl: VIDIOC_G_OUTPUT ioctl: VIDIOC_G_OUTPUT failed ioctl: VIDIOC_ENUMAUDIO Input : 0 Name : Tuner Audio In Input : 1 Name : Audio Line In ioctl: VIDIOC_G_AUDIO Input = 1: Audio Line In ioctl: VIDIOC_G_FREQUENCY Frequency = 2740 ioctl: VIDIOC_ENUMSTD index : 0 ID : 0x0000000000003000 Name : NTSC Frame period: 1001/30000 Frame lines : 525 index : 1 ID : 0x00000000000000FF Name : PAL Frame period: 1/25 Frame lines : 625 index : 2 ID : 0x00000000007F0000 Name : SECAM Frame period: 1/25 Frame lines : 625 ioctl: VIDIOC_G_STD Standard = 0x00003000 ioctl: VIDIOC_QUERYCTRL Brightness = 128 Contrast = 68 Saturation = 64 Hue = 0 Volume = 14335 Mute = 1