This is happening on just one of my three IVTV/PVR-250 encoder boxes at work. All are running gentoo-sources-2.6.12-r4 and ivtv-0.2.0_rc3-r5. Two boxes work fine; the ivtv module loads normally and recognizes the Hauppauge cards in them as PVR-250. However, one just simply refuses to recognize the card in it as a PVR-250 and dmesg reports that it is a PVR-150. Here's the relevant output from lspci: 0000:03:03.0 Multimedia video controller: Internext Compression Inc iTVC16 (CX23416) MPEG-2 Encoder (rev 01) Here's a different encoder's lspci output (one that works): 0000:03:03.0 Multimedia video controller: Internext Compression Inc iTVC16 (CX23416) MPEG-2 Encoder (rev 01) So I know the cards are the same. Here's the relevant dmesg output from the box that does NOT work: ivtv: ==================== START INIT IVTV ==================== ivtv: version 0.2.0 (rc3j) loading ivtv: Linux version: 2.6.12-gentoo-r4 SMP preempt PENTIUM4 gcc-3.4 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: Unknown card: vendor/device: 4444/0016, subsystem vendor/device: 0070/0009 ivtv: Defaulting to WinTV PVR 150 card ivtv: Please mail the vendor/device and subsystem vendor/device IDs and what kind of ivtv: card you have to the ivtv-devel mailinglist: http://sourceforge.net/projects/ivtv ivtv: Prefix your subject line with [UNKNOWN CARD]. ivtv: Found an iTVC16 based chip ACPI: PCI Interrupt 0000:03:03.0[A] -> GSI 19 (level, low) -> IRQ 19 ivtv: XXX PCI device: 0x2570 vendor: 0x8086 msp34xx: ivtv version msp34xx: init: chip=MSP3435G-B6, has NICAM support, simpler (G) no-thread mode msp34xx: $Id$ compiled on: Jul 22 2005 11:24:35 ivtv: i2c attach [client=MSP3435G-B6,ok] saa7115: starting probe for adapter ivtv i2c driver #0 (0x10005) saa7115: detecting saa7115 client on address 0x42 saa7115: writing init values ivtv: i2c attach [client=saa7115,ok] saa7115: status: (1E) 0x48, (1F) 0xc0 ivtv: i2c attach [client=(tuner unset),ok] tuner 0-0061: chip found @ 0xc2 (ivtv i2c driver #0) tveeprom: Hauppauge: model = 32031, rev = B210, serial# = 6152431 tveeprom: tuner = Philips FI1236 MK2 (idx = 10, type = 2) tveeprom: tuner fmt = NTSC(M) (eeprom = 0x08, v4l2 = 0x00001000) tveeprom: audio_processor = MSP3435 (type = 10) ivtv: i2c attach [client=tveeprom,ok] ivtv: Tuner Type 2, Tuner formats 0x00001000, Radio: yes, Model 0x00892450, Revision 0x00000000 ivtv: NTSC tuner detected ivtv: Radio detected ivtv: Failed to load module cx25840 ivtv: Failed to load module wm8775 ivtv: Encoder revision: 0x02040024 ivtv: Encoder Firmware may be buggy, use version 0x02040011 ivtv: Configuring WinTV PVR 150 card with 5 streams 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: Create stream 4 ivtv: Registered v4l2 device, streamtype 4 minor 64 ivtv: Setting Tuner 2 tuner 0-0061: type set to 2 (Philips NTSC (FI1236,FM1236 and compatibles)) ivtv: i2c client addr: 0x44 not found! ivtv: Switching standard to NTSC. ivtv: i2c client addr: 0x44 not found! ivtv: Initialized WinTV PVR 150, card #0 ivtv: ==================== END INIT IVTV ==================== And the dmesg output from the box that DOES: ivtv: ==================== START INIT IVTV ==================== ivtv: version 0.2.0 (rc3j) loading ivtv: Linux version: 2.6.12-gentoo-r4 SMP preempt PENTIUM4 gcc-3.4 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: Autodetected WinTV PVR 250 card ivtv: Found an iTVC16 based chip ACPI: PCI Interrupt 0000:03:03.0[A] -> GSI 19 (level, low) -> IRQ 19 ivtv: Unreasonably low latency timer, setting to 64 (was 32) ivtv: XXX PCI device: 0x2570 vendor: 0x8086 tveeprom: Hauppauge: model = 32031, rev = B110, serial# = 6789647 tveeprom: tuner = Philips FI1236 MK2 (idx = 10, type = 2) tveeprom: tuner fmt = NTSC(M) (eeprom = 0x08, v4l2 = 0x00001000) tveeprom: audio_processor = MSP3435 (type = 10) ivtv: i2c attach [client=tveeprom,ok] ivtv: Tuner Type 2, Tuner formats 0x00001000, Radio: yes, Model 0x00891450, Revision 0x00000000 ivtv: NTSC tuner detected ivtv: Radio detected ivtv: i2c attach [client=(tuner unset),ok] tuner 0-0061: chip found @ 0xc2 (ivtv i2c driver #0) saa7115: starting probe for adapter ivtv i2c driver #0 (0x10005) saa7115: detecting saa7115 client on address 0x42 saa7115: writing init values ivtv: i2c attach [client=saa7115,ok] saa7115: status: (1E) 0x48, (1F) 0xc0 msp34xx: ivtv version msp34xx: init: chip=MSP3435G-B6, has NICAM support, simple (D) mode, simpler (G) no-thread mode msp34xx: $Id$ compiled on: Jul 14 2005 14:38:06 ivtv: i2c attach [client=MSP3435G-B6,ok] ivtv: Encoder revision: 0x02040024 ivtv: Encoder Firmware may be buggy, use version 0x02040011 ivtv: Configuring WinTV PVR 250 card with 5 streams 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: Create stream 4 ivtv: Registered v4l2 device, streamtype 4 minor 64 ivtv: Setting Tuner 2 tuner 0-0061: type set to 2 (Philips NTSC (FI1236,FM1236 and compatibles)) saa7115: decoder set input (4) saa7115: now setting Composite input ivtv: ivtv_enc_thread: pid = 16287, itv = 0xf8980ea0 ivtv: Setting audio matrix to input 3, output 1 ivtv: Switching standard to NTSC. saa7115: decoder set norm NTSC saa7115: set audio: 0x01 ivtv: Initialized WinTV PVR 250, card #0 ivtv: ==================== END INIT IVTV ==================== Here's the /etc/modules.d/ivtv I'm using on all my encoder boxes: alias char-major-81 videodev alias char-major-81-0 ivtv The hardware, kernel versions, kernel configs, and Hauppauge PVR-250 cards are identical. I'm at a loss to figure out why IVTV wants to set one up as a PVR-150. Consequently, encodes fail and I get zero-length files. Reproducible: Always Steps to Reproduce: 1. 2. 3.
You need a newer version of ivtv than is in portage. There likely won't be a newer version in portage for a while. You'll have to install on your own.
Okay, cool. As long as I know what to do, I can manage. So this is a known issue by the ivtv devs?
This continues to be a problem. I'm now using ivtv-0.4.0-r2 and gentoo-sources-2.6.14-r2. Now, I'm hosed pretty badly, because there's nothing I can fall back to that seems to work. I tried 0.2.0_rc3-r5, and it does not work. It too thinks the cards are PVR-150s. I tried going back to gentoo-sources-2.6.13-r5 (was running -r4 but it no longer shows in portage) and installing either of the ivtv versions; no go. This particular encoder has two PVR-250 cards in it that encode programs round the clock, and if it doesn't work, I end up having to encode stuff from tapes. Not good. Again, I was running gentoo-sources-2.6.13-r4 and (I believe) 0.4.0-r2 as recently as last Thursday, and everything was working peachy. Could it be the firmware that's fouling up? Here's my dmesg output: Linux video capture interface: v1.00 ivtv: ==================== START INIT IVTV ==================== ivtv: version 0.4.0 (tagged release) loading ivtv: Linux version: 2.6.14-gentoo-r2 SMP preempt PENTIUM4 gcc-3.4 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. ivtv0: Autodetected WinTV PVR 150 card (iTVC16 based) ACPI: PCI Interrupt 0000:03:00.0[A] -> GSI 21 (level, low) -> IRQ 17 ivtv0: Unreasonably low latency timer, setting to 64 (was 32) tveeprom: ivtv version tveeprom: Hauppauge: model = 32031, rev = B210, serial# = 6196120 tveeprom: tuner = Philips FI1236 MK2 (idx = 10, type = 2) tveeprom: tuner fmt = NTSC(M) (eeprom = 0x08, v4l2 = 0x00001000) tveeprom: audio processor = MSP3435 (type = a) tveeprom: decoder processor = SAA7115 (type = 13) ivtv0: i2c attach to card #0 ok [client=tveeprom, addr=50] tuner (ivtv): chip found at addr 0xc2 i2c-bus ivtv i2c driver #0 ivtv0: i2c attach to card #0 ok [client=(tuner unset), addr=61] ivtv0 warning: i2c client addr: 0x44 not found for command 0x400464c9! ivtv0: loading /lib/modules/ivtv-fw-enc.bin ivtv0: Encoder revision: 0x02050032 ivtv0: Allocate DMA encoder MPEG stream: 128 x 32768 buffers (4096KB total) ivtv0: Allocate DMA encoder YUV stream: 194 x 10800 buffers (2048KB total) ivtv0: Allocate DMA encoder VBI stream: 120 x 17472 buffers (2048KB total) ivtv0: Allocate DMA encoder PCM audio stream: 455 x 4608 buffers (2048KB total) tuner: type set to 2 (Philips NTSC (FI1236,FM1236 and compatibles)) by ivtv i2c driver #0 ivtv0 warning: i2c client addr: 0x44 not found for command 0x40046403! ivtv0 warning: i2c client addr: 0x44 not found for command 0x40046404! ivtv0 warning: i2c client addr: 0x1b not found for command 0x40047764! ivtv0 warning: i2c client addr: 0x44 not found for command 0x4004646e! ivtv0 warning: i2c client addr: 0x44 not found for command 0x40046403! ivtv0 warning: i2c client addr: 0x44 not found for command 0x80287610! ivtv0 warning: i2c client addr: 0x44 not found for command 0x40287611! ivtv0 warning: i2c client addr: 0x44 not found for command 0x40046406! ivtv0 warning: i2c client addr: 0x1b not found for command 0x4004760f! ivtv0 warning: i2c client addr: 0x44 not found for command 0x4004760f! ivtv0 warning: i2c client addr: 0x44 not found for command 0x40046406! ivtv0 warning: i2c client addr: 0x44 not found for command 0x80287610! ivtv0 warning: i2c client addr: 0x44 not found for command 0x40287611! ivtv0: Initialized WinTV PVR 150, card #0 ivtv: ====================== NEXT CARD ====================== ivtv1: Autodetected WinTV PVR 150 card (iTVC16 based) ACPI: PCI Interrupt 0000:03:01.0[A] -> GSI 22 (level, low) -> IRQ 18 ivtv1: Unreasonably low latency timer, setting to 64 (was 32) tveeprom: ivtv version tveeprom: Hauppauge: model = 32031, rev = B110, serial# = 6151408 tveeprom: tuner = Philips FI1236 MK2 (idx = 10, type = 2) tveeprom: tuner fmt = NTSC(M) (eeprom = 0x08, v4l2 = 0x00001000) tveeprom: audio processor = MSP3435 (type = a) tveeprom: decoder processor = SAA7115 (type = 13) ivtv1: i2c attach to card #1 ok [client=tveeprom, addr=50] tuner (ivtv): chip found at addr 0xc2 i2c-bus ivtv i2c driver #1 ivtv1: i2c attach to card #1 ok [client=(tuner unset), addr=61] ivtv1 warning: i2c client addr: 0x44 not found for command 0x400464c9! ivtv1: loading /lib/modules/ivtv-fw-enc.bin ivtv1: Encoder revision: 0x02050032 ivtv1: Allocate DMA encoder MPEG stream: 128 x 32768 buffers (4096KB total) ivtv1: Allocate DMA encoder YUV stream: 194 x 10800 buffers (2048KB total) ivtv1: Allocate DMA encoder VBI stream: 120 x 17472 buffers (2048KB total) ivtv1: Allocate DMA encoder PCM audio stream: 455 x 4608 buffers (2048KB total) tuner: type set to 2 (Philips NTSC (FI1236,FM1236 and compatibles)) by ivtv i2c driver #1 ivtv1 warning: i2c client addr: 0x44 not found for command 0x40046403! ivtv1 warning: i2c client addr: 0x44 not found for command 0x40046404! ivtv1 warning: i2c client addr: 0x1b not found for command 0x40047764! ivtv1 warning: i2c client addr: 0x44 not found for command 0x4004646e! ivtv1 warning: i2c client addr: 0x44 not found for command 0x40046403! ivtv1 warning: i2c client addr: 0x44 not found for command 0x80287610! ivtv1 warning: i2c client addr: 0x44 not found for command 0x40287611! ivtv1 warning: i2c client addr: 0x44 not found for command 0x40046406! ivtv1 warning: i2c client addr: 0x1b not found for command 0x4004760f! ivtv1 warning: i2c client addr: 0x44 not found for command 0x4004760f! ivtv1 warning: i2c client addr: 0x44 not found for command 0x40046406! ivtv1 warning: i2c client addr: 0x44 not found for command 0x80287610! ivtv1 warning: i2c client addr: 0x44 not found for command 0x40287611! ivtv1: Initialized WinTV PVR 150, card #1 ivtv: ==================== END INIT IVTV ====================
Looks like a cold boot (turn power off for 10+ seconds) was needed per the suggestion found here: http://www.gossamer-threads.com/lists/ivtv/devel/22612?search_string=ivtv%3A%20i2c%20client%20addr%3A%200x21%20not%20found%20for%20command;#22612 Strange, but this worked for me. My cards are now correctly recognized as PVR-250s. I'll make a mental note to power cycle my encoders whenever I update to a new kernel or ivtv version.