Web lists-archives.com

Re: Can't use my Pinnacle PCTV HD Pro stick - what am I doing wrong?




On Sun, Jun 21, 2009 at 12:58 AM, Terry Wu<terrywu2009@xxxxxxxxx> wrote:
> Hi,
>
> The attach_xc3028() of em28xx-dvb.c does not give the firmware filename:
> static int attach_xc3028(u8 addr, struct em28xx *dev)
> {
>        struct dvb_frontend *fe;
>        struct xc2028_config cfg;
>
>        memset(&cfg, 0, sizeof(cfg));
>        cfg.i2c_adap  = &dev->i2c_adap;
>        cfg.i2c_addr  = addr;
>
>        if (!dev->dvb->frontend) {
>                printk(KERN_ERR "%s/2: dvb frontend not attached. "
>                                "Can't attach xc3028\n",
>                       dev->name);
>                return -EINVAL;
>        }
>
>        fe = dvb_attach(xc2028_attach, dev->dvb->frontend, &cfg);
>        if (!fe) {
>                printk(KERN_ERR "%s/2: xc3028 attach failed\n",
>                       dev->name);
>                dvb_frontend_detach(dev->dvb->frontend);
>                dev->dvb->frontend = NULL;
>                return -EINVAL;
>        }
>
>        printk(KERN_INFO "%s/2: xc3028 attached\n", dev->name);
>
>        return 0;
> }
>
> And in the check_firmware() of tuner-xc2028.c, the
> load_all_firmwares() will not be called because the xc2028/3028
> firmware name not set:
>                if (!priv->ctrl.fname) {
>                        tuner_info("xc2028/3028 firmware name not set!\n");
>                        return -EINVAL;
>                }
>                rc = load_all_firmwares(fe);
>
> Best Regards,
> Terry
>
> 2009/6/21 George Adams <g_adams27@xxxxxxxxxxx>:
>>
>> Hello. áI'm having problems getting my (USB) PCTV HD Pro Stick (800e,
>> the "old" style) to work under V4L. áCould anyone spot the problem in
>> what I'm doing?
>>
>> I'm running Ubuntu 8.04.2 LTS (the 2.6.24-24-server kernel), and am
>> following this procedure (based on
>> http://www.linuxtv.org/wiki/index.php/How_to_Obtain,_Build_and_Install_V4L-DVB_Device_Drivers).
>> I intend to use this to tune to USA NTSC channel 3 (to capture a
>> close-captioned feed inside our building)
>>
>> 1) Extract and copy the firmware file I need
>> á (xc3028-v27.fw) to /lib/firmware
>>
>> 2) cd /usr/local/src
>>
>> 3) hg clone http://linuxtv.org/hg/v4l-dvb
>>
>> 4) cd v4l-dvb
>>
>> 5) make rminstall; make distclean; make; make install
>>
>> These seems to do what it's supposed to - installs the drivers into
>> /lib/modules/2.6.24-24-server . áMy PCTV HD Pro Stick uses the em28xx
>> drivers.
>>
>>> find /lib/modules/ -type f -name "em28*" -mtime -1
>> á á/lib/modules/2.6.24-24-server/kernel/drivers/media/video/em28xx/em28xx.ko
>> á á/lib/modules/2.6.24-24-server/kernel/drivers/media/video/em28xx/em28xx-dvb.ko
>>
>> 6) Reboot with the USB capture device plugged in
>>
>> 7) Examine "dmesg" for details related to the capture device
>>
>> - em28xx: New device Pinnacle Systems PCTV 800e @ 480 Mbps (2304:0227, interface 0, class 0)
>> - em28xx #0: Identified as Pinnacle PCTV HD Pro Stick (card=17)
>> - em28xx #0: chip ID is em2882/em2883
>> - - -> GSI 22 (level, low) -> IRQ 22
>> - PCI: Setting latency timer of device 0000:00:1b.0 to 64
>> - em28xx #0: i2c eeprom 00: 1a eb 67 95 04 23 27 02 d0 12 5c 03 8e 16 a4 1c
>> - em28xx #0: i2c eeprom 10: 6a 24 27 57 46 07 01 00 00 00 00 00 00 00 00 00
>> - em28xx #0: i2c eeprom 20: 46 00 01 00 f0 10 02 00 b8 00 00 00 5b 1c 00 00
>> - em28xx #0: i2c eeprom 30: 00 00 20 40 20 80 02 20 01 01 00 00 00 00 00 00
>> - em28xx #0: i2c eeprom 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>> - em28xx #0: i2c eeprom 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>> - em28xx #0: i2c eeprom 60: 00 00 00 00 00 00 00 00 00 00 24 03 50 00 69 00
>> - em28xx #0: i2c eeprom 70: 6e 00 6e 00 61 00 63 00 6c 00 65 00 20 00 53 00
>> - em28xx #0: i2c eeprom 80: 79 00 73 00 74 00 65 00 6d 00 73 00 00 00 16 03
>> - em28xx #0: i2c eeprom 90: 50 00 43 00 54 00 56 00 20 00 38 00 30 00 30 00
>> - em28xx #0: i2c eeprom a0: 65 00 00 00 1c 03 30 00 36 00 31 00 30 00 30 00
>> - em28xx #0: i2c eeprom b0: 31 00 30 00 33 00 39 00 34 00 34 00 32 00 00 00
>> - em28xx #0: i2c eeprom c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>> - em28xx #0: i2c eeprom d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>> - em28xx #0: i2c eeprom e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>> - em28xx #0: i2c eeprom f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>> - em28xx #0: EEPROM ID= 0x9567eb1a, EEPROM hash = 0x2de5abbf
>> - em28xx #0: EEPROM info:
>> - em28xx #0: á á á AC97 audio (5 sample rates)
>> - em28xx #0: á á á 500mA max power
>> - em28xx #0: á á á Table at 0x27, strings=0x168e, 0x1ca4, 0x246a
>> - hda_codec: Unknown model for ALC882, trying auto-probe from BIOS...
>> - input: em28xx IR (em28xx #0) as /devices/pci0000:00/0000:00:1a.7/usb4/4-3/input/input6
>> - - -> GSI 20 (level, low) -> IRQ 23
>> - Vortex: init.... em28xx #0: Config register raw data: 0xd0
>> - em28xx #0: AC97 vendor ID = 0xffffffff
>> - em28xx #0: AC97 features = 0x6a90
>> - em28xx #0: Empia 202 AC97 audio processor detected
>> - em28xx #0: v4l2 driver version 0.1.2
>> - em28xx #0: V4L2 device registered as /dev/video0 and /dev/vbi0
>> - usbcore: registered new interface driver em28xx
>> - em28xx driver loaded
>> - xc2028 0-0061: creating new instance
>> - xc2028 0-0061: type set to XCeive xc2028/xc3028 tuner
>> - em28xx #0/2: xc3028 attached
>> - DVB: registering new adapter (em28xx #0)
>> - DVB: registering adapter 0 frontend 0 (LG Electronics LGDT3303 VSB/QAM Frontend)...
>> - Successfully loaded em28xx-dvb
>> - Em28xx: Initialized (Em28xx dvb Extension) extension
>> - done.
>>
>> Everything looks good - the drivers are getting called and the card is
>> recognized. áHowever, all my attempts to get something "out of it"
>> aren't working. áI tried firing up "tvtime", but it just launches a
>> blank, black screen and hanges. áThe menu won't come up, the channel
>> won't change, right-clicking isn't responsive, it won't close, and I
>> have to kill it.
>>
>> I also tried mencoder, but I get this:
>>
>>> mencoder -nosound -tv driver=v4l2:width=640:height=480 tv://3 -o /tmp/tv.avi -ovc raw -endpos 5
>>
>> MEncoder 2:1.0~rc2-0ubuntu13.1+medibuntu1 (C) 2000-2007 MPlayer Team
>> CPU: Intel(R) Core(TM)2 Quad CPU á áQ9550 á@ 2.83GHz
>> á(Family: 6, Model: 23, Stepping: 10)
>> CPUflags: Type: 6 MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
>> Compiled with runtime CPU detection.
>> success: format: 9 ádata: 0x0 - 0x0
>> TV file format detected.
>> Selected driver: v4l2
>> áname: Video 4 Linux 2 input
>> áauthor: Martin Olschewski
>> ácomment: first try, more to come ;-)
>> Selected device: Pinnacle PCTV HD Pro Stick
>> áTuner cap:
>> áTuner rxs:
>> áCapabilites: ávideo capture átuner áaudio áread/write ástreaming
>> ásupported norms: 0 = NTSC; 1 = NTSC-M; 2 = NTSC-M-JP; 3 = NTSC-M-KR; 4
>> á = NTSC-443; 5 = PAL; 6 = PAL-BG; 7 = PAL-H; 8 = PAL-I; 9 = PAL-DK;
>> á 10 = PAL-M; 11 = PAL-N; 12 = PAL-Nc; 13 = PAL-60; 14 = SECAM; 15 =
>> á SECAM-B; 16 = SECAM-G; 17 = SECAM-H; 18 = SECAM-DK; 19 = SECAM-L; 20
>> á = SECAM-Lc;
>> áinputs: 0 = Television; 1 = Composite1; 2 = S-Video;
>> áCurrent input: 0
>> áCurrent format: YUYV
>> v4l2: ioctl set format failed: Invalid argument
>> v4l2: ioctl set format failed: Invalid argument
>> v4l2: ioctl set format failed: Invalid argument
>> v4l2: ioctl query control failed: Invalid argument
>> v4l2: ioctl query control failed: Invalid argument
>> v4l2: ioctl query control failed: Invalid argument
>> v4l2: ioctl query control failed: Invalid argument
>> [V] filefmt:9 áfourcc:0x32595559 ásize:640x480 áfps:25.00 áftime:=0.0400
>> Opening video filter: [expand osd=1]
>> Expand: -1 x -1, -1 ; -1, osd: 1, aspect: 0.000000, round: 1
>> ==========================================================================
>> Opening video decoder: [raw] RAW Uncompressed Video
>> VDec: vo config request - 640 x 480 (preferred colorspace: Packed YUY2)
>> VDec: using Packed YUY2 as output csp (no 0)
>> Movie-Aspect is undefined - no prescaling applied.
>> Selected video codec: [rawyuy2] vfm: raw (RAW YUY2)
>> ==========================================================================
>> Forcing audio preload to 0, max pts correction to 0.
>> v4l2: select timeout
>>
>> Skipping frame!
>> Pos: á 0.0s á á á1f ( 0%) á0.96fps Trem: á 0min á 0mb áA-V:0.000 [0:0]
>> Skipping frame!
>> v4l2: select timeout( 0%) á1.28fps Trem: á 0min á 0mb áA-V:0.000 [0:0]
>>
>> Skipping frame!
>> Pos: á 0.0s á á á3f ( 0%) á1.44fps Trem: á 0min á 0mb áA-V:0.000 [0:0]
>> Skipping frame!
>> v4l2: select timeout( 0%) á1.54fps Trem: á 0min á 0mb áA-V:0.000 [0:0]
>>
>> Skipping frame!
>> Pos: á 0.0s á á á5f ( 0%) á1.60fps Trem: á 0min á 0mb áA-V:0.000 [0:0]
>> Skipping frame!
>> v4l2: select timeout( 0%) á1.65fps Trem: á 0min á 0mb áA-V:0.000 [0:0]
>>
>> Skipping frame!
>> Pos: á 0.0s á á á7f ( 0%) á1.68fps Trem: á 0min á 0mb áA-V:0.000 [0:0]
>> Skipping frame!
>> Pos: á 0.0s á á á8f ( 0%) á1.71fps Trem: á 0min á 0mb áA-V:0.000 [0:0]
>>
>>
>> The resulting file (/tmp/tv.avi) is only 4K and not a valid AVI file.
>>
>>
>>
>> One thing I noticed that differs from what I was expecting is that
>> nowhere in the "dmesg" output does it say anything about the firmware
>> file. áI was expecting to see this in "dmesg":
>>
>> - firmware: requesting xc3028-v27.fw
>> - xc2028 1-0061: Loading 80 firmware images from xc3028-v27.fw,
>> - á type: xc2028 firmware, ver 2.7
>>
>> but nothing approximating those lines appears at all. áI tried deleting
>> /lib/firmware/xc3028-v27.fw entirely to see if it would complain, but
>> it loaded up exactly the same way after I rebooted... áand still didn't
>> work.
>>
>> So my questions are:
>>
>> 1) Why is the firmware file not being read? áHas something happened to
>> the em28xx drivers recently that causes this file not to be needed
>> anymore? áOr is something else going wrong?
>>
>> 2) Is that the reason for the problem, or have you spotted something
>> else I've done wrong?
>>
>> Thanks greatly to anyone who can help!
>>
>> _________________________________________________________________
>> Insert movie times and more without leaving Hotmail«.
>> http://windowslive.com/Tutorial/Hotmail/QuickAdd?ocid=TXT_TAGLM_WL_HM_Tutorial_QuickAdd_062009
>>
>> --
>> video4linux-list mailing list
>> Unsubscribe mailto:video4linux-list-request@xxxxxxxxxx?subject=unsubscribe
>> https://www.redhat.com/mailman/listinfo/video4linux-list
>>
>
> --
> video4linux-list mailing list
> Unsubscribe mailto:video4linux-list-request@xxxxxxxxxx?subject=unsubscribe
> https://www.redhat.com/mailman/listinfo/video4linux-list
>

Terry,

On hybrid analog/digital em28xx boards, the firmware is set in the
analog phase and then whatever value specified is reused in the
digital phase.  For the Pinnacle 800e, the xc3028 firmware is
specified in em28xx-cards.c:1898.

Devin

-- 
Devin J. Heitmueller - Kernel Labs
http://www.kernellabs.com

--
video4linux-list mailing list
Unsubscribe mailto:video4linux-list-request@xxxxxxxxxx?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list