This guide shows you how to prepare Gentoo Linux for DVB and VDR.
- 1 General information to DVB
- 2 Preparing the system
- 3 Installing VDR
- 4 Installing the Remote Control
- 5 Video Output Methods
- 6 Creating a Channel List
- 7 Starting VDR
- 8 Troubleshooting
General information to DVB
What is DVB?
DVB stands for Digital Video Broadcasting. DVB describes methods to transfer digital data of TV, radio, interactive services like MHP, EPG and teletext. Through data compression with MPEG-2, or H.264 for HDTV, it's possible to transfer several channels on the same frequency. The more data compression, the more channels can be transferred, but you pay it with quality loss.
DVB can be transferred in several ways. The trailing letter identifies the method of transfer, e.g. DVB-T for terrestrial transmission. There are several more types:
- DVB-S for transmission over satellites
- DVB-C for transmission over cable
- DVB-H for transmission to mobile devices (terrestrial)
- DVB-IPI for transmission over IP based networks, e.g. internet
- DVB-RC(S/C/T) return channel for the transmission of data services, e.g. broadband internet
Types and requirement of DVB cards
Besides the different methods available to receive a DVB stream, the cards are classified by their type of produced output. There are cards with a decoder implemented which offer direct access to the stream by the device /dev/video. These cards are full featured cards. Other cards have no own decoder implemented and require a software decoder on the computer and are budget cards. This implies higher system requirements. Your computer's CPU should run at at least 600 MHz, and have at least 256MB of RAM. This list is useful for identifying your card.
Preparing the system
Configuring the kernel
First, we must ensure that your kernel supports DVB and your DVB device. Since kernel version 2.6 the necessary drivers are included. Check your kernel configuration and make sure the following options are selected as a static driver or as modules.
Input Device Support ---> * Event Interface Device Drivers ---> <M> Multimedia Support ---> [*] Digital TV support M [Your driver]
Additionally we have to select the proper driver for your hardware. To find out the right module for your card, we mark every driver as module. If you have a PCI card, install
pciutils if you haven't already. If you want built-in drivers or you don't own a PCI card, skip this step and continue with Checking the kernel output.
emerge --ask pciutils
After booting the new kernel, we run
pcimodules to list the required modules.
ohci-hcd ehci-hcd sis900 snd-emu10k1 b2c2-flexcop-pci nvidia nvidiafb
In this case we have to load the module
b2c2-flexcop-pci. We add the name to /etc/conf.d/modules.
Checking the kernel output
It's recommended to mark every driver as module, so that you can add the required module dynamically, especially if you don't know the module name. If you already know the module name, select the driver as a built-in driver. Compile the kernel, install the modules and boot it. You can check if your kernel has successfully detected your card by using
If you own a TerraTec Cinergy T2, your output might look like this:
dmesg | grep DVB
DVB: registering new adaptor (TerraTec/qanu USB2.0 Highspeed DVB-T Receiver). input: TerraTec/qanu USB2.0 Highspeed DVB-T Receiver remote control as /class/input/input2
To install VDR, we just emerge it.
emerge --ask vdr
Installing the Remote Control
There are at least two ways to control VDR via an infrared remote control. If your TV card has an onboard IR receiver you can use
vdr-remote. Otherwise, you most likely need to use LIRC.
We first install the plugin via emerge:
eselect vdr-plugin enable remote
When using the remote plugin for the IR port on your DVB card everything should be fine with the default config. It automatically uses the input device which has "dvb" in its name. For more advanced uses take a look at /etc/conf.d/vdr.remote.
Alternative: installing LIRC
If your card can be remotely controlled (but you cannot or do not want to use
vdr-remote ), you may wish to configure LIRC. LIRC interprets the pressed keys and returns a name for each one. A program that supports LIRC waits for key events and runs the action configured in the config file, mostly stored in the config directory of the executing program (e.g.
mplayer loads the file ~/.mplayer/lircrc ). Before we install LIRC, you have to add
lirc to your USE flags and add an additional entry to /etc/portage/make.conf:
LIRC_DEVICES. Use this list to find the proper arguments for the option.
# (Replace "devinput" with the proper driver) LIRC_DEVICES="devinput" USE="lirc"
emerge --ask lirc
At first we have to define each key code with a name. Most supported remote controls are configured already, take a look at the remote list. Download the required file and save it as /etc/lircd.conf. Now we have to find out where to access your remote control. Run the following command to get a list of the current input devices (make sure your device is running).
I: Bus=0000 Vendor=0000 Product=0000 Version=0000 N: Name="TerraTec/qanu USB2.0 Highspeed DVB-T Receiver remote control" P: Phys=usb-0000:00:1d.7-1/input0 S: Sysfs=/class/input/input2 H: Handlers=kbd event1 B: EV=100003 B: KEY=108fc210 2043 0 0 0 0 8000 2080 1 9e1680 0 0 ffc
In this case we have the Terratec Cinergy T2 device plugged in, so we can access the device over /dev/input/event1. Replace
event1 with the matching device in your output.
lircd needs to know the device to use. Add the following line to /etc/conf.d/lircd. Remember to replace
devinput with the name of your driver and
event1 with the actual device.
LIRCD_OPTS="-H devinput -d /dev/input/event1"
It's time to start
Now it should be possible to watch
lircd capturing and decoding key presses. Just run the command
irw. Stop it by pressing Ctrl + C when you have enough.
0000000000001aa2 00 Exit Technisat_TTS35AI.conf 0000000000001a8d 00 Mute Technisat_TTS35AI.conf 0000000000000a97 00 OK Technisat_TTS35AI.conf 0000000000000a97 01 OK Technisat_TTS35AI.conf 0000000000000a92 00 Menu Technisat_TTS35AI.conf
Next, add it to the default runlevel so that it starts automatically at boot.
rc-update add lircd default
To be able to use your remote control, you must enable LIRC support in VDR. Add the following line to /etc/conf.d/vdr:
Video Output Methods
You now need to decide on one (and only one!) of the following video output devices which show the picture and the overlayed On Screen Display (OSD).
Hardware decoding: full-featured DVB cards
Install media-plugins/vdr-dvbhddevice when using an TechnoTrend Premium S2-6400 Twin HD, or general hardware decoding for SDTV and HDTV (MPEG2 and MPEG4 AVC/H.264:
emerge --ask vdr-dvbhddevice
For Fujitsu_Siemens, Hauppage WinTV and TechnoTrend Premium S2300 and cards based on this reference design, or general hardware decoding for SDTV (MPEG1 and MPEG2):
emerge --ask vdr-dvbsddevice
Hardware decoding: DXR3/Hollywood+ cards
To use a DXR3 card for VDR output we need the
emerge --ask vdr-dxr3
The em8300 module need some configuration that depends on the exact revision of that card.
Hardware decoding: PVR350 cards
As PVR350 cards have an onboard MPEG-Decoder chip we want to make use of that. We need to install the
vdr-pvr350 plugin. If
ivtv-driver is not yet installed emerge will automatically install it for you. To have the ivtv module loaded at boot we add it to /etc/conf.d/modules:
emerge --ask vdr-pvr350
Software decoding: vdr-xineliboutput
Some people prefer to use
vdr-xineliboutput, because it can also work remotely. We'll now teach you how to configure
vdr-xineliboutput on your host and client. First, the host setup:
emerge --ask vdr-xineliboutput
eselect vdr-plugin enable xineliboutput
Adding command line options at this point is crucial for xineliboutput to work. For more options, see
The next step is to edit /etc/vdr/svdrphosts.conf. This file describes a number of host addresses that are allowed to connect to the SVDRP port of the video disk recorder running on the host system.
# (The proper syntax is: IP-Address[/Netmask]) 127.0.0.1 (always accept localhost) 192.168.1.0/24 (any host on the local net) #184.108.40.206 (a specific host) #0.0.0.0/0 (any host on any net - USE THIS WITH CARE!)
If you only want to use
vdr-xineliboutput to view the picture on the same computer as the one running VDR you can continue with creating the channel list.
Otherwise, you now simply
emerge media-plugins/vdr-xineliboutput on your client:
emerge --ask vdr-xineliboutput
Later (after having started VDR) you will use the command
vdr-sxfe xvdr://hostname to connect to VDR and view its picture and OSD.
There is also a plugin which just simulates the existance of a real output device (
vdr-dummydevice) for some fancy uses like record-only servers, but that is more advanced than a normal VDR setup.
Creating a Channel List
To make VDR really useful you need to create an appropriate channel list. There is more than one way to get a working list of channels (besides downloading one). The channel list installed by default is for DVB-S reception on Astra on 19.2° E.
Using dvbscan from linuxtv-dvb-apps
emerge --ask linuxtv-dvb-apps
Find the correct frequency list for your region and type of reception. These files are stored under /usr/share/dvb. For reception with DVB-T in Germany, Berlin you need to use /usr/share/dvb/dvb-t/de-Berlin.
dvbscan -o vdr /usr/share/dvb/dvb-t/de-Berlin > /etc/vdr/channels.conf
First, delete the contents of the existing channel list.
emerge --ask vdr-reelchannelscan
eselect vdr-plugin enable reelchannelscan
Channels for systems using vdr-analogtv
You'll probably want to configure your channels at this point. The VDR project provides you with some examples which can be found at /usr/share/doc/vdr-analogtv-$version/examples/, as long as you've installed >=
After having all basic software parts ready on the system you need to configure VDR with its OSD.
If you use a hardware decoder for picture output you should switch on the connected TV now. If you use software output the client for this must be started after VDR.
First, you should learn your key definitions; that is, connecting keys on your remote control to VDR's internal commands.
Just in case you need to edit the keyboard configuration, or (more likely) want to delete it to go back to learning the keys: VDR stores its key-definitions in /etc/vdr/remote.conf.
We begin with starting VDR:
* Preparing start of vdr: * config files ... [ ok ] * Waiting for prerequisites (devices nodes etc.) ... [ ok ] * Starting vdr ... [ ok ] * First start of vdr: No check for running vdr possible * until control device (remote/keyboard) keys are learnt!
Users of software decoders should now start the client program that opens the window to show the TV picture and the OSD.
For users of vdr-softdevice:
For users of vdr-xineliboutput:
The most useful keys for VDR are:
- Cursor keys (Left/Right/Up/Down)
- Colors (Red/Green/Yellow/Blue)
- Number keys (0-9)
If you don't have many keys, make sure to assign these. (Some remotes have Play/Pause/etc. on the same keys as the colors, so use them for the colors).
Now that the basic installation is over, you need to configure VDR. Switch to your output screen and follow the on-screen instructions. VDR asks you to press various keys on your remote control to learn the correct key codes. If you don't own a remote control, you can use your keyboard.
Now you can add the VDR initscript to the default runlevel to get it started every time your computer boots up.
rc-update add vdr default
This article is based on a document formerly found on our main website gentoo.org.
The following people have contributed to the original document: Norman Golisz, Dimitry Bradt, Matthias Schwarzott, Joshua Saddler
They are listed here as the Wiki history does not provide for any attribution. If you edit the Wiki article, please do not add yourself here, your contributions are recorded on the history page.