[SOLVED/WORKAROUND] Hauppauge SoloHD not working/new product ID

Added by Max Dido 13 days ago

Hi,

I hope somebody here can clarify my issue...

I have just bought a WinTv SoloHD stick for my RPi3, as it seems the best supported by Linux community. I run Libreelec, latest stable version with kernel 4.9 and tvheadend 4.2.

For my big disappointment, after plugin the device and rebooting the system no tuner has been detected by tvheadend.

Looking deeper in the system I could find only one difference with the "standard" dvb tuner, ie the usb code:

Bus 001 Device 006: ID 2040:8268 Hauppauge
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x2040 Hauppauge
  idProduct          0x8268
  bcdDevice            1.00
  iManufacturer           3 HCW
  iProduct                1 soloHD
  iSerial                 2 0013953608

The big question here: why is this hw different and is there any why to get it working with RPi3? I have looked around but all tutorials refers to the "0264" product :(

Thanks
Max


Replies (18)

RE: New soloHD version? - Added by Mark Clarkstone 13 days ago

What product model do you have?

RE: New soloHD version? - Added by Max Dido 13 days ago

Hi Mark,

Ordered on Amazon, below the link

Hauppauge Fernsehen-Tuner Win TV solo-HD USB 2.0 Stick DVB-C/T/T2 Receiver
by Amazon.de
Learn more: https://www.amazon.de/dp/B0152XLPFS/ref=cm_sw_em_r_mt_dp_qubbAbM4YP1QE

I hope this helps!

Max

RE: New soloHD version? - Added by Mark Clarkstone 13 days ago

Max Dido wrote:

Hi Mark,

Ordered on Amazon, below the link

Hauppauge Fernsehen-Tuner Win TV solo-HD USB 2.0 Stick DVB-C/T/T2 Receiver
by Amazon.de
Learn more: https://www.amazon.de/dp/B0152XLPFS/ref=cm_sw_em_r_mt_dp_qubbAbM4YP1QE

I hope this helps!

Max

Not really, it should be listed on the back of the device. Unfortunately unless someone adds support (to the RPI kernel) you're going to be waiting a while.

RE: New soloHD version? - Added by Max Dido 13 days ago

I'll check this evening and let you know!

I guess it is faster to send it back to Amazon and get another model - do you have any suggestion on one more RPi-friendly DVB tuner?

MAx

RE: New soloHD version? - Added by Sir Cypher 12 days ago

Hello,
I have the exact same problem. I ordered this DVB stick from Amazon in Germany and got one with the USB ID "2040:8268".

@Mark, the backside of the stick reads:

203129 LF Rev D4I6 - 3217
DVB-T/T2/C

Any chance to get this thing up and running?

RE: New soloHD version? - Added by Max Dido 12 days ago

Just to "almost" confirm Cypher's data, on my stick following data are reported

203129 LF Rev D4I6 3217

DVB-T/T2/C 13953608

I have exactly the same question - can we get this running?

Max

RE: New soloHD version? - Added by Sir Cypher 12 days ago

(I forgot the "3217" and added it to my previous post. But I left the serial number out on purpose, even though it probably does not matter.)
(Update: I made more mistakes than that. My apologies. I corrected the data in my previous post.)

RE: New soloHD version? - Added by Mark Clarkstone 12 days ago

I think with any luck it'll just be a case of adding the product id to an existing driver. But this would require opening the device up or asking hauppauge what chipset etc is used to be sure.

If it doesn't use a pre-existing driver it may use a slight variation that may require more work.

Join the linuxtv mailing list and ask the folks there. Provide as much info as possible. chipset/model/where you bought it/full lsusb info

Then hope and pray it's a simple job.

Or you could nag hauppauge/return it.

RE: New soloHD version? - Added by Sir Cypher 12 days ago

Thank you for your message and your hint about the existing driver.

For now I downloaded the windows 10 driver and analyzed the shipped *.inf files.
(The current windows driver did not contain 8268 support. Only the full WinTV software did! I retrieved the driver from TEMP/Win10Drivers/hcwemba after the installation was complete.)

Apparently the 8268 version of the stick is using the exact same parameters as the already working 0264 version.
Once I'm home I will try to create a simple udev rule to force-load the 0264 driver. We'll see how that turns out.
If that does not work I'm willing to try to open the stick.

RE: New soloHD version? - Added by Mark Clarkstone 12 days ago

Sir Cypher wrote:

Thank you for your message and your hint about the existing driver.

For now I downloaded the windows 10 driver and analyzed the shipped *.inf files.
(The current windows driver did not contain 8268 support. Only the full WinTV software did! I retrieved the driver from TEMP/Win10Drivers/hcwemba after the installation was complete.)

Apparently the 8268 version of the stick is using the exact same parameters as the already working 0264 version.
Once I'm home I will try to create a simple udev rule to force-load the 0264 driver. We'll see how that turns out.
If that does not work I'm willing to try to open the stick.

I would still ask the mailing list to add support for the new Product ID. Oh and could you post your working udev rule to help Max out? Thanks :)

