Archived:How to install DVB device drivers

From LinuxTVWiki
Revision as of 06:09, 7 February 2007 by CityK (talk | contribs) (Fixed links)
Jump to navigation Jump to search

This page contains information to help an "end user" to install a DVB device on his or her GNU/Linux system.

Before buying a DVB card, you might consider making sure it is listed on Supported DVB cards. If it's not listed, there is a good chance it won't work under Linux.

After you bought your DVB card it might be a good idea to search this wiki for its name or the manufacturer name. There are many cards but only few actual chips, so chances are good that someone else wrote a howto somewhere that you can adopt. The output of lspci will probably help you:

 # lspci

Watch out for output lines with

 Multimedia video controller: ...
 Multimedia controller: ...

You might also search with google and add "linux" and/or "howto" to your keywords.

Please be nice to the community and add your insights to this wiki after you got it working.


Solution for new kernels (2.6)

If you have a new Linux kernel and its compiled with many options on/modules installed (as normal Linux distros ship it), then chances are very good that you don't have to install any driver. Use

 lsmod

to see if the required modules are installed with your kernel. Which are the required ones? It depends on your DVB-card chip. See TwinhanDTV Digital Terrestrial TV Card Ter for an example.

After you checked that they're all available you can load them with

 modprobe

You should now have some stuff in

 /dev/dvb/adapter0/ 

If you don't see dvb-directory, then something has failed. You don't need to create it, it comes automatically. With Ubuntu 6.06.1 the problem was that dvb-ttpci was not in the firmware directory. If you have all the modules active (listed in lsmod) but no /dev's to be found, check dmesg for any errors, ie: grep dvb /var/log/dmesg

dvb-ttpci: could not load firmware, file not found: dvb-ttpci-01.fw
dvb-ttpci: usually this should be in /usr/lib/hotplug/firmware or /lib/firmware
dvb-ttpci: and can be downloaded from http://www.linuxtv.org/download/dvb/firmware/

will appear if you use the default *.rpm install for the Technotrend1.x/Hauppauge and similar premium (hardware-MPEG) DVB-S cards.

See First steps for more tests and how to set up your frequency table.

Solution with v4l manual installation

Introduction: why v4l ? ... (please write it!)

NOTE: Some of the following steps are specific to Debian-based distributions, but these instructions should also be helpful to users of other distributions.

Please have also a look at http://linuxtv.org/repo.

Get required software

Before you can start you need the following software:

  • mercurial: needed to download the latest source
  • kernel-headers, make, gcc: needed to compile the the driver

This guide does not include steps to install those software for all distributions.

On Debian-based distributions you can use the following command to install all required software:

 $ [sudo] apt-get install mercurial linux-headers-$(uname -r) build-essential

Note: [sudo] means that you only have to specify "sudo" if you aren't root, otherwise omit it.

On Gentoo-based distributions you can use the following command to install mercurial. Other dependancies are installed in main system tree.

 $ [sudo] emerge mercurial

Fedora is just as easy:

 $ [sudo] yum install mercurial

Obtain latest source code

After we have installed all required software you should be able to download the latest source code with the following command:

 $ hg clone http://linuxtv.org/hg/v4l-dvb

This should create a directory called v4l-dvb in the current working directory.

Compile the source code

Let's go inside the directory that contains the previously downloaded source:

 $ cd v4l-dvb

Then we have just to compile the source:

 $ [sudo] make

If you run into any problems here, you should contact the developers via irc.freenode.net on #linuxtv or on #dvb.

Install the driver and reboot

The next step is to install the driver. To install the driver (note that the v4l modules are also installed) you have to execute:

 $ [sudo] make install

Then connect the device (if external) and reboot.

 $ [sudo] reboot

After that start your preferred program for watching DVB (e.g. Kaffeine).

Obtain the firmware

Some devices need firmware. To obtain the correct firmware you need to know what card you're using. Normally the device name and model are written on the device, on the box or in the manual. Look at DVB-S devices / DVB-C devices / DVB-T devices / ATSC devices.
The output of the following tools may be helpful, too. For PCI devices use

 $ lspci -v

For USB devices use

 $ lsusb -v

The firmware (if needed) can be found on one of those links:

You have to download it and copy it into the right directory (used by hotplug). The location of this directory depends on your distribution, but normally it's one of those:

 /lib/firmware
 /usr/lib/hotplug/firmware

Further documentation

Further steps can be found here:

FAQ

Q: My device was working perfectly, but now it is not recognized anymore. What is the problem?

A: It's possible that you're using a different kernel now, so you have to install the driver again and ensure that the firmware is reached by the hotplug system.

Q: My DVB device is recognized but I'm not able to use it. What can I do?

A: You should check that the /dev/dvb exists and that you have the correct permissions to read and write that directory.

You might also try some of the First steps with a budget DVB card to see if other software can cope with it.

For further please contact developers via irc.freenode.net on #linuxtv (or #dvb) or via mailing list.