When suffering from insomnia, some people count sheep. Others watch television. I ported Ralph Metzler’s drx-d driver into the kernel and finally debugged the issues required to get the HVR-900R2 and PCTV 330e digital support working.
I know many people have been waiting a long time for this, and I am happy to announce that we’ve got a tree setup which can be merged into the upstream kernel, as well as firmware which can be legally redistributed.
Testers are welcome to try the following hg tree:
http://kernellabs.com/hg/~dheitmueller/v4l-dvb-drxd
To build:
hg clone http://kernellabs.com/hg/~dheitmueller/v4l-dvb-drxd
cd v4l-dvb-drxd
make
make install
reboot
Note, under Ubuntu if you receive errors about not being able to compile the firedtv driver, open “v4l/.config†and change the firedtv=m to be firedtv=n.
You will need to get the firmware from the following location and copy it to /lib/firmware
http://kernellabs.com/firmware/drxd
I’ll be looking to get the firmware bundled into the distros, so that the products will work “out of the box”.
The usual disclaimers apply as of this point I’ve only done minimal testing at this point with a DVB generator and tzap/mplayer (if you want to consider the last 12-14 hours of testing and debugging/fixing problems and edge cases as I found them as “minimal”).
Feedback welcome (both positive or negative) by commenting below. And as this was another unfunded project that KernelLabs did solely for the benefit of the community, if you find this work useful then feel free to throw a couple of bucks into Devin’s LinuxTV support fund
UPDATE 2010-02-28 11:04: I forgot to mention that in addition to the drx firmware, you also need the firmware for the xc3028 tuner, which can be installed via the following directions. Sorry for the confusion (and thanks to users wishmerhill and fabio for pointing out my oversight)!
http://linuxtv.org/wiki/index.php/Xceive_XC3028/XC2028#Firmware_Information
That’s great! Already compiling and after reboot I’ll report. I have 330e Pinnacle PCTV Hybrid:
ID 2304:0226 Pinnacle Systems, Inc. [hex] PCTV 330e
So let the drums roll! 🙂
Thanks for your work! Unfo sofar I did not have much luck. I have a HVR900 on a mandriva box.
With kernel 2.6.31.5 I was unable to compile.
With kernel 2.6.32.8 I can compile but inserting the module I have the following error:
em28xx: disagrees about version of symbol ir_codes_evga_indtube_table
em28xx: Unknown symbol ir_codes_evga_indtube_table
em28xx: disagrees about version of symbol ir_codes_gadmei_rm008z_table
em28xx: Unknown symbol ir_codes_gadmei_rm008z_table
em28xx: disagrees about version of symbol ir_codes_pinnacle_grey_table
em28xx: Unknown symbol ir_codes_pinnacle_grey_table
em28xx: disagrees about version of symbol ir_codes_hauppauge_new_table
em28xx: Unknown symbol ir_codes_hauppauge_new_table
em28xx: disagrees about version of symbol ir_codes_kaiomy_table
em28xx: Unknown symbol ir_codes_kaiomy_table
em28xx: disagrees about version of symbol ir_input_init
em28xx: Unknown symbol ir_input_init
em28xx: disagrees about version of symbol ir_codes_terratec_cinergy_xs_table
em28xx: Unknown symbol ir_codes_terratec_cinergy_xs_table
em28xx: disagrees about version of symbol ir_codes_ati_tv_wonder_hd_600_table
em28xx: Unknown symbol ir_codes_ati_tv_wonder_hd_600_table
em28xx: disagrees about version of symbol ir_input_nokey
em28xx: Unknown symbol ir_input_nokey
em28xx: disagrees about version of symbol ir_codes_em_terratec_table
em28xx: Unknown symbol ir_codes_em_terratec_table
em28xx: disagrees about version of symbol ir_input_keydown
em28xx: Unknown symbol ir_input_keydown
em28xx: disagrees about version of symbol ir_codes_pinnacle_pctv_hd_table
em28xx: Unknown symbol ir_codes_pinnacle_pctv_hd_table
If you need more info just ask…
Ok, found the problem: the original kernel modules are named *.ko.gz and so are not overwritten with the new ones.
I can confirm that on kernel 2.6.32.8 my HVR900 works well, I tested sofar the digital part with Kaffeine.
Thanks again
I am getting the same sort of ‘disagree on symbol version’ errors when trying modprobe,
but I do not have any old .ko.gz modules there. Perhaps I have something firmly in kernel,
which should be a module instead. Which modules exactly were causing the problem in your case?
Thanks,
Jiri
Hello Jiri,
Reboot your PC. This can happen if you have a mix of the newly compiled modules and the existing modules.
Devin
Thanks Devin,
in the meantime I solved it: I had to change kernel options:
CONFIG_VIDEO_DEV=m
CONFIG_IR_CORE=m
CONFIG_VIDEO_IR=m
(I had “Y” previously) and the in-kernel version was in conflict with the new modules.
However, still it does not work yet: module loads, dvbscan apparently works, but when I try any of the found channels, for example:
mplayer dvb://’CT 1′
I get just:
Playing dvb://CT 1.
dvb_tune Freq: 730000000
Exiting… (End of file)
and dmesg shows:
…
i2c i2c-0: master_xfer[0] W, addr=0x61, len=2
i2c i2c-0: master_xfer[0] W, addr=0x61, len=2
i2c i2c-0: master_xfer[0] W, addr=0x61, len=2
xc2028 0-0061: Loading firmware for type=D2620 DTV8 (208), id 0000000000000000.
i2c i2c-0: master_xfer[0] W, addr=0x61, len=4
i2c i2c-0: master_xfer[0] W, addr=0x61, len=4
i2c i2c-0: master_xfer[0] W, addr=0x61, len=2
i2c i2c-0: master_xfer[0] W, addr=0x61, len=12
i2c i2c-0: master_xfer[0] W, addr=0x61, len=12
….repeated many times
I have the Hauppauge HVR900 hybrid stick and I have instaled
the firmware files according to the instructions.
What can still be wrong?
Thanks,
JIri
Hi Jiri,
If you had to manually change your module configuration, then you’re not running a stock distro kernel.
I would recommend that before you spend any additional time trying to make it work in this particular environment, that you try making it work in a standard Ubuntu or Red Hat distro. This will allow you to distinguish between issues that are actually a problem with the driver versus issues that are related to your non-standard environment.
If you cannot make it work with a stock Ubuntu or Red Hat environment (using the standard precompiled kernel that ships with it), then let me know and we will debug further.
Devin
hello devin,
i use your driver for a moment , and it worked like a charm, but with my last kernel update impossible to compile the drivers.
Archlinux Linux 2.6.34-ARCH
Thx for your help
Here the error
==> Starting make…
make -C /home/killa/1/src/v4l-dvb-drxd-build/v4l
/bin/sh: /sbin/lsmod: Aucun fichier ou dossier de ce type
make[1]: entrant dans le répertoire « /home/killa/1/src/v4l-dvb-drxd-build/v4l »
No version yet, using 2.6.34-ARCH
make[1]: quittant le répertoire « /home/killa/1/src/v4l-dvb-drxd-build/v4l »
/bin/sh: /sbin/lsmod: Aucun fichier ou dossier de ce type
make[1]: entrant dans le répertoire « /home/killa/1/src/v4l-dvb-drxd-build/v4l »
scripts/make_makefile.pl
Updating/Creating .config
Preparing to compile for kernel version 2.6.34
***WARNING:*** You do not have the full kernel sources installed.
This does not prevent you from building the v4l-dvb tree if you have the
kernel headers, but the full kernel source may be required in order to use
make menuconfig / xconfig / qconfig.
If you are experiencing problems building the v4l-dvb tree, please try
building against a vanilla kernel before reporting a bug.
Vanilla kernels are available at http://kernel.org.
On most distros, this will compile a newly downloaded kernel:
cp /boot/config-`uname -r` /.config
cd
make all modules_install install
Please see your distro’s web site for instructions to build a new kernel.
Created default (all yes) .config file
./scripts/make_myconfig.pl
make[1]: quittant le répertoire « /home/killa/1/src/v4l-dvb-drxd-build/v4l »
/bin/sh: /sbin/lsmod: Aucun fichier ou dossier de ce type
make[1]: entrant dans le répertoire « /home/killa/1/src/v4l-dvb-drxd-build/v4l »
perl scripts/make_config_compat.pl /lib/modules/2.6.34-ARCH/build ./.myconfig ./config-compat.h
creating symbolic links…
ln -sf . oss
make -C firmware prep
make[2]: Entering directory `/home/killa/1/src/v4l-dvb-drxd-build/v4l/firmware’
make[2]: Leaving directory `/home/killa/1/src/v4l-dvb-drxd-build/v4l/firmware’
make -C firmware
make[2]: Entering directory `/home/killa/1/src/v4l-dvb-drxd-build/v4l/firmware’
CC ihex2fw
Generating vicam/firmware.fw
Generating dabusb/firmware.fw
Generating dabusb/bitstream.bin
Generating ttusb-budget/dspbootcode.bin
Generating cpia2/stv0672_vp4.bin
Generating av7110/bootcode.bin
make[2]: Leaving directory `/home/killa/1/src/v4l-dvb-drxd-build/v4l/firmware’
Kernel build directory is /lib/modules/2.6.34-ARCH/build
make -C /lib/modules/2.6.34-ARCH/build SUBDIRS=/home/killa/1/src/v4l-dvb-drxd-build/v4l modules
make[2]: Entering directory `/usr/src/linux-2.6.34-ARCH’
/bin/sh: /sbin/lsmod: Aucun fichier ou dossier de ce type
CC [M] /home/killa/1/src/v4l-dvb-drxd-build/v4l/tuner-xc2028.o
/home/killa/1/src/v4l-dvb-drxd-build/v4l/tuner-xc2028.c: In function ‘free_firmware’:
/home/killa/1/src/v4l-dvb-drxd-build/v4l/tuner-xc2028.c:252:3: error: implicit declaration of function ‘kfree’
/home/killa/1/src/v4l-dvb-drxd-build/v4l/tuner-xc2028.c: In function ‘load_all_firmwares’:
/home/killa/1/src/v4l-dvb-drxd-build/v4l/tuner-xc2028.c:314:2: error: implicit declaration of function ‘kzalloc’
/home/killa/1/src/v4l-dvb-drxd-build/v4l/tuner-xc2028.c:314:13: warning: assignment makes pointer from integer without a cast
/home/killa/1/src/v4l-dvb-drxd-build/v4l/tuner-xc2028.c:365:21: warning: assignment makes pointer from integer without a cast
/home/killa/1/src/v4l-dvb-drxd-build/v4l/tuner-xc2028.c: In function ‘xc2028_attach’:
/home/killa/1/src/v4l-dvb-drxd-build/v4l/tuner-xc2028.c:1269:13: warning: assignment makes pointer from integer without a cast
make[3]: *** [/home/killa/1/src/v4l-dvb-drxd-build/v4l/tuner-xc2028.o] Erreur 1
make[2]: *** [_module_/home/killa/1/src/v4l-dvb-drxd-build/v4l] Error 2
make[2]: Leaving directory `/usr/src/linux-2.6.34-ARCH’
make[1]: *** [default] Erreur 2
make[1]: quittant le répertoire « /home/killa/1/src/v4l-dvb-drxd-build/v4l »
make: *** [all] Erreur 2
Hello Killa,
The tree hasn’t been updated for a while, and likely won’t build against 2.6.34. It probably needs to be rebased against the current v4l-dvb trunk.
Devin
ok thx devin, I think i haven’t any choice !!!!!! I’ll wait a moment
i just tried this out and it works like a charm. thank you so much for your work 🙂
forgot to mention: this is with a pinnacle pctv 330e and kernel 2.6.33 under gentoo linux x64. i will try my hauppauge hvr-900 as soon as i find the stick 😀
Ok. Compiled everythink on Gentoo.
Some problems out there (probably MY fault).
Compilation works like charm, no problem at all. with kernel 2.6.32gentoo-r7.
After some tries, I got the tuner firmware (xc2028) and managed to tune channels, both analog and DTV.
But, no sound at all, neither analog nor DTV.
Used tvtime and kaffeine for the tests.
any useful tip?
Ah, if useful, here are my kernel config and dmesg:
http://www.nousefornames.it/files/dmesg.log
http://www.nousefornames.it/files/.config
Sorry for “spamming”.
Actually, I managed to get sound in DTV without harrassing. Don’t ask me how. It’s embarassing.
Anyway, for analog TV (tvtime) I managed to get audio only using sox AFTER starting tvtime:
sox -r 48000 -c 2 -t ossdsp /dev/dsp1 -t ossdsp /dev/dsp
I remember Markus Rechenberger had a tvtime version without this problem. At the moment, I can0t get the source code I got from his olg mercurial repo to compile.
Pity.
Anyway, YES. Your driver is working for me too!
THANK YOU SO MUCH!
I had the same problem with audio in tvtime and in mplayer.
Solution for mplayer (using composite here)
mplayer tv:///1 -tv adevice=/dev/dsp1:immediatemode=0
Alas, running 2.6.32-ARCH, applied your tree, rebooted, plugged in DVB-T adapter.
dmesg lists:
“em28xx #0: Your board has no unique USB ID and thus need a hint to be detected.”
my HW id is: Bus 002 Device 005: ID eb1a:2881 eMPIA Technology, Inc.
I also tried unloading the em28xx module, and reloading with the card=56 option (pinnacle 330e) but still no go. The /dev/dvb tree isn’t created and mplayer / vlc don’t work.
What am I doing wrong?
Michael,
Based on the USB ID you provided, Your board is not a PCTV 330e or HVR-900 R2. Do you know the exact product name and model number (it should be printed on the back of the unit)?
Devin
Hello Devin,
first and foremost, thank you for your hard work.
I have an Hauppauge WinTV HVR-900 (ID 2040:6502) and
I’m running the last 2.6.33 kernel on a Fedora 12.
Since in Rome the switch off of analog tv took place
last year, I can only test DVB-T;
it’s working very well, but the two firmwares downloaded
from http://kernellabs.com/firmware/drxd are not enough,
I still have to put xc3028-v27.fw in /lib/firmware
[…]
firmware.sh[21127]: Cannot find firmware file ‘xc3028-v27.fw’
[…]
Without it I can’t scan channels, is this OK?
I’m just figuring out why I can’t see a cuple of channels that are
detected, but I’m unable to playback, further investigations are needed.
So, as a first feedback I can tell the device is working great,
there are no major problem.
Thank you again, just ask if you need me running some tests,
best regards,
–
Fabio
Hey Fabio (scrivo in inglese così lo possono leggere tutti)
I had the same problem this morning.
To get the firmware you need to follow the instructions contained in the file extract_xc3028.pl.
You find it in the v4l-dvb-drxd/linux/Documentation/video4linux directory.
# In order to use, you need to:
# 1) Download the windows driver with something like:
# wget http://www.steventoth.net/linux/xc5000/HVR-12x0-14x0-17x0_1_25_25271_WHQL.zip
# 2) Extract the file hcw85bda.sys from the zip into the current dir:
# unzip -j HVR-12x0-14x0-17x0_1_25_25271_WHQL.zip Driver85/hcw85bda.sys
# 3) run the script:
# ./extract_xc3028.pl
# 4) copy the generated file:
# cp xc3028-v27.fw /lib/firmware
I did it and get both analog and DTV tuning wothout problems.
Hope it helps!
Ok, just to spam a bit more, I managed to get tvtime work with analog audio out of the box.
In fact, I took the old code from Markus Rechberger and patched it to work again with the latest libs.
If anyone is interested, drop a line and I’ll give more details!
Ah scratch my previous comment: I used the wrong card id, after checking em28xx-cards.c I found I needed to use 53. It now creates the DVB entry. VLC is currently scanning. Will update if it works (analog doesn’t work here either since last year, so I’ll have to figure out how to use the digital thing again). Thanks for the work you put into this!
Still having problems here… any help is much appreciated. The firmware xc3028 is installed in /lib/firmware. Tuning doesn’t seem to work.
[michael@forty-two ~]$ sudo scan /usr/share/dvb/dvb-t/be-FULL
scanning /usr/share/dvb/dvb-t/be-FULL
using ‘/dev/dvb/adapter0/frontend0’ and ‘/dev/dvb/adapter0/demux0’
initial transponder 482000000 0 1 9 3 1 3 0
initial transponder 506000000 0 1 9 3 1 3 0
initial transponder 754000000 0 1 9 3 1 3 0
initial transponder 834000000 0 1 9 3 1 3 0
>>> tune to: 482000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE
WARNING: >>> tuning failed!!!
>>> tune to: 482000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE (tuning failed)
WARNING: >>> tuning failed!!!
>>> tune to: 506000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE
WARNING: >>> tuning failed!!!
>>> tune to: 506000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE (tuning failed)
WARNING: >>> tuning failed!!!
>>> tune to: 754000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE
WARNING: >>> tuning failed!!!
>>> tune to: 754000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE (tuning failed)
WARNING: >>> tuning failed!!!
>>> tune to: 834000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE
WARNING: >>> tuning failed!!!
>>> tune to: 834000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE (tuning failed)
WARNING: >>> tuning failed!!!
ERROR: initial tuning failed
dumping lists (0 services)
Done.
Michael,
See my previous comment (you don’t have one of the boards that this support works for).
Devin
Ok Devin, some more spam from me. After spending some times playing around with you driver, i have noticed you did a wonderful job also in managing the overheating of the device that was happening, for instance, with Rechberger’s userspace drivers.
My dongle has been plugged in more that 3 hours now, and it’s just warm, surely not how as it used to be.
Just one issue, again, probably my fault, I can in no way use the remote control of the dongle. No answer at all. Any way around it?
Hi Wishmerhill,
Yeah, I can get the remote control working. Should just be one additional line of code in em28xx-cards.c.
Devin
would you let the cat out of the bag? 😉
i tried getting the remote to work for hours.
Support for the remote control on the PCTV 330e has been added. Just update to the latest tree.
Cheers,
Devin
I’ve tried the latest source and the remote mostly works on my 330e now! That’s the only thing I’m interested in at the moment, but I’m a bit confused now when I try to make it work for my HTPC needs. Most keys seem to give a normal keycode, which I may or may not like. (instant shutdown of the machine when accidentally pressing the power button on the remote) Some keys don’t give any code at all. A quick google search turns up some various old information about lirc, which doesn’t seem to apply to this device.. I’m confused. How do I configure it? Any pointers?
Thanks for working on this… much appreciated.
I have tried to compile on Mandriva 2.6.31.12-desktop-1mnb but the make ended with…
home/drew/dvb/v4l-dvb-drxd/v4l/dvbdev.c: In function ‘init_dvbdev’:
/home/drew/dvb/v4l-dvb-drxd/v4l/dvbdev.c:520: error: ‘struct class’ has no member named ‘nodename’
make[3]: *** [/home/drew/dvb/v4l-dvb-drxd/v4l/dvbdev.o] Error 1
make[2]: *** [_module_/home/drew/dvb/v4l-dvb-drxd/v4l] Error 2
make[2]: Leaving directory `/usr/src/linux-2.6.31.12-desktop-1mnb’
make[1]: *** [default] Error 2
make[1]: Leaving directory `/home/drew/dvb/v4l-dvb-drxd/v4l’
make: *** [all] Error 2
I found this page http://old.nabble.com/-Bug-55411–kernel-desktop-devel,-NEW:-nodename-missing-in-device.h-td26253103.html which seems a very similar error but I confess to not really understanding the advice to fix it…
Can you help?
Thanks again,
Hi Andy,
The link you provided is exactly what the problem is. Mandriva is running a non-standard kernel patch which prevents the v4l-dvb from building cleanly with it in general (this issue is not specific to my tree as all Mandriva users run into it trying to build even the mainline v4l-dvb from source).
Frankly I’m not sure how people get the v4l-dvb to build under Mandriva. All I can suggest is that you see what Google turns up.
Devin
Hi Andy,
I was able to compile on my mandriva box against kernel 2.3.62.8 without problems. You may want to give it a try, the kernel rpms are available at http://mib.pianetalinux.org
… actually 2.6.32.8
Hi Devin,
God job! The code works (e330). The driver has a similar problem that I encountered in my earlier driver. You will have to restart mplayer several times until it catches the transport stream. One in ten mplayer dvb://Nederland\ 1 catches the feed.
Also nice to see that Micronas seems to cooperate more with Linux givven the code license headers. (BTW Have they been aquired by NXP??)
Again very good job !
-Henk
Hi Henk,
Micronas was acquired by Trident Microsystems, but it turns up this code was released long before then. It was one of those situations where a developer wrote the code for a specific card for a card vendor, and while technically released under the GPL, nobody knew it existed.
Regarding the transport stream issue, could you elaborate on specifically what you are doing (e.g. command line, etc). I did testing with tzap and mplayer and didn’t see the issue, so any info you can provide to help me reproduce it would be helpful in my tracking it down.
Or better yet, if you know what you had to do to fix the original problem, that would be helpful too.
Devin
Here’s my worklog (after compiling and installing):
# load the driver
> modprobe em28xx
> dmesg
…
Em28xx: Initialized (Em28xx Audio Extension) extension
tvp5150 2-005c: i2c i/o error: rc == -19 (should be 1)
tvp5150 2-005c: i2c i/o error: rc == -19 (should be 1)
xc2028 2-0061: attaching existing instance
xc2028 2-0061: type set to XCeive xc2028/xc3028 tuner
em28xx #0: em28xx #0/2: xc3028 attached
DVB: registering new adapter (em28xx #0)
DVB: registering adapter 0 frontend 0 (Micronas DRXD DVB-T)…
em28xx #0: Successfully loaded em28xx-dvb
Em28xx: Initialized (Em28xx dvb Extension) extension
tvp5150 2-005c: i2c i/o error: rc == -19 (should be 1)
tvp5150 2-005c: i2c i/o error: rc == -19 (should be 1)
tvp5150 2-005c: *** unknown tvp0c00 chip detected.
tvp5150 2-005c: *** Rom ver is 0.131
tvp5150 2-005c: i2c i/o error: rc == -19 (should be 1)
tvp5150 2-005c: i2c i/o error: rc == -19 (should be 1)
drxd: deviceId = 0000
DRX3975D-A2
usb 1-1: firmware: requesting drxd-a2-1.1.fw
…
>scan /usr/share/dvb/dvb-t/nl-All > scan.result
This gets me 115 channels
# Check tuning to a channel
> tzap -c scan.result Nederland\ 1
using ‘/dev/dvb/adapter0/frontend0’ and ‘/dev/dvb/adapter0/demux0’
reading channels from file ‘scan.result’
tuning to 474000000 Hz
video pid 0x1b63, audio pid 0x1b64
status 00 | signal 8bbf | snr 0000 | ber 00000000 | unc 00000000 |
status 1f | signal 8bbf | snr 0000 | ber 00000000 | unc 00000000 | FE_HAS_LOCK
status 1f | signal 8bbf | snr 0000 | ber 00000000 | unc 00000000 | FE_HAS_LOCK
# Tune to an unscrambled channel (this is what happens when TS is not found)
> mplayer -v -cache 8192 dvb://Nederland\ 1
MPlayer SVN-r28450-4.1.2 (C) 2000-2009 MPlayer Team
CPU: Mobile AMD Athlr (Family: 6, Model: 8, Stepping: 1)
get_path(‘codecs.conf’) -> ‘/home/henk/.mplayer/codecs.conf’
,,,
DVB_SET_CHANNEL: new channel name=Nederland 1, card: 0, channel 0
dvb_tune Freq: 474000000
TUNE_IT, fd_frontend 4, fd_sec -1
freq 474000000, srate 141887120, pol Using DVB card “Micronas DRXD DVB-T”
tuning DVB-T to 474000000 Hz, bandwidth: 0
Getting frontend status
Bit error rate: 0
Signal strength: 32495
SNR: 0
UNC: 0
FE_STATUS: FE_HAS_SIGNAL FE_HAS_LOCK FE_HAS_CARRIER FE_HAS_VITERBI FE_HAS_SYNC
SET PES FILTER ON PID 7011 to fd 5, RESULT: 0, ERRNO: 0
SET PES FILTER ON PID 7012 to fd 6, RESULT: 0, ERRNO: 0
SET PES FILTER ON PID 0 to fd 7, RESULT: 0, ERRNO: 0
SUCCESSFUL EXIT from dvb_streaming_start
STREAM: [dvbin] dvb://Nederland 1
STREAM: Description: Dvb Input
STREAM: Author: Nico
STREAM: Comment: based on the code from ??? (probably Arpi)
CACHE_PRE_INIT: 0 [0] 0 pre:0 eof:0
Checking for MPEG-TS…
TRIED UP TO POSITION 0, FOUND 47, packet_size= 188, SEEMS A TS? 1
GOOD CC: 7, BAD CC: 24
DVBIN_CLOSE, close(2), fd=7, COUNT=2
DVBIN_CLOSE, close(1), fd=6, COUNT=1
DVBIN_CLOSE, close(0), fd=5, COUNT=0
vo: x11 uninit called but X11 not initialized..
Exiting… (End of file)
I am trying to upgrade parts of my system in the hope that helps…
I have the same error with the i2c bus :
usb 1-6: new high speed USB device using ehci_hcd and address 8
usb 1-6: New USB device found, idVendor=2304, idProduct=0226
usb 1-6: New USB device strings: Mfr=3, Product=1, SerialNumber=2
usb 1-6: Product: PCTV 330e
usb 1-6: Manufacturer: Pinnacle Systems
usb 1-6: SerialNumber: 070101033171
usb 1-6: configuration #1 chosen from 1 choice
em28xx: New device Pinnacle Systems PCTV 330e @ 480 Mbps (2304:0226, interface 0, class 0)
em28xx #0: em28xx_init_dev: em28xx_write_regs_req failed! retval [-71]
em28xx: probe of 1-6:1.0 failed with error -71
usb 1-6: USB disconnect, address 8
usb 1-6: new high speed USB device using ehci_hcd and address 9
usb 1-6: New USB device found, idVendor=2304, idProduct=0226
usb 1-6: New USB device strings: Mfr=3, Product=1, SerialNumber=2
usb 1-6: Product: PCTV 330e
usb 1-6: Manufacturer: Pinnacle Systems
usb 1-6: SerialNumber: 070101033171
usb 1-6: configuration #1 chosen from 1 choice
em28xx: New device Pinnacle Systems PCTV 330e @ 480 Mbps (2304:0226, interface 0, class 0)
em28xx #0: em28xx_init_dev: em28xx_write_regs_req failed! retval [-71]
em28xx: probe of 1-6:1.0 failed with error -71
usb 1-6: USB disconnect, address 9
usb 1-6: new high speed USB device using ehci_hcd and address 10
usb 1-6: New USB device found, idVendor=2304, idProduct=0226
usb 1-6: New USB device strings: Mfr=3, Product=1, SerialNumber=2
usb 1-6: Product: PCTV 330e
usb 1-6: Manufacturer: Pinnacle Systems
usb 1-6: SerialNumber: 070101033171
usb 1-6: configuration #1 chosen from 1 choice
em28xx: New device Pinnacle Systems PCTV 330e @ 480 Mbps (2304:0226, interface 0, class 0)
em28xx #0: chip ID is em2882/em2883
em28xx #0: i2c eeprom 00: 1a eb 67 95 04 23 26 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 e0 00 00
em28xx #0: i2c eeprom 30: 00 00 20 40 20 6e 02 20 10 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 33 00 33 00 30 00
em28xx #0: i2c eeprom a0: 65 00 00 00 1c 03 30 00 37 00 30 00 31 00 30 00
em28xx #0: i2c eeprom b0: 31 00 30 00 33 00 33 00 31 00 37 00 31 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 = 0xf6b3a9bf
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
em28xx #0: Identified as Pinnacle Hybrid Pro (330e) (card=56)
tvp5150 4-005c: chip found @ 0xb8 (em28xx #0)
tuner 4-0061: chip found @ 0xc2 (em28xx #0)
xc2028 4-0061: creating new instance
xc2028 4-0061: type set to XCeive xc2028/xc3028 tuner
usb 1-6: firmware: requesting xc3028-v27.fw
xc2028 4-0061: Loading 80 firmware images from xc3028-v27.fw, type: xc2028 firmware, ver 2.7
xc2028 4-0061: Loading firmware for type=BASE MTS (5), id 0000000000000000.
xc2028 4-0061: Loading firmware for type=MTS (4), id 000000000000b700.
xc2028 4-0061: Loading SCODE for type=MTS LCD NOGD MONO IF SCODE HAS_IF_4500 (6002b004), id 000000000000b700.
xc2028 4-0061: Error on line 668: -71
xc2028 4-0061: i2c input error: rc = -71 (should be 2)
xc2028 4-0061: Unable to read tuner registers.
input: em28xx IR (em28xx #0) as /devices/pci0000:00/0000:00:02.1/usb1/1-6/input/input11
Creating IR device irrcv0
em28xx #0: Config register raw data: 0xffffffb9
em28xx #0: AC97 chip type couldn’t be determined
em28xx #0: No AC97 audio processor
tvp5150 4-005c: i2c i/o error: rc == -71 (should be 1)
em28xx #0: reading i2c device failed (error=-71)
tvp5150 4-005c: i2c i/o error: rc == -71 (should be 1)
tvp5150 4-005c: i2c i/o error: rc == -71 (should be 1)
em28xx #0: reading i2c device failed (error=-71)
tvp5150 4-005c: i2c i/o error: rc == -71 (should be 1)
tvp5150 4-005c: i2c i/o error: rc == -71 (should be 1)
tvp5150 4-005c: i2c i/o error: rc == -19 (should be 1)
tvp5150 4-005c: tvp8081am1 detected.
tvp5150 4-005c: i2c i/o error: rc == -71 (should be 2)
tvp5150 4-005c: i2c i/o error: rc == -71 (should be 2)
tvp5150 4-005c: i2c i/o error: rc == -71 (should be 2)
tvp5150 4-005c: i2c i/o error: rc == -71 (should be 2)
tvp5150 4-005c: i2c i/o error: rc == -71 (should be 2)
tvp5150 4-005c: i2c i/o error: rc == -71 (should be 2)
tvp5150 4-005c: i2c i/o error: rc == -71 (should be 2)
tvp5150 4-005c: i2c i/o error: rc == -71 (should be 2)
tvp5150 4-005c: i2c i/o error: rc == -71 (should be 2)
tvp5150 4-005c: i2c i/o error: rc == -71 (should be 2)
tvp5150 4-005c: i2c i/o error: rc == -71 (should be 2)
tvp5150 4-005c: i2c i/o error: rc == -71 (should be 2)
tvp5150 4-005c: i2c i/o error: rc == -71 (should be 2)
tvp5150 4-005c: i2c i/o error: rc == -71 (should be 2)
tvp5150 4-005c: i2c i/o error: rc == -71 (should be 2)
tvp5150 4-005c: i2c i/o error: rc == -71 (should be 2)
tvp5150 4-005c: i2c i/o error: rc == -71 (should be 2)
tvp5150 4-005c: i2c i/o error: rc == -71 (should be 2)
tvp5150 4-005c: i2c i/o error: rc == -71 (should be 2)
tvp5150 4-005c: i2c i/o error: rc == -71 (should be 2)
tvp5150 4-005c: i2c i/o error: rc == -71 (should be 2)
tvp5150 4-005c: i2c i/o error: rc == -71 (should be 2)
tvp5150 4-005c: i2c i/o error: rc == -71 (should be 2)
tvp5150 4-005c: i2c i/o error: rc == -71 (should be 2)
tvp5150 4-005c: i2c i/o error: rc == -71 (should be 2)
tvp5150 4-005c: i2c i/o error: rc == -71 (should be 2)
tvp5150 4-005c: i2c i/o error: rc == -71 (should be 2)
tvp5150 4-005c: i2c i/o error: rc == -71 (should be 2)
tvp5150 4-005c: i2c i/o error: rc == -71 (should be 2)
tvp5150 4-005c: i2c i/o error: rc == -71 (should be 1)
em28xx #0: reading i2c device failed (error=-71)
tvp5150 4-005c: i2c i/o error: rc == -71 (should be 1)
em28xx #0: v4l2 driver version 0.1.2
tvp5150 4-005c: i2c i/o error: rc == -71 (should be 1)
em28xx #0: reading i2c device failed (error=-71)
tvp5150 4-005c: i2c i/o error: rc == -71 (should be 1)
em28xx #0: V4L2 video device registered as video0
em28xx #0: V4L2 VBI device registered as vbi0
tvp5150 4-005c: i2c i/o error: rc == -19 (should be 1)
xc2028 4-0061: attaching existing instance
xc2028 4-0061: type set to XCeive xc2028/xc3028 tuner
em28xx #0: em28xx #0/2: xc3028 attached
DVB: registering new adapter (em28xx #0)
DVB: registering adapter 0 frontend 0 (Micronas DRXD DVB-T)…
tvp5150 4-005c: i2c i/o error: rc == -19 (should be 1)
em28xx #0: Successfully loaded em28xx-dvb
Em28xx: Initialized (Em28xx dvb Extension) extension
tvp5150 4-005c: i2c i/o error: rc == -19 (should be 1)
tvp5150 4-005c: i2c i/o error: rc == -19 (should be 1)
tvp5150 4-005c: *** unknown tvp0c12 chip detected.
tvp5150 4-005c: *** Rom ver is 130.131
tvp5150 4-005c: i2c i/o error: rc == -19 (should be 1)
tvp5150 4-005c: i2c i/o error: rc == -19 (should be 1)
tvp5150 4-005c: tvp5150am1 detected.
Kernel version : kernel-desktop-2.6.21.12-1mnb (mandriva package)
Hello Rengot,
This is actually a longstanding known race condition between the initialization of the analog and digital portions of the driver (it occurs with pretty much all the hybrid em28xx devices). What Linux distribution are you running, and do you have any application other than dbus which connect to the v4l2 device as soon as it is created?
Devin
Oh wait, I take that back. It’s actually happening on device connect. Very strange.
Do you have two versions of the em28xx driver installed (such as mrechberger’s em28xx-new tree)?
Devin
I am running on Mandriva 2010.0 X86_64 Distrib and my kernel is patched version (maybe the problem). I have tried to plug the device just after the display manager (without opened graphic session ) ant the problem is the same. And i had the version of the em28xx driver installed with my distribution but i have removed all old drivers with `make rminstall`.
Do we need to copy the two firware located here : http://kernellabs.com/firmware/drxd or just one.
Hi Rengot,
Hard to say what the issue is. Are you using a USB hub perhaps? If so, try plugging directly into the back of the machine and see if it makes a difference. Also, if you have any USB extension cables, try not using those too.
Regarding the firmware, you should copy both files to /lib/firmware. The driver will automatically pick the correct file for your particular hardware.
Devin
I would like to report a further Gentoo maschine working with 330e. Compilation went without any fatal error, after “make install” I even didn’t have to reboot.
DTV with Kaffeine works with sound.
ATV will be tested, but it worked in previous constellation, so it is only a question of configuration (if really needed).
Thanks a lot, I was in the process of making a secondary boot to ubuntu!
Hi Devin,
I think the best way to have all distros include the new firmware is to add it to the linux-firmware tree managed by David Woodhouse. See:
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=firmware/README.AddingFirmware
Thank you very much for your work!!
Nicola
Hello Nicola,
As I’ve pushed firmware upstream on multiple occasions in the past, I am well aware of David and the process. Thanks for pointing it out though.
Cheers,
Devin
Another success story here, with Debian, kernel 2.6.32 (vanilla, with custom config) and an HVR 900 r2. Both analog and digital are working.
With analog I have a few green pixel at the bottom of the video (I’m experiencing this with the 2.6.32 driver too).
With dvb it is a little bit slow switching channel, but it’s working fine. 🙂 Moreover I didn’t have to change my config to get things working (I still have the old configuration that I was using with Markus Rechberger em28xx-new driver).
Thank You very much for Your work!
Giulio.
Ok, one more comment on this wonderful job of Devin: in comparison with the previous driver (the one from Rechberger) the heat dissipation of thi sdriver is far lower, resulting in no overheating of the dongle.
This is a really good point, as for me!
Thanks again!
Confirmed working like a charm on a Archlinux box, running 2.6.32 and me-tv.
Devin, great job.
Thank you so much!
Thx Devin great work !!!!!!!! I confirm DVB-T (HD) on PCTV 330e ok, good reception.
Archlinux. => Compilation OK
With kaffeine OK
I will be happy to test this out as soon as I dig out (and blow the dust off XD) my 330e USB.
Hello Devin, one more thing !!!
The analog part does not work correctly with SECAM-L ( french channel ).
I do a lot of tests, same result => i can’t see a channel
It work on mac and windows.
Thanks again!
Hello Killa,
Which application are you using to test with? I know there are SECAM-L issues with some applications like tvtime, because the applications do not let you explicitly pick the standard.
Devin
i use tvtime and xdtv
i see the channel but it have bad color and is jerky.
Thx
I have a patch somebody sent me for SECAM-L support for tvtime, but I haven’t had a chance to merge it. I don’t know about xdtv.
My guess though is that this is entirely a problem with the applications.
Devin
ok i’ll try to find this patch !!!
Thx….i’ll give u a feedback.
Hi to all.
Have a Pinnacle HYBRID Pro Stick (330e).
Driver compiled on Ubuntu 9.04, kernel 2.6.31. Driver installation ok. Firmware installed in /lib/firmware, as indicated in this page
drxd-a2-1.1.fw
drxd-b1-1.1.fw
and xc3028-v27.fw, extracted from the win driver.
I am unable to tune any DVB Channel. kaffeine says:
affeine(2876) DvbDevice::frontendEvent: tuning failed
kaffeine(2876) DvbDevice::frontendEvent: tuning failed
kaffeine(2876) DvbScanFilter::timerEvent: timeout while reading section; type = 0 pid = 0
kaffeine(2876) DvbScanFilter::timerEvent: timeout while reading section; type = 2 pid = 17
kaffeine(2876) DvbScanFilter::timerEvent: timeout while reading section; type = 4 pid = 16
DMESG:
[ 27.459354] em28xx #0: i2c eeprom 00: 1a eb 67 95 04 23 26 02 d0 12 5c 03 8e 16 a4 1c
[ 27.459369] em28xx #0: i2c eeprom 10: 6a 24 27 57 46 07 01 00 00 00 00 00 00 00 00 00
[ 27.459381] em28xx #0: i2c eeprom 20: 46 00 01 00 f0 10 02 00 b8 00 00 00 5b e0 00 00
[ 27.459392] em28xx #0: i2c eeprom 30: 00 00 20 40 20 6e 02 20 10 01 00 00 00 00 00 00
[ 27.459404] em28xx #0: i2c eeprom 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 27.459416] em28xx #0: i2c eeprom 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 27.459427] em28xx #0: i2c eeprom 60: 00 00 00 00 00 00 00 00 00 00 24 03 50 00 69 00
[ 27.459439] em28xx #0: i2c eeprom 70: 6e 00 6e 00 61 00 63 00 6c 00 65 00 20 00 53 00
[ 27.459450] em28xx #0: i2c eeprom 80: 79 00 73 00 74 00 65 00 6d 00 73 00 00 00 16 03
[ 27.459462] em28xx #0: i2c eeprom 90: 50 00 43 00 54 00 56 00 20 00 33 00 33 00 30 00
[ 27.459474] em28xx #0: i2c eeprom a0: 65 00 00 00 1c 03 30 00 38 00 30 00 31 00 30 00
[ 27.459486] em28xx #0: i2c eeprom b0: 31 00 31 00 39 00 35 00 39 00 37 00 36 00 00 00
[ 27.459497] em28xx #0: i2c eeprom c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 27.459509] em28xx #0: i2c eeprom d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 27.459520] em28xx #0: i2c eeprom e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 27.459532] em28xx #0: i2c eeprom f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 27.459546] em28xx #0: EEPROM ID= 0x9567eb1a, EEPROM hash = 0x69b3aebf
[ 27.459548] em28xx #0: EEPROM info:
[ 27.459550] em28xx #0: AC97 audio (5 sample rates)
[ 27.459553] em28xx #0: 500mA max power
[ 27.459555] em28xx #0: Table at 0x27, strings=0x168e, 0x1ca4, 0x246a
[ 27.467612] em28xx #0: Identified as Pinnacle Hybrid Pro (330e) (card=56)
[ 27.512412] tvp5150 2-005c: chip found @ 0xb8 (em28xx #0)
[ 27.593044] tuner 2-0061: chip found @ 0xc2 (em28xx #0)
[ 27.696913] [drm] DAC-6: set mode 640×480 0
[ 27.910674] xc2028 2-0061: creating new instance
[ 27.910680] xc2028 2-0061: type set to XCeive xc2028/xc3028 tuner
[ 27.910693] usb 1-1: firmware: requesting xc3028-v27.fw
[ 28.008240] [drm] DAC-6: set mode 640×480 0
[ 28.165841] i2c-adapter i2c-1: unable to read EDID block.
[ 28.165849] i915 0000:00:02.0: LVDS-1: no EDID data
[ 28.209689] [drm] TV-12: set mode NTSC 480i 0
[ 28.434192] [drm] TV-12: set mode NTSC 480i 0
[ 28.584202] [drm] DAC-6: set mode 640×480 0
[ 28.696252] [drm] DAC-6: set mode 640×480 0
[ 28.761698] xc2028 2-0061: Loading 80 firmware images from xc3028-v27.fw, type: xc2028 firmware, ver 2.7
[ 28.806023] i2c-adapter i2c-1: unable to read EDID block.
[ 28.806030] i915 0000:00:02.0: LVDS-1: no EDID data
[ 28.848133] [drm] TV-12: set mode NTSC 480i 0
[ 28.868837] xc2028 2-0061: Loading firmware for type=BASE MTS (5), id 0000000000000000.
[ 28.872815] ppdev: user-space parallel port driver
[ 29.008013] [drm] TV-12: set mode NTSC 480i 0
[ 30.713994] xc2028 2-0061: Loading firmware for type=MTS (4), id 000000000000b700.
[ 30.729480] xc2028 2-0061: Loading SCODE for type=MTS LCD NOGD MONO IF SCODE HAS_IF_4500 (6002b004), id 000000000000b700.
[ 30.875871] input: em28xx IR (em28xx #0) as /devices/pci0000:00/0000:00:1d.7/usb1/1-1/input/input11
[ 30.875987] Creating IR device irrcv0
[ 30.876306] em28xx #0: Config register raw data: 0xd0
[ 30.890485] em28xx #0: AC97 vendor ID = 0xffffffff
[ 30.900054] em28xx #0: AC97 features = 0x6a90
[ 30.900059] em28xx #0: Empia 202 AC97 audio processor detected
[ 31.159972] tvp5150 2-005c: tvp5150am1 detected.
[ 31.499866] em28xx #0: v4l2 driver version 0.1.2
[ 31.583457] em28xx #0: V4L2 video device registered as video0
[ 31.583462] em28xx #0: V4L2 VBI device registered as vbi0
[ 31.584042] usbcore: registered new interface driver em28xx
[ 31.584046] em28xx driver loaded
[ 31.720488] tvp5150 2-005c: tvp5150am1 detected.
[ 31.799400] em28xx-audio.c: probing for em28x1 non standard usbaudio
[ 31.799406] em28xx-audio.c: Copyright (C) 2006 Markus Rechberger
[ 31.799805] Em28xx: Initialized (Em28xx Audio Extension) extension
[ 32.030746] xc2028 2-0061: attaching existing instance
[ 32.030752] xc2028 2-0061: type set to XCeive xc2028/xc3028 tuner
[ 32.030754] em28xx #0: em28xx #0/2: xc3028 attached
[ 32.030758] DVB: registering new adapter (em28xx #0)
[ 32.030763] DVB: registering adapter 0 frontend 0 (Micronas DRXD DVB-T)…
[ 32.031199] em28xx #0: Successfully loaded em28xx-dvb
[ 32.031203] Em28xx: Initialized (Em28xx dvb Extension) extension
[ 33.600132] [drm] DAC-6: set mode 640×480 0
[ 33.705247] [drm] DAC-6: set mode 640×480 0
[ 33.790502] i2c-adapter i2c-1: unable to read EDID block.
[ 33.790507] i915 0000:00:02.0: LVDS-1: no EDID data
[ 33.831820] [drm] TV-12: set mode NTSC 480i 0
[ 33.972488] [drm] TV-12: set mode NTSC 480i 0
[ 42.833312] [drm] DAC-6: set mode 640×480 0
[ 42.986954] [drm] DAC-6: set mode 640×480 0
[ 43.093210] i2c-adapter i2c-1: unable to read EDID block.
[ 43.093219] i915 0000:00:02.0: LVDS-1: no EDID data
[ 43.134657] [drm] TV-12: set mode NTSC 480i 0
[ 43.276133] [drm] TV-12: set mode NTSC 480i 0
[ 70.038862] drxd: deviceId = 50d9
[ 70.038867] DRX3975D-B1
[ 70.038873] usb 1-1: firmware: requesting drxd-b1-1.1.fw
[ 71.360033] xc2028 2-0061: Loading firmware for type=BASE F8MHZ MTS (7), id 0000000000000000.
[ 72.257492] xc2028 2-0061: Loading firmware for type=D2620 DTV8 (208), id 0000000000000000.
Thanks for any suggestion.
Also tried with klear, kdetv and vlc.
Giacomo.
Before I go any more nuts trying this out, should this work for the following stick.
Bus 002 Device 002: ID eb1a:2870 eMPIA Technology, Inc. Pinnacle PCTV Stick
and if so, then which card= am I supposed to test with.
regards
Rodd
Hello Rodd,
That card is not a PCTV 330e, and the driver will not change the situation for that card at all. So no point in trying out the code under the hope it will work.
Cheers,
Devin
Devin,
Thanks for your quick reply. Do you know what the card is and what driver might work (or am I out of luck).
Rodd
Hello Rodd,
As I indicated in my reply to the email you sent me, the 70e is not currently supported under Linux at all. I am familiar with the basic hardware design, and spent some time trying to make it work last year with a user over an SSH connection, but was not successful. My hope is to get this hardware working in the next few weeks once I have some sample hardware to test/debug with.
On the other hand, tuners like this are now dirt cheap, so if you need a solution immediately then just buy one that is currently supported under Linux.
Devin
Hi to all.
As to the Pinnacle HYBRID Pro Stick (330e) and the comment I posted above, after a reboot I managed to tune some channels. But the scan fails around 80% and the kaffeine application is not able to complete the scan. One of the messages I received was “Frequency out of range” . I was scanning against dvb-t/it-Trieste.
Is the card Pinnacle HYBRID Pro Stick (330e) completely supported?
Are there still any known issues with that?
Thanks in advance.
Giacomo
Hello Giacomo,
There aren’t any known issues I am aware of, as pretty much everybody has reported complete success.
Depending on the scanning software you used, messages such as “Frequency out of range” have been known to show up in the log due to bugs in the application (the application should in theory *never* ask to tune to an invalid frequency, but it does happen).
When Kaffeine hangs, are there any errors in the dmesg output? Also, which version of Kaffeine are you using?
Devin
Hello Davin and thanks for your work and your answer.
While scanning, kaffeine says:
kaffeine(1678) DvbScanFilter::timerEvent: timeout while reading section; type = 0 pid = 0
kaffeine(1678) DvbScanFilter::timerEvent: timeout while reading section; type = 2 pid = 17
kaffeine(1678) DvbScanFilter::timerEvent: timeout while reading section; type = 4 pid = 16
kaffeine(1678) DvbDevice::frontendEvent: tuning failed
kaffeine(1678) DvbDevice::frontendEvent: tuning failed
kaffeine(1678) DvbDevice::frontendEvent: tuning failed
kaffeine(1678) DvbLinuxDevice::tune: ioctl FE_SET_FRONTEND failed for “/dev/dvb/adapter0/frontend0”
The kernel says:
Mar 10 18:43:03 linux kernel: [ 469.547226] drxd: deviceId = 50d9
Mar 10 18:43:03 linux kernel: [ 469.547231] DRX3975D-B1
Mar 10 18:43:03 linux kernel: [ 469.547238] usb 1-3: firmware: requesting drxd-b1-1.1.fw
Mar 10 18:43:04 linux kernel: [ 470.832653] xc2028 2-0061: Loading firmware for type=BASE F8MHZ MTS (7), id 0000000000000000.
Mar 10 18:43:05 linux kernel: [ 471.729485] xc2028 2-0061: Loading firmware for type=D2620 DTV8 (208), id 0000000000000000.
Mar 10 18:44:49 linux kernel: [ 575.765158] DVB: adapter 0 frontend 0 frequency 1000000 out of range (47125000..855250000)
where the last message “frequency out of range” appears when scan hangs.
Kaffeine version 1.0-svn-3 (kde 4.4.0)
Thanks for any hint.
Giacomo.
Hello Giacomo,
I would have to give this a try and see if I can reproduce the issue here. Could you confirm which scan file you used under Kaffeine?
Thanks,
Devin
Hi Devin. Thanks for your answer.
The scan file is it-Trieste and looks like this:
# Trieste, Italy
# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
# MUX MEDIASET 1 (Class News, 24Ore TV, Coming soon, BBC World, Boing, Mediaset Premium)
T 778000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
T 474000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
#
# MUX-B RAI (Rai Doc-Futura, RaiSportSAT, RaiNotizie24, Rai EDU1, Sat2000, Radio1, Radio2, Radio3, FDAuditorium)
T 682000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
#
# MUX-A RAI (Rai Uno, Rai Due, Rai Tre, Rai Utile)
T 602000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
#
# MUX DFREE (Rete 4, Italia 1, Sportitalia, LCI / Prima, Si Live24)
T 754000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
#
# MUX (All Music)
T 666000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
#
# MUX (Triveneta)
T 698000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
#
# MUX (La7 Telemarket Retecapri MTv italia Sitcom Uno)
T 674000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
“/usr/share/dvb/dvb-t/it-Trieste”
I also read this
graciela@linux:~$ kaffeine
graciela@linux:~$ kaffeine(3483) DvbLinuxDevice::addPidFilter: couldn’t set up filter for “/dev/dvb/adapter0/demux0”
kaffeine(3483) DvbScanFilter::timerEvent: timeout while reading section; type = 0 pid = 0
kaffeine(3483) DvbScanFilter::timerEvent: timeout while reading section; type = 2 pid = 17
demux_wavpack: (open_wv_file:127) open_wv_file: non-seekable inputs aren’t supported yet.
kaffeine(3483) DvbDevice::removePidFilter: trying to remove a nonexistent filter
kaffeine(3483) DvbLinuxDevice::getSignal: ioctl FE_READ_SIGNAL_STRENGTH failed for “/dev/dvb/adapter0/frontend0”
kaffeine(3483) DvbLinuxDevice::getSnr: ioctl FE_READ_SNR failed for “/dev/dvb/adapter0/frontend0”
kaffeine(3483) DvbLinuxDevice::isTuned: ioctl FE_READ_STATUS failed for “/dev/dvb/adapter0/frontend0”
before the application kaffeine segfaults.
This happened launching kaffeine after having watched analog tv for a while.
By the way, which analog TV application do you suggest? I am currently
using tvtime.
Thanks for all.
Giacomo
Weird issue with new driver
with Markus’s driver this command works fine and returns
dvbsnoop -s sec -timeout 500 -nph -n 1500 0x12
however with the new driver it hangs at around 300 packets
any idea what is causing this?
Hi redtux,
No, I do not know what the difference is. I would have to give it a try and add some debugging to the driver. It’s doubtful though that it has anything to do with the drx-d driver and could be some issue with the em28xx-dvb implementation.
Devin
The only obvious thing I can think of is the reported signal strength from dvbtune
em28xx_new – between about 4800 and 7200
new driver about 28000
Hi to all,
I have a 2040:6502 Hauppauge WinTV HVR-900 and my system is debian sid (sidux) with kernel 2.6.33. I compiled the driver without errors und copy the extracted driver to /lib/firmware. But when I attached the stick, there is no /dev/dvb and so (?) I have no tv device in any application. Here is the output from /var/log/messages:
http://pastebin.ca/1831798
Can you help me to find out what is going wrong?
Greetings Juergen
Hello Juergen,
The log you provided suggests that you either did not install the new code, or did not properly install the code. Or perhaps you didn’t reboot after installing the code (since “make install” doesn’t unload currently running modules)?
I would start by rebooting and see if the stick starts working. If not, do a find in /lib/modules/`uname -r` for the em28xx.ko and see if the date matches when you built/installed the code.
Devin
Hello Devin,
thx for your efforts, Yes I do reboot and in /lib/modules/… I find ->
ll /lib/modules/2.6.33-0.slh.10-sidux-686/kernel/drivers/media/video/em28xx/
-rw-r–r– 1 root root 13332 10. Mär 02:38 em28xx-alsa.ko
-rw-r–r– 1 root root 16147 10. Mär 02:38 em28xx-dvb.ko
-rw-r–r– 1 root root 120850 10. Mär 02:38 em28xx.ko
And 2.6.33-0.slh.10-sidux-686 is the current kernel.
Juergen
“…and see if the date matches when you built/installed the code.”
and here is the problem, I do a dist-upgrade and got a new kernel after compiling. If I boot the 2.6.33-0.slh.9.. kernel, there is a /dev/dvb/adapter0 and and it works fine in kaffeine. In the “sidux” distribution the kernel ist updated verry often, so I have to reinstall (make & make install) the code every time !?
Here is the new output of /var/log/messages :
http://pastebin.ca/1835200
regards
Juergen
Hello Juergen,
Unfortunately, you will indeed need to run a “make distclean && make && make install && make unload” whenever you upgrade your kernel. That is just how the v4l-dvb project development process works until the code is merged upstream into the mainline kernel and is picked up by the various Linux distributions.
You would have the exact same experience if you installed the main v4l-dvb tree at http://linuxtv.org/hg/v4l-dvb.
Devin
Hi Devin,
“…until the code is merged upstream into the mainline kernel and is picked up by the various Linux distributions.”
if you like, you may contact the maintainer of the sidux kernel
Stefan Lippers-Hollmann (slh) [email address redacted], if he like to intergrate the code into the sidux kernel. Distri site: http://www.sidux.com and kernel changelog :http://svn.berlios.de/svnroot/repos/fullstory/linux-sidux-2.6/trunk/debian/changelog
Juergen
Hello Jurgen,
Generally speaking, we don’t have the time/energy to submit code to individual distributions. The way this generally works is the code starts in a development tree, then it goes to the mainline v4l-dvb tree, then it goes into the mainline Linux kernel, and then Linux distributions update to the newest kernel.
So if you are in a hurry, you can build from source yourself. Otherwise, you have to wait for the code to propagate through the various layers before it appears by default in your Linux distribution.
Devin
thx for your info,
p.s.
Devin could you or a site admin please delet slh`s mail adresse in my last post, after reading it. (because of spam!)
Juergen
Juergen,
Done.
Devin
Well i’m usig lucid alpha 3 with pinnacle 330e kaffeine and me-tv, all ok the dirver found very well.
Many many thanks !
I was going to say ‘finally the Micronas gave in’ but as you pointed out, it was out there and nobody knew,….
One more reason to try to reinstall Linux on my old laptop now 😉
Thanks a milion!
Hi Devin,
hereby I want to confirm it works !
On Ubuntu Karmic with all last updates. (obviously, to install, do ‘sudo make install’) .
To test quickly, i installed dvb-apps and vlc – scan works, some confusion comes when starting live stream playback on vlc, takes about 5 seconds.
Haven’t got much time to do some more tests – tell me please what kind of feedback you want (other than I have a Pinnacle PCTV USB Hybrid Pro 330e)
Really, really, really outstanding work!
I own on HVR900 which was up for sale upto 1hour ago as it would only work in Win.
Now I can keep it.
I own an ID 2040:6502 Hauppauge WinTV HVR-900
and I borrowed an ID 2304:0226 Pinnacle Systems, Inc. [hex] PCTV 330e
Both tested with UNR on an Acer Aspire 1 with me-tv and on kubuntu 9.10 64bit with kaffeine. No problems! Working great. Thanks an awful lot.
I’m sorry, I can’t test it now, but I donated 5$. Thank you very much!
Hello, just to say that the dvb part of my pinnacle works very well. no problem with kaffeine. The Secam -K part of the stick works fine too (tried in French Polynesia with ktv
http://kde-apps.org/content/show.php/ktv?content=110020). But as already pointed out by a other comment, the Secam-L part of the stick does not work at all in ktv.
With the sundtek driver, the secam-L works fine.
That is my feedback 😀 .
Anyway, I check the kernel git, and I did not see your patches. Did I miss anything in the git?
Thanks again for your great job
Hi Paul,
Yeah, I need to dig into the secam-l issue.
Regarding the kernel git, the patches have not been submitted upstream. There is still a ton of work that has to happen between “good enough for users to try out” versus “good enough to be accepted into the mainline kernel”. But I figured it would be better to at least make something available now that people can use, rather than make people wait until all the cleanup work is done.
Cheers,
Devin
Hello,
I have a “Cinergy hybrid Stick” ID: 0ccd:00a5. This card was experimental supported by the em28xx-new driver. After a mass amount of time of using google, i found your blog. Even i think you are only take care for 2 other cards which where included in the em28xx-new driver you might give some information on the status of the “cinergy hybrid stick”.
Thx in advance for your good work and the time your might invest.
Mario
Hi,
Thanks for the great job. Didn’t get how the DVB worked this summer – now it works fine, and in myth too. Onwards to decrypt some channels!
Sorry, forgot to mention the hardware: I’m using a PCTV 330e which came in a ‘ PCTV hybrid tuner kit’
Wonderful job !
may i permit to remark one point :
when playing with hvr900 r2 hd french channels (like tf1 hd) the picture hang every half seconde and wine indicate buffering …
but for sd channels it doesn’t hang
and under seven no hang of hd tv…
notebook dv7-2160 dualcore p7550 2.3 + 4gb ram
Best regards,
if you wan’t more information on my config don’t hesitate to contact me by email.
note:
Ubuntu 64 bits : 2.6.31.20 generic
Best job again !
Titof
Hi Devin, any idea/news about my post dating to March 14, 2010?
Many Thanks.
Giacomo.
Hello Giacomo,
Unfortunately, I haven’t had any time to debug the issue in question. I’ve been pretty buried in a commercial project.
It’s on my TODO list.
Devin
Hi Devin.
As to my posts dating to march 8th, 10th and 26th, are there any news?
Just to remember, there was an issue when scanning for DVB-T channels
on Pinnacle PCTV Hybrid Pro Stick, 330e/driver em28xx.
The scan terminates with “Frequency out of Range”.
I am using dvb it-Trieste file, which I paste here again:
# Trieste, Italy
# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
# MUX MEDIASET 1 (Class News, 24Ore TV, Coming soon, BBC World, Boing, Mediaset Premium)
T 778000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
T 474000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
#
# MUX-B RAI (Rai Doc-Futura, RaiSportSAT, RaiNotizie24, Rai EDU1, Sat2000, Radio1, Radio2, Radio3, FDAuditorium)
T 682000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
#
# MUX-A RAI (Rai Uno, Rai Due, Rai Tre, Rai Utile)
T 602000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
#
# MUX DFREE (Rete 4, Italia 1, Sportitalia, LCI / Prima, Si Live24)
T 754000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
#
# MUX (All Music)
T 666000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
#
# MUX (Triveneta)
T 698000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
#
# MUX (La7 Telemarket Retecapri MTv italia Sitcom Uno)
T 674000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
(“/usr/share/dvb/dvb-t/it-Triesteâ€)
For instance,
# MUX DFREE (Rete 4, Italia 1, Sportitalia, LCI / Prima, Si Live24)
T 754000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
are not tuned.
Is there any hope that changes in drivers since March correct the problem?
Thanks in advance, Giacomo.
I found my issue for the video problem,
i was on the notebook battery and not connected to 220V. so the graphic card was running to a low frequency.
but what is the good codec for the audio hd ?
Because i have sound in sd but not in hd. so i supposed that is was due to a missing codec, but which one ?
your advice ?
Very best regards,
titof.
the audio problem is due to french emiters (TF1HD, M6 HD) who use ac3 5.1 signal …
http://trac.videolan.org/vlc/ticket/3296
si no audio
request done for vlc who patch ffmpeg but no direct update on ffmpeg
I’ve installed my Hauppage HVR 900, and it’s ok.
On Ubuntu Lucid, kernel 2.6.32-17, I’ve to disable firedtv.
Kaffeine it’s ok, also audio, I’m trying vlc and totem.
Nice, thanks!
For ubuntu, i have written this script, testet with 9.10 karmic and a clean 10.04 lucid beta 1:
#!/bin/bash
#http://www.kernellabs.com/blog/?p=1397
sudo apt-get install mercurial libxine1-ffmpeg
mkdir temp
cd temp
hg clone http://kernellabs.com/hg/~dheitmueller/v4l-dvb-drxd
cd v4l-dvb-drxd
make
sed -i ‘s/FIREDTV=m/FIREDTV=n/’ v4l/.config
make
sudo make install
cd ..
wget http://kernellabs.com/firmware/drxd/drxd-a2-1.1.fw
wget http://kernellabs.com/firmware/drxd/drxd-b1-1.1.fw
sudo cp drxd* /lib/firmware
wget http://www.steventoth.net/linux/xc5000/HVR-12×0-14×0-17x0_1_25_25271_WHQL.zip
unzip -j HVR-12×0-14×0-17x0_1_25_25271_WHQL.zip Driver85/hcw85bda.sys
wget http://linuxtv.org/hg/v4l-dvb/raw-file/3919b17dc88e/linux/Documentation/video4linux/extract_xc3028.pl
perl extract_xc3028.pl
sudo cp xc3028-v27.fw /lib/firmware
sudo reboot
Hi Devin,
First great job !
Analog TV is OK, and i`m happy to hear that dvb drxd worked, but I can’t scan the freq:
…
>>> tune to: 746000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_5_6:FEC_AUTO:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE
WARNING: >>> tuning failed!!!
>>> tune to: 746000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_5_6:FEC_AUTO:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE (tuning failed)
WARNING: >>> tuning failed!!!
ERROR: initial tuning failed
dumping lists (0 services)
Done.
I have 330e (2304:0226 Pinnacle Systems, Inc. [hex] PCTV 330e) running gentoo.
I removed all old libs is /lib/modules/ and install once again without result.
dmesg:
…
em28xx #0: EEPROM ID= 0x9567eb1a, EEPROM hash = 0xe3b3aebf
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
em28xx #0: Identified as Pinnacle Hybrid Pro (330e) (card=56)
tvp5150 0-005c: chip found @ 0xb8 (em28xx #0)
tuner 0-0061: chip found @ 0xc2 (em28xx #0)
xc2028 0-0061: creating new instance
xc2028 0-0061: type set to XCeive xc2028/xc3028 tuner
usb 1-2: firmware: using built-in firmware xc3028-v27.fw
xc2028 0-0061: Loading 80 firmware images from xc3028-v27.fw, type: xc2028 firmware, ver 2.7
xc2028 0-0061: Loading firmware for type=BASE MTS (5), id 0000000000000000.
xc2028 0-0061: Loading firmware for type=MTS (4), id 000000000000b700.
xc2028 0-0061: Loading SCODE for type=MTS LCD NOGD MONO IF SCODE HAS_IF_4500 (6002b004), id 000000000000b700.
input: em28xx IR (em28xx #0) as /devices/pci0000:00/0000:00:03.3/usb1/1-2/input/input14
Creating IR device irrcv0
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
tvp5150 0-005c: tvp5150am1 detected.
em28xx #0: v4l2 driver version 0.1.2
em28xx #0: V4L2 video device registered as video0
em28xx #0: V4L2 VBI device registered as vbi0
em28xx-audio.c: probing for em28x1 non standard usbaudio
em28xx-audio.c: Copyright (C) 2006 Markus Rechberger
xc2028 0-0061: attaching existing instance
xc2028 0-0061: type set to XCeive xc2028/xc3028 tuner
em28xx #0: em28xx #0/2: xc3028 attached
DVB: registering new adapter (em28xx #0)
DVB: registering adapter 0 frontend 0 (Micronas DRXD DVB-T)…
em28xx #0: Successfully loaded em28xx-dvb
tvp5150 0-005c: tvp5150am1 detected.
…
drxd: deviceId = 0000
DRX3975D-A2
usb 1-2: firmware: using built-in firmware drxd-a2-1.1.fw
xc2028 0-0061: Loading firmware for type=BASE F8MHZ MTS (7), id 0000000000000000.
xc2028 0-0061: Loading firmware for type=D2620 DTV8 (208), id 0000000000000000.
Help ?
bump
Hi Tom,
It seems strange that your channel file only has two entries. Is that really correct? Does the device work under Windows, and if so how many channels do you receive?
Devin
pinnacle 330e on 2.6.32.10-90.fc12.i686 compiles and loads with no errors
Thank you very much,
now finally with your HowTo also the digital tuner (DRX3975D) in the Pinnacle Hybrid Pro-Stick (2304:0226) works in my openSUSE 11..2.
A reminder: remove or rename (as root) original colliding modules “em28xx.ko” and “em28xx-dvb.ko” in /lib/modules//empia/ before reboot.
And a hint for Ubunru-/Mythbuntu-Users:
The above algorithm ist not necessary. In Ubunru there are ready packages. Follow this (German) instruction (starting at paragraph “em28xx-new-Paket ab Intrepid” http://wiki.ubuntuusers.de/em28xx
Oops, the pointed brackets disappeared.
The path to remove the colliding modules is:
“/lib/modules/[your_kernel]/empia/”