RE: New soloHD version? - Added by Max Dido 12 days ago

Hi Sir Cypher,

I would definitively support Mark's suggestion ;)

In parallel I will ask the ML for help...

Max

RE: New soloHD version? - Added by Sir Cypher 12 days ago

Hello,
I haven't had the time to make udev rule yet, but here is my workaround so far:

modprobe em28xx card=94
echo "2040 8268" > /sys/bus/usb/drivers/em28xx/new_id

The first command loads the em28xx driver and forces it to treat all cards as card "94", which is the equivalent to the 0264 stick.
The second command forces all devices with vendorID 2040 and productID 8268 to be "attached" to the em28xx driver.

Untested. The devices appear correctly in /dev/dvb, but I haven't tested the actual DVB functionality yet.

Update:
I executed the commands above on a Ubuntu 17.10 system. No kernel errors appeared so hopefully that means it will work right away.
Could you please test this, Max? Thanks a lot! :)

RE: New soloHD version? - Added by Sir Cypher 11 days ago

I now can confirm that my workaround is functioning as expected. Everything works fine with tvheadend on Ubuntu 17.10. DVB-T and DVB-C.

Sidenote: On Ubuntu 16.04 I could not get DVB-C to work, but I strongly suspect the same symptoms would appear for the original DVB stick.
Also try to remove any USB hubs if the stream is stuttering and you don't know why. But I guess this might already be common knowledge in this community. :)

RE: [SOLVED/WORKAROUND] Hauppauge SoloHD not working/new product ID - Added by Mark Clarkstone 11 days ago

I've updated the title so that others can find it easier.

RE: [SOLVED/WORKAROUND] Hauppauge SoloHD not working/new product ID - Added by Aviram Segal 8 days ago

Tried the proposed solution on 16.04 and it failed for me, running dmesg I see this:

[ 1605.841651] em28xx: New device HCW soloHD @ 480 Mbps (2040:8268, interface 0, class 0)
[ 1605.841667] em28xx: DVB interface 0 found: bulk
[ 1605.841781] em28xx: unknown em28xx chip ID (114)
[ 1605.968044] em28xx #0: read from i2c device at 0xa0 timed out
[ 1606.028057] em28xx #0: write to i2c device at 0xa0 timed out
[ 1606.028070] em28xx #0: failed to read eeprom (err=-5)
[ 1606.028180] em28xx #0: em28xx_i2c_register: em28xx_i2_eeprom failed! retval [-5]
[ 1606.028315] em28xx #0: em28xx_init_dev: em28xx_i2c_register bus 0 - error [-5]!
[ 1606.028466] em28xx: probe of 1-8:1.0 failed with error -5

Any ideas ?

