2016/01/22

Fixing the TechnoTrend T1900 external DVB-T device under Ubuntu

I had trouble getting the TechnoTrend T1900 external DVB-T device working under Ubuntu.

The device gets properly detected by Ubuntu:

$ lsusb
...
Bus 001 Device 007: ID 0b48:1005 TechnoTrend AG Technotrend/Hauppauge USB-Nova
...

$ lsmod | grep dvb
dvb_ttusb_budget 24576 10
dvb_core 126976 1 dvb_ttusb_budget
While scanning for channels, I discovered in dmesg that the firmware was outdated and couldn't be overridden. (see also http://ubuntuforums.org/showthread.php?t=1316032 -- "be" is "Belgium")

$ sudo apt install w-scan
$ w_scan -c be -X >> channels.conf
...

In a different terminal:
$ dmesg
...
[ 430.620228] tda1004x: setting up plls for 53MHz sampling clock
[ 432.761251] tda1004x: timeout waiting for DSP ready
[ 432.767276] tda1004x: found firmware revision 0 -- invalid
[ 432.767294] tda1004x: trying to boot from eeprom
[ 435.082609] tda1004x: timeout waiting for DSP ready
[ 435.089600] tda1004x: found firmware revision 0 -- invalid
[ 435.089615] tda1004x: waiting for firmware upload...
[ 435.089712] usb 1-2.3: Direct firmware load for dvb-fe-tda10046.fw failed with error -2

Luckily, the solution is easy: just load the non-free firmware package (apt and apt-get are the same):
sudo apt install linux-firmware-nonfree
Now, the DVB-T device will work just fine.

reference: http://lists.mythtv.org/pipermail/mythtv-users/2012-June/335840.html

update 2016: with Ubuntu 16.04, the linux-firmware-nonfree package was removed from the official repos (https://bugs.launchpad.net/ubuntu/+source/linux-firmware-nonfree/+bug/1513589).

As a workaround you have to manually download and install the firmware drivers:

wget https://github.com/OpenELEC/dvb-firmware/raw/master/firmware/dvb-fe-tda10045.fw
wget https://github.com/OpenELEC/dvb-firmware/raw/master/firmware/dvb-fe-tda10046.fw
sudo cp ./dvb-fe-tda1004*.fw /lib/firmware/