MythTV DVB Setup Guide
Compiled by Martin Smith
V0.20 March 2005 (for MythTV Version
Part 1 - Intro and Hardware Setup
What is DVB?
Installing and Testing Hardware
Test Scanning and Tuning
Part 2 - MythTV DVB Configuration
Load DVB Drivers
Add DVB Channel Data
Upgrading a 0.16 Database to 0.17
Testing the Card
Additional XMLTV config (now obsolete)
Configuring a second card
More on DVB Stream Errors
Collecting Data on Signal Quality
Adventures With a new Motherboard
My System Specs
Using the Freeview EPG with MythTV
Part 3 - Additional Information
Conditional Access Modules
Notes for the 2.6 Kernel
I've also written a document containing notes on Building
a Storage Server about my experiences in putting together a Linux
to act as a networked file server for video data.
What Is DVB?
DVB is Digital Video Broadcasting, a
set of digital television standards with a large amount of industry
There are several advantages to digital TV. Programme guides and
flexible digital services are much easier than with analogue. In
several countries the intention is to phase out analogue TV over time
and DVB is one of the leading systems that may replace it.
For various technical reasons DVB is able to make better use of
bandwidth than analogue transmissions. This means that several digital
channels can be transmitted in place of one analogue channel. This is
done by multiplexing the signals and you will often see DVB-T referred
to as a multiplex or mux.
Picture quality can also be better, though this is not always true. If
too many channels are squeezed into the same multiplex then the quality
Digital signals are more resistent to some types of interference that
plagues analogue TV, for example ghosting. However uers in weak signal
areas may find that they are unable to get usable pictures whereas they
can receive at least some analogue channels. This is going to make
plans to switch off analogue signals somewhat more complicated.
Some analogue aerial installations for DVB-T may need to be upgraded or
realigned. In the UK there is a postcode checker that can give some
idea about what the likely reception will be at your location. Users of
DVB over cable and satellite don't have to worry about this.
Standardisation should keep the cost of hardware down. For example in
the UK a basic DVB-T set top box can be bought for £50. Some of the
budget class PCI cards are around the same price or maybe slightly more.
Before You Start
With version 0.17 of MythTV and its new improvements to the DVB support
things should be much easier now. It shouldn't be necessary (yeah
weasel words I know) to manually enter channel information or do
anything via SQL to set up a new installation from scratch.
Upgrading from a previous version requires a one off database change,
which I've documented later, assuming you want to keep your existing
For the moment I've left the older instructions in place in this
document and tried to signpost which bits apply to particular
situations. The main thing to remember is that it's now much easier
than it used to be and not all of the sections will be relevant to new
Installing and Testing Hardware
There's no doubt that getting a working Linux DVB installation is
currently more complicated than for the analogue cards. As support
makes its way into the mainstream Linux kernel then this will hopefully
change. For the moment you'll need a combination of luck, skill and
Step one is to get your DVB hardware working. It's important to do this
before worrying about configuring MythTV to use it. If it doesn't work
outside MythTV with the basic utilities then it won't work inside it
being driven by a complex application. In these cases the DVB driver
forums and mailing lists are probably better resources to start with.
This process can be summarised as:
The aim at the end is to have video from the card and know that it is
stable and working correctly.
- Buy and Install hardware.
- Obtain and install drivers.
- Test scanning and tuning of channels.
- Test demultiplexing of digital channels.
DVB hardware is normally either a PCI card or USB attached module. The
Linux DVB drivers include support for both types but not every card
that's supported under Windows works under Linux. This is normally
because manufacturers refuse to release the necessary information.
The budget PCI cards look similar to analogue capture cards and are
quite small. The full featured cards are bigger and may prove difficult
to fit into the smaller type of case popular for MythTV projects. All
TV tuners tend to run hot. Small cases can present challenges in this
area, especially with multiple cards..
Before buying anything make sure the card is fully supported by Linux
drivers. This is not always as easy as it sounds as manufacturers often
ship cards with different hardware under the same name. For example
there are at least three different versions of the Nova-T card on sale.
I bought two cards at roughly the same time and they use different
After installing a PCI card check for its presence with lspci. For
example I would see this for one of my cards:
00:0a.0 Multimedia controller: Philips Semiconductors SAA7146 (rev 01)
For USB you may need to load additional modules for the adapter to be
recognised. I don't have any USB adapters so I don't know the exact
details of this. The USB devices should announce themselves in the
when they're connected. If this doesn't happen then you may have
missing USB modules that need to be loaded.
Note: For users of later model Nova-T cards with the Conexant chips on
them (check the output of lspci) Richie Jarvis has a page
on getting them to work that may well be useful to read and follow
before continuing with the rest of this..
The current stable Linux kernel (the 2.4 series) does not include
support for DVB devices. There are several drivers available on the net
to address this. The most up to date is known as dvb-kernel and is the
development track for inclusion in the upcoming 2.6 linux kernel. When
this kernel is released users of DVB hardware should have an easier
time. If you are using 2.6 then please check
this 2.6 related section and remember that the instructions in this
section below are meant for users of 2.4. I'm now using 2.6 on my
machine but I'll leave these instructions here for now.
Until then you will have to download and build the appropriate driver.
I'll assume here that you are planning to use dvb-kernel as it supports
more devices and are using the 2.4 kernel. For example recent Nova-T
cards with a TDA10045 chip are not supported by the older driver.
There are potential problems if you already have analogue capture cards
because some of the DVB drivers provide their own versions of modules
that are also present in the 2.4 kernel. It may not be possible to get
a particular combination of analogue and digital cards to work.
For some cards you must apply specific kernel patches. A recent
standard kernel version e.g. 2.4.28 is recommended in most cases unless
the patch instructions specify a particular one.
Do not use a kernel modified by your Linux vendor if you need to apply
patches. They may conflict with vendor patches and fail to work. If you
have any trouble at all building the DVB modules against a vendor
kernel try it against a stock 2.4 kernel before complaining to driver
Be careful: Always keep the last good kernel around, never overwrite
working kernel image even if you have only made a minor configuration
change and definitely not if you've applied a patch. A handy boot
floppy or rescue CD is another useful piece of insurance.
Check out the current driver from CVS at linuxtv.org by following the
instructions given on
Change to the build-2.4. subdirectory and run these commands:
This should build the driver and not report any errors. For testing
purposes there is no need to install the modules in /lib/modules.
You now need to make sure that the device nodes for DVB are available.
You should have a /dev/dvb/adapter0/
directory containg several subdevices e.g frontend0. If they don't exist
then create this directory and use
the MAKEDEV.SH script (or mknod in a pinch) to create the
following devices in it:
crw-rw-rw- 1 root root 250, 1 May 8 22:25 audio0
If you have more then one card then make sure additional adapter
directories have been created e.g. /dev/dvb/adapter1
crw-rw-rw- 1 root root 250, 6 May 8 22:25 ca0
crw-rw-rw- 1 root root 250, 4 May 8 22:25 demux0
crw-rw-rw- 1 root root 250, 5 May 8 22:25 dvr0
crw-rw-rw- 1 root root 250, 3 May 8 22:25 frontend0
crw-rw-rw- 1 root root 250, 7 May 8 22:25 net0
crw-rw-rw- 1 root root 250, 8 May 8 22:25 osd0
crw-rw-rw- 1 root root 250, 0 May 8 22:25 video0
crw-rw-rw- 1 root root 250, 65 May 8 22:25 audio0
Now load the modules with the script provided:
crw-rw-rw- 1 root root 250, 70 May 8 22:25 ca0
crw-rw-rw- 1 root root 250, 68 May 8 22:25 demux0
crw-rw-rw- 1 root root 250, 69 May 8 22:25 dvr0
crw-rw-rw- 1 root root 250, 67 May 8 22:25 frontend0
crw-rw-rw- 1 root root 250, 71 May 8 22:25 net0
crw-rw-rw- 1 root root 250, 72 May 8 22:25 osd0
crw-rw-rw- 1 root root 250, 64 May 8 22:25 video0
# ./insmod.sh load
This may print errors as it attempts to load all the DVB modules. The
ones that don't match your hardware will fail to initialise. That's not
a problem as long as the correct driver did work. To find out
what's happened run:
Look for a line that indicates your DVB hardware was initialised and
also most importantly that the 'frontend' for your DVB card was also
registered. Why? Because the hardware variants usually have different
frontends. If you don't have a supported frontend chip then the card
will not work, even though the driver detects and registers the adapter.
For example with my recent model Nova-T card: I see this
DVB: registering new adapter (TT-Budget/WinTV-NOVA-T PCI).
The format may be different for other drivers but the same information
should be present.
tda1004x: Detected Philips TDA10045H.
tda1004x: Detected Philips TDM1316L tuner.
DVB: registering frontend 0:0 (Philips TDA10045H)...
Do not proceed past this point if your card is not initialised. It
probably means your card is not supported or needs a kernel patch /
additional configuration. Your first course of action should
probably be to search the DVB mailing list archives for posts by people
in a similar situation.
If your card has been succesfully detected and initialised then we can
Test Scanning and Tuning of Channels
Connect an aerial to your card before proceeding with the next steps
(for DVB-T) or connect up your satellite or cable equipmnent as
Note: An external aerial is strongly recommended for DVB-T. A set top
aerial will only work in areas of high signal strength. Unless you live
right under a transmitter I don't rate your chances of success very
highly. In the UK you
can get a prediction
of your reception quality. This is only a guideline but may be
useful. For my location the result is "Aerials for FREEVIEW reception
must be in good condition".
Now you need to install some utilities to tune your card. These are not
required by MythTV but are needed to get you going.
We'll be using a program called scan in combination with tzap. For
DVB-S or DVB-C the programs are szap and czap respectively.
To add some confusion these applications are not shipped with the
dvb-kernel driver. You will need to check out the DVB module (from the
same place as before) and build that software.
Now change to the apps/scan directory under where the package was
compiled. Run the scan utility like this:
# ./scan dvb-t/uk-CrystalPalace > channels.conf
If there is no frequency file for your area then you can easily create
one. In the UK a list of DVB-T transmitter frequencies can be found at
If everything is ok then the channels.conf file will contain the list
of channels the card found by scanning what's been transmitted. If
there is a predefined list for your transmitter then compare it to the
output you got from the above command.
Once you have a good channels .conf create a directory under your home
directory called .tzap, .szap or .czap and copy the channels.conf file
there. This is also the information you'll need later to configure
MythTV so you may want to print it out for reference.
Now pick a channel e.g. in the UK we can use BBC ONE and in one window
# tzap "BBC ONE" (or szap or czap)
Leave this running and watch for the magic word FE_LOCK to appear in
the output. This means the DVB card is receiving data correctly and is
locked onto a valid DVB signal. This normally appears within a
couple of seconds.
Now the card is tuned we can proceed to view one of the MPEG streams
To to this we'll need a combination of dvbstream and mplayer. We'll use
dvbstream to demultiplex the stream and mplayer to display it.
Check out the latest CVS for dvbstream and
build it. Do not use the .tar version as it is out of date. Either
download the latest MPlayer
install an appropriate RPM etc. for your distribution. It's also been
brought to my attention that you don't strictly need tzap as dvbstream
can do the tuning for you. Anyway, I've documented what worked for me
at the time I did it.
Now look at your channels.conf file for the channel you tuned above.
For my setup on the Crystal Palace transmitter this line looks like:
The last two numbers are the IDs of the video and audio stream within
the multiplex. We also need the transmission parameters to feed to
dvbstream. The command I would use for the channel above is this:
# dvbstream -o -ps -qam 16 -cr 3_4 600 601 | mplayer -
You'll need different options if you have DVB-S or DVB-C. See the
documentation for dvbstream.
The result should be a perfect DVB picture of your chosen channel. It
should not stutter or break up and the audio should be clean. It's just
possible that occasional artefacts may appear but they shouldn't be
very noticeable. If the video breaks up, has major colour problems, has
a very low frame rate or
is corrupt then there is something wrong.
If you have more than one card in your system you can now repeat the
tuning and display process for each. E.g. I have a second dvbcard so I
# tzap -a 1 "BBC ONE"
If you can't get a proper video stream displayed then there is no point
going any further to configure MythTV and you should concentrate on
finding out what's wrong.
# dvbstream -c 1 -ps -qam 16 -cr 3_4 600 601 | mplayer -
Some Troubleshooting Suggestions
Signal strength and aerial quality
If you're using DVB-T then this is a factor. It's hard to check this
without additional equipment. If your analogue TV quality is also poor
it may be worth having your aerial checked out. The DVB hardware shows
the signal strength when you run tzap. If it's high then this isn't the
If you can borrow a Set Top Box for a couple of days then you can use
this as a doublecheck. If this is able to display a picture correctly
then signal strength can again be ruled out.
These do occur with some chipsets and motherboards because of the PCI
transfer settings used by the DVB drivers. The large amounts of data
shipped around for DVB can expose problems that would not otherwise be
noticed. Check your BIOS PCI
settings. If there is an option for 'Delayed Transaction' or something
then make sure it is turned on.
You may be able to improve matters by changing the PCI settings of the
board for the Latency Timer. I mention this in part 2 when I talk about
my experiences with a new motherboard.
If you have a motherboard and chipset that suffers from this problem
then I'm afraid there isn't a great deal else that you can do about it.
careful in that it can cause data corruption during the transfers and
this can be similar to that with faulty memory. It's a good idea to run
comprehensive memory tests before throwing the motherboard out.
This can create infuriating problems that are hard to track down. The
best bet here is to download MemTest
and let it run for a few cycles. If this succeeds then memory
problems can pretty much be ruled out.
Unsupported hardware variant
New cards do come out from time to time and you might be an unwitting
early adopter. Search the mailing list for information on people with
the same card. You might need the numbers from the chips on the card
and it's worth doing an lspci -vn
for the numeric PCI identifiers of the card.
Like I sais earlier for users of later model Nova-T cards with the
Conexant chips on them (check the output of lspci) Richie Jarvis has a page
on getting them to work that may well be useful to read and follow
before continuing with the rest of this..
Setting up MythTV for DVB
Now we can move on to Part 2 where we
start to configure Myth to use the DVB card.
Last Updated March 2005. Hosted with the nice people at clued up hosting.