RE: [SOLVED/WORKAROUND] Hauppauge SoloHD not working/new product ID - Added by Aviram Segal 8 days ago

Upgraded to 17.10 and its working now.

RE: [SOLVED/WORKAROUND] Hauppauge SoloHD not working/new product ID - Added by Max Dido 3 days ago

Thanks Cypher for the solution! Did you manage to get a udev rule? I have tried this (stored in /etc/udev/rules.d/99-soloHD.rules)

SUBSYSTEMS=="usb", ATTR{idProduct}=="8268", ATTR{idVendor}=="2040", RUN+="modprobe em28xx card=94", RUN+="echo 2040 8268 > /sys/bus/usb/drivers/em28xx/new_id" 

but it does not seem to work on RPi3 with Libreelec. From the test report below the rule seems to be OK, but no matter if I reload the rules or I reboot the system, the device does not appear in Tvheadend, unless I manually run the commands I inserted in the udev rules.

Now, as I am not really an experts in udev, the question is clear: what am I missing?

Thanks!
Max

LibreELEC:~ # udevadm test $(udevadm info -q path -n /dev/bus/usb/001/006)
calling: test
version 232
This program is for debugging only, it does not run any program
specified by a RUN key. It may show incorrect results, because
some values may be different, or not available at a simulation run.

