Myth BOX
The home of guides for Myth TV, IPTables, and other linux based phenomena.
HD version
General guides
Channel setup
Home automation
Product overview
Useful links
SD version
General guides
DVB Card
Myth TV
Broadband modem
Wireless network
Network shares
Network IDS
Extra security
EPIA specific guides
TV-Out cables
Audio/USB cables
Wireless network
EPIA Kernel
Openchrome drivers
Surround sound
Online store
Prebuilt mythbox
Useful links

The DVB card

  1. First things first, get Gentoo installed. The easiest way to do this is to download a snapshot of the current Gentoo version (or portage) on a so called LiveCD. At this stage, if you don't know what your doing, its probably wise to initially use genkernel to make a kernel - then at least you have it up and running. Refer to for setup details.
  2. Buy the WinTV-Nova-T PCI card from Hauppauge. Before installing it, write down the numbers on the two main chips on the board - this will save many headaches later on. This guide is based on the TDA10045H and SAA7146AH boards. You can install the board now :) You can use lspci to check one of the chip codes but not the other.
  3. Now its time to learn how to compile the kernel! This is really daunting but necessary to get this stuff working - I have found that shortcuts such as genkernel dont work. Check out for more info. Use the command: emerge gentoo-sources to get the 2.6.14 kernel downloaded (or latest kernel at the time - I assume 2.6.14 through these guides). At this point you should make sure your USE flag in /etc/make.conf includes 'dvb', as well as 'mysql' for later.
  4. Now cd /usr/src and check out the contents. Make sure that the linux symbolic link points to the newly downloaded source code. Then cd /usr/src/linux, and execute the command: make menuconfig. Follow the gentoo kernel guide to ensure that the necessary files are selected. Now add any of your own hardware required. Don't worry, so long as the kernel boots, you can always add stuff later - theres some trial and error required here.
  5. Select modules rather than compiling in functionality since you can then see the error messages (if any) that occur. Thats what I found anyway :). The modules that are required are found through experimentation. However selecting them as modules allows you to unload any if required:
    Device Drivers -->
        Multimedia devices -->
            Video For Linux
            Digial Video Broadcasting Devices -->
                DVB For Linux
                DVB Core Support
                AV7110 cards
                Budget cards
                Budget cards with onboard CI connector
                AV7110 cards with Budget Patch
                Customise DVB frontends -->
                    Philips TDA10045H/TDA10046H based
  6. Save the kernel config and execute: make && make modules_install. Then copy over the new kernel.
  7. Add the following driver names to your /etc/modules.autoload.d/kernel-2.6:
    • tda1004x
    • budget-ci
    • budget-core
    • budget
    • dvb_core
    • saa7146
  8. Ensure that you have downloaded the firmware by going into /usr/src/linux/Documentation/dvb/ and executing get_dvb_firmware tda10045. Copy the resulting dvb-fe-tda10045.fw file to /lib/firmware.
  9. If you run devfs, download the linuxtv-1.1.0 package from and run the script. Reboot. Run dmesg and read the output to check that the drivers are installing properly. You should also have four files in /dev/dvb/adapter0/. You will not have audio0 and video0 in this directory as some guides mention, since the Nova-T is a budget with no hardware MPEG decoding.
  10. If you do not have devfs and run udev instead, just make symlinks from the /dev/dvb0.<name> files to /dev/dvb/adapter0/<name>0 files.
  11. At this point, you should reboot into your new kernel.
  12. Download the linuxtv-1.1.0-apps package from and do a make command.
  13. Look in the /utils/scan/dvb-t directory for the transmitter you will be using. Likelyhood is, unless you live in london your transmitter won't be there, so copy another and rename it. Visit and lookup the channel number of the BBC Mux 1 for your transmitter. Then use the following equation to convert the channel number to frequency:
    Frequency Hz = ((UHF Channel Number)*8 + 306) * 1000000
    and put this into the following hierarchy of default values (found here):
    Frequency         = [Frequency in Hz]
    Bandwidth         = 8MHz
    HP Code Rate      = 2/3
    LP Code Rate      = NONE [Unused for hierarchy NONE]
    Constellation     = QAM64
    Transmission Mode = 2k
    Guard Interval    = 1/32
    Hierarchy         = NONE
    to construct your own transmitter file. You may need to add an offset of 166666 Hz to the frequency calculated above. The Offcom site may be of some use for frequency information.
  14. Go back to the scan directory and execute: ./scan dvb-t/uk-<transmitter_name> > channels.conf. It should scan and pick up six mux's, if it doesn't try again. Copy the resulting file to ~/.tzap/. Then run the following command (if you don't have tzap, you need to get it): tzap "BBC ONE". If you get FE_LOCK, you have locked onto a valid digital signal. Note that since some of the channels are not always broadcasted, then those channels would have missing PID values. To get these channels, rescan to fill in the gaps.

  • I get errors of unresolved symbols upon bootup.
    Ensure that you have compiled the kernel yourself and have included video for linux support. You cannot use the genkernel tool to do this, as it doesn't work in my experience, been there done that! It's time to get your hands dirty and compile your own kernel - after a couple of times it isn't so bad.
  • I don't have any devices in the /dev/dvb/adapter0 directory and/or don't have that directory!
    Your drivers are probably not loading when booting properly. Ensure that you have the same hardware as I have stated and the same modules loaded. If not, compile all the DVB hardware modules and load them all on boot up and try that. Don't forget to run the script file to create the devices in the first place (see above). Check you dmesg output for clues as well. One problem can be the dll file is either not in the correct location, or is too new a version for you kernel (again see above).