diff options
Diffstat (limited to 'abs/core/local-website/htdocs/mythtv-doc/mythtv-HOWTO-5.html')
-rw-r--r-- | abs/core/local-website/htdocs/mythtv-doc/mythtv-HOWTO-5.html | 426 |
1 files changed, 426 insertions, 0 deletions
diff --git a/abs/core/local-website/htdocs/mythtv-doc/mythtv-HOWTO-5.html b/abs/core/local-website/htdocs/mythtv-doc/mythtv-HOWTO-5.html new file mode 100644 index 0000000..0ecf975 --- /dev/null +++ b/abs/core/local-website/htdocs/mythtv-doc/mythtv-HOWTO-5.html @@ -0,0 +1,426 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<HTML> +<HEAD> + <META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 0.9.21"> + <TITLE>Installing and using MythTV: Downloading and compiling. </TITLE> + <LINK HREF="mythtv-HOWTO-6.html" REL=next> + <LINK HREF="mythtv-HOWTO-4.html" REL=previous> + <LINK HREF="mythtv-HOWTO.html#toc5" REL=contents> +</HEAD> +<BODY> +<A HREF="mythtv-HOWTO-6.html">Next</A> +<A HREF="mythtv-HOWTO-4.html">Previous</A> +<A HREF="mythtv-HOWTO.html#toc5">Contents</A> +<HR> +<H2><A NAME="DownloadAndCompile"></A> <A NAME="s5">5.</A> <A HREF="mythtv-HOWTO.html#toc5">Downloading and compiling. </A></H2> + +<P>Get MythTV from the +<A HREF="http://www.mythtv.org">http://www.mythtv.org</A> web site. There are two installation methods +you may choose from. The first is to download the latest release in tarball +format and compile. The tarball release of MythTV should work on a wide +variety of systems and should be the preferred method for new users. If you +wish to use the <B>subversion</B> copy of MythTV you may obtain it from +<A HREF="http://svn.mythtv.org">http://svn.mythtv.org</A></P> +<P> +<FIGURE> +<EPS FILE="stop.eps"> +<IMG SRC="stop.png"> +<CAPTION><B>NOTE</B>: If you are going to use <B>subversion</B> to +compile MythTV rather than using the distribution tarball, you <EM>must</EM> +join the +<A HREF="http://www.mythtv.org/mailman/listinfo/mythtv-commits/">http://www.mythtv.org/mailman/listinfo/mythtv-commits/</A> and +<A HREF="http://www.mythtv.org/mailman/listinfo/mythtv-dev/">http://www.mythtv.org/mailman/listinfo/mythtv-dev/</A> mailing lists to +keep up to date with the current status of the code. Code obtained from +subversion has no guarantees regarding stability, etc.</CAPTION> +</FIGURE> +</P> +<P>If you are in North America you will use the Schedules Direct grabber which is +built-in to MythTV. You <EM>do not</EM> need to install XMLTV (so you may +skip XMLTV-related instructions), but you need <B>wget</B> version 1.9.1 +or higher.</P> +<P>Get XMLTV from +<A HREF="http://xmltv.sourceforge.net">http://xmltv.sourceforge.net</A>. Download the latest version (0.5.51).</P> +<P> +<HR> +<PRE> +NOTE for Mandriva users: If you have added a "PLF" mirror, you may skip the +next step and type: + +# urpmi libmp3lame0 libmp3lame0-devel + +After downloading, be sure to install both: +# rpm -Uvh lame* +</PRE> +<HR> +</P> +<P>Get lame from +<A HREF="http://lame.sourceforge.net/">http://lame.sourceforge.net/</A>. Download the source code to v3.96.1 +by following the links from "Using" through "Download...".</P> + +<H2><A NAME="ss5.1">5.1</A> <A HREF="mythtv-HOWTO.html#toc5.1">Building LAME</A> +</H2> + +<P>Open a shell and switch to the directory where you saved lame. +<BLOCKQUOTE><CODE> +<PRE> +$ tar -xzf lame-3.96.1.tar.gz +$ cd lame-3.96.1 +$ ./configure +$ make +$ make test +$ su +# make install +</PRE> +</CODE></BLOCKQUOTE> + +Check that it worked: +<BLOCKQUOTE><CODE> +<PRE> +# ls -l /usr/local/lib +-rw-r--r-- 1 root root 381706 Nov 4 14:22 libmp3lame.a +-rwxr-xr-x 1 root root 674 Nov 4 14:22 libmp3lame.la* +lrwxrwxrwx 1 root root 19 Nov 4 14:22 libmp3lame.so -> +libmp3lame.so.0.0.0* +lrwxrwxrwx 1 root root 19 Nov 4 14:22 libmp3lame.so.0 -> +libmp3lame.so.0.0.0* +-rwxr-xr-x 1 root root 360197 Nov 4 14:22 +libmp3lame.so.0.0.0* + +# exit +$ +</PRE> +</CODE></BLOCKQUOTE> +</P> + +<H2><A NAME="ss5.2">5.2</A> <A HREF="mythtv-HOWTO.html#toc5.2">XMLTV</A> +</H2> + +<H3>Red Hat Linux and Fedora Core:</H3> + +<P>RPMs for <B>XMLTV</B> and all of its dependencies can be obtained from +<A HREF="http://ATrpms.net/name/xmltv/">http://ATrpms.net/name/xmltv/</A>. The web page has a +list of all the dependent packages you must download and install. +<BLOCKQUOTE><CODE> +<PRE> +# rpm -Uvh xmltv* perl* +</PRE> +</CODE></BLOCKQUOTE> +</P> +<P>If you install from this location you may skip to +<A HREF="#manually_building_mythtv">Manually building MythTV</A>.</P> +<H3>Mandriva</H3> + +<P>RPMs for <B>XMLTV</B> and all of its dependencies are located in +Mandriva's "contrib". If you have added a contrib mirror, try installing +<B>XMLTV</B>: +<BLOCKQUOTE><CODE> +<PRE> +# urpmi xmltv xmltv-grabbers +</PRE> +</CODE></BLOCKQUOTE> + +If this does not work, it is possible that contrib for your Mandriva version +does not have <B>XMLTV</B>, so you may install the XMLTV prerequisites by typing: +<BLOCKQUOTE><CODE> +<PRE> +# urpmi perl-xml-twig perl-xml-writer perl-datemanip perl-libwww-perl +</PRE> +</CODE></BLOCKQUOTE> +</P> +<P>and skip straight to the XMLTV compilation step.</P> + +<H3>Manual installation</H3> + +<P> +<A NAME="untarring_xmltv"></A> Untar the xmltv file: +<BLOCKQUOTE><CODE> +<PRE> +$ tar -xjf xmltv-0.5.51.tar.bz2 +</PRE> +</CODE></BLOCKQUOTE> + +Install the xmltv prerequisites. The following prerequisites are the +minimum required; when you actually start running the xmltv setup program it +may alert you to other modules that are required.:</P> +<P> +<BLOCKQUOTE><CODE> +<PRE> +$ su +# perl -MCPAN -e shell +cpan> install XML::Twig +cpan> install Date::Manip +Date::Manip is up to date. +cpan> install LWP +cpan> install XML::Writer +cpan> exit +</PRE> +</CODE></BLOCKQUOTE> +</P> +<P>Change to the XMLTV directory and compile it: +<BLOCKQUOTE><CODE> +<PRE> +$ cd xmltv-0.5.51 +$ perl Makefile.PL +</PRE> +</CODE></BLOCKQUOTE> + +You can answer "N" to the tv_check, tv_pick_cgi questions. Say "yes" to +the grabber required for your location.</P> +<P>You may get errors about modules not being installed. You will need to +resolve any missing dependencies at this point, or your grabber may not work +correctly. +<BLOCKQUOTE><CODE> +<PRE> +$ make +$ make test +$ su +# make install +# exit +</PRE> +</CODE></BLOCKQUOTE> +</P> + +<H2><A NAME="ConfigureSD"></A> <A NAME="ss5.3">5.3</A> <A HREF="mythtv-HOWTO.html#toc5.3">Configuring the Schedules Direct service </A> +</H2> + +<P>As of 2007-09-01, Tribune Media Services will no longer offer free guide +data. Schedules Direct is a non-profit organization which has licensed the +data to make it available to users of Freeware and Open Source applications.</P> +<P>If you wish to use Schedules Direct, you'll need to establish a user +account. Go to +<A HREF="http://www.schedulesdirect.org">http://www.schedulesdirect.org</A> and click on the "Membership" link. </P> +<P>Once you've read and agreed to the Subscriber Agreement, Terms of Use and +Privacy Policy proceed to the lineup choices and configure your account for +your particular location and the channels that you have. This configuration +will be imported into MythTV when you first run the <B>mythtv-setup</B> +program.</P> + +<P> +<A NAME="manually_building_mythtv"></A> </P> +<H2><A NAME="ss5.4">5.4</A> <A HREF="mythtv-HOWTO.html#toc5.4">Manually building MythTV</A> +</H2> + +<P>If you are going to use <B>subversion</B>, execute the following +instructions to obtain the latest version of MythTV:</P> +<P> +<BLOCKQUOTE><CODE> +<PRE> +$ mkdir mythtv +$ svn co http://svn.mythtv.org/svn/trunk/ mythtv +$ cd mythtv +</PRE> +</CODE></BLOCKQUOTE> +</P> +<P>To use a release version, you can execute: +<BLOCKQUOTE><CODE> +<PRE> +$ mkdir mythtv-release-0.21 +$ svn co http://svn.mythtv.org/svn/branches/release-0-21-fixes/ mythtv-release-0.21 +$ cd mythtv-release-0.21 +</PRE> +</CODE></BLOCKQUOTE> +</P> +<P><B>NOTE</B>: Using a svn version of the code allows you to stay +up-to-date with changes. So, if there's an update to the 0.21 release and +you originally obtained it using svn, you could enter the +mythtv-release-0.21 directory and type "svn up", which will update your copy +with the fixed version from the website. You would then recompile and +install the updated 0.21 code.</P> +<P>If you are using the tarball, then unpack it: +<BLOCKQUOTE><CODE> +<PRE> +$ tar -xjf mythtv-0.21.tar.bz2 +$ cd mythtv-0.21 +$ ./configure +</PRE> +</CODE></BLOCKQUOTE> +</P> +<P>If you wish to change options, run <B>./configure --help</B> to +see what is available and to override and automatically detected options. +See the <CODE>config.log</CODE> file after running <B>configure</B> to see +previous runs.</P> +<P>To compile: +<BLOCKQUOTE><CODE> +<PRE> +$ make -j 2 +</PRE> +</CODE></BLOCKQUOTE> +</P> +<P>The MythTV compile can take advantage of multiple CPUs, SMP and +Hyperthreading. If you want to build MythTV on a multi-CPU machine (or with +<B>distcc</B>), specify "-j numjobs", where "numjobs" is greater than 2. +In the above example, we had two concurrent jobs executing, which is +recommended for a single CPU system. Do not set the number of jobs too +high, or your compile will actually take longer to complete than it would if +you did a "normal" build.</P> +<P>If you are using <B>distcc</B>, and you had two other host machines (red, blue) +participating, you would do something like: +<BLOCKQUOTE><CODE> +<PRE> +$ export DISTCC_HOSTS='localhost red blue' +$ make -j 6 CXX=distcc +</PRE> +</CODE></BLOCKQUOTE> +</P> +<P>The actual speed-up, if any, is dependant on a number of factors, such as +number of CPUs / hosts, etc. The <B>distcc</B> documentation recommends +using a <CODE>-j</CODE> value of twice the number of CPUs available to keep all +of them busy.</P> +<P>Some timing information. The following should only be used for +illustration; your actual results may vary. The test involves a complete +<CODE>make distclean</CODE> to the final binary. +<UL> +<LI>P4 3.2Ghz HT: "standard" make: 12m 49s</LI> +<LI>P4 3.2Ghz HT: make -j 2: 11m 24s </LI> +</UL> +</P> +<P>In the above example, we see that with a single CPU, a multi-stage +<B>make</B> does not significantly decrease compile time.</P> +<P>Once the compile is done, switch to superuser: +<BLOCKQUOTE><CODE> +<PRE> +$ su +# make install +# exit +</PRE> +</CODE></BLOCKQUOTE> +</P> +<P> +<FIGURE> +<EPS FILE="stop.eps"> +<IMG SRC="stop.png"> +<CAPTION><B>NOTE</B>: subsequent configuration steps assume that you are within +the MythTV directory that you <CODE>cd</CODE>'d to above.</CAPTION> +</FIGURE> +</P> + +<H3>Enabling real-time scheduling of the display thread.</H3> + +<P>MythTV supports real-time scheduling of the video output thread. There +are three ways to go about enabling this: You can use rlimits, you can use +the realtime security module, or on older systems you can SUID the +executable. Enabling real-time scheduling is optional, but can make the +video display smoother, especially if you are decoding HDTV.</P> + +<H3>rlimits</H3> + +<P>The rlimits method is the preferred method and is included in Linux +2.6.12 and above. Unfortunately, you need PAM version 0.79 or above, which +may not be supported by your distribution yet. Assuming anyone running +<B>mythfrontend</B> is in the audio group and rlimits are supported, all +you need to do is place this in your <CODE>/etc/security/limits.conf</CODE></P> +<P> +<BLOCKQUOTE><CODE> +<PRE> +* - rtprio 0 +* - nice 0 +@audio - rtprio 50 +@audio - nice 0 +</PRE> +</CODE></BLOCKQUOTE> +</P> + +<H3>realtime module</H3> + +<P>The second option is to use the Linux realtime kernel module. +This is will be phased out over time, but is currently supported +by many distributions that do not yet support rlimits. If you are +not using the distribution kernel you must configure your kernel +with: +<BLOCKQUOTE><CODE> +<PRE> +Security options : [*] Enable different security models +Security options : [M] Default Linux Capabilties +</PRE> +</CODE></BLOCKQUOTE> + +You may also need to install the realtime module, using your distribution's +realtime package. Assuming the users who will be running +<B>mythfrontend</B> will be in the audio group you can get the GUID of a named +group like so: +<BLOCKQUOTE><CODE> +<PRE> +$ grep audio /etc/group +</PRE> +</CODE></BLOCKQUOTE> + +If the number printed out from the grep was 18, you can now load +this module as root before starting <B>mythfrontend</B>: +<BLOCKQUOTE><CODE> +<PRE> +# modprobe realtime gid=18 +</PRE> +</CODE></BLOCKQUOTE> +</P> + +<H3>run as root option (not safe)</H3> + +<P>The final and least preferred option is to set the sticky bit +on the <B>mythfrontend</B> executable. This <B>opens a security hole</B>, +but is the only option on systems that do not support either +rlimits or the realtime module. This does not work on modern +distributions either, and is <B><EM>not recommended</EM></B> +on any system connected to the Internet. This may also make it +impossible to debug MythTV without running <B>gdb</B> as root. If you +would still like to do this, you just need to run this as root: +<BLOCKQUOTE><CODE> +<PRE> +# chmod a+s /usr/local/bin/mythfrontend /usr/local/bin/mythtv +</PRE> +</CODE></BLOCKQUOTE> +</P> + +<H3><A NAME="frontend-only"></A> Frontend-only configuration </H3> + +<P>Since MythTV uses a client/server architecture, multiple frontend +computers can simultaneously access content on a Myth system. Live TV, +watching and scheduling recordings, etc. are all possible from multiple +frontends.</P> +<P>To get a better picture of what is needed to run a frontend, note the +following: +<LI>You do NOT need the MySQL server installed on your remote frontend</LI> +<LI>You do NOT need XMLTV installed on your remote frontend</LI> +<LI>You do NOT need to run the mythtv-setup program on +your frontend machine</LI> +</P> +<P>Other than the exclusion of the MySQL server and XMLTV, the MythTV +compilation procedure is the same as when you're setting up both a backend +and a frontend. However, you <EM>will</EM> need to install the database +access libraries.</P> +<P>Once MythTV is compiled and installed: +<LI>Run the mythtv-setup program on your Master backend. Under the "General" +menu, change the IP address of the current machine (by default, "127.0.0.1") +to the real external IP address - 127.0.0.1 is the loopback address and no +external machine can access it. Change the Master Server IP setting to the +same IP address as well.</LI> +<LI>Run the mythfrontend program on your frontend machine, +and a "Database Configuration" screen should appear. +Set the "Host name" field to point to your Master backend's IP address.</LI> +</P> + +<H2><A NAME="Gentoo_build"></A> <A NAME="ss5.5">5.5</A> <A HREF="mythtv-HOWTO.html#toc5.5">Gentoo </A> +</H2> + +<P>Installation of MythTV on Gentoo consists of simply emerging the desired +ebuild because all of the packages are now part of the official Portage tree. +<BLOCKQUOTE><CODE> +<PRE> +$ su - +# emerge --sync # make sure portage is up to date. +# vi /etc/make.conf +</PRE> +</CODE></BLOCKQUOTE> + +Add mysql to your USE variable. i.e. <CODE>USE="mysql ...."</CODE> +<BLOCKQUOTE><CODE> +<PRE> +# emerge mythtv +</PRE> +</CODE></BLOCKQUOTE> +</P> +<HR> +<A HREF="mythtv-HOWTO-6.html">Next</A> +<A HREF="mythtv-HOWTO-4.html">Previous</A> +<A HREF="mythtv-HOWTO.html#toc5">Contents</A> +</BODY> +</HTML> |