[quasi-solved][dvb] Happauge Wintv-soloHD usb tuner

Hello,

I’ve purchased an USB tuner.
It seemed to be supported under generic Linux (cf https://www.linuxtv.org/wiki/index.php/Hauppauge_WinTV-soloHD).
But he is not listed in the adaptaters of TVheadend GUI on my OSMC RPI2.

dmesg

…
[12009.012207] usb 1-1.4.4: new high-speed USB device number 9 using dwc_otg
[12009.113196] usb 1-1.4.4: New USB device found, idVendor=2040, idProduct=0264
[12009.113223] usb 1-1.4.4: New USB device strings: Mfr=3, Product=1, SerialNumber=2
[12009.113235] usb 1-1.4.4: Product: soloHD
[12009.113247] usb 1-1.4.4: Manufacturer: HCW
[12009.113258] usb 1-1.4.4: SerialNumber: 0011544822
…

Firsly I’ve tried to compile the kernel :

cd /usr/src/
sudo git clone https://github.com/osmc/osmc.git
cd osmc/packages/kernel-osmc

I’ve copied 2 patchs from https://git.linuxtv.org/media_tree.git/commit/?id=1efc21701d94ed0c5b91467b042bed8b8becd5cc in the pathes directory :
patches/rbp2-001-dvb.patch

diff --git a/drivers/media/dvb-core/dvb-usb-ids.h b/drivers/media/dvb-core/dvb-usb-ids.h
index 0a46580..1c1c298 100644
--- a/drivers/media/dvb-core/dvb-usb-ids.h
+++ b/drivers/media/dvb-core/dvb-usb-ids.h
@@ -389,4 +389,5 @@
 #define USB_PID_PCTV_2002E_SE                           0x025d
 #define USB_PID_SVEON_STV27                             0xd3af
 #define USB_PID_TURBOX_DTT_2000                         0xd3a4
+#define USB_PID_WINTV_SOLOHD                            0x0264
 #endif

patches/rbp2-002-dvb.patch

diff --git a/drivers/media/usb/em28xx/em28xx-cards.c b/drivers/media/usb/em28xx/em28xx-cards.c
index 5373dce..a1b6ef5 100644
--- a/drivers/media/usb/em28xx/em28xx-cards.c
+++ b/drivers/media/usb/em28xx/em28xx-cards.c
@@ -2475,6 +2475,8 @@ struct usb_device_id em28xx_id_table[] = {
 			.driver_info = EM28178_BOARD_PCTV_461E },
 	{ USB_DEVICE(0x2013, 0x025f),
 			.driver_info = EM28178_BOARD_PCTV_292E },
+	{ USB_DEVICE(0x2040, 0x0264), /* Hauppauge WinTV-soloHD */
+			.driver_info = EM28178_BOARD_PCTV_292E },
 	{ USB_DEVICE(0x0413, 0x6f07),
 			.driver_info = EM2861_BOARD_LEADTEK_VC100 },
 	{ USB_DEVICE(0xeb1a, 0x8179),

But the compilation failed :

Applying patch rbp2-000-add-kernel-config.patch
patching file .config
Applying patch rbp2-001-dvb.patch
patching file drivers/media/dvb-core/dvb-usb-ids.h
Hunk #1 FAILED at 389.
1 out of 1 hunk FAILED -- saving rejects to file drivers/media/dvb-core/dvb-usb-ids.h.rej
Exiting build
Makefile:8: recipe for target 'rbp2' failed
make: *** [rbp2] Error 1
make: Leaving directory '/mnt/package/kernel-osmc'
Makefile:8: recipe for target 'rbp2' failed
make: *** [rbp2] Error 2

Secondly, I’ve tried to copy the recommended firmwares from https://discourse.osmc.tv/t/howto-instructions-for-viewing-live-tv/2675/50 :

sudo wget http://palosaari.fi/linux/v4l-dvb/firmware/Si2168/dvb-demod-si2168-02.fw -O /lib/firmware/dvb-demod-si2168-02.fw sudo wget http://palosaari.fi/linux/v4l-dvb/firmware/Si2168/Si2168-B40/d8da7ff67cd56cd8aa4e101aea45e052/dvb-demod-si2168-b40-01.fw -O /lib/firmware/dvb-demod-si2168-b40-01.fw sudo wget http://palosaari.fi/linux/v4l-dvb/firmware/M88DS3103/3.B/dvb-demod-m88ds3103.fw -O /lib/firmware/dvb-demod-m88ds3103.fw
and rebooted but no more success.

Could someone help me to use my usb stick ?

You need to fix the patches so that they apply cleanly.

I have the same model (WinTV solo) and got it to work tonight using previously published directions – see this post for a summary.

Thanks for your help.
I can’t test at this moment, but l’ll try in the coming weeks.

Sorry for the long delay.
I’ve succeeded in compiling the drivers.
That’s the procedure I’ve followed after installing build essentials :

old_version=4.4.13-5-osmc
version=4.4.16-1-osmc
sudo apt-get update
sudo apt-get remove rbp2-headers-${old_version} rbp2-source-${old_version} rbp2-image-${old_version}
sudo rm -r /usr/src/rbp2-source-${old_version}.tar.bz2
sudo apt-get install rbp2-headers-${version} rbp2-kernel-osmc rbp2-source-${version}
sudo ln -s /usr/src/rbp2-headers-${version} /lib/modules/${version}/build
cd /usr/src
sudo tar -xjvf /usr/src/rbp2-source-${version}.tar.bz2
sudo cp /boot/config-${version} /usr/src/rbp2-source-${version}/.config
sudo cp -r /usr/src/rbp2-source-${version}/arch/arm/mach-bcm2709/include/mach/ /usr/src/rbp2-headers-{version}/include/.
cd /home/osmc
sudo rm -r media-build
git clone --depth=1 git://linuxtv.org/media_build.git
cd media_build 
./build
sudo make install

All is ok but I compile all the modules.
I don’t know where to copy my .config file.
And I think I could do «make clean» or «make proper» but where ?

Any help about that would be appreciated.

Hi,

my ./build breaks with follow error message :

In file included from /home/osmc/media_build/v4l/tvp5150.c:19:0:
/home/osmc/media_build/v4l/../linux/include/media/v4l2-fwnode.h:67:25: error: field 'base' has incomplete type
  struct fwnode_endpoint base;
                         ^
/home/osmc/media_build/v4l/tvp5150.c: In function 'tvp5150_parse_dt':
/home/osmc/media_build/v4l/tvp5150.c:1377:2: error: implicit declaration of function 'of_fwnode_handle' [-Werror=implicit-function-declaration]
  ret = v4l2_fwnode_endpoint_parse(of_fwnode_handle(ep), &bus_cfg);
  ^
/home/osmc/media_build/v4l/tvp5150.c:1377:35: warning: passing argument 1 of 'v4l2_fwnode_endpoint_parse' makes pointer from integer without a cast
  ret = v4l2_fwnode_endpoint_parse(of_fwnode_handle(ep), &bus_cfg);
                                   ^
In file included from /home/osmc/media_build/v4l/tvp5150.c:19:0:
/home/osmc/media_build/v4l/../linux/include/media/v4l2-fwnode.h:95:5: note: expected 'struct fwnode_handle *' but argument is of type 'int'
 int v4l2_fwnode_endpoint_parse(struct fwnode_handle *fwnode,
     ^
/home/osmc/media_build/v4l/tvp5150.c: At top level:
cc1: warning: unrecognized command line option "-Wno-unused-const-variable"
cc1: warning: unrecognized command line option "-Wno-unused-const-variable"
cc1: warning: unrecognized command line option "-Wno-unused-const-variable"
cc1: warning: unrecognized command line option "-Wno-implicit-fallthrough"
cc1: warning: unrecognized command line option "-Wno-unused-const-variable"
cc1: some warnings being treated as errors
scripts/Makefile.build:264: recipe for target '/home/osmc/media_build/v4l/tvp5150.o' failed
make[3]: *** [/home/osmc/media_build/v4l/tvp5150.o] Error 1
Makefile:1400: recipe for target '_module_/home/osmc/media_build/v4l' failed
make[2]: *** [_module_/home/osmc/media_build/v4l] Error 2
make[2]: Leaving directory '/usr/src/rbp2-headers-4.4.27-9-osmc'
Makefile:51: recipe for target 'default' failed
make[1]: *** [default] Error 2
make[1]: Leaving directory '/home/osmc/media_build/v4l'
Makefile:26: recipe for target 'all' failed
make: *** [all] Error 2
build failed at ./build line 502.
osmc@MediaHome:~/media_build$ sudo make install
make -C /home/osmc/media_build/v4l install
make[1]: Entering directory '/home/osmc/media_build/v4l'
make[1]: *** No rule to make target 'media-install', needed by 'install'.  Stop.
make[1]: Leaving directory '/home/osmc/media_build/v4l'
Makefile:15: recipe for target 'install' failed

I tried the same as toine and my kernel 4.4.27-9-osmc - what can I do ?

watch_tv, I had identical error messages when I tried ./build using kernel 4.9.29-5-osmc on my raspi3. Anyone have any idea what might be going wrong?

Your driver needs updating for 4.9.

now I’m on kernel 4.9

4.9.29-8-osmc
osmc@MediaHome:~$

but there only an DVB-T Adapter seen under tvheadend TV-Adapters, no DVB-C :frowning:
lsusb: Bus 001 Device 004: ID 2040:0264 Hauppauge

Provide dmesg logs

here you are ! :slight_smile:

[    1.829230] usb 1-1: New USB device found, idVendor=0424, idProduct=9514
[    1.829239] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[    1.829689] hub 1-1:1.0: USB hub found
[    1.829736] hub 1-1:1.0: 5 ports detected
[    2.149067] usb 1-1.1: new high-speed USB device number 3 using dwc_otg
[    2.279218] usb 1-1.1: New USB device found, idVendor=0424, idProduct=ec00
[    2.279226] usb 1-1.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[    2.281714] smsc95xx v1.0.5
[    2.371109] smsc95xx 1-1.1:1.0 eth0: register 'smsc95xx' at usb-3f980000.usb-1.1, smsc95xx USB 2.0 Ethernet, b8:27:eb:64:b6:78
[    2.469067] usb 1-1.5: new high-speed USB device number 4 using dwc_otg
[    2.599551] usb 1-1.5: New USB device found, idVendor=2040, idProduct=0264
[    2.599560] usb 1-1.5: New USB device strings: Mfr=3, Product=1, SerialNumber=2
[    2.599564] usb 1-1.5: Product: soloHD
[    2.599568] usb 1-1.5: Manufacturer: HCW
[    2.599572] usb 1-1.5: SerialNumber: 0013890292
[    2.662896] systemd[1]: systemd 215 running in system mode. (+PAM +AUDIT +SELINUX +IMA +SYSVINIT +LIBCRYPTSETUP +GCRYPT +ACL +XZ -SECCOMP -APPARMOR)
[    2.663064] systemd[1]: Detected architecture 'arm'.
[    2.714998] NET: Registered protocol family 10
[    2.715847] systemd[1]: Inserted module 'ipv6'
[    2.726091] systemd[1]: Set hostname to <MediaHome>.
[    2.952554] systemd[1]: Cannot add dependency job for unit display-manager.service, ignoring: Unit display-manager.service failed to load: No such file or directory.
[    2.952721] systemd[1]: Found ordering cycle on basic.target/start
[    2.952730] systemd[1]: Found dependency on sysinit.target/start
[    2.952738] systemd[1]: Found dependency on kbd.service/start
[    2.952745] systemd[1]: Found dependency on remote-fs.target/start
[    2.952752] systemd[1]: Found dependency on remote-fs-pre.target/start
[    3.075153] fuse init (API version 7.26)
[    3.381721] systemd-udevd[216]: starting version 215
[    3.808514] gpiomem-bcm2835 3f200000.gpiomem: Initialised: Registers at 0x3f200000
[    4.180343] media: Linux media interface: v0.10
[    4.207377] Linux video capture interface: v2.00
[    4.221227] em28xx: New device HCW soloHD @ 480 Mbps (2040:0264, interface 0, class 0)
[    4.221235] em28xx: DVB interface 0 found: isoc
[    4.221341] em28xx: chip ID is em28178
[    4.263430] uart-pl011 3f201000.serial: no DMA platform data
[    4.462981] systemd-journald[191]: Received request to flush runtime journal from PID 1
[    5.080176] smsc95xx 1-1.1:1.0 eth0: hardware isn't capable of remote wakeup
[    5.080302] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[    5.243137] usbcore: registered new interface driver brcmfmac
[    5.402660] brcmfmac: Firmware version = wl0: Dec 15 2015 18:10:45 version 7.45.41.23 (r606571) FWID 01-cc4eda9c
[    5.464556] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
[    5.464566] brcmfmac: power management disabled
[    6.326355] em28178 #0: EEPROM ID = 26 00 01 00, EEPROM hash = 0x30e3c104
[    6.326362] em28178 #0: EEPROM info:
[    6.326365] em28178 #0: 	microcode start address = 0x0004, boot configuration = 0x01
[    6.332533] em28178 #0: 	AC97 audio (5 sample rates)
[    6.332538] em28178 #0: 	500mA max power
[    6.332543] em28178 #0: 	Table at offset 0x27, strings=0x0e6a, 0x1888, 0x087e
[    6.332696] em28178 #0: Identified as PCTV tripleStick (292e) (card=94)
[    6.332700] em28178 #0: dvb set to isoc mode.
[    6.334490] usbcore: registered new interface driver em28xx
[    6.358555] em28178 #0: Binding DVB extension
[    6.424752] i2c i2c-4: Added multiplexed i2c bus 5
[    6.424763] si2168 4-0064: Silicon Labs Si2168-B40 successfully identified
[    6.424767] si2168 4-0064: firmware version: B 4.0.2
[    6.456270] si2157 5-0060: Silicon Labs Si2147/2148/2157/2158 successfully attached
[    6.456294] DVB: registering new adapter (em28178 #0)
[    6.456304] usb 1-1.5: DVB: registering adapter 0 frontend 0 (Silicon Labs Si2168)...
[    6.457086] em28178 #0: DVB extension successfully initialized
[    6.457096] em28xx: Registered (Em28xx dvb Extension) extension
[    6.488313] em28178 #0: Registering input extension
[    6.539057] Registered IR keymap rc-pinnacle-pctv-hd
[    6.539382] input: em28xx IR (em28178 #0) as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.5/rc/rc0/input0
[    6.539449] rc rc0: em28xx IR (em28178 #0) as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.5/rc/rc0
[    6.539656] em28178 #0: Input extension successfully initalized
[    6.539660] em28xx: Registered (Em28xx Input Extension) extension
[    7.530332] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[    7.531020] smsc95xx 1-1.1:1.0 eth0: link up, 100Mbps, full-duplex, lpa 0x41E1
[    7.544747] 8021q: 802.1Q VLAN Support v1.8
[    8.658132] Bluetooth: Core ver 2.22
[    8.658186] NET: Registered protocol family 31
[    8.658189] Bluetooth: HCI device and connection manager initialized
[    8.658201] Bluetooth: HCI socket layer initialized
[    8.658208] Bluetooth: L2CAP socket layer initialized
[    8.658227] Bluetooth: SCO socket layer initialized
[    8.663457] Bluetooth: HCI UART driver ver 2.3
[    8.663464] Bluetooth: HCI UART protocol H4 registered
[    8.663467] Bluetooth: HCI UART protocol Three-wire (H5) registered
[    8.663562] Bluetooth: HCI UART protocol Broadcom registered
[    8.733282] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[    8.733289] Bluetooth: BNEP filters: protocol multicast
[    8.733300] Bluetooth: BNEP socket layer initialized
[    9.596127] si2168 4-0064: downloading firmware from file 'dvb-demod-si2168-b40-01.fw'
[    9.807148] si2168 4-0064: firmware version: B 4.0.4
[    9.813148] si2157 5-0060: found a 'Silicon Labs Si2157-A30'
[    9.863093] si2157 5-0060: firmware version: 3.0.5
[    9.934478] Console: switching to colour dummy device 80x30
[   18.816373] FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
[   24.660741] random: crng init done

Product: soloHD
[ 2.599568] usb 1-1.5: Manufacturer: HCW

Well looks ok. Are you sure it’s the right firmware?
Can you get it running on another Linux machine (or Pi running different OS) and compare results?

which firmware you mean !

i installed the tvheadend from “deb http://dl.bintray.com/tvheadend/deb wheezy release”

Linux MediaHome 4.9.29-8-osmc #1 SMP PREEMPT Fri Jun 16 21:37:12 UTC 2017 armv7l GNU/Linux


osmc@MediaHome:~$ dpkg -l tvheadend
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                                            Version                      Architecture                 Description
+++-===============================================-============================-============================-====================================================================================================
ii  tvheadend                                       4.0.8~wheezy                 armhf                        Tvheadend
osmc@MediaHome:~$ 

different pi would be difficult, i have only this one

[ Update 2017-06-19 23:21]

as i see, i’m using jessie kernel sources and wheezy sources for tvheadend, that causes some issues ?

deb Index of /debian jessie main contrib non-free
deb Index of /debian jessie-updates main contrib non-free
deb http://security.debian.org/ jessie/updates main contrib non-free
deb http://apt.osmc.tv jessie-devel main

deb http://dl.bintray.com/tvheadend/deb wheezy release

but if i choose jessie sources, there no resources will be found

deb http://dl.bintray.com/tvheadend/deb jessie unstable

Well the firmware that the stick needs to run it’s tuners which is loaded

Well I wonder why you have not used the one from the OSMC App Store which seems to have been working well for most people.

I didn’t mean a different Pi but a different distribution like rasbian or libreelec

Well as written above no idea why you did so. I suggest to first remove all manually installed packages, then remove the wheezy entry from your sources and then install the tvheadend version from the App Store.
Just a word, don’t expect wonders as all of that may not change the situation with your USB Stick.

There’s more than 1 year without news in this thread, but as Hauppauge and linuxtv are reporting this device as being compatible with kernel versions since 3.16, I would like to ask if this Wintv-SoloDuo dvb-c dongle is now working ok with osmc and tvheadend ?

@watch_tv : Any positive evolution ?

Thanks