Ubuntu comes with a fascinating amount of drivers that makes almost every device work instantly after being connected. To me this is still fascinating, especially when trying to use hardware which instantly works on Ubuntu on Windows. In some (more and more rare) cases Ubuntu also needs a little push to make devices works. Odd but most of the times this is because of legal reasons e.g. if the driver is not opensource and is only allowed to be used if a certain End-User-Licence-Agreement (EULA) is accepted by the user. Especially when trying to use dvb-usb-sticks this might be the case. This HowTo describes how to make these devices work in a few steps. Note that you can also use this how to for non-usb devices (e.g. PCIe-Cards), but in that case you have to check a bit longer in the system log since you can't just reconnect the device/card. This HowTo describes using DVB-T (also known as Digitenne, TDT etc.) but can also be used to use DVB-S or DVB-C with small changes.
1. Check if your system recognizes the device already
To do this, just access your system log a.k.a. syslog (System/Administration/Log File Viewer), get into the "syslog" section on the left, connect the device and check what is printed afterwards. When you see something like "did not find the firmware file" with the firmware filename printed afterwards in brackets (write this down, since you'll need it later), you have to download this file somewhere and copy it by hand. You get the same information in a more geeky way, by just opening up a console/shell and typing dmesg | tail
2. Install the driver if necessary
In Ubuntu 10.10 it is sometimes enough to connect your DVB Stick, and on the standard Ubuntu desktop (gnome) just wait for the "Additional Drivers" information to pop up. Clicking on the corresponding icon brings you to the Hardware Drivers window, that you maybe familiar with, if you installed drivers for your graphics card after the first boot. After the installation check your syslog again or type "dmesg | tail" in a shell (like above). If you still get the message about a missing firmware you have to continue underneath to install it, if you read something like "registered new interface driver dvb_usb_..." and/or ".... successfully initiated" you can jump to step 3 already.
a) Since the Proprietary Driver Dialogue didn't help much or didn't pop up you'll have to find out the name of the firmware needed to make this device work. As mentioned above, this should be printed in the system log in brackets behind the "did not find the firmware file.", something like ***.fw. If you have the name of the firmware file needed, just search for it on the internet, preferably you get a search result that points to http://linuxtv.org. This is a trustable site where you can download the driver without second thoughts. When downloading it from other sites be sure to scan it for virusses or be really really sure that you can trust the site. When you got the *.fw file you can process to c) if you still have to find out which firmware is needed try the following:
b) open up a shell/console and enter the following, to list all USB devices with IDs: sudo lsusb
try to find your device and write down the Device ID, which is printed in the format xxxx:xxxx
entering this ID accompanied by the word firmware in your favourite search engine should bring up a link to the firmware file. Again try to find a result from http://linuxtv.org/
c) install/copy the firmware to your system
Open up a filebrowser with administrator right, e.g. by opening a shell and typing: sudo nautilus
Navigate to the location where you downloaded the firmware file to earlier
Copy the firmware file to the directory /lib/firmware
Reconnect the device to your computer or reboot and check the system log again (System/Administration/Log File Viewer on the left choose syslog or enter dmesg | tail), you should now get a positive message about an successfully registered adapter.
3. Using the successfully installed device to watch TV (with kaffeine)
A couple of years ago this was the point where it became really tricky, but thanks to a lot of improvements in the useability sector of opensource programs in general the comfort of setting up TV also got rather easy. Thus if you came this far bear with me, you'd be set in couple of minutes.
a) Install an application for viewing DVB content
- Install an application, that is capable of playing content from DVB devices, I go with kaffeine here, since it is really easy to configure dvb-t. Additionally you need a couple of plugins. For installing both just open up a console and enter: sudo apt-get install kaffeine libxine1-all-plugins
- alternatively you can start up Synaptic (System/Administration/Synaptic Package Manager) and search for kaffeine and libxine1-all-plugins and install both.
- after installing, start up kaffeine (through the menu: Applications/Sound & Video/Kaffeine) and obviously click on "5 Digital TV"
b) Scanning for channels
- initially there aren't any stations to tune to otherwise you'd have to have scroll through all stations on the world to find yours, keeping them up to date would be another issue. This means you'll have to do a scan to find channels, but first you have to tell kaffeine where you are / which spectrum of channels should be scanned.
- To do this click on Television/Configure Television in the pull menu in kaffeine. Now click on your Device on the top, if you have only installed one it will most certainly be "Device 1". In this window click on the pull down selection next to "Source" and select the region you're currently in. Exit by clicking OK.
- Now click on Television/Channels in kaffeine and click on "Start Scan" in the middle section. If everything is good you'll see all the Channels you can receive on the right, to add all of them permanently to your user's channel list click on "add filtered". How to add them more selective should be obvious. Exit this window by clicking OK.
c) Watching tv / listening to radio
- You should now be able to watch TV by double-click on the station you want to watch. If it doesn't really work just try restarting the programm and maybe reconnecting the DVB-USB-Stick. This only has to be done once, afterwards it works everytime.
DONE! You should now be able to watch TV (and maybe listen to radio if provided), if not check the hints underneath, otherwise have fun!
Channel scan doesn't seem to work at all
When trying to scan for Channels your scan stops instantly and always returns the same channels. This is often the case, when already having set up kaffein and you start scanning after already having tuned into a station. To fix just click on the "Stop" symbol and try scanning again.
Channels were found in kaffeine, but when trying to tune in you get a "cannot find demux plugin for MRL ... dvbpipe.m2t"
This seems to be a little bug in the installation routine of kaffeine, as mentioned HERE.
To fix this, open up a shell/console and enter sudo apt-get install libxine1-all-plugins
This should install all necessary plugins, especially the ffmpeg plugin, and you should not get the error message again and be able to watch tv.
Channel scan doesn't find the channels it should
When scanning for channels it doesn't return all channels that should be receivable at my location:
This can be caused by two things:
- The signal at your exact location is to weak, which could only be resolved by buying an active antenna that amplifies the signal. BUT WAIT! Before running to the next electronic store, you should also check the following, which you'd have to do anyway even with a shiny new and better antenna and has to do with the selection of the region in 3 b) above.
- More precisely, it has to do with outdated or wrong data for the spectrum of frequencies used for dvb-t in your region. One way to resolve this might be to update this list by going to Television/Configure Television in the kaffeine menu and click "Update scan date over internet" and try to scan for channels again as described above. If this didn't change anything take a deep breath, since you might need a bit of patience here:
- When not finding all the channels you are sure to be able to receive try to change the region as described above to one you're not living in. In Europe you should try going through all the DE regions (Germany) and do another scan for channels. Most of the times you should get all the channels you want, if not try other countries. The story behind this is that you need a region with the spectrum for the desired stations that wasn't provided in the list for your region. There for sure will be a more elegant way to do this (e.g. creating an own list for the spectrum to be scanned) but I didn't go that deep into this topic, but will add it to this howto if someone feels like sending it to me ;)