ivtv


! ivtv、というかCX23416GYC-STVLP関連の情報

とりあえずkernel 2.4.26で動いてはいるが。あ

目標

当面のTODO

リンク

データ

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)

Prius固有の問題

PriusについてたiTVC16を動かしてみる

動くかどうかはわからん。

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

Last modified : 2005/01/17 13:16:40 JST