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
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
Not implemented in driver
Not implemented in driver
thanks crazycat.
if you are The crazycat, thanks for all your work.
do you know if there are plans or work being done to get both tuners working?
Look like no full info about dual-channel empia media usb bridge. So implemented partial support.
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:
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.
Hi Crazycat,
is this for twin tuner support or ATSC?
Awesome!! I've been waiting for this to come together. From looking at the commit it supports both DVB and ATSC.
Is this available in any builds yet?
Does this add proper dual DVB-T2 support for the Win-TV Dual? If so - that's great news. It's currently available reduced on Amazon in the UK.
Any idea how long before the drivers appear in LibreElec x86 builds?
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:
[ 7.811657@2] usb 1-1.1: em28174#0: EEPROM ID = 26 00 01 00, EEPROM hash = 0x547901ca
[ 7.811670@2] usb 1-1.1: em28174#0: EEPROM info:
[ 7.811675@2] usb 1-1.1: em28174#0: microcode start address = 0x0004, boot configuration = 0x01
[ 7.818909@2] usb 1-1.1: em28174#0: AC97 audio (5 sample rates)
[ 7.818922@2] usb 1-1.1: em28174#0: 500mA max power
[ 7.818927@2] usb 1-1.1: em28174#0: Table at offset 0x27, strings=0x0a72, 0x187c, 0x086a
[ 7.820845@3] 8021q: 802.1Q VLAN Support v1.8
[ 7.821069@2] usb 1-1.1: em28174#0: Identified as Hauppauge WinTV-dualHD ATSC (card=100)
[ 7.826431@2] tveeprom: Hauppauge model 204101, rev B2I6, serial# 11511331
[ 7.826441@2] tveeprom: tuner model is SiLabs Si2157 (idx 186, type 4)
[ 7.826446@2] tveeprom: TV standards PAL(B/G) NTSC(M) PAL(I) SECAM(L/L') PAL(D/D1/K) ATSC/DVB Digital (eeprom 0xfc)
[ 7.826450@2] tveeprom: audio processor is None (idx 0)
[ 7.826453@2] tveeprom: has no radio, has IR receiver, has no IR transmitter
[ 7.826464@2] usb 1-1.1: em28174#0: dvb set to isoc mode.
[ 7.826664@2] usb 1-1.1: em28174#1: chip ID is em28174
[ 7.912229@1] wifi_platform_bus_enumerate device present 1
[ 7.912240@1] ======== Card detection to detect SDIO card! ========
[ 7.912245@1] sdio_reset_comm():
[ 8.910062@1] usb 1-1.1: em28174#1: EEPROM ID = 26 00 01 00, EEPROM hash = 0x547901ca
[ 8.910073@1] usb 1-1.1: em28174#1: EEPROM info:
[ 8.910078@1] usb 1-1.1: em28174#1: microcode start address = 0x0004, boot configuration = 0x01
[ 8.918557@1] usb 1-1.1: em28174#1: AC97 audio (5 sample rates)
[ 8.918566@1] usb 1-1.1: em28174#1: 500mA max power
[ 8.918572@1] usb 1-1.1: em28174#1: Table at offset 0x27, strings=0x0a72, 0x187c, 0x086a
[ 8.919284@1] usb 1-1.1: em28174#1: Identified as Hauppauge WinTV-dualHD ATSC (card=100)
[ 8.922158@1] tveeprom: Hauppauge model 204101, rev B2I6, serial# 11511331
[ 8.922203@1] tveeprom: tuner model is SiLabs Si2157 (idx 186, type 4)
[ 8.922209@1] tveeprom: TV standards PAL(B/G) NTSC(M) PAL(I) SECAM(L/L') PAL(D/D1/K) ATSC/DVB Digital (eeprom 0xfc)
[ 8.922213@1] tveeprom: audio processor is None (idx 0)
[ 8.922217@1] tveeprom: has no radio, has IR receiver, has no IR transmitter
[ 8.922228@1] usb 1-1.1: em28174#1: dvb ts2 set to isoc mode.
[ 9.123843@1] usbcore: registered new interface driver em28xx
[ 9.137837@1] WARNING: You are using an experimental version of the media stack.
[ 9.137837@1] As the driver is backported to an older kernel, it doesn't offer
[ 9.137837@1] enough quality for its usage in production.
[ 9.137837@1] Use it with care.
[ 9.137837@1] Latest git patches (needed if you report a bug to [email protected]):
[ 9.137837@1] a02ff2e02bee64e9955dbfd8811874c3f3880f58 cx231xx: Fix TBS MAC reading.
[ 9.139963@1] usb 1-1.1: em28174#1: Registering input extension
[ 9.172191@1] Registered IR keymap rc-hauppauge
[ 9.173707@1] input: 1-1.1: em28174#1 IR as /devices/dwc2_b/usb1/1-1/1-1.1: em28174#1/rc/rc0/input4
[ 9.174330@1] rc rc0: 1-1.1: em28174#1 IR as /devices/dwc2_b/usb1/1-1/1-1.1: em28174#1/rc/rc0
[ 9.174849@1] usb 1-1.1: em28174#1: Input extension successfully initalized
[ 9.174857@1] usb 1-1.1: em28174#1: Registering input extension
[ 9.175369@1] Registered IR keymap rc-hauppauge
[ 9.178019@1] input: 1-1.1: em28174#1 IR as /devices/dwc2_b/usb1/1-1/1-1.1: em28174#1/rc/rc1/input5
[ 9.178556@1] rc rc1: 1-1.1: em28174#1 IR as /devices/dwc2_b/usb1/1-1/1-1.1: em28174#1/rc/rc1
[ 9.178873@1] usb 1-1.1: em28174#1: Input extension successfully initalized
[ 9.178879@1] em28xx: Registered (Em28xx Input Extension) extension
[ 9.185431@1] sdio: queuing unknown CIS tuple 0x80 (2 bytes)
[ 9.189980@1] sdio: queuing unknown CIS tuple 0x80 (7 bytes)
[ 9.192518@1] sdio: queuing unknown CIS tuple 0x80 (3 bytes)
[ 9.287945@3] sdio: clk 200000000 SDR mode tuning start
[ 9.288144@3] sdio: rx_tuning_result[0] = 10
[ 9.288322@3] sdio: rx_tuning_result[1] = 10
[ 9.288520@3] sdio: rx_tuning_result[3] = 10
[ 9.288699@3] sdio: rx_tuning_result[4] = 10
[ 9.288705@3] sdio: best_win_start =3, best_win_size =4
[ 9.288711@3] sdio: sd_emmc_regs->gclock=0x1000245,sd_emmc_regs->gadjust=0x2000
[ 9.288719@3] sdio: gclock =0x1000245, gdelay=0x0, gadjust=0x2000
[ 9.288725@3] [sdio_reinit] finish
Display More
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 )
For the ATSC version of the wintv-dualhd - using afl's current beta 6 release - I'm getting as far as the input extension initialized - but it never loads the dvb frontend.
Here's an excerpt from dmesg: [ 7.143377@3] usb 1-1.1: New device HCW 955D @ 480 Mbps (2040:026d, interface - Pastebin.com
Any thoughts on what could be holding back the frontend from loading??
Just tried building crazycat media_build from here : CrazyCat / media_build — Bitbucketto 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
I then did a
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
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:
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:
$ dmesg
[ 12.715719] media: loading out-of-tree module taints kernel.
[ 12.717949] media: Linux media interface: v0.10
[ 13.085476] Linux video capture interface: v2.00
[ 13.085498] WARNING: You are using an experimental version of the media stack.
As the driver is backported to an older kernel, it doesn't offer
enough quality for its usage in production.
Use it with care.
Latest git patches (needed if you report a bug to [email protected]):
af0dfe23cbf1d0188407f125d02d24d950438e6a Remove cxd2820r and lgd3306 from depends for cx231xx and em28xx drivers.
[ 13.224398] em28xx 1-1.3.4:1.0: New device HCW dualHD @ 480 Mbps (2040:0265, interface 0, class 0)
[ 13.224421] em28xx 1-1.3.4:1.0: DVB interface 0 found: isoc
[ 13.224652] em28xx 1-1.3.4:1.0: chip ID is em28174
[ 14.623777] em28xx 1-1.3.4:1.0: EEPROM ID = 26 00 01 00, EEPROM hash = 0x67e2c3c8
[ 14.623797] em28xx 1-1.3.4:1.0: EEPROM info:
[ 14.623807] em28xx 1-1.3.4:1.0: microcode start address = 0x0004, boot configuration = 0x01
[ 14.635191] em28xx 1-1.3.4:1.0: AC97 audio (5 sample rates)
[ 14.635209] em28xx 1-1.3.4:1.0: 500mA max power
[ 14.635226] em28xx 1-1.3.4:1.0: Table at offset 0x27, strings=0x0e6a, 0x1888, 0x087e
[ 14.636797] em28xx 1-1.3.4:1.0: Identified as Hauppauge WinTV-dualHD DVB (card=99)
[ 14.653163] tveeprom: Hauppauge model 204109, rev B3I6, serial# 11569671
[ 14.653180] tveeprom: tuner model is SiLabs Si2157 (idx 186, type 4)
[ 14.653190] tveeprom: TV standards PAL(B/G) NTSC(M) PAL(I) SECAM(L/L') PAL(D/D1/K) ATSC/DVB Digital (eeprom 0xfc)
[ 14.653196] tveeprom: audio processor is None (idx 0)
[ 14.653202] tveeprom: has no radio, has IR receiver, has no IR transmitter
[ 14.653222] em28xx 1-1.3.4:1.0: dvb set to isoc mode.
[ 14.674639] usbcore: registered new interface driver em28xx
[ 14.699875] WARNING: You are using an experimental version of the media stack.
As the driver is backported to an older kernel, it doesn't offer
enough quality for its usage in production.
Use it with care.
Latest git patches (needed if you report a bug to [email protected]):
af0dfe23cbf1d0188407f125d02d24d950438e6a Remove cxd2820r and lgd3306 from depends for cx231xx and em28xx drivers.
[ 14.704657] em28xx 1-1.3.4:1.0: Binding DVB extension
[ 14.757035] i2c i2c-4: Added multiplexed i2c bus 5
[ 14.757061] si2168 4-0064: Silicon Labs Si2168-B40 successfully identified
[ 14.757072] si2168 4-0064: firmware version: B 4.0.2
[ 14.802899] si2157 5-0060: Silicon Labs Si2147/2148/2157/2158 successfully attached
[ 14.802991] dvbdev: DVB: registering new adapter (1-1.3.4:1.0)
[ 14.803018] em28xx 1-1.3.4:1.0: DVB: registering adapter 0 frontend 0 (Silicon Labs Si2168)...
[ 14.803047] dvbdev: dvb_create_media_entity: media entity 'Silicon Labs Si2168' registered.
[ 14.810031] dvbdev: dvb_create_media_entity: media entity 'dvb-demux' registered.
[ 14.823628] em28xx 1-1.3.4:1.0: DVB extension successfully initialized
[ 14.823651] em28xx: Registered (Em28xx dvb Extension) extension
[ 14.864340] WARNING: You are using an experimental version of the media stack.
As the driver is backported to an older kernel, it doesn't offer
enough quality for its usage in production.
Use it with care.
Latest git patches (needed if you report a bug to [email protected]):
af0dfe23cbf1d0188407f125d02d24d950438e6a Remove cxd2820r and lgd3306 from depends for cx231xx and em28xx drivers.
[ 14.878124] em28xx 1-1.3.4:1.0: Registering input extension
[ 14.884456] rc rc0: 1-1.3.4:1.0 IR as /devices/platform/soc/20980000.usb/usb1/1-1/1-1.3/1-1.3.4/1-1.3.4:1.0/rc/rc0
[ 14.964877] Registered IR keymap rc-hauppauge
[ 14.975553] input: 1-1.3.4:1.0 IR as /devices/platform/soc/20980000.usb/usb1/1-1/1-1.3/1-1.3.4/1-1.3.4:1.0/rc/rc0/input0
[ 14.975631] em28xx 1-1.3.4:1.0: Input extension successfully initalized
[ 14.975642] em28xx: Registered (Em28xx Input Extension) extension
[ 17.805052] Adding 102396k swap on /var/swap. Priority:-1 extents:2 across:217084k FS
[ 18.675205] smsc95xx 1-1.1:1.0 eth0: hardware isn't capable of remote wakeup
[ 20.327190] smsc95xx 1-1.1:1.0 eth0: link up, 100Mbps, full-duplex, lpa 0xC5E1
[ 21.109300] si2168 4-0064: downloading firmware from file 'dvb-demod-si2168-b40-01.fw'
[ 22.180035] si2168 4-0064: firmware version: B 4.0.25
[ 22.195671] si2157 5-0060: found a 'Silicon Labs Si2157-A30'
[ 22.247278] si2157 5-0060: firmware version: 3.0.5
[ 182.151349] TCP: request_sock_TCP: Possible SYN flooding on port 9981. Sending cookies. Check SNMP counters.
Display More
lsmod:
$ lsmod
Module Size Used by
cfg80211 524391 0
rfkill 21259 1 cfg80211
evdev 11740 1
rc_hauppauge 2383 0
em28xx_rc 9318 0
rc_core 29893 3 rc_hauppauge,em28xx_rc
si2157 6171 1
si2168 9791 1
i2c_mux 5586 1 si2168
em28xx_dvb 23825 10
dvb_core 102796 1 em28xx_dvb
em28xx 73109 2 em28xx_rc,em28xx_dvb
tveeprom 11435 1 em28xx
v4l2_common 6215 1 em28xx
videodev 182258 2 v4l2_common,em28xx
media 28159 4 videodev,em28xx,dvb_core,si2157
sg 20786 0
snd_bcm2835 22966 0
snd_pcm 96071 1 snd_bcm2835
snd_timer 22514 1 snd_pcm
snd 68426 3 snd_timer,snd_bcm2835,snd_pcm
i2c_bcm2835 6305 0
bcm2835_gpiomem 3791 0
uio_pdrv_genirq 3718 0
uio 10134 1 uio_pdrv_genirq
fixed 3029 0
i2c_dev 6642 0
ipv6 378505 24
Display More
How I x-compile media build:
# On Ubuntu 14.04 x64
cd ~
git clone git://linuxtv.org/media_build.git
git clone --depth 1 https://github.com/crazycat69/linux_media.git
cd media_build
sudo make release DIR=<path to x-compiled 4.9 kernel source>
sudo make rminstall && sudo make distclean
sudo make release DIR=<path to x-compiled 4.9 kernel source>
cd linux
make tar DIR=~/linux_media
make untar
cd ..
wget https://bitbucket.org/CrazyCat/media_build/downloads/dvb-firmwares.tar.bz2 -O dvb-firmwares.tar.bz2
(cd v4l/firmware/; tar xvfj ../../dvb-firmwares.tar.bz2)
make ARCH=arm CROSS_COMPILE=<path to folder>/arm-linux-gnueabihf- allyesconfig
#Issue with 'frame_vector.c: No rule to make target' fix
nano v4l/Makefile
# comment out following lines:
ifeq ($(makefile-mm),1)
-include $(obj)/Makefile.mm
endif
make -j3 ARCH=arm CROSS_COMPILE=/<path to folder>/arm-linux-gnueabihf-
# Once completed, transfer the media_build folder onto pi: ~/media_build
# On pi:
sudo chown -R pi:pi ~/media_build
rm ~/media_build/v4l/firmware/ihex2fw
gcc ~/media_build/linux/firmware/ihex2fw.c -o ~/media_build/v4l/firmware/ihex2fw
cd media_build
sudo make release DIR=/lib/modules/$(uname -r)
sudo make rminstall
sudo make install
sudo cp -rv /lib/kernel/drivers/media /lib/modules/$(uname -r)/kernel/drivers/media
/sbin/depmod -a
Display More
Some notes on x-compiling media_build, to either demonstrate my noobishness, or to help anyone else hitting the same issues:
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.