MythTV/Getting Started

Linux
Installing and configuring MythTV requires basic knowledge of Linux, a powerful, free, open-source operating system suitable for running servers and multi-user desktops. If you’ve never used Linux, the instructions here will seem very mysterious. You should certainly get acquainted with Linux before attempting this how-to. That having been said, getting MythTV up and running can be a fun way to learn Linux. The first thing you should do, in such a case, is to play with Linux for a while, read some tutorials on the subject, and obtain a basic familiarity with the Linux command-line interface (CLI), also known as the shell, terminal or console.

In this document, Linux shell commands entered as a normal user (implicitly the user ‘mythtv’) will be denoted by a $ prompt, whereas commands meant to be entered by the superuser (‘root’) will be preceded by a #.

Other sources of help
If you’re interested in getting a MythTV setup working, this "how-to" guide will hopefully help you. Every installation is different, especially depending on what version of Linux you are using. Thus, there are many different how-to documents you may want to refer to for suggestions when getting things working. You will undoubtedly encounter many unique (and annoying) errors throughout your installation, but usually a search on the internet will provide you with an answer.

Some how-to guides worth reading:
 * The official MythTV install guide
 * For Mandrake 10.1, there's maiku's guide
 * For Fedora Core, there's Jarod's guide
 * Wiki how-to for Gentoo
 * The PVR Guide gives helpful how-to guides and a forum
 * Install MythTv using Gentoo

(It's also worth noting that the instructions presented here are heavily inspired by Maiku's excellent guide.) The unofficial MythTV wiki has a list of how-to guides for different Linux or Unix distributions (Debian, FreeBSD, Gentoo, Slackware, Suse, etc.).

Getting your hardware together
MythTV can run on any modern PC that can run Linux. A 'minimum' configuration might be a Pentium-III 500 MHz machine. If attempting to use such a configuration, however, you should consider investing in a capture card that does MPEG-1/2 encoding and decoding on-board, so that the CPU is not overloaded with those tasks. If you have a more powerful computer, you can purchase a less expensive capture card, and let the CPU do the work of MPEG decoding and rendering video.

You will want a healthy amount of RAM/memory (around 1 Gbyte), and will certainly want a big hard drive, so that you can store lots of video (most users get 130 Gbyte drives or bigger). MythTV compresses video using the same compression scheme as a DVD: MPEG-2. This means that one hour of video will use up about 2 Gbytes of space, so you should plan your hard drive needs accordingly.

You will also probably want to get a CD/DVD drive, and may also want to get a DVD writer, so that you can make backups of data, shows, and movies you own. Your computer must also have a sound card (obviously), although it needn't be anything fancy. Having RCA output jacks on the card is helpful, but not required (you can easily purchase an adapter to connect a normal sound card to a TV). Your video card will need to have a TV-out capability (unless you're using a capture card that also has TV-out).

It is also worth thinking about where you will put your MythTV. If your intention is to have it sitting in your living room, directly connected to your TV, then you may want to think about getting quiet hardware. This means finding a hard drive and a power supply fan that don't make too much noise, as well as thinking about what kind of processor (and associated cooling solution) would work best.

Most importantly, you need a capture card. The most widely used capture cards for MythTV are the Hauppauge cards (150, 250, 350, 500). These cards are quite high-performance, many come with a remote control, and most importantly, open-source Linux drivers have been written for these cards.

If you have a set-top box (digital cable box, satellite receiver, etc.) then you will probably want to pick up an "IR blaster." This is a device that can be used to send arbitrary IR pulses. This can be used to allow MythTV to control your set-top box. Essentially, when MythTV wants to change a channel, it will send the appropriate IR signal, through the blaster, which emulates the normal remote control for that set-top box. The My Blaster produced by My.TV is compatible with MythTV and Linux, or you may consider USB-UIRT or buying this, or you can even build your own quite easily (you can find wiring diagrams on the LIRC homepage, or elsewhere).

