Call for testers: HVR-900R2 and PCTV 330e

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:

To build:

hg clone
cd v4l-dvb-drxd
make install

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

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)!

180 thoughts on “Call for testers: HVR-900R2 and PCTV 330e

  1. Great work, but I think I may have found a bug (I have the HVR-900R2 and use openSUSE 11.2). There seems to be insufficient locking between analog and digital TV. To simulate time-shifting I use mencoder to record analog TV and then simultaneously watch the recorded file. Normally I use Kaffeine (the kde3 version) to do this, which I also use to watch digital TV (it is important to note that Kaffeine has some sort of auto-detection of DVB-devices). With v4l-dvb-drxd mencoder reports a failure as soon as Kaffeine is started. Because other programs like mplayer with no auto-detection of DVB-devices don’t cause this problem, I think the problem is caused because Kaffeine tries to access the DVB-part while mencoder still uses the analog-part.

    • Devin Heitmueller

      Hello Matzman,

      The problem you described is not specific to this product – the vast majority of hybrid tuners under Linux experience essentially the same issue. The LinuxTV subsystem lacks a coherent strategy for dealing with this sort of locking between analog and digital interfaces that share the same underlying hardware.

      That said, while I agree that you’ve found an issue, it’s outside the scope of the work specifically for the 900R2 driver.


  2. Very thanks for your mercurial repo and firmware. You’ve saved my life 🙂
    I just successfully compiled on 2.6.31-gentoo-r6 x86_64.
    I can watch with my Pinnacle 330e DVB-T with sound. Analog not tested

    very thanks


  3. Hello,

    Thanks a lot for your great job. I couldn’t install my pinnacle 330e in ubuntu without your help.

    But I have a problem. I’m from Spain, and we have a mux with the frequency 858 Mhz. It seems that the firmware, or driver, is not capable to tune frequencies above 855 Mhz. I get this when I try to tune that frequency:

    tune_to_transponder:1508: ERROR: Setting frontend parameters failed: 22 Invalid argument

    Thanks again.

    • Hi Mario,

      You must do the following:

      cd v4l
      edit with your favourite editor, the files drxd_hard.c and drxd397xD.c
      change the line saying “frequency_max=855250000” to “frequency_max=858000000”
      cd ..
      make install
      reboot …
      and enjoy!

      I am from Barcelona, and I had exactly the same problem (didn’t get ANTENA3), where are you from?


  4. Pingback: Kylie Batt
  5. Thanks a lot! it is absolutely fantastic, I’ve been struggling with this bloody usb stick for 2 years and finally … It works!!, thanks a lot from Barcelona, Spain. By the way, I changed the initial value of frequency_max to 858 Mhz to suit my area, is there any reason to be initialised to 855.25 Mhz? Again, thanks a lot.

  6. Pingback: Kylie Batt
  7. Great great work, I have a wintv-hvr900 R2 and have been struggling for two days before finding your drivers and firmwares… It works, I got a PKGBUILD for Arch now and its beautifully simple… Good work

    • Devin Heitmueller

      Hi DarkBasic,

      The code is there and the licensing is worked out. The only thing pending is finding the ten or fifteen hours of man-hours required to make the code conform to the Linux “coding standard”. That’s the part where they won’t accept perfectly good code because it doesn’t have the right indentation. 😉



  8. Hi,
    The driver don’t compile anymore on kernel 2.6.34, due to minore changes: the first that I noticed is that for kfree and similar methods to be defined,
    need to be included explicitly… Hope you could update the drivers soon…


  9. quick ‘n ditrty 🙂
    debian:/tmp/tvcard/v4l-dvb-drxd/v4l# for i in $(egrep ‘kzalloc|kfree’ *.c -r | cut -d “:” -f1 | uniq); do sed -ie ‘1i\#include ‘ $i; done

  10. Marvellous thanks Devin,

    I use Pinnacle 330e with Ubuntu 10.04. Actually, I tried Kaffeine but got error messages when seeking channels; stopped searching at 98% and no channel was added to the list.

    I installed tvtime then that seems to work out fine but unfortunately no sound. I guess this issue can be solved as I found a funny solution already:
    * open tvtime, switch to an existing channel = video OK
    * open Multimedia Systems Selector / Sound / Default Input: Click to Test = Sound OK


  11. i have pctv 330e pinacle usb and i search channels using the analog dvb option (greece) but i only hear clear sound of the channel.any help?and in the screen it writes “digital sound service”
    thnx in advance

  12. Hello,

    on OpenSuse 11.3 rc 1, Kernel 2.6.34-12-desktop, 64bits :
    I receive this error when I do the ‘make’ :
    make[2]: Leaving directory `/home/lau/v4l-dvb-as102/v4l/firmware’
    Kernel build directory is /lib/modules/2.6.34-12-desktop/build
    make -C /lib/modules/2.6.34-12-desktop/build SUBDIRS=/home/lau/v4l-dvb-as102/v4l modules
    make[2]: Entering directory `/usr/src/linux-2.6.34-12-obj/x86_64/desktop’
    make -C ../../../linux-2.6.34-12 O=/usr/src/linux-2.6.34-12-obj/x86_64/desktop/. modules
    CC [M] /home/lau/v4l-dvb-as102/v4l/tuner-xc2028.o
    /home/lau/v4l-dvb-as102/v4l/tuner-xc2028.c: In function ‘free_firmware’:
    /home/lau/v4l-dvb-as102/v4l/tuner-xc2028.c:252:3: error: implicit declaration of function ‘kfree’
    /home/lau/v4l-dvb-as102/v4l/tuner-xc2028.c: In function ‘load_all_firmwares’:
    /home/lau/v4l-dvb-as102/v4l/tuner-xc2028.c:314:2: error: implicit declaration of function ‘kzalloc’
    /home/lau/v4l-dvb-as102/v4l/tuner-xc2028.c:314:13: warning: assignment makes pointer from integer without a cast
    /home/lau/v4l-dvb-as102/v4l/tuner-xc2028.c:365:21: warning: assignment makes pointer from integer without a cast
    /home/lau/v4l-dvb-as102/v4l/tuner-xc2028.c: In function ‘xc2028_attach’:
    /home/lau/v4l-dvb-as102/v4l/tuner-xc2028.c:1269:13: warning: assignment makes pointer from integer without a cast
    make[5]: *** [/home/lau/v4l-dvb-as102/v4l/tuner-xc2028.o] Erreur 1
    make[4]: *** [_module_/home/lau/v4l-dvb-as102/v4l] Erreur 2

    Thanks for your help and good job.

  13. Thanks for the good work. Following your steps I got id immediately working on
    Ubuntu Netbook Remix 10.4 on a DELL Mini Inspirion 1011
    with Pinnacle PCTV e330.
    My Kernel: 2.6.32-23-generic

  14. Wonderful news on support being available, and thanks for putting the time into getting it going… but I’m not getting any love with my HVR900 R2 (USB ID 8040:6502).

    When I run dvbscan -n -p I get the “tuning failed” messages that Michael had previously, but I’ve double-checked that my hardware is in the supported list, the firmware is all in place (dmesg seems happy about everything — except that every time I re-run dvbscan it tells me that it’s loading the firmware again, but that could be expected).

    I did the make; make install; reboot as suggested, but I’m a complete newbie when it comes to TV-related hackery, so I might have missed some otherwise obvious step. What else can I try to diagnose this and get my little DVB stick chugging along?

  15. I use the pctv 330e with mplayer. If i watch a dvb channel and next an analog channel, screen becomes black after 10seconds. I’ve to change to another analog channel to start watch something without problem

    • Devin Heitmueller

      Hello Paul,

      That is definitely the plan. The big issue at this point is just I haven’t had time to do the required cleanup in order to meet the kernel “coding standards”. As a result, the tree cannot simply be accepted upstream (regardless of how well the driver works).


  16. Hello Devin,
    I’m trying to compile the module in v4l-dvb-drxd against the 2.6.35 kernel
    After including linux/slab.h in all sources that use kfree and kzalloc i run make
    and get a new error about “struct dev_mc_list”, “mc_count” and “mc_list”.
    I’ve tryed to fix the problem but i think my programming skill are not enough to do this,
    I attach the output of make, thank you again for your work,
    best regards,


    #### make output #####
    CC [M] /home/fabio/src/v4l-dvb-drxd/v4l/dvb_filter.o
    CC [M] /home/fabio/src/v4l-dvb-drxd/v4l/dvb_ca_en50221.o
    CC [M] /home/fabio/src/v4l-dvb-drxd/v4l/dvb_frontend.o
    CC [M] /home/fabio/src/v4l-dvb-drxd/v4l/dvb_net.o
    /home/fabio/src/v4l-dvb-drxd/v4l/dvb_net.c:1179: warning: ‘struct dev_mc_list’ declared inside parameter list
    /home/fabio/src/v4l-dvb-drxd/v4l/dvb_net.c:1179: warning: its scope is only this definition or declaration, which is probably not what you want
    /home/fabio/src/v4l-dvb-drxd/v4l/dvb_net.c: In function ‘dvb_set_mc_filter’:
    /home/fabio/src/v4l-dvb-drxd/v4l/dvb_net.c:1186: error: dereferencing pointer to incomplete type
    /home/fabio/src/v4l-dvb-drxd/v4l/dvb_net.c: In function ‘wq_set_multicast_list’:
    /home/fabio/src/v4l-dvb-drxd/v4l/dvb_net.c:1226: error: ‘struct net_device’ has no member named ‘mc_count’
    /home/fabio/src/v4l-dvb-drxd/v4l/dvb_net.c:1230: error: ‘struct net_device’ has no member named ‘mc_count’
    /home/fabio/src/v4l-dvb-drxd/v4l/dvb_net.c:1236: error: ‘struct net_device’ has no member named ‘mc_list’
    /home/fabio/src/v4l-dvb-drxd/v4l/dvb_net.c:1237: error: ‘struct net_device’ has no member named ‘mc_count’
    /home/fabio/src/v4l-dvb-drxd/v4l/dvb_net.c:1238: error: dereferencing pointer to incomplete type
    /home/fabio/src/v4l-dvb-drxd/v4l/dvb_net.c:1238: warning: left-hand operand of comma expression has no effect
    /home/fabio/src/v4l-dvb-drxd/v4l/dvb_net.c:1238: warning: value computed is not used
    /home/fabio/src/v4l-dvb-drxd/v4l/dvb_net.c:1239: warning: passing argument 2 of ‘dvb_set_mc_filter’ from incompatible pointer type
    /home/fabio/src/v4l-dvb-drxd/v4l/dvb_net.c:1179: note: expected ‘struct dev_mc_list *’ but argument is of type ‘struct dev_mc_list *’
    /home/fabio/src/v4l-dvb-drxd/v4l/dvb_net.c: In function ‘dvb_net_setup’:
    /home/fabio/src/v4l-dvb-drxd/v4l/dvb_net.c:1363: error: ‘struct net_device’ has no member named ‘mc_count’
    make[3]: *** [/home/fabio/src/v4l-dvb-drxd/v4l/dvb_net.o] Error 1
    make[2]: *** [_module_/home/fabio/src/v4l-dvb-drxd/v4l] Error 2
    make[2]: Leaving directory `/usr/src/kernels/2.6.35-kal.i686′
    make[1]: *** [default] Error 2
    make[1]: Leaving directory `/home/fabio/src/v4l-dvb-drxd/v4l’
    make: *** [all] Error 2

  17. Please don’t let this die like the old em28xx driver.

    If this is the problem…

    “The only thing pending is finding the ten or fifteen hours of man-hours required to make the code conform to the Linux “coding standard”.”

    …I’m pretty sure there are plenty of users willing to donate 20$ to see it merged.

    Cofundos ( may be the solution.

  18. Joanand Kuharajasekaram

    I have a workaround for 2.6.35. It is quite simple if you only want the stick to work. I am in the process of creating patch-files. For those who are willing to have some fun:
    I have copied drxd.h drxd_firm.c drxd_firm.h drxd_hard.c drxd_map_firm.h to /usr/src/linux/drivers/media/dvb/frontend, modified the Makefile:
    “drxd-objs = drxd_firm.o drxd_hard.o” added on line 12
    “#obj-$(CONFIG_DVB_DRX397XD) += drx397xD.o” on line 39 is now:
    “obj-$(CONFIG_DVB_DRX397XD) += drxd.o” drxd is now compiled if drx397xd is selected in the config!

    The hard bit of work was modifying em28xx-cards.c and em28xx-dvb.c. If you do not require IR-Remote, then only 10 lines has to modified/written.

    As I do not want to loose time in giving specific instructions, I will create patch-files and post the link.


  19. I merged Devin’s driver for 2.6.32 with 2.6.35 em28xx from ubuntu stock kernel. It builds and works fine for me (dvb-t, alsa audio and IR remote control).

    Please kernel hackers review my crude work. Everybody else stay away, unless you want to risk having your computer delete your porn collection, flirting with your girlfriend/boyfriend and scare your cat to death.
    Have fun

  20. OK, I’m running Ubuntu 10.10 and would really like to get my 900 (R2) working.

    I’ve followed these steps, including the change for #include %lt; linux/slab.h > but i still get errors about the reference to kfree etc.

    Is slab.h standard issue, or do I need to download this? Or do I need to add a reference as to where it can find slab.h?

    Thanks one and all.

  21. – hi Devin,
    I am so happy with your work. I almost got it working myself, but I couldn’t figure out the right firmware to download to the HVR900-R2. Not much info on the Micronas chipset didn’t exactly help. Seems they now released it for the public? Strange. Best of all: Your work + MythTv unleashed new power in the HVR900-R2 I didn’t even know about! I can know record 1 dvb program while watching another dvb. Never knew there were 2 dvb tuners. Also HD channels and MPEG4 works perfectly. Ironically this never worked with Happauge”s own (ridiculous) WinTV software! Thank you so much. I will gladly help with “code beautification” for upstream acceptance.

    • Hi,
      I tried to get it working with gentoo 2.6.35. I compiled, installed and loaded the
      em28xx and drxd modules without errors, but the dvb device is missing.
      Any ideas ?


      • Hi Gerd,

        I don’t do much with Gentoo, but from what I understand others who have tried these trees under that distro generally had problems getting their module dependencies correct. If the dependencies are correct you should never need to modprobe anything. All the correct modules should load automatically when the device is inserted.



      • Hi,
        I also tried the tree from Voland_IT (but kernel 2.6.37). The dvb-t support for HVR-900 R2 is disabled there. Maybe because drxd is not in mainline kernel. I enabled it, but the code crashes in ir_close called by em28xx_ir_fini when the device is removed. I still have to look at this.


  22. How should I compile it with 2.6.37 and a non debian based distro? If I run make from em28xx-2.6.37-klabs100227+lca101214 I get:
    WARNING: “snd_pcm_period_elapsed” [/home/niko2/devel/em28xx-2.6.37-klabs100227+lca101214/temp/em28xx-alsa.ko] undefined!
    WARNING: “snd_card_create” [/home/niko2/devel/em28xx-2.6.37-klabs100227+lca101214/temp/em28xx-alsa.ko] undefined!
    WARNING: “snd_pcm_hw_constraint_integer” [/home/niko2/devel/em28xx-2.6.37-klabs100227+lca101214/temp/em28xx-alsa.ko] undefined!
    WARNING: “snd_pcm_link_rwlock” [/home/niko2/devel/em28xx-2.6.37-klabs100227+lca101214/temp/em28xx-alsa.ko] undefined!
    WARNING: “snd_pcm_set_ops” [/home/niko2/devel/em28xx-2.6.37-klabs100227+lca101214/temp/em28xx-alsa.ko] undefined!
    WARNING: “snd_pcm_lib_ioctl” [/home/niko2/devel/em28xx-2.6.37-klabs100227+lca101214/temp/em28xx-alsa.ko] undefined!
    WARNING: “snd_card_free” [/home/niko2/devel/em28xx-2.6.37-klabs100227+lca101214/temp/em28xx-alsa.ko] undefined!
    WARNING: “snd_card_register” [/home/niko2/devel/em28xx-2.6.37-klabs100227+lca101214/temp/em28xx-alsa.ko] undefined!
    WARNING: “snd_pcm_new” [/home/niko2/devel/em28xx-2.6.37-klabs100227+lca101214/temp/em28xx-alsa.ko] undefined!

    # insmod ./em28xx.ko
    insmod: error inserting ‘./em28xx.ko’: -1 Unknown symbol in module

    Hai jabber? Aggiungi

    • Amitai,

      Correct – these are development trees which were never intended to track the latest kernels. They will not compile for a variety of reasons, most of which have to do with useless renaming of functions.


  23. In order to be be able to compile the complete module tree for kernel 2.6.35 I have made the needed modifications. I generated the patch file and made it available with this link:

    I have compiled it on Ubuntu 10.10 Maverick (AMD64) with firewire-dvb disabled. Also I compiled the tree with the patch applied on Ubuntu 10.04 (x86-32bit). On both systems my PCTV 330e is working as expected, used with VLC mediaplayer.

    • I was very excited to hear of this new driver but sadly I’ve not had any joy with Ubuntu 10.10. Using this patch, everything compiles correctly and I’ve installed the firmware, however for some reason my HVR-900 isn’t coming to life. I’m not an expert on such things, but I’m presuming everything is installed right/

      I have yet to try it on one of my 10.04 running machines – hopefully I’ll have more luck with them.

      But anyway, thanks for the work – looking forward to the day this just works out of the box :o)

      • Just been trying it on Ubuntu Netbook Remix 10.04 and sadly same problem. the HVR-900R2 just refuses to budge. Very frustrating given it’s worked for other people on 10.04

        I have a feeling I’ve not done something correctly but everything compiles correctly and make install is done. I’ve installed both sets of firmware, and still nothing.

        Oh well. Guess Vista it will have to be for a bit longer.

  24. I tried this driver with an Elgato EyeTV Hybrid 2008 (Mac clone of HVR 900 R2 with USB device ID 2040:6502). The kernel version is 2.6.34 and I used the sources posted above for kernel 2.6.35. The device is detected and firmware loads but the card is still unusable.

    In analog mode I can scan channels but the video is not viewable. The frames are jerking in the screen and the color is distorted. In OSX everything works just fine.

    Dvb mode is not available because no dvb devices are created. Should there be any additions to udev rules or module load scripts in etc?

    PS. I do not use Ubuntu.

    • Now I can scan DVB channels and read EPG, but all attempts to watch them fail. The only message I get is from xawtv4 “dvb ioctl: FE_SET_FRONTEND(0x81da100) … … Frontend tuning failed”.

    • Here is the log after inserting the Elgato EyeTv Hybrid (2008): Everything appears normal, but nothing really works.

      Feb 19 04:53:26 Mac kernel: [ 429.195855] em28xx #0:^ITable at 0x24, strings=0x1e82, 0x186a, 0x0000
      Feb 19 04:53:26 Mac kernel: [ 429.196990] em28xx #0: Identified as Hauppauge WinTV HVR 900 (R2) (card=18)
      Feb 19 04:53:26 Mac kernel: [ 429.200560] tveeprom 8-0050: Hauppauge model 65018, rev B3C0, serial# 4150645
      Feb 19 04:53:26 Mac kernel: [ 429.200566] tveeprom 8-0050: tuner model is Xceive XC3028 (idx 120, type 71)
      Feb 19 04:53:26 Mac kernel: [ 429.200571] tveeprom 8-0050: TV standards PAL(B/G) PAL(I) PAL(D/D1/K) ATSC/DVB Digital (eeprom 0xd4)
      Feb 19 04:53:26 Mac kernel: [ 429.200576] tveeprom 8-0050: audio processor is None (idx 0)
      Feb 19 04:53:26 Mac kernel: [ 429.200579] tveeprom 8-0050: has radio
      Feb 19 04:53:26 Mac kernel: [ 429.203767] tvp5150 8-005c: chip found @ 0xb8 (em28xx #0)
      Feb 19 04:53:26 Mac kernel: [ 429.211376] tuner 8-0061: chip found @ 0xc2 (em28xx #0)
      Feb 19 04:53:26 Mac kernel: [ 429.211524] xc2028 8-0061: creating new instance
      Feb 19 04:53:26 Mac kernel: [ 429.211528] xc2028 8-0061: type set to XCeive xc2028/xc3028 tuner
      Feb 19 04:53:26 Mac kernel: [ 429.211538] usb 2-1.4: firmware: requesting xc3028-v27.fw
      Feb 19 04:53:26 Mac kernel: [ 429.214176] xc2028 8-0061: Loading 80 firmware images from xc3028-v27.fw, type: xc2028 firmware, ver 2.7
      Feb 19 04:53:26 Mac kernel: [ 429.260696] xc2028 8-0061: Loading firmware for type=BASE (1), id 0000000000000000.
      Feb 19 04:53:27 Mac kernel: [ 430.160008] xc2028 8-0061: Loading firmware for type=(0), id 000000000000b700.
      Feb 19 04:53:27 Mac kernel: [ 430.173902] SCODE (20000000), id 000000000000b700:
      Feb 19 04:53:27 Mac kernel: [ 430.173910] xc2028 8-0061: Loading SCODE for type=MONO SCODE HAS_IF_4320 (60008000), id 0000000000008000.
      Feb 19 04:53:27 Mac kernel: [ 430.354602] input: em28xx IR (em28xx #0) as /devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1.4/input/input13
      Feb 19 04:53:27 Mac kernel: [ 430.354763] Creating IR device irrcv0
      Feb 19 04:53:27 Mac kernel: [ 430.354955] em28xx #0: Config register raw data: 0xd0
      Feb 19 04:53:27 Mac kernel: [ 430.355650] em28xx #0: AC97 vendor ID = 0xffffffff
      Feb 19 04:53:27 Mac kernel: [ 430.356020] em28xx #0: AC97 features = 0x6a90
      Feb 19 04:53:27 Mac kernel: [ 430.356022] em28xx #0: Empia 202 AC97 audio processor detected
      Feb 19 04:53:27 Mac kernel: [ 430.486715] tvp5150 8-005c: tvp5150am1 detected.
      Feb 19 04:53:27 Mac kernel: [ 430.590340] em28xx #0: v4l2 driver version 0.1.2
      Feb 19 04:53:28 Mac kernel: [ 430.681060] em28xx #0: V4L2 video device registered as video1
      Feb 19 04:53:28 Mac kernel: [ 430.681065] em28xx #0: V4L2 VBI device registered as vbi0
      Feb 19 04:53:28 Mac kernel: [ 430.681069] em28xx-audio.c: probing for em28x1 non standard usbaudio
      Feb 19 04:53:28 Mac kernel: [ 430.681073] em28xx-audio.c: Copyright (C) 2006 Markus Rechberger
      Feb 19 04:53:28 Mac kernel: [ 430.731495] xc2028 8-0061: attaching existing instance
      Feb 19 04:53:28 Mac kernel: [ 430.731499] xc2028 8-0061: type set to XCeive xc2028/xc3028 tuner
      Feb 19 04:53:28 Mac kernel: [ 430.731502] em28xx #0: em28xx #0/2: xc3028 attached
      Feb 19 04:53:28 Mac kernel: [ 430.731505] DVB: registering new adapter (em28xx #0)
      Feb 19 04:53:28 Mac kernel: [ 430.731509] DVB: registering adapter 0 frontend 0 (Micronas DRXD DVB-T)…
      Feb 19 04:53:28 Mac kernel: [ 430.731994] em28xx #0: Successfully loaded em28xx-dvb
      Feb 19 04:53:28 Mac kernel: [ 430.808283] drxd: deviceId = 50d9
      Feb 19 04:53:28 Mac kernel: [ 430.808287] DRX3975D-B1
      Feb 19 04:53:28 Mac kernel: [ 430.808292] usb 2-1.4: firmware: requesting drxd-b1-1.1.fw
      Feb 19 04:53:28 Mac kernel: [ 430.901094] tvp5150 8-005c: tvp5150am1 detected.

    • Hi viacheslav,

      The analog video issues are properly an incorrectly selected video standard. Try using tvtime, and also try the composite/s-video input. If the composite and s-video work but the RF input does not, then it’s almost certainly an improperly selected video standard.


  25. Hi,

    I try to compile for OpenSuse 11.3 and failed with the above error, that linux/slab.h is missing. I applied the missing files with the code mentioned several comments above and fail again with a new error:
    /root/v4l-dvb-drxd/v4l/tvp7002.c: In function ‘tvp7002_s_register’:
    /root/v4l-dvb-drxd/v4l/tvp7002.c:899:9: error: ‘struct tvp7002’ has no member named ‘registers’

    Is it possible to create only the em38xx module without the rest? How?

    • Devin Heitmueller

      Hello Albert,

      This support has been merged into the upstream kernel, so you should use the current media_build tree instead of trying to build my hg tree (which no longer compiles against recent kernels).

      You can look in the wiki for more instructions on building v4l-dvb, or ask for help on the linux-media mailing list.



      • Just out of interest, when exactly was this merged? As Gentoo doesn’t always have the newest kernel versions. Is there some way I can check without having to compile the whole thing from scratch? (Ie, some source file I should look for?)

        • Devin Heitmueller

          Hello Muzer,

          It was accepted upstream on April 2nd for 2.6.40. There were a bunch of different source files changed, so it’s not like you can copy two files, recompile and expect it to work. The Git tree can be found here, from which you can probably manually do a merge:


          Alternatively, you can build the latest media_build tree, which contains my initial work as well as cleanup Mauro did afterwards. See the wiki for instructions on installing the media_build tree.


          • Finally good news! 🙂 The merge in the mainstream, the upcoming 3.0.0, is really something I was waiting for!

            Congratulations and, once again, thanks!

Leave a Reply