=== trie on-disk ===
tool version:          232
file size:         4864507 bytes
header size             80 bytes
strings            1353939 bytes
nodes              3510488 bytes
Load module index
Found container virtualization none
Created link configuration context.
timestamp of '/etc/udev/rules.d' changed
Reading rules file: /usr/lib/udev/rules.d/30-disable-wakeup.rules
Reading rules file: /usr/lib/udev/rules.d/40-modeswitch.rules
Reading rules file: /usr/lib/udev/rules.d/50-udev-default.rules
Reading rules file: /usr/lib/udev/rules.d/60-block.rules
Reading rules file: /usr/lib/udev/rules.d/60-cdrom_id.rules
Reading rules file: /usr/lib/udev/rules.d/60-drm.rules
Reading rules file: /usr/lib/udev/rules.d/60-evdev.rules
Reading rules file: /usr/lib/udev/rules.d/60-persistent-alsa.rules
Reading rules file: /usr/lib/udev/rules.d/60-persistent-input.rules
Reading rules file: /usr/lib/udev/rules.d/60-persistent-storage-tape.rules
Reading rules file: /usr/lib/udev/rules.d/60-persistent-storage.rules
Reading rules file: /usr/lib/udev/rules.d/60-persistent-v4l.rules
Reading rules file: /usr/lib/udev/rules.d/60-serial.rules
Reading rules file: /usr/lib/udev/rules.d/61-cdrom.rules
Reading rules file: /usr/lib/udev/rules.d/64-btrfs.rules
Reading rules file: /usr/lib/udev/rules.d/70-infrared.rules
Reading rules file: /usr/lib/udev/rules.d/70-input-repeat.rules
Reading rules file: /usr/lib/udev/rules.d/70-mouse.rules
Reading rules file: /usr/lib/udev/rules.d/70-power-switch.rules
Reading rules file: /usr/lib/udev/rules.d/70-touchpad.rules
Reading rules file: /usr/lib/udev/rules.d/70-uaccess.rules
Reading rules file: /usr/lib/udev/rules.d/71-seat.rules
Reading rules file: /usr/lib/udev/rules.d/73-seat-late.rules
Invalid rule /usr/lib/udev/rules.d/73-seat-late.rules:15: RUN{builtin}: 'uaccess' unknown
Reading rules file: /usr/lib/udev/rules.d/75-net-description.rules
Reading rules file: /usr/lib/udev/rules.d/75-probe_mtd.rules
Reading rules file: /usr/lib/udev/rules.d/78-sound-card.rules
Reading rules file: /usr/lib/udev/rules.d/80-clock.rules
Reading rules file: /usr/lib/udev/rules.d/80-drivers.rules
Reading rules file: /usr/lib/udev/rules.d/90-alsa-restore.rules
Reading rules file: /usr/lib/udev/rules.d/90-pulseaudio.rules
Reading rules file: /usr/lib/udev/rules.d/90-rpi-add-serial.rules
Reading rules file: /usr/lib/udev/rules.d/95-udevil-mount.rules
Reading rules file: /usr/lib/udev/rules.d/97-hid2hci.rules
Reading rules file: /usr/lib/udev/rules.d/98-eventlircd.rules
Reading rules file: /usr/lib/udev/rules.d/98-lircd.rules
Reading rules file: /storage/.config/udev.rules.d/99-soloHD.rules
Reading rules file: /usr/lib/udev/rules.d/99-systemd.rules
Reading rules file: /usr/lib/udev/rules.d/99-wakeup-eth.rules
rules contain 24576 bytes tokens (2048 * 12 bytes), 13494 bytes strings
2162 strings (27748 bytes), 1447 de-duplicated (14970 bytes), 716 trie nodes used
IMPORT builtin 'usb_id' /usr/lib/udev/rules.d/50-udev-default.rules:13
IMPORT builtin 'hwdb' /usr/lib/udev/rules.d/50-udev-default.rules:13
MODE 0664 /usr/lib/udev/rules.d/50-udev-default.rules:41
RUN 'modprobe em28xx card=94' /storage/.config/udev.rules.d/99-soloHD.rules:1
RUN 'echo 2040 8268 > /sys/bus/usb/drivers/em28xx/new_id' /storage/.config/udev.rules.d/99-soloHD.rules:1
handling device node '/dev/bus/usb/001/006', devnum=c189:5, mode=0664, uid=0, gid=0
preserve permissions /dev/bus/usb/001/006, 020664, uid=0, gid=0
preserve already existing symlink '/dev/char/189:5' to '../bus/usb/001/006'
created db file '/run/udev/data/c189:5' for '/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.5'
ACTION=add
BUSNUM=001
DEVNAME=/dev/bus/usb/001/006
DEVNUM=006
DEVPATH=/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.5
DEVTYPE=usb_device
DRIVER=usb
ID_BUS=usb
ID_MODEL=soloHD
ID_MODEL_ENC=soloHD
ID_MODEL_ID=8268
ID_REVISION=0100
ID_SERIAL=HCW_soloHD_0013953608
ID_SERIAL_SHORT=0013953608
ID_USB_INTERFACES=:ff0000:
ID_VENDOR=HCW
ID_VENDOR_ENC=HCW
ID_VENDOR_FROM_DATABASE=Hauppauge
ID_VENDOR_ID=2040
MAJOR=189
MINOR=5
PRODUCT=2040/8268/100
SUBSYSTEM=usb
TYPE=0/0/0
USEC_INITIALIZED=7794291
run: 'modprobe em28xx card=94'
run: 'echo 2040 8268 > /sys/bus/usb/drivers/em28xx/new_id'
Unload module index
Unloaded link configuration context.

RE: [SOLVED/WORKAROUND] Hauppauge SoloHD not working/new product ID - Added by Sir Cypher 3 days ago

Hi Max,

I read somewhere that "echo" will not work in udev since it's not an actual bash running the command. Try the following steps (untested).

Create a file "/dvbstick.sh":

#!/bin/bash
modprobe em28xx card=94
echo "2040 8268" > /sys/bus/usb/drivers/em28xx/new_id

Modify the udev rule to read:

SUBSYSTEMS=="usb", ATTR{idProduct}=="8268", ATTR{idVendor}=="2040", RUN+="bash /dvbstick.sh"

...

But... I'm not sure if we actually need an udev rule. The "echo" line works for all current and future devices. So the DVB stick will still be attached to the em28xx module, even if we plug it in long after we did the "echo".

(1-18/18)