The most important thing with all the hardware is to make sure that it is Linux compatible (that there is a Linux driver available somewhere). Most modern Linux distributions have compatibility for mainstream hardware built-in, but you should certainly check before buying anything.

Lastly, for those who want a real challenge, in principle you could run MythTV on a PowerPC (PPC) architecture. That is, you could install MythTV on a "Apple/Macintosh" computer that has been converted to run a PPC version of Linux. This will require some extra work, such as downloading the MythTV source code and compiling it yourself for your PPC processor, and probably some fiddling to get the capture card drivers working. Some users have reported success in running the MythTV frontend on Mac OS X (with the backend running on another PC). You can find help for that on the MythOnMacOsx page. You could obviously use a PC as the backend and as the frontend for the TV, and then use a PowerBook as an additional frontend, for editing videos while watching TV, or for portability. If you're interested in this, you can also run the MythTV frontend on a modified Xbox (running Xbox-linux), or even on a diskless Via EPIA M system. For help with running MythTV on an Xbox, read the how-to and download files here. To run a network-booting MythTV frontend, use MiniMyth.

Selecting a Linux distribution
In principle, any Linux distribution should work with MythTV. Of course, your selection of distribution will be affected by many other things. If you are familiar with a particular distro, then your first impulse may be to use that one. However, you should of course check if there are any compatibility issues with the hardware you're planning on using.

KnoppMyth is a variant of the Knoppix distribution that has been specifically customized to make MythTV as easy to install as possible. It includes the MythTV suite and many required drivers. In principle, it would be the easiest distro to use for someone who wants an easy install, and since it only installs what is needed for MythTV, it should run smoothly. In practice, other factors may make KnoppMyth a non-ideal choice. If you want your machine to be used for other tasks, then another distribution might be more flexible and powerful. The minimalist design of KnoppMyth may also make it harder to troubleshoot problems that arise. KnoppMyth is certainly worth a try. When starting out, you could download KnoppMyth, burn it to a CD, install it, and see what happens. If everything works, then great! If you find KnoppMyth isn't working out for you, you can just try a different distro. You can find help for KnoppMyth by visiting the forum.

Many people decide to use Fedora because it is a well-supported and popular distro, and because of the highly detailed how-to guide available for MythTV on Fedora.

Many users of MythTV have reported successful installations when using Mandrake Linux (now known as Mandriva linux). Advantages of Mandrake are a healthy user base, the ability to obtain additional help online with Mandriva (for a small fee), and a fairly user-friendly interface (Mandrake includes many GUI-based configuration tools). The availability of MythTV tutorials aimed at the Mandrake distribution make this a nice choice.

Ultimately the choice of distribution is up to you. Probably the most important thing is to pick a distro that others have had success with, that has lots of support documentation online, and that has an easy method for automated packaging and installing of software over the internet. This will make your experience much smoother!

Software prerequisites
MythTV depends on many other software packages being installed on your system. If you are performing a MythTV installation using a package manager, then probably all these other requirements will be automatically downloaded, installed, and configured properly during your MythTV package installation. However, for those of you attempting a manual install (and for your knowledge), these are the packages that MythTV needs to have installed:
 * kernel source and drivers: You need the source code for the kernel to properly compile the capture card driver. Obviously you need all the drivers required for your hardware to be installed and configured properly.
 * X: You need some sort of window managing system. At a minimum, X must be running, although most people will add a desktop environment (such as Gnome or KDE) on top of that.
 * QT: a multi-platform, Graphical User Interfaces toolkit for C++ programming.
 * Freetype fonts
 * MySQL: A powerful open-source database system. The MythTV backend manages video recordings using MySQL entries. (The recordings themselves are simply stored as normal files.)
 * LAME: Open-source mp3 encoder.
 * LIRC: Linux Infrared Remote Control.

Other information
You probably have lots of questions about how you'll end up configuring your MythTV and about what it'll eventually be able to do. Here's some additional information about MythTV (just to give you a preview of what you'll be installing).

