Update 2017-05-04: The first version of this article was about the Sundtek MediaTV Pro stick. After browsing through my mails from 2010, I just found out that my device isn’t actually a Sundtek MediaTV Pro, but a Sundtek MediaTV Digital Home. I corrected the article accordingly and apologize for any confusion.

Some years ago I bought a Sundtek MediaTV Digital Home stick (first generation) that can be used to tune to DVB-C channels. Unfortunately the stick isn’t recognized immediately by the Linux kernel, and you have to install a [closed source driver] that does most of the heavy lifting in userspace:

$ lsusb Bus 001 Device 107: ID eb1a:51b2 eMPIA Technology, Inc. $ dmesg usb 1-3: new high-speed USB device number 107 using xhci_hcd usb 1-3: New USB device found, idVendor=eb1a, idProduct=51b2 usb 1-3: New USB device strings: Mfr=2, Product=1, SerialNumber=3 usb 1-3: Product: MediaTV Digi9cXXXXXX usb 1-3: Manufacturer: Sundtek usb 1-3: SerialNumber:

Today I found out that the device seems to be a rebranded MaxMedia UB425-TC with a different USB ID. If you take the device apart and look at the soldered ICs, you’ll notice that it uses the same components as the MaxMedia UB425-TC:

Empia EM2874B

Micronas DRX 3913KA2

NXP TDA18271HDC2

The MaxMedia UB425-TC is supported by the em28xx kernel module since version 3.4. I’ve found a way to use the Sundtek stick with the existing module without any closed source driver:

Grab the device firmware from the OpenELEC project and place it in /lib/firmware

Load the em28xx module and force card to 84 (MaxMedia UB425-TC): $ sudo modprobe em28xx card=84

Register the Sundtek USB vendor and product ID with the em28xx module: $ echo eb1a 51b2 | sudo tee /sys/bus/usb/drivers/em28xx/new_id

Afterwards, the device is recognized by the kernel, and you can tune to DVB-C channels:

usb 1-6: new high-speed USB device number 112 using xhci_hcd usb 1-6: New USB device found, idVendor=eb1a, idProduct=51b2 usb 1-6: New USB device strings: Mfr=2, Product=1, SerialNumber=3 usb 1-6: Product: MediaTV Digi9cXXXXXX usb 1-6: Manufacturer: Sundtek usb 1-6: SerialNumber: em28xx: New device Sundtek MediaTV Digi9cXXXXXX @ 480 Mbps (eb1a:51b2, interface 0, class 0) em28xx: DVB interface 0 found: bulk em28xx: chip ID is em2874 em2874 #0: EEPROM ID = 26 00 01 00, EEPROM hash = 0x260095b9 em2874 #0: EEPROM info: em2874 #0: microcode start address = 0x0004, boot configuration = 0x01 em2874 #0: I2S audio, 5 sample rates em2874 #0: 500mA max power em2874 #0: Table at offset 0x36, strings=0x2a7a, 0x106a, 0x12a4 em2874 #0: Identified as MaxMedia UB425-TC (card=84) em2874 #0: dvb set to bulk mode. em2874 #0: Binding DVB extension drxk: status = 0x439130d9 drxk: detected a drx-3913k, spin A2, xtal 20.250 MHz drxk: DRXK driver version 0.9.4300 drxk: frontend initialized. tda18271 9-0060: creating new instance TDA18271HD/C2 detected @ 9-0060 DVB: registering new adapter (em2874 #0) usb 1-6: DVB: registering adapter 0 frontend 0 (DRXK DVB-C DVB-T)... em2874 #0: DVB extension successfully initialized em28xx: Registered (Em28xx dvb Extension) extension em2874 #0: Registering input extension Registered IR keymap rc-reddo input: em28xx IR (em2874 #0) as /devices/pci0000:00/0000:00:14.0/usb1/1-6/rc/rc0/input436 rc0: em28xx IR (em2874 #0) as /devices/pci0000:00/0000:00:14.0/usb1/1-6/rc/rc0 em2874 #0: Input extension successfully initalized em28xx: Registered (Em28xx Input Extension) extension

I didn’t try the other modes of the stick (DVB-T, FM radio, analog TV), but I suspect they won’t work. Have fun!