MythTV is a software video encoder, which means that it uses a fairly generic "dumb" video capture card to get frames of video, encodes them using the CPU on your motherboard and writes them to disk. High-end video capture cards and devices like the Tivo and RePlay have dedicated encoder chips which use specialized hardware to convert the video stream to the MPEG-2 format without using the motherboard CPU. The main CPU has the responsibility of running the Operating System and reading and writing the encoded frames to the disk. These tasks have fairly low CPU requirements compared to encoding video, which is why a device like a Series 1 Tivo can run with only 16MB of RAM and a 54Mhz CPU.
Currently, there are no known MPEG-2 encoder cards that have video4linux drivers which would be suitable for use with MythTV. Once the drivers are written, support for hardware MPEG-2 encoders can be integrated.
There are many variables that go into the question: "How fast a CPU do I need to run MythTV"? Obviously, the faster your CPU, the better your experience will be with MythTV. Performing the "Watch TV" function, where the CPU is both encoding and decoding video simultaneously to allow Pause, Fast Forward and Rewind functions for live TV requires more CPU then just encoding or decoding. MythTV also supports multiple encoder cards in a single PC, thereby increasing the CPU requirements if you plan on simultaneously encoding multiple programs.
Here are a few data points:
NOTE: You must use DMA for hard drive access to prevent choppy or jittery video. Red Hat Linux 8.0 apparently does not enable DMA at boot time. See the Troubleshooting Section for instructions on how to do this.
Mark Cooper has setup a hardware database at http://www.goldfish.org/~mcooper/pvrhw/. The website will let you browse what other users have reported as their hardware configuration, and how happy they are with the results.
There are a few ways of installing programs on Linux systems; you can either use the graphical tools that come with your distribution, or you can use command-line utilities. Either system will get the job done, and it all depends on your comfort level with Linux.
NOTE: you must have the MySQL database software installed on a system to store the master database. This does not necessarily mean that MySQL must run on one of the MythTV boxes.
In order to compile MythTV, we need to make sure that the software it needs is installed. As of 2003-03-15, this list includes perl (for XMLTV), mysql, gcc, freetype2-devel, XFree86-devel, qt-devel and lame. If you're going to use a remote control with MythTV, you're going to need the cdialog package in order to compile lircd.
NOTE: QT v3.1 is recommended, but not required.
NOTE: If you are going to be using RPMs to install various
components, you should be aware that not all packages include the necessary
headers for compiling packages. If you're having trouble compiling, ensure
that you've installed the -devel
version of a prerequisite.
NOTE: Other than where noted, Mandrake 9.1 users may follow the Mandrake 9.0 instructions.
There appears to be issues with ALSA and simultaneously recording and playing sound, which is a core requirement for MythTV. If you are not running ALSA 0.9.0rc6 or higher and experience lock-ups of your system when trying to use MythTV, then please check the main ALSA website and upgrade to the latest version, or see if your distribution has already packaged the latest ALSA drivers.
On systems running KDE, a tool which will allow you to see what packages are available and if they're installed on your system can be accessed by clicking K->Configuration->Packaging->KPackage
There are many inter-related modules, so make sure that you've got the main package for each one, and not a sub package for an unrelated item. For example, there are many modules that have "perl" in them; some are a part of the apache web server, others are a part of the perl distribution. In each case, we're looking to make sure that the primary module is getting installed.
Click the magnifying glass or press CTRL-F and enter "perl" as your search term. You should find it under the "Perl" folder. You need at least the perl 5.80 base package installed. If not, click on the "Mark" button.
If you are going to be installing mysql on this system, search for mysql - it should be under "Databases". Make sure that mysql and mysql-clients are installed. If not, click on "Mark".
Search for gcc. You're going to need gcc and gcc-c++ installed.
Search for freetype2. Make sure that you've got freetype2 and freetype2-devel installed.
Search for XFree86-devel.
Finally, check for qt. You'll need libqt3-devel (under folder "KDE and
Qt") and libqt3 ("Libraries").
NOTE: Mandrake 9.1 has removed the MySQL modules from the default
installation. Ensure that you install libqt3-mysql
.
Make sure that cdialog is installed if you want to use MythTV with a remote control.
alsa-utils is needed for setting the volume. MythTV now has native volume support, but you may have a special configuration that necessitates an external program to adjust your volume settings. If this is the case, then you can disable native volume support.
If you marked anything to install, click on Install Marked. Click "Yes" or OK if you get a message about satisfying dependencies.
Red Hat Linux 8.0 does not have the same graphical package manager used by other distributions, so you will need to use Red Hat's package manager. This is the same utility you saw upon installation from the Red Hat Linux 8.0 installation CD, and it allows you to select packages at installation time, or once the system is up and running. You can access this program by selecting
RedHatMenu>System Settings>Packages
If you did a typical Desktop install of Red Hat Linux 8.0 make sure you have selected:
Click Install to continue.
You can not install qt-MySQL, a necessary prerequisite, graphically. To install this package using the command line do
$ up2date --solvedeps qt-MySQL
NOTE: Red Hat Linux users, ensure that the correct symlinks have been created for the XFree-86 development libraries:
# ln -s /usr/X11R6/lib/libXext.so.6 /usr/X11R6/lib/libXext.so
# ln -s /usr/X11R6/lib/libX11.so.6 /usr/X11R6/lib/libX11.so
This section details the various methods for installing pre-requisites from the command line.
urpmi is the simplest tool for installation of packages from the command line. The difficult part is the configuration aspect. The following website http://plf.zarb.org/~nanardon/urpmiweb.php will allow you to choose a mirror site and then present the command-line configuration text for that mirror. You will most likely need to add a "Contrib" mirror to your setup.
Mandrake 8.2 does not have a pre-packaged libqt3-devel, so you must compile and install this manually. The following command will install the pre-requisites for qt3, so don't skip this step. The simplest tool for installing packages from the command line is urpmi.
Open a shell, and execute the following. You may get asked a number of questions regarding dependencies. It's best to answer "YES".
$ urpmi mesa-common-devel libmng1-devel mysql-devel libunixodbc2-devel
$ urpmi postgresql-devel xfree86-static-libs
Once all of the pre-requisites have been installed, the next step is to
obtain and compile the source RPM.
Go to
http://www.rpmfind.net and search for
qt3
. There will be a number of different versions available. As
of 2002-12-02, the latest version for Mandrake is called
qt3-3.0.5-7mdk.src.rpm
. Unless you are running Mandrake
Cooker (the beta version of the next release of Mandrake), make sure to
download the standard "Mandrake" release. Download the .src.rpm
file to a directory that you can find.
$ su
# cp qt3-3.0.5-7mdk.src.rpm /usr/src/RPMS/SRPMS
# cd /usr/src/RPMS/SRPMS
# rpm --rebuild qt3-3.0.5-7mdk.src.rpm
# cd ../RPMS
# ls -l
The "ls -l" command will show you a directory listing. There should be two
files, one will be named "qt3" and the other will be "qt3-devel". The full
filenames will vary, so one you know the filename, you can install them with
# rpm -Uvh [filename1]
# rpm -Uvh [filename2]
Once this has completed (it can take a while, so please be patient),
continue by following the Mandrake 9.0 instructions.
The simplest tool for installing packages from the command line is urpmi.
Open a shell, and execute the following, all on the same line. You may get asked a number of questions regarding dependencies. It's best to answer "YES".
$ su
# urpmi perl mysql gcc gcc-c++ freetype2-devel cdialog alsa-utils
# urpmi XFree86-devel
NOTE: Mandrake 8.2 users, do not execute the following command. You've already manually installed the files in the previous section.
# urpmi libqt3-devel
NOTE: Mandrake 9.1 users, execute the following
command.
# urpmi libqt3-mysql
However, you might get this when you execute the command above:
[root@pvr root]# urpmi perl mysql gcc gcc-c++ freetype2-devel libqt3-devel cdialog alsa-utils XFree86-devel
everything already installed
In that case, you're ready to move to the next section.
[Please submit instructions]
If KDE has not been installed on your system: Edit
/etc/make.conf
and locate the "USE" variable. If the line is
commented out, remove the comment. The line should have at least:
USE="mysql qt alsa"
Next you need to build KDE. If you don't plan on using the ebuilds as
described in the Gentoo section then you also need to install lame.
$ emerge kde lame mysql
If KDE has already been installed, by default, QT libraries with SQL support
are not built. To enable SQL support, add "mysql qt" to your USE variable in
/etc/make.conf
and rebuild QT by running
$ emerge qt
Install MySQL if this is the master system:
$ emerge mysql
All the necessary files will be downloaded and built. This will take a lot of time, even on a fast machine if you have to do a full KDE build.