Backend and frontend
Like most Linux software, MythTV uses a client/server architecture. What this means is that one program (mythbackend) deals with capturing video and managing the database, while another program (mythfrontend) deals with showing the user video and providing the on-screen interface. Why split it into two programs? There are many advantages. For one, if mythfrontend freezes or crashes, the backend will continue recording and managing properly. This makes the system rather robust. Secondly, this architecture means that you can have one computer run the backend, and use a different computer as the frontend. The frontend computer will log into the backend to get the video data. This gives you quite a bit of flexibility. You can even have multiple computers attached to different televisions, each running a separate instance of the frontend, but all getting their video from the same backend. This gives you even more flexibility. The frontend computers could have less hardware and be quieter. Some users have a laptop that also runs the frontend, so they can watch TV in bed, or even edit recordings while watching something else on TV. You can even copy recordings to your laptop and take them on vacation with you. There are many possibilities.

With regard to configuring MythTV, remember that the frontend and backend are separate. Even if you exit the frontend, the backend is probably still running. During the configuration phase, you may need to exit the backend and restart it for changes to take effect. In principle you can do this without even shutting down the frontend.

Remote controls
Will you be able to control your MythTV with a remote control? Yes, it's possible. A program called LIRC allows Linux to interface with remote controls. Some capture cards come with remote controls. LIRC can be configured to receive data from these. A number of IR detectors can also be interfaced via LIRC, enabling you to use other remotes. LIRC in principle can be configured to interface with multiple remotes and IR blasters.

TV listings
Will you be able to have an on-screen program guide? How will you get your listings? In many places, you can sign up for a DataDirect account with Zap2It. By answering a simple survey, you'll receive a subscription that allows you to download program listings. MythTV has built-in functionality to connect to that service. If you need a "certificate code" for zap2it, you can use ZIYN-DQZO-SBUT (this lets zap2it know that you're using MythTV). The code TGYM-ZKOC-BUTV may also work.

Set-top box
Will you be able to control your satellite or cable provider box (set-top box)? What you can do is use a device called an IR Blaster. This device can be programmed to send IR pulses that mimic the signals from your remote control for your set-top box. Essentially, whenever MythTV needs to change a channel, it will send a signal to your set-top box to change channels as required. This introduce an additional delay in switching channels, which can be annoying if you're trying to "channel surf" on live TV. However, most users of MythTV change viewing habits, and rarely watch live TV anymore.

Many set-top boxes have input connections (serial, USB, etc.). In principle, a direct connection between your MythTV and the box should be possible. In practice, few cable providers or set-top box companies will give out the required details in order to make your box work. It is much simpler to use an IR blaster.

LIRC Config is a free tool by the makers of the USB transceiver CommandIR that generates configuration files for remotes and set-top-boxes online.

Capture card
In order to use a capture card, you of course need a Linux driver. The ivtv driver is an open-source driver written for Linux to enable interfacing with capture cards. This driver is geared towards the Hauppauge WinTV PVR-250 and 350 cards, although other cards are also supported. The people at Hauppauge have provided the people at ivtv with some useful information, which has enabled a highly functional driver to be written.

Plugins
MythTV's functionality has been greatly extended by a large number of plugins. In most modern MythTV packages, all of these plugins are wrapped together into a "MythPlugin" package. Thus, they do not need to be installed individually. Available plugins include:
 * MythBrowser: allows web browsing on your MythTV
 * MythDVD: DVD library features
 * MythGallery: image gallery/slideshow plugin
 * MythGame: lets you play video games on your MythTV using xmame frontend
 * MythMusic: play music (with visualizations) through MythTV
 * MythNews: RSS feed reader
 * MythPhone: video conferencing plugin
 * MythVideo: play any video file in MythTV
 * MythWeather: get localized weather forecasts
 * MythWeb: lets you control your MythTV from anywhere, using a web browser