hauppauge wintv-dual hd - only see one tuner

  • I've just got this adapter

    showing up in 7.9 alpha.

    i've not tried with previous..

    but i can only see 1x dvb-t and dvb-c

    is there anyway to get it working as a dual tuner?

    Thanks


  • Look like no full info about dual-channel empia media usb bridge. So implemented partial support.

    Hi crazycat -

    i've just spoke to hauppage who said -

    Quote


    Both tuners should be supported in our Linux driver.

    We have several customers using Linux and both tuners, including Google for Android and OEM customers.

    Here is the latest patch file for kernel 4.2.5 and the WinTV-dualHD's:

    Dropbox - wintv-dualhd-kernel-4.2.5-2016-08-10.patch.tar.xz

    is this new information for you to go on?

  • I added the support for this device in to the kernel, but as CrazyCat said it only supports the first tuner. The issue is that the EM28xx driver is not built with support for dual-tuners in mind. It was relatively easy to add support for a new device, but it is a significant task to add support for multiple tuners. The driver supports something like 100 different devices so you need to be very careful...

    I'll have a look at the attachment you added later.


  • I added the support for this device in to the kernel, but as CrazyCat said it only supports the first tuner. The issue is that the EM28xx driver is not built with support for dual-tuners in mind. It was relatively easy to add support for a new device, but it is a significant task to add support for multiple tuners. The driver supports something like 100 different devices so you need to be very careful...

    I'll have a look at the attachment you added later.

    thank you, keep me updated.

  • Just tried building crazycat media_build from here : CrazyCat / media_build — Bitbucket

    to my existing custom 3.19.0-61-generic kernel (which I built to increase the number of DVB devices over the normal maximum of 8 - as we have 9 muxes in London and I wanted a DVB-T/T2 device per mux)

    When I plug in the Win-TV Dual HD I get the following dmesg errors : [ 28.529604] usb 1-3: new high-speed USB device number 4 using xhci_hcd [ 2 - Pastebin.com

    I'm assuming this is because I have too old a kernel?

  • Using afl's new build it seems the ATSC version of the Hauppauge wintv-dualhd gets loaded - but does not get the front end functioning. It is not seen in tvheadend. Here's a part of the dmesg on boot:

    Is there something I can check to see if all firmware/drivers are loaded?

  • Sorry - meant to update. Not running LibreElec for my TV Headend backend - but I installed 64bit Ubuntu Server 16.10 on an x86 box, followed CrazyCat / media_build — Bitbucket instructions, and my WinTV-Dual HD is working OK with both tuners. I haven't massively stressed it yet - but was pleased it works.

    (I also rebuilt my kernel to allow >8 tuners (as I have 9 and the default maximum in the standard kernel is 8) )


  • Just tried building crazycat media_build from here : CrazyCat / media_build — Bitbucket

    to my existing custom 3.19.0-61-generic kernel (which I built to increase the number of DVB devices over the normal maximum of 8 - as we have 9 muxes in London and I wanted a DVB-T/T2 device per mux)

    When I plug in the Win-TV Dual HD I get the following dmesg errors : [ 28.529604] usb 1-3: new high-speed USB device number 4 using xhci_hcd [ 2 - Pastebin.com

    I'm assuming this is because I have too old a kernel?

    I hit this error. In my case I believe it was because existing modules were conflicting with the media_build installed ones.

    To remedy it I entered the media_build folder and entered the following to remove the installed modules

    Code
    sudo make rminstall

    I then did a

    Code
    sudo make install

    and the errors went away with the tuner loading.

    Worse case scenario you can try deleting the /lib/modules/<kernel version>/kernel/drivers/media folder prior to installing the media_build modules. Be warned: your mileage may vary and this probably isn't recommended (although it worked for me). I do not take responsibility for a broken system ;)

    Edited once, last by Puffin Chunks (February 23, 2017 at 11:48 AM).

  • Ok, after almost a week fighting with my RPi B+ I am now truly stumped by this. I cannot, no matter what I do, get 2 adapter support going with the WinTV Dual HD Adaptor.

    I hate having to admit defeat, but here I am, tired and broken.

    My setup:

    RPi B+ running Raspbian-lite as TVHeadEnd back end.
    Multiple devices running various LibreElec/Kodi installs as front end.

    What I have done (as briefly as possible):

    Default Raspian image
    Doesn't work (obviously). Struggled with media_build for a bit on default kernel 4.4 and didn't get very far. The media_build drivers clearly loaded, but the /dev/dvb folder would not show up. After moving on to another Kernel, I think I stumbled on why this may have been... needing to add Automatic Loading of I2C kernel module in Raspi-Config. I may be wrong, haven't tested, but I would guess this is why the adapter was not showing.

    I then discovered the joys of X-Compiling.

    X-Compiled 4.7 Kernel:
    Compiled kernel 4.7 (a bad choice in retrospect, but Media_Build threw up that it would not install lgdt3306a on anything less than 4.7, so seemed like the sensible move). Got 1 adapter to show up in /dev/dvb but neither TVHeadEnd nor w_scan would find any channels on any of the muxes... still, 2 steps forward and 1 step back.

    X-Compiled 4.9 Kernel:
    Success! 1 Adaptor fully functional in TVHeadEnd! Surely it should be easy to get both adapters to work now? Nope.

    Tried some (admittedly fairly noobish) experimenting with compiling the following sources, from CrazyCat's linux_media straight into the kernel:

    Code
    lgdt3306a.c
    lgdt3306a.h
    em28xx-cards.c
    em28xx-core.c
    em28xx-dvb.c
    em28xx.h

    Well, it turns out i2c_mux.h, which lgdt3306a.c depends on was changed at Kernel version 4.6, so the functions that it calls are no longer valid. Fixing this issue is well outside of my experience level. I did try compiling them into 4.4 kernel, but this also caused me issues which I am unable to resolve.

    So, back to how media_build should be used... Finally I x-compile crazycat's linux_build through media_build against my default 4.9 kernel source. port the compiled folder over to the pi and sudo make install over there. Success! I'm getting the red text in dmesg, so my drivers must be loading from the media_build version..... but... still only 1 adapter in /dev/dvb, so I am exactly where I was when I installed my 4.9 kernel.

    If anyone could help with how I can get both adaptors working, it would be appreciated. Some outputs (and if anything else is required, please ask):

    dmesg:

    lsmod:

    How I x-compile media build:


    Some notes on x-compiling media_build, to either demonstrate my noobishness, or to help anyone else hitting the same issues:

    • ihex2fw does not x-compile correctly so needs to be compiled on the pi. This is needed for firmware install. Assuming media build is in ~ :
      Code
      rm ~/media_build/v4l/firmware/ihex2fw
      gcc ~/media_build/linux/firmware/ihex2fw.c -o ~/media_build/v4l/firmware/ihex2fw
    • Despite pointing media_build at my currently running compiled kernel (with sudo make release DIR=/lib/modules/$(uname -r) ) it installed the modules to /lib/kernel/drivers/media so I had to manually copy them into /lib/modules/$(uname -r)/kernel/drivers/media. I also re-ran /sbin/depmod -a although I don't know if this was necessary.

    Edited once, last by Puffin Chunks (February 23, 2017 at 9:45 PM).

  • Ugggh, 3 posts on the roll... sorry!

    Finally got this working on kernel 4.9.11.

    In the end I had to apply the patch to 4.2 (as posted earlier in the thread). Whilst this showed both adapters, they wouldn't tune.

    I took the patched files and looked to apply the relevant amends to the source files in kernel 4.9.11. My c knowledge is next to non-existent so this was fun. I compiled kernel 4.9.11 with my amended sources (for DVB only, I don't have ATSC).

    Compiled, recognised both tuners and both tune.

    I'm sure there was an easier way to do this, but I'm just happy I got there in the end.