<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>The HyRax Macrocosm &#187; MythTV</title>
	<atom:link href="http://www.serenux.com/tag/mythtv/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.serenux.com</link>
	<description>Life, the Universe and Ubuntu.</description>
	<lastBuildDate>Tue, 10 Jan 2012 06:59:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>HowTo: Create a Diskless workstation that boots from PXE using Ubuntu</title>
		<link>http://www.serenux.com/2011/04/howto-create-a-diskless-workstation-that-boots-from-pxe-using-ubuntu/</link>
		<comments>http://www.serenux.com/2011/04/howto-create-a-diskless-workstation-that-boots-from-pxe-using-ubuntu/#comments</comments>
		<pubDate>Sat, 30 Apr 2011 13:25:04 +0000</pubDate>
		<dc:creator>HyRax</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Hard-Drive]]></category>
		<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Lucid]]></category>
		<category><![CDATA[MythTV]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[PXE]]></category>
		<category><![CDATA[Storage]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.serenux.com/?p=772</guid>
		<description><![CDATA[Diskless booting is where a PC starts up purely from a network connection. It does not have a physical hard-drive in it to start from in the traditional manner. Why would you want to do this? Well, say for example you have a MythTV Frontend PC. For the most part, most Frontends are dedicated PC&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>Diskless booting is where a PC starts up purely from a network connection. It does not have a physical hard-drive in it to start from in the traditional manner.</p>
<p>Why would you want to do this? Well, say for example you have a MythTV Frontend PC. For the most part, most Frontends are dedicated PC&#8217;s connected to a TV or projector that are not used for any other purpose, so technically there is really no need to have a hard-drive inside one as nothing new will ever be stored (all the media is streamed from the Backend server). There&#8217;s also the added bonus of less noise by not having a hard-drive installed.</p>
<p>Another good example of using a Diskless boot environment is for performing offline virus scans of Windows based PC&#8217;s in a safe environment that is not Windows, using tools like ClamAV. In a corporate environment, having a &#8220;normal&#8221; installation makes it easier to setup default settings that normally don&#8217;t suit booting up from an Ubuntu Live CD, such as corporate Proxy settings. Making a Diskless Boot setup is far easier than creating a customised Live CD in this instance.</p>
<p>So how exactly do you create a diskless booting PC?</p>
<p><span id="more-772"></span><strong><em>Pre-requisites:</em></strong></p>
<ul>
<li>First up, you need a working PXE server. If you haven&#8217;t built one yet, you can refer to my <a title="HowTo: Setup your own PXE Boot Server using Ubuntu" href="http://www.serenux.com/2010/05/howto-setup-your-own-pxe-boot-server-using-ubuntu-server/" target="_blank">previous tutorial on how to build one</a>.</li>
<li>Sufficient space to store a typical Ubuntu Desktop install. I would recommend having at least 10GB free to allow space for both the OS and any additional apps you might install.</li>
<li>A PC that you will using as your diskless machine that has the ability to boot from PXE.</li>
<li>A temporary hard-drive for your diskless machine that we will be using to do our initial build on.</li>
<li>A fast network. Diskless booting is only useful if your network can transfer data quickly. I would recommend that you use a gigabit network.</li>
<li>It is recommended to have at least 2GB RAM on your diskless PC, primarily because we will not be running a swap file or swap partition (swapping over a network connection is just silly).</li>
<li>Ubuntu 10.04.2 LTS was used for this tutorial, but you should be able to use just about any release of Ubuntu. Note: The version of Ubuntu on your PXE server and the version of Ubuntu you are turning into diskless boot does <span style="text-decoration: underline;">not</span> have to be the same version, but I would recommend using 10.04.2 LTS or later.</li>
</ul>
<p><strong><em>What to do:</em></strong></p>
<ol>
<li>First up, install the temporary hard-disk into your PC that is going to become diskless. You can attach it in the traditional way or connect it via USB.<br />
.</li>
<li>Perform a normal installation of Ubuntu Desktop Edition onto the hard-drive of your PC.<br />
.</li>
<li>Once installed, update the system with any outstanding system updates.<br />
.</li>
<li>Install any additional apps you wish to utilise on this machine, such as MythTV.<br />
.</li>
<li>Once you are satisfied that your installation is setup the way you want it, we need to prepare the installation to be able to boot via PXE. Start by opening up a terminal and type in the following commands:
<pre><span style="color: #000080;">$ cd ~
$ sudo nano /etc/initramfs-tools/initramfs.conf</span></pre>
</li>
<li>You will now be looking at a text configuration file in the Nano text editor. This is the configuration file that controls how the boot-time RAM disk image is created. We need to modify it so that we can create a PXE-ready version of the RAM disk image instead of the usual type. Scroll down until you find the configuration line that looks like:
<pre><span style="color: #000080;">MODULES=most</span></pre>
<p>&#8230;and modify it so that is now looks like:</p>
<pre><span style="color: #000080;">MODULES=netboot</span></pre>
</li>
<li>Scroll down a little further until you see the line:
<pre><span style="color: #000080;">BOOT=local</span></pre>
<p>&#8230;and change it to read:</p>
<pre><span style="color: #000080;">BOOT=nfs</span></pre>
</li>
<li>Press CTRL+X, then &#8220;Y&#8221; and then &#8220;Enter&#8221; to save your changes. You will be returned to the Terminal prompt.<br />
.</li>
<li>Now let&#8217;s create our custom RAM Disk image using the following command:
<pre><span style="color: #000080;">$ sudo mkinitramfs -o ./initrd.img</span></pre>
</li>
<li>Once that has finished, we also need an unmodified copy of the current kernel you are running:
<pre><span style="color: #000080;">$ cp /boot/vmlinuz-`uname -r` ./vmlinuz</span></pre>
</li>
<li>Now we need to prep the server. First up, we need to setup a way to transfer our temporary hard-disk contents to the PXE server, and we also need to ready how the PXE server will serve the data to the diskless workstation when booting. We will be using the Network FileSystem or NFS for short. On your Ubuntu PXE Server, open a terminal and type in the following:
<pre><span style="color: #000080;">$ sudo apt-get install nfs-kernel-server</span></pre>
</li>
<li>Once the NFS server is installed, we need to setup the directory that will store and serve the Diskless system&#8217;s files. Assuming you have all your PXE related data under /srv/tftp, let&#8217;s create the following for our Diskless station data:
<pre><span style="color: #000080;">$ sudo mkdir -p /srv/nfs/disklessboot</span></pre>
</li>
<li>Now let&#8217;s tell the NFS server about this new directory:
<pre><span style="color: #000080;">$ sudo nano /etc/exports</span></pre>
</li>
<li>In the text file that appears in the Nano text editor, scroll to the bottom of the file and add the following line:
<pre><span style="color: #000080;">/srv/nfs/disklessboot          *(rw,no_root_squash,async)</span></pre>
<p>The above will allow read/write access to the path /srv/nfs/disklessboot on your PXE server from any incoming IP address.</li>
<li>Save your changes by pressing CTRL+X, then &#8220;Y&#8221; and then &#8220;Enter&#8221;.<br />
.</li>
<li>Now activate the new NFS share by using the following command:
<pre><span style="color: #000080;">$ sudo exportfs -a</span></pre>
</li>
<li>We&#8217;re nearly there! Now we just need to transfer the contents of our temporary workstation hard-drive to the new NFS share. On your soon-to-be-diskless PC (<span style="text-decoration: underline;">not</span> the server), and assuming that your PXE server&#8217;s IP address is 192.168.0.10, type the following in a Terminal:
<pre><span style="color: #000080;">$ mkdir /dev/shm/nfs
$ sudo mount -t nfs -onolock 192.168.0.10:/srv/nfs/disklessboot /dev/shm/nfs</span></pre>
<p>The above will create a directory in your RAM disk to mount the PXE server&#8217;s NFS share on and the second command will mount the NFS share /srv/nfs/disklessboot in the directory you just created in your RAM disk locally, thus allowing you to now read and write data to that NFS share by using /dev/shm/nfs locally.</li>
<li>Now let&#8217;s copy the OS files from the temporary hard-disk to the PXE server&#8217;s NFS share:
<pre><span style="color: #000080;">$ sudo cp -avx /. /dev/shm/nfs/.
$ sudo cp -avx /dev/. /dev/shm/nfs/dev/.</span></pre>
<p>The above commands will take a minute or two to finish and will show you a giant list of files being copied.</li>
<li>We are now done with the soon-to-be-diskless PC, so shut it down and remove your temporary hard-drive.<br />
.</li>
<li>Go back to your server and type in the following at the Terminal prompt:
<pre><span style="color: #000080;">$ sudo mkdir -p /srv/tftp/disklessboot
$ sudo cp /srv/nfs/disklessboot/home/USERNAME/vmlinuz /srv/tftp/disklessboot/
$ sudo cp /srv/nfs/disklessboot/home/USERNAME/initrd.img /srv/tftp/disklessboot/</span></pre>
<p>Note: Replace USERNAME above with whatever your username was on the temporary hard-disk setup, eg: &#8220;/home/jbloggs/&#8221;)</li>
<li>We now need to change the network setup of the diskless boot install so that it doesn&#8217;t try to configure itself with a new IP address on boot (since it&#8217;ll already have one when you do the initial PXE boot):
<pre><span style="color: #000080;">$ sudo nano /srv/nfs/disklessboot/etc/network/interfaces</span></pre>
</li>
<li>Look for a reference to &#8220;eth0&#8243; which is your first ethernet adapter. It will generally be the last line in the file and may look like:
<pre><span style="color: #000080;">auto eth0</span></pre>
<p>&#8230;or:</p>
<pre><span style="color: #000080;">iface eth0 inet dhcp</span></pre>
</li>
<li>Once you locate it, comment out that line by putting a hash symbol at the front like so:
<pre><span style="color: #000080;">#auto eth0</span></pre>
<p>&#8230;or:</p>
<pre><span style="color: #000080;">#iface eth0 inet dhcp</span></pre>
</li>
<li>Now add a new line with the following:
<pre><span style="color: #000080;">iface eth0 inet manual</span></pre>
</li>
<li>Save your changes with CTRL+X, then &#8220;Y&#8221; and then &#8220;Enter&#8221;.<br />
.</li>
<li>Now we need to ensure that the devices mounted by your diskless booting PC do not try to mount physical disk devices for things like /home and the root filesystem. Type in the following command:
<pre><span style="color: #000080;">$ sudo nano /srv/nfs/disklessboot/etc/fstab</span></pre>
</li>
<li>Once in the text editor, DELETE EVERYTHING and replace it all with the following:
<pre><span style="color: #000080;">proc            /proc           proc    defaults        0       0
/dev/nfs        /               nfs     defaults        1       1
none            /tmp            tmpfs   defaults        0       0
none            /var/run        tmpfs   defaults        0       0
none            /var/lock       tmpfs   defaults        0       0
none            /var/tmp        tmpfs   defaults        0       0</span></pre>
</li>
<li>Save your changes with CTRL+X, then &#8220;Y&#8221; and then &#8220;Enter&#8221;.<br />
.</li>
<li>That&#8217;s the Diskless setup ready to go. All that we now need to do is configure the PXE boot menu to give you an option to boot Diskless. To do this, edit your PXE boot menu configuration file. Assuming you called it /srv/tftp/mybootmenu.cfg, type in the following:
<pre><span style="color: #000080;">$ sudo nano /srv/tftp/mybootmenu.cfg</span></pre>
</li>
<li>In the text editor, scroll down to the bottom of your configuration file and add the following lines:
<pre><span style="color: #000080;">label My Diskless Boot PC
   kernel disklessboot/vmlinuz
   append initrd=disklessboot/initrd.img root=/dev/nfs nfsroot=192.168.0.10:/srv/nfs/disklessboot ip=dhcp rw</span></pre>
<p>The above menu configuration will tell PXE to load the kernel and custom RAM disk image from the TFTP directory and then transfer control of the boot process to the OS files located in /srv/nfs/disklessboot which will be mounted on the diskless system at /dev/nfs as the root filesystem.</li>
<li>Save your changes by pressing CTRL+X, then &#8220;Y&#8221; and then &#8220;Enter&#8221;.<br />
.</li>
<li>Finally, make sure that the TFTP daemon can read the new files you added to it with the following command:
<pre><span style="color: #000080;">$ sudo chmod 777 -R /srv/tftp</span></pre>
</li>
<li>That&#8217;s it! You are now ready to boot! Turn on your now-diskless PC and tell it to boot from PXE. When the PXE boot menu appears, choose &#8220;My Diskless Boot PC&#8221; and watch in wonder and amazement as Ubuntu boots up without a hard-disk as if by magic!</li>
</ol>
<p>NOTE: Whilst the Diskless PC will boot and operate much like any ordinary PC and in fact you can indeed perform future system updates this way, be aware that the kernel itself will NOT get automatically updated. Newer kernels will get installed to the NFS mount as you would expect, however the kernel actually boots from your TFTP directory, not the NFS share, so if you do update the kernel in future, you must create a new RAM disk image manually as per step 9 and copy both it and the new kernel file into your TFTP&#8217;s directory (in this case /srv/tftp/disklessboot/) otherwise your updated system will not boot anymore. Alternatively, simply allow all updates to be performed <span style="text-decoration: underline;">except</span> for kernel updates.</p>
<p>Finally, hardware drivers: If you install the NVidia proprietary drivers for your Diskless Boot system, ensure that you don&#8217;t try to boot other systems that do not contain NVidia graphics hardware otherwise X will break. The reason for this is that the NVidia driver installation makes a number of changes to system-level libraries to work, effectively binding that system to NVidia graphics-based systems only. If you intend to use your Diskless setup on multiple hardware platforms, such as NVidia, Intel and ATi, do not install the proprietary NVidia (or ATi) driver.</p>
<p>Enjoy! <img src='http://www.serenux.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.serenux.com/2011/04/howto-create-a-diskless-workstation-that-boots-from-pxe-using-ubuntu/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>HowTo: Build a MythTV box from scratch using Ubuntu Jaunty 9.04</title>
		<link>http://www.serenux.com/2009/06/howto-build-a-mythtv-box-from-scratch-using-ubuntu-jaunty-904/</link>
		<comments>http://www.serenux.com/2009/06/howto-build-a-mythtv-box-from-scratch-using-ubuntu-jaunty-904/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 15:26:01 +0000</pubDate>
		<dc:creator>HyRax</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Applications]]></category>
		<category><![CDATA[High-Definition]]></category>
		<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Jaunty]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MythTV]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Video]]></category>

		<guid isPermaLink="false">http://www.serenux.com/?p=492</guid>
		<description><![CDATA[MythTV is a project that brings analogue and digital television to your Ubuntu-powered PC. It primarily functions as your television and personal video recorder (PVR), but can be made to do many other things (refer to the official MythTV site for more information), however one thing that can catch people is actually building a MythTV [...]]]></description>
			<content:encoded><![CDATA[<p>MythTV is a project that brings analogue and digital television to your Ubuntu-powered PC. It primarily functions as your television and personal video recorder (PVR), but can be made to do many other things (refer to the official MythTV site for more information), however one thing that can catch people is actually building a MythTV box from scratch. Over the years, MythTV has been one of the largest causes of baldness in users who have torn out their hair in frustration.</p>
<p>Nowadays, tailored distributions such as Mythbuntu make the task pretty much trivial, but not everyone likes to use the tailor-made distributions. For one, Mythbuntu has a lot of its own branding across it which I personally don&#8217;t really like, and I&#8217;d prefer not to have it install all of that plus XFCE as the default desktop and then have to undo it all just to get back to a regular Ubuntu desktop.</p>
<p>Since I recently built a MythTV server for my folks, and on top of that connected it to their aging CRT television rather than the latest in visual technology, this makes for a perfect tutorial on how to take a vanilla Ubuntu Jaunty 9.04 installation and turn it into a simple, functional MythTV server without all the branding. We are going to just install only the components required to get MythTV up and running. Anything else you add is purely up to you.</p>
<p><span id="more-492"></span><em><strong>Note: This tutorial covers installation of MythTV 0.21 as supplied with Ubuntu Jauty 9.04. It does not apply to the forthcoming 0.22 release which will sport a vastly different interface. It is not known yet whether Ubuntu Karmic 9.10 will still have 0.21 supplied or if 0.22 will be ready for release by then.</strong></em></p>
<p>The system I built for my folks comprised of the following hardware:</p>
<ul>
<li>Silverstone LC17 case (just to match the lounge gear, but you can use pretty much any case)</li>
<li>Gigabyte 500w PSU</li>
<li>2GB of Kingston DDR2/800 RAM (should have bought two sticks instead of a single stick, so I could run it in dual-channel mode &#8211; ah well, it&#8217;s not really a performance killer for MythTV)</li>
<li>A Gigabyte S-Series EG41M-S2H motherboard (which has built-in optical out and HDMI based on an Intel gfx chipset)</li>
<li>An MSI NX8400GS (NVidia GeForce 8400GS) PCI-E graphics card (because it&#8217;s passively cooled for no noise and has Composite/S-Video output as well as VGA and DVI)</li>
<li>An Intel E5300 Pentium Dual-Core CPU</li>
<li>A Seagate 1TB hard-drive</li>
<li>LG SATA DVD-RW optical drive (for playing DVD movie discs)</li>
<li>Two Asus MyCinema-U3100-Mini DVB-T digital-only TV tuners</li>
<li>Digitech &#8220;generic&#8221; Windows Media Centre Compatible remote control and USB infra-red receiver (cheaper than the real thing and doesn&#8217;t have any Windows or Microsoft branding on it)</li>
</ul>
<p>I won&#8217;t detail the hardware build process since it&#8217;s an ordinary PC at the end of the day, but here is how it looks in my folks&#8217; AV cabinet (it&#8217;s on the bottom shelf):</p>
<p style="text-align: center;"><a title="Click for full size" href="http://www.serenux.com/~hyrax/pics/MythTV/FinishedMythTVServer.jpg" target="_blank"><img title="Finished MythTV combined Backend &amp; Frontend server" src="http://www.serenux.com/~hyrax/pics/MythTV/FinishedMythTVServer_thumb.jpg" alt="Click for full size" /></a><br />
Click for full size (126K)</p>
<p>I performed a vanilla Ubuntu Jaunty 9.04 with the following partition layout:</p>
<ul>
<li>100MB for /boot formatted as EXT2</li>
<li>1GB for swap formatted as SWAP</li>
<li>8GB for / (root) formatted as EXT4</li>
<li>Remainder of drive for /home formatted as EXT4</li>
</ul>
<p>Since I also installed a UPS, I do not foresee any issues with the EXT4 file system and power-loss-related data corruption. I used EXT2 for /boot because, frankly, it doesn&#8217;t need journalling there. You&#8217;ll only ever write to that partition when you do a kernal update and having as a separate partition will make any future system recovery easier.</p>
<p>My folks are still using an old standard-definition widescreen CRT television. It comes equipped with SCART inputs which can accept Composite, S-Video and Amiga-style RGB signals, but not Component ability. I elected to connect the PC using S-Video, and it looks pretty sharp for what it is &#8211; certainly far more readable than Composite.</p>
<p>I came across a strange issue when I started the Ubuntu installation process &#8211; it couldn&#8217;t start X. Basically put, it cannot detect the &#8220;monitor&#8221; and thus cannot setup a suitable screenmode. I decided to do the initial installation via a traditional VGA monitor and once the NVidia drivers were installed, I&#8217;d switch back to the TV only.</p>
<p>I configured the primary login account, password and machine name to all be &#8220;htpc&#8221; and set it to auto-login. Once installation was complete and rebooted for the first time, I quickly installed the NVidia Binary driver and updated the system with any outstanding general system updates.</p>
<p><span style="color: #0000ff;"><em><span style="text-decoration: underline;"><strong>Setting up the TV</strong></span></em></span></p>
<p>Once rebooted for the second time, I physically disconnected the VGA monitor and left only the TV connected. Ubuntu appeared quite cheerfully, though annoyingly it had switched to NTSC 60Hz mode, and I wanted PAL in 50Hz.</p>
<p>I opened up the xorg.conf configuration file into GEdit as follows:</p>
<pre><span style="color: #000080;">$ sudo gedit /etc/X11/xorg.conf</span></pre>
<p>&#8230;and located the &#8220;Screen&#8221; section which describes what the X screen to be used is. It looks something like this:</p>
<pre><span style="color: #000080;">Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "TwinView" "0"
    Option         "TwinViewXineramaInfoOrder" "TV-0"
    Option         "metamodes" "nvidia-auto-select +0+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection</span></pre>
<p>I added the following two lines into that section:</p>
<pre><span style="color: #000080;">    Option         "TVOutFormat" "SVIDEO"
</span><span style="color: #000080;">    Option         "TVStandard" "PAL-B"</span></pre>
<p>&#8230;so now the Screen section looked like this:</p>
<pre><span style="color: #000080;">Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "TwinView" "0"
    Option         "TwinViewXineramaInfoOrder" "TV-0"
    Option         "metamodes" "nvidia-auto-select +0+0"
    Option         "TVOutFormat" "SVIDEO"
    Option         "TVStandard" "PAL-B"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection</span></pre>
<p>This ultimately outputted a 1024&#215;768 display on the TV, stretched horizontally (a 4:3 screenmode stretched to fit a physical 16:9 display). If your Ubuntu desktop is larger than the screen, just adjust your TV&#8217;s picture size until everything fits in. In my case, only the top and bottom panels got slightly chopped off which was fixed with a minor vertical size adjustment on the TV.</p>
<p><em><span style="text-decoration: underline;"><strong><span style="color: #0000ff;">Installing MythTV</span></strong></span></em></p>
<p>First we need to enable the system to access the Multiverse repository. Do this by going to <em>System-&gt;Administration-&gt;Software Sources</em> and place a check mark against all five boxes, click OK and acknowledge the prompt to reload your package lists.</p>
<p>We now set about installing the extra software I required to turn this box into a MythTV server (which was going to run both Backend and Frontend):</p>
<pre><span style="color: #000080;">$ sudo apt-get install mythtv</span></pre>
<p>That&#8217;s all you need to get the main MythTV stuff working &#8211; the &#8220;mythtv&#8221; metapackage installs the MythTV Frontend, MythTV Backend, MySQL Server, MySQL Client, MythTV database configuration, all the default MythTV themes, etc. In my case, however I also installed the following for extra video/audio codecs (such as MP3 for listening to music files or watching movie rips), Java, Flash, the Microsoft Fonts, the Compiz Configuration manager for doing desktop eye-candy, the SSH server daemon to remote control the box when my folks call for help, and finally the MythWeb add-on that allows you to look at the MythTV server&#8217;s TV guide and schedule programs to record using a web browser interface:</p>
<pre><span style="color: #000080;">$ sudo apt-get install mythtv ubuntu-restricted-extras compizconfig-settings-manager ssh mythweb</span></pre>
<p>&#8230;and from the <a title="Medibuntu Home Page" href="http://www.medibuntu.org" target="_blank">Medibuntu repository</a>, I installed the following for extra codecs and DVD decrypting/playback:</p>
<pre><span style="color: #000080;">$ sudo apt-get install non-free-codecs libdvdcss2 mplayer mencoder</span></pre>
<p><em>Note: I did not need to install lirc for the remote control because the Digitech remote is actually a USB keyboard in disguise, not a &#8220;proper&#8221; infra-red remote.</em></p>
<p>During the installation of these packages, you will be prompted for a few things, namely:</p>
<ol>
<li>Create a password for the root MySQL account. If this MythTV installation is purely for in-house use only, then just go with something simple like &#8220;password&#8221;. Many suggest leaving it blank, but I&#8217;ve personally seen this create authentication problems later on.</li>
<li>Create the MySQL database. When prompted for the MythTV server address, change the default &#8220;localhost&#8221; to the IP address of the PC you are installing the Backend on. If the Backend Server has an IP address of 192.168.0.10, then type in 192.168.0.10 in place of &#8220;localhost&#8221;. If you only intend to run one machine only for everything, then you can leave &#8220;localhost&#8221; as is.</li>
<li>When prompted for the name of the MySQL database, leave it as the default &#8220;mythconverg&#8221;.</li>
<li>Make note of the password generated for the MythTV database. You will need this to configure your MythTV Frontend.</li>
<li>Indicate whether or not you intend to have more than one Frontend client connect to your Backend server.</li>
<li>If you elected to install MythWeb, then you will be asked a question as to whether or not you want your MythWeb site password protected.</li>
<li>Acknowledge other prompts that tell you about creating the &#8220;MythTV&#8221; groups etc.</li>
<li>Your PC now has a user and Home directory called /home/mythtv and we need to ensure that the &#8220;mythtv&#8221; group can write to it as well as the owner, so at a terminal, type in:
<pre><span style="color: #000080;">$ sudo chmod -R g+w /home/mythtv</span></pre>
<p>&#8230;and hit Enter.</li>
<li>Finally, if you intend more than one Frontend to access your Backend machine, we need to tell MySQL to allow other PC&#8217;s on your network to access the database, or those Frontends (other than the one on the Backend server) will not be able to start. To do this, type the following at the $ prompt. Everyone else can skip to Step 12.
<pre><span style="color: #000080;">$ mysql mythconverg -u root -p</span></pre>
</li>
<li>When prompted, enter in the root MySQL password you specified earlier.</li>
<li>You will then be shown a MySQL prompt. If your local network&#8217;s IP topology is 192.168.0.x, and the password that was generated for MythTV&#8217;s database was &#8220;8tSpxGiM&#8221; then type the following to grant access to all PC&#8217;s on your local network to the MythTV MySQL database, at the &#8220;mysql&gt;&#8221; prompt:
<pre><span style="color: #000080;">mysql&gt; grant all on mythconverg.* to mythtv@"192.168.0.%" identified by "8tSpxGiM";
mysql&gt; flush privileges;
mysql&gt; quit
</span></pre>
<p>&#8230;this will allow all PC&#8217;s with IP addresses starting with 192.168.0.x to access the MythTV database. If you are paranoid and only want to allow specific PC&#8217;s to access the database, then simply issue the &#8220;grant all&#8221; line for all explicit IP addresses only, by replacing the &#8220;%&#8221; wildcard character with the explicit IP address you want to allow, ie: to allow just 192.168.0.67 in, replace &#8220;192.168.0.%&#8221; with &#8220;192.168.0.67&#8243;. Repeat for all specific IP&#8217;s to allow. You only have to issue the &#8220;flush&#8221; command once at the end to make your changes take effect.</li>
<li>Confirm that you can access the MythTV database as the MythTV user at the $ terminal prompt. If you are only using one machine, do this on the Backend server. If you are using multiple Frontends, test this on the remote PC&#8217;s that will be running the Frontend software (obviously replace the IP address with the actual IP address your Backend machine is using):
<pre><span style="color: #000080;">$ mysql mythconverg -h 192.168.0.10 -u mythtv -p</span></pre>
<p>&#8230;when prompted, enter the MythTV password that was generated earlier. If successful, you should be looking at a &#8220;mysql&gt;&#8221; prompt. If not, you will get an error, probably along the lines of &#8220;access denied&#8221;.<em> NOTE: If you configured &#8220;localhost&#8221; to be the Backend Server in Step 2, then you <span style="text-decoration: underline;">must</span> use the name &#8220;localhost&#8221; to connect to MySQL. Using &#8220;127.0.0.1&#8243; instead will not work because you have not configured &#8220;127.0.0.1&#8243; to have access to the mythconverg database. If you wanted these permissions, you would modify Step 11 to be the following commands:<br />
</em></p>
<pre><span style="color: #000080;">mysql&gt; grant all on mythconverg.* to mythtv@"192.168.0.%" identified by "8tSpxGiM";
mysql&gt; grant all on mythconverg.* to mythtv@"127.0.0.1" identified by "8tSpxGiM";
mysql&gt; grant all on mythconverg.* to mythtv@"localhost" identified by "8tSpxGiM";
mysql&gt; flush privileges;
mysql&gt; quit
</span></pre>
<p>&#8230;which will allow the &#8220;mythtv&#8221; user to connect from any IP on the 192.168.0.x network, from 127.0.0.1 and any host called &#8220;localhost&#8221;, all using the specified password.</p>
<pre><span style="color: #000080;"> </span></pre>
</li>
<li>Quit the MySQL client by typing &#8220;quit&#8221; at the &#8220;mysql&gt;&#8221; prompt:
<pre><span style="color: #000080;">mysql&gt; quit</span></pre>
</li>
</ol>
<p><span style="text-decoration: underline;"><span style="color: #0000ff;"><em><strong>Configuring MythTV &#8211; the Backend</strong></em></span></span></p>
<p>At this point, make sure your TV tuners are connected. In my case, the Asus U3100&#8242;s are connected into two free USB ports at the rear of the PC and have automatically been detected as Ubuntu carries full support for the U3100 already.</p>
<p>Now we need to start MythTV Backend Setup for the first time. Go to System-&gt;Administration-&gt;MythTV Backend Setup. When you do so, it will prompt you that your user (in my case &#8220;htpc&#8221;) needs to be added to the &#8220;mythtv&#8221; group. Acknowledge this and then accept being logged out for the change to take effect. Log yourself back in. Once logged back in, restart the MythTV Backend Setup again. You will be reminded that the MythTV Backend needs to be stopped before you can continue. Click OK.</p>
<p>You are presented with several options. Choose &#8220;General&#8221; (if you are using a remote, you should find the basic Up/Down and OK buttons work here already).</p>
<ol>
<li>Change the &#8220;Local backend&#8221; and &#8220;Master backend&#8221; addresses to be &#8220;localhost&#8221; (in lower case and one word). Leave all the &#8220;port&#8221; numerical figures alone.</li>
<li>Click on &#8220;Next&#8221;. If you&#8217;re only using a keyboard, then press ALT + N to proceed. The screen content will change.</li>
<li>Change the &#8220;TV format&#8221; to suit your local country. In my case, this is &#8220;PAL&#8221;. If you are in America or Japan, you&#8217;ll use &#8220;NTSC&#8221;. Check your local TV standards if you are not sure.</li>
<li>Change the channel frequency table option to your local country. In my case, this is &#8220;australia&#8221;.</li>
<li>The timezone for your guide XML data will ultimately depend on how you get your guide data. In my case, I just use Auto.</li>
<li>Click on &#8220;Next&#8221; or ALT + N on the keyboard.</li>
<li>We don&#8217;t need to change anything on this screen or the five screens that follow it, so click on &#8220;Next&#8221; again until you get to the last page where the button now says &#8220;Finish&#8221;.</li>
<li>Click on the &#8220;Finish&#8221; button or press ALT + F on the keyboard. You will be returned back to the main menu.</li>
</ol>
<p>Now choose the &#8220;Capture cards&#8221; option.</p>
<ol>
<li>Choose the &#8220;New capture card&#8221; option from the list.</li>
<li>What you choose here will be dependent on what your tuner hardware is. In my case, I change the &#8220;Card type&#8221; until it says &#8220;DVB DTV Capture Card (v3.x)&#8221; and you will see that the &#8220;Frontend ID&#8221; will show &#8220;DiBcom 7000PC&#8221; and the &#8220;Subtype&#8221; will be &#8220;DVB-T&#8221; indicating a &#8220;Digital Video Broadcast &#8211; Terrestrial&#8221; device was found.</li>
<li>Click on the &#8220;Recording Options&#8221; button and ensure that the &#8220;Max recordings&#8221; option is set to &#8220;2&#8243; (most digital tuners can record two channels at once from the same network, thus two physical tuners effectively become four usable tuners within MythTV).</li>
<li>Go back to the previous screen by clicking on Finish and then click on Finish again. You will be returned to the Capture card list and you will now see a new line for the card you just setup.</li>
<li>Since I have two tuners, I repeat this whole process again &#8211; the system will pick up the second tuner and label it accordingly &#8211; you can&#8217;t setup a card more than once accidentally. In my case now I have two cards called <em>DVB:0</em> and <em>DVB:1</em> listed.</li>
<li>Press ESC to return back to the main menu.</li>
</ol>
<p>Now choose the &#8220;Video sources&#8221; option.</p>
<ol>
<li>Choose the &#8220;New video source&#8221; option from the list.</li>
<li>Give your video source a name, eg: &#8220;Digital Free-to-Air&#8221;. This can be anything you want.</li>
<li>For your Settings Grabber, just choose the &#8220;Transmitted guide only (EIT)&#8221; or &#8220;No grabber&#8221; option for now. If you already have a preferred grabber, then choose it here now.</li>
<li>Click on Finish.</li>
<li>We only need one source for both tuners, so we&#8217;re done here. Press ESC to return back to the main menu.</li>
</ol>
<p>Now choose the &#8220;Input Connections&#8221; option. This is where we tie our source to the tuners.</p>
<ol>
<li>Choose the first tuner in your list. In my case I have &#8220;DVB: 0 (DVBInput) -&gt; (None)&#8221;.</li>
<li>Change the &#8220;Display Name (optional)&#8221; to be something that describes the tuner, eg: &#8220;Digital tuner 1&#8243;. This can be anything you want and will serve to highlight what tuner you are using to watch or record a particular show.</li>
<li>Change &#8220;Video source&#8221; to the one you created in the &#8220;Video sources&#8221; earlier. In my case, I choose the only option I have &#8211; &#8220;Digital Free-to-Air&#8221;.</li>
<li>Now press the &#8220;Scan for channels&#8221; button.</li>
<li>Ensure that &#8220;Scan Type&#8221; is set to &#8220;Full Scan&#8221; and that your Country is correct.</li>
<li>Make sure that your TV aerial is securely connected to your TV tuner and then click on &#8220;Next&#8221;. The tuner will begin looking for TV channels. This can take several minutes to complete. Do not interrupt the process, even if it looks like it has gotten stuck &#8211; it will finish eventually. Any channels found will be listed in the status window at the back.</li>
<li>Once finished, press &#8220;Finish&#8221;.</li>
<li>Now press &#8220;Next&#8221;. Don&#8217;t change anything here.</li>
<li>Press &#8220;Finish&#8221;. You will be returned to the &#8220;Input Connections&#8221; list.</li>
<li>Repeat steps 1 to 3 only for any additional tuners you have (in my case, I had to repeat for the second tuner). We don&#8217;t need to re-scan for channels because the tuners are using the same source and we&#8217;ve already populated it with channels in the first run. In this instance, once you have done steps 1 to 3, just click on &#8220;Next&#8221; and then &#8220;Finish&#8221;.</li>
<li>Press ESC to return back to the main menu.</li>
</ol>
<p>Now choose the &#8220;Channel Editor&#8221; option and review all the channels that were picked up in the scan. Optionally, you may also have MythTV automatically download what it believes are the correct network icons for those channels from the Internet using the &#8220;Download icons&#8221; button. Delete any channels you don&#8217;t want to review. Eg: in my case, I also picked up some digital radio channels. I&#8217;m not interested in those, so I could delete those if I so choose.</p>
<p>Press ESC to go back to the main menu.</p>
<p>Now choose the &#8220;Storage Directories&#8221; option. This is where we tell MythTV where to put all our TV recordings.</p>
<ol>
<li>Choose &#8220;Default&#8221; from the list.</li>
<li>Choose the &#8220;/var/lib/mythtv/recordings&#8221; path already defined and change it to &#8220;/home/mythtv&#8221; (or whatever you prefer).</li>
<li>Click the &#8220;OK&#8221; button.</li>
<li>If you want to add more directories from other devices such as secondary hard-disks or network drives, just &#8220;Add directory&#8221; and specify them accordingly.</li>
<li>Once done, press ESC to return back to the main menu.</li>
</ol>
<p>We&#8217;re now done configuring the Backend, so press ESC again to close the MythTV Backend Setup application. If you get an error, review it and see if you can fix it based on the information provided. In particular, if it tells you that it couldn&#8217;t write a &#8220;.test&#8221; file to /home/mythtv, then you did not grant the &#8220;mythtv&#8221; group writer permissions to &#8220;/home/mythtv&#8221; (See Step 8 in &#8220;Installing MythTV&#8221; earlier in this article).</p>
<p>Upon exiting, after a couple of seconds a dialog box will appear asking if you wish to run &#8220;mythfilldatabase&#8221;. Say YES. Once this is done, the MythTV Backend should automatically restart in the background briefly and then its output window should disappear.</p>
<p><span style="text-decoration: underline;"><span style="color: #0000ff;"><em><strong>Configuring MythTV &#8211; the Frontend</strong></em></span></span></p>
<p>We&#8217;re nearly there! Now to configure the Frontend! Go to Applications-&gt;Sound &amp; Video-&gt;MythTV Frontend. After a brief delay, you will see the default MythTV menu.</p>
<ol>
<li>Choose &#8220;Utilities/Setup&#8221; from the menu.</li>
<li>Now choose &#8220;Setup&#8221; in the next menu.</li>
<li>Now choose &#8220;General&#8221; in the next menu.</li>
<li>If the PC you are on now is the Backend server, then this should already show that the&#8221;Database Server Settings&#8221; hostname is &#8220;localhost&#8221;. If you are installing a laptop/desktop that is NOT the Frontend, then you need to have the IP or hostname of the Backend machine here instead so that Frontend client knows who to talk to. In the case of your installation example, I&#8217;m using 192.168.0.10.</li>
<li>The port number can be left empty. It will use the MythTV default automatically.</li>
<li>The database name should already be &#8220;mythconverg&#8221;.</li>
<li>The user name should already be &#8220;mythtv&#8221;.</li>
<li>The password should already be the one that was randomly generated during the installation process.</li>
<li>Press &#8220;Next&#8221;.</li>
<li>Nothing to change on this screen, so press &#8220;Next&#8221; again.</li>
<li>Change the audio settings to suit your own configuration. If you are using an ordinary stereo setup, you can leave pretty much all of this unchanged, however I&#8217;d recommend adjusting the &#8220;Master Mixer Volume&#8221; to 100 and the &#8220;PCM Mixer Volume&#8221; to 80 or 90 (don&#8217;t set PCM to 100 as some motherboards will output scratchy/distorted audio depending on the quality of your on-board sound hardware).</li>
<li>Press &#8220;Next&#8221; through the next four screens.</li>
<li>Press &#8220;Finish&#8221;. You will be returned to the Setup menu.</li>
</ol>
<p><em>Special setup: Configuring your MythTV Frontend to output digital audio via SP/DIF on the PC&#8217;s motherboard.</em></p>
<ol>
<li>By default, motherboards with on-board SP/DIF out generally have their output muted, and as a result you will not see any laser light from any toslink cable connected to the motherboard. Unless you&#8217;re lucky, 9 times out of 10, the SP/DIF controls will <em>not</em> appear in the graphical Volume Control applet. To get around this, open a terminal.<br />
.</li>
<li>Now type in &#8220;alsamixer&#8221; and you will be presented with a terminal version of the Volume Control applet.<a title="Click for full size" href="http://www.serenux.com/~hyrax/snaps/AlsaMixer1.jpg" target="_blank"><br />
<img title="Alsa Mixer initial screen" src="http://www.serenux.com/~hyrax/snaps/AlsaMixer1_thumb.jpg" alt="Click for full size" /><br />
</a>Click for full size (56K)<a title="Click for full size" href="http://www.serenux.com/~hyrax/snaps/AlsaMixer1.jpg" target="_blank"><br />
</a>.<a title="Click for full size" href="http://www.serenux.com/~hyrax/snaps/AlsaMixer1.jpg" target="_blank"></a></li>
<li>Now press the right-arrow key until you come across any &#8220;IEC958&#8243; related options. There will generally be two or three entries. You will probably find they have &#8220;MM&#8221; above them which means they are Muted.<br />
<a title="Click for full size" href="http://www.serenux.com/~hyrax/snaps/AlsaMixer2.jpg" target="_blank"><img title="Alsa Mixer - SPDIF output muted" src="http://www.serenux.com/~hyrax/snaps/AlsaMixer2_thumb.jpg" alt="Click for full size" /><br />
</a> Click for full size (50K)<a title="Click for full size" href="http://www.serenux.com/~hyrax/snaps/AlsaMixer2.jpg" target="_blank"><br />
</a>.<a title="Click for full size" href="http://www.serenux.com/~hyrax/snaps/AlsaMixer2.jpg" target="_blank"><br />
</a></li>
<li>Press the M key on your keyboard to toggle the Mute status of that option so that it now shows &#8220;OO&#8221; instead. This means it is no longer muted.<br />
<a title="Click for full size" href="http://www.serenux.com/~hyrax/snaps/AlsaMixer3.jpg" target="_blank"><img title="Alsa Mixer - SPDIF output unmuted" src="http://www.serenux.com/~hyrax/snaps/AlsaMixer3_thumb.jpg" alt="Click for full size" /><br />
</a> Click for full size (51K)<a title="Click for full size" href="http://www.serenux.com/~hyrax/snaps/AlsaMixer3.jpg" target="_blank"><br />
</a>.</li>
<li>If you&#8217;re looking at your toslink cable, you should now see the fibre optic line in it light up with red laser light as you unmute it. You&#8217;re done, so press ESC to close the Alsa Mixer interface.</li>
<p style="text-align: center;">
</ol>
<p>Now choose &#8220;Appearance&#8221; from the menu.</p>
<ol>
<li>You can now choose a different theme from here which makes the interface look more attractive than the default theme. My personal favourite is &#8220;Blootube&#8221; and &#8220;Blootube Wide&#8221;.</li>
<li>If you are using 3D-enabled video drivers such as the NVidia binary drivers, you can elect to change the Paint Engine to OpenGL which will do nice crossfade transitions from one menu to another (note that there are <em>no</em> 3D transitions).</li>
<li>I also change the &#8220;Menu theme&#8221; here to &#8220;classic&#8221; as I believe it provides a more intuitive menu tree within MythTV. I encourage you to explore these options and choose what works best for you.</li>
<li>Page the &#8220;Next&#8221; button until you get to the end and then click &#8220;Finish&#8221;.</li>
<li>If you&#8217;ve chosen a new theme, it will now be scaled appropriately for your display and switched over.</li>
</ol>
<p>You are now ready to begin watching TV, but you may want to quickly duck back into Setup-&gt;Playback OSD and change the theme there to &#8220;Blootube&#8221; or whatever you prefer as well as the On-Screen-Display when watching TV has a separate theme setting to the menus.</p>
<p>To watch TV, simply choose &#8220;TV&#8221; and then &#8220;Watch TV&#8221; from the MythTV menu. Use the up and down arrow keys and Enter to change channels.</p>
<p>Examples of the Blootube-themed main menu and TV OSD (on a full high definition display):</p>
<p style="text-align: center;"><a title="Click for full size" href="http://www.serenux.com/~hyrax/snaps/MythTVInterface1.jpg" target="_blank"><img title="The main MythTV menu for watching TV, using the Blootube theme" src="http://www.serenux.com/~hyrax/snaps/MythTVInterface1_thumb.jpg" alt="Click for full size" /></a><br />
Click for full size (135K)</p>
<p style="text-align: center;"><a title="Click for full size" href="http://www.serenux.com/~hyrax/snaps/MythTVInterface2.jpg" target="_blank"><img title="The Blootube theme OSD watching live HDTV" src="http://www.serenux.com/~hyrax/snaps/MythTVInterface2_thumb.jpg" alt="Click for full size" /></a><br />
Click for full size (384K)</p>
<p><span style="color: #0000ff;"><em><strong><span style="text-decoration: underline;">Using MythWeb</span></strong></em></span></p>
<p>MythWeb is completely automatically configured. Using our installation example Backend host IP of 192.168.0.10, you can access it by opening your web browser and surfing over to <em>http://192.168.0.10/mythweb</em> and you will be presented with the main menu of MythWeb.</p>
<p>Being a web site, MythWeb is obscenely easy and self-explanatory to get around, so I won&#8217;t detail any of its most common functions here. I encourage you to explore the interface.</p>
<p style="text-align: center;"><a title="Click for full size" href="http://www.serenux.com/~hyrax/snaps/MythWebWelcome.jpg" target="_blank"><img title="The MythWeb home page" src="http://www.serenux.com/~hyrax/snaps/MythWebWelcome_thumb.jpg" alt="Click for full size" /></a><br />
Click for full size (99K)</p>
<p>One particularly useful feature of MythWeb is in getting the Digitech generic remote to work. Out of the box, I only found the direction and OK buttons to work right away. All the other buttons generate keyboard presses that do not coincide with MythTV&#8217;s default keys. For example, the Play/Pause key on the remote generates &#8220;CTRL + P&#8221; instead of just &#8220;P&#8221;, hence MythTV doesn&#8217;t act on the button press.</p>
<ol>
<li>To reconfigure key binds, all you have to do is click on the &#8220;Settings&#8221; option on the main menu.<br />
.</li>
<li>Now click on &#8220;Key Bindings&#8221; in the presented options.</li>
<p style="text-align: center;"><a title="Click for full size" href="http://www.serenux.com/~hyrax/snaps/MythKeybinds1.jpg" target="_blank"><img title="MythWeb Key Bindings menu option" src="http://www.serenux.com/~hyrax/snaps/MythKeybinds1_thumb.jpg" alt="Click for full size" /></a><br />
Click for full size (116K)<br />
.</p>
<li>You are presented with all the available keybinds for various areas of MythTV. Scroll down the list until you find the keys pertaining to &#8220;TV Frontend&#8221; (first column).<br />
.</li>
<li>Now locate the key bind related to &#8220;PLAYBACK &#8211; Play Program&#8221; (second and third columns). You will notice that the key assigned (in the fourth column) already is &#8220;P&#8221;.</li>
<p style="text-align: center;"><a title="Click for full size" href="http://www.serenux.com/~hyrax/snaps/MythKeybinds2.jpg" target="_blank"><img title="Locating and changing a key binding for MythTV" src="http://www.serenux.com/~hyrax/snaps/MythKeybinds2_thumb.jpg" alt="Click for full size" /></a><br />
Click for full size (135K)<br />
.</p>
<li>To add the CTRL + P key combination without erasing the original &#8220;P&#8221; key, simply change the text box to read &#8220;P, Ctrl+P&#8221;. This binds both the P and CTRL + P key combinations to the Playback command.</li>
<li>Change all the other keys you need to change or add.</li>
<li>When done, scroll right to the very bottom of the key binds page and click on the &#8220;Save&#8221; button.</li>
<li>Restart the Frontend to read in your new changes and test the remote.</li>
</ol>
<p>This is what the Digitech generic MCE remote looks like:</p>
<p style="text-align: center;"><a title="Click for full size" href="http://www.serenux.com/~hyrax/pics/MythTV/DigitechRemote.jpg" target="_blank"><img title="The Digital Generic MCE remote control and USB receiver" src="http://www.serenux.com/~hyrax/pics/MythTV/DigitechRemote_thumb.jpg" alt="Click for full size" /></a><br />
Click for full size (116K)</p>
<p><span style="color: #0000ff;"><span style="text-decoration: underline;"><em><strong>OPTIONAL: Setting up the Shepherd Electronic Program Guide (EPG)<br />
</strong></em></span></span></p>
<p>Shepherd is an amazing Perl script that enhances and keeps your EPG data up to date in Myth, always providing better information about programs than the networks themselves do. A typical example of a poor network-supplied program description might be <em>&#8220;Late Movie: 10:30pm &#8211; Pirates of the Carribean starring Johnny Depp&#8221;</em> and&#8230; that&#8217;s it. How boring! Shepherd will use a grading system as well as sourcing categories of data from different sites in order to provide you a comprehensive description of all your programs instead. In the case of the above example, it would go to the IMDB and get the official movie blurb to use instead.</p>
<p><em><strong>NOTE: Shepherd is geared towards Australian MythTV users only. This is due to long-running (and petty) legal disputes over EPG supply and copyright in this country. If you are outside of Australia, you most likely already have a proper EPG provided for you and you should use that instead.</strong></em></p>
<p>Setting up Shepherd is trivial (Shepherd was up to version 1.3.39 at the time of this writing &#8211; refer to the <a title="Official Shepherd Installation Page" href="http://svn.whuffy.com/index.cgi/wiki/Installation" target="_blank">official installation page</a> for any changes made to the installation process since).</p>
<ol>
<li>Open a terminal and type in the following:
<pre><span style="color: #000080;">$ wget http://www.whuffy.com/shepherd/shepherd</span></pre>
<p>&#8230;and press Enter. This will grab the latest version of the Shepherd Perl script.<br />
.</li>
<li>Before we run it, we need to install some dependencies:
<pre><span style="color: #000080;">$ sudo apt-get install xmltv libxml-simple-perl libjavascript-perl \
libalgorithm-diff-perl libgetopt-mixed-perl libcompress-zlib-perl \
libdata-dumper-simple-perl libdate-manip-perl liblist-compare-perl \
libdatetime-format-strptime-perl libhtml-parser-perl libxml-dom-perl \
libgd-gd2-perl libdigest-sha1-perl libarchive-zip-perl \
libio-string-perl libdbi-perl</span></pre>
<p>&#8230;and hit Enter.<br />
.</li>
<li>Once all that is installed, now run the Shepherd setup script with the command:
<pre><span style="color: #000080;">$ perl shepherd</span></pre>
<p>&#8230;and hit Enter.<br />
.</li>
<li>Shepherd will initially re-install itself into the &#8220;mythtv&#8221; user&#8217;s home directory, ie: /home/mythtv, and re-run itself.</li>
<li>Shepherd will then begin checking itself to ensure all its data grabbers are the latest versions and download any that are missing. It will then prompt you through the rest of the installation process, which is generally straight forward, but we&#8217;ll step through it here:</li>
<li>First you are asked for a region code and are shown a giant list. Type in the number relevant to you and hit Enter. Eg: if you lived in Melbourne, Victoria, you would type in &#8220;94&#8243; as the code associated with that region. If you were in Sydney, you&#8217;d type in &#8220;73&#8243; instead.</li>
<li>Next you are asked if you would like Guided Channel Selection. Say YES (or just hit Enter as the default response is yes anyway).</li>
<li>You will then be asked if you have High-Definition TV. If you do use HDTV channels, you should say YES to this.</li>
<li>You are then asked if you have PayTV. If you are only configuring MythTV for Free-to-Air TV, say NO to this.</li>
<li>Now MythTV will ask you to match the known channels for your region to the channels that are setup in your MythTV installation. It will prompt you for each channel one by one. Simply enter the number corresponding to the guide data source you believe belongs to the currently displayed channel, eg: in some country areas, Channel Nine is known as WIN, so any references to &#8220;Channel Nine&#8221; you would tell Shepherd to use guide data provided by WIN. Repeat this until all channels have been prompted for. You may come across some doubled-up channels. This is normal.</li>
<li>When finished, Shepherd will list all your selections so you can verify them. When you are happy, respond YES.</li>
<li>You will then be asked about transitioning from an old grabber. Since this is a fresh installation, choose the zero (&#8220;do not transition&#8221;) option.</li>
<li>You will be given one more review and will then be asked if you&#8217;d like Shepherd to create a configuration file and update MythTV. Say YES.</li>
<li>When prompted about allowing Shepherd to auto-configure MythTV, say YES.</li>
<li>When prompted for Shepherd to create a symbolic link, say YES.</li>
<li>When prompted about the cron job Shepherd sets up, say YES.</li>
<li>Respond YES to the review question.</li>
<li>Shepherd will then begin testing its components and will eventually ask if you would like to install channel icons. This is not necessary (though you can complete it if you really like), so say NO to this.</li>
<li>Shepherd will finish.</li>
<li>Now we need to populate the EPG using Shepherd for the first time. Note that the initial run can take potentially an hour or more to run depending on your connection and quantity of channels in MythTV to find data for. Once finished, however, each subsequent run (once per hour, 24 hours) should be much faster. To run it for the first time manually, simply type in:
<pre><span style="color: #000080;">$ mythfilldatabase</span></pre>
<p>&#8230;and hit Enter.<br />
.</li>
<li>Depending on the minute that Shepherd setup for the cron job, you may find that as you try to run it manually, Shepherd advises that &#8220;another instance is running&#8221; and will abort itself. That&#8217;s fine &#8211; the job&#8217;s already started then automatically.</li>
<li>When Shepherd has completed its run, you will find that your EPG within MythTV is now nicely populated with highly descriptive blurbs and will remain so for at least 7-8 days ahead as long as the PC has a connection to the Internet.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.serenux.com/2009/06/howto-build-a-mythtv-box-from-scratch-using-ubuntu-jaunty-904/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
		<item>
		<title>HowTo: Fix MythTV&#8217;s Frontend not going full-screen in Ubuntu Jaunty.</title>
		<link>http://www.serenux.com/2009/04/howto-fix-mythtvs-frontend-not-going-full-screen-in-ubuntu-jaunty/</link>
		<comments>http://www.serenux.com/2009/04/howto-fix-mythtvs-frontend-not-going-full-screen-in-ubuntu-jaunty/#comments</comments>
		<pubDate>Tue, 28 Apr 2009 11:36:43 +0000</pubDate>
		<dc:creator>HyRax</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Applications]]></category>
		<category><![CDATA[Display]]></category>
		<category><![CDATA[Jaunty]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MythTV]]></category>
		<category><![CDATA[Troubleshooting]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Video]]></category>

		<guid isPermaLink="false">http://www.serenux.com/?p=485</guid>
		<description><![CDATA[The next version of Ubuntu is here &#8211; 9.04 aka &#8220;Jaunty Jackalope&#8221;. Along with a wealth of new features comes a wealth of new minor bugs to fix. Not enough to be show-stoppers, but enough to annoy the heck out of you, and here&#8217;s a doozy. If, like most people, you have Compiz enabled and [...]]]></description>
			<content:encoded><![CDATA[<p>The next version of Ubuntu is here &#8211; 9.04 aka &#8220;Jaunty Jackalope&#8221;. Along with a wealth of new features comes a wealth of new minor bugs to fix. Not enough to be show-stoppers, but enough to annoy the heck out of you, and here&#8217;s a doozy.</p>
<p>If, like most people, you have Compiz enabled and you start the MythTV Frontend, you will notice that rather than go full-screen, Myth will start as a window, essentially, even if your settings within Myth say to go full-screen.</p>
<p>In a single-screen scenario, the MythTV window will start just underneath the upper Gnome panel and the lower Gnome panel will sit over the top of the Myth window, obscuring part of the display. Proof that it&#8217;s a window can be found by holding down the ALT key and then dragging the MythTV display around with your mouse.</p>
<p>If you&#8217;re like me and use two displays with Myth being run on the second screen, you will see a gap at the top of the screen that is the same height as the upper Gnome panel and you will see your wallpaper showing through there, as shown in the illustration below.</p>
<p style="text-align: center;"><a title="Click for full size" href="http://www.serenux.com/~hyrax/snaps/MythTVJauntyCompizGap.jpg" target="_blank"><img title="Gap in the MythTV display" src="http://www.serenux.com/~hyrax/snaps/MythTVJauntyCompizGap_thumb.jpg" alt="Click for full size" /></a><br />
Click for full size (520K)</p>
<p>Here&#8217;s how to fix this problem.</p>
<p><em><strong>EDIT June 2010: This problem still plagues Ubuntu 9.10 and 10.04, and  this fix will work for those releases as well.</strong></em></p>
<p><span id="more-485"></span></p>
<p>The simplest fix is to disable Compiz altogether and MythTV will suddenly go full-screen, but that&#8217;s not really a solution &#8211; you want to keep your eye-candy! So follow the next few steps instead:</p>
<ol>
<li>Go to System-&gt;Preferences-&gt;CompizConfig Settings Manager. If you do not have this option in your Preferences, then you need to add it. Quickly jump into a terminal and type in at the $ prompt:
<pre><span style="color: #000080;">$ sudo apt-get install compizconfig-settings-manager</span></pre>
<p>&#8230;and hit Enter. Once installed, go back into the Preferences menu and bring it up.</li>
<li>Scroll down until you get to the &#8220;Utility&#8221; section and then click on &#8220;Workarounds&#8221;. It should alredy be selected as enabled, but if not, also make sure the checkbox next to it is enabled too.
<p style="text-align: center;"><a title="Click for full size" href="http://www.serenux.com/~hyrax/snaps/CompizWorkaroundSettings1.jpg" target="_blank"><img title="Compiz Workarounds" src="http://www.serenux.com/~hyrax/snaps/CompizWorkaroundSettings1_thumb.jpg" alt="Click for full size" /></a><br />
Click for full size (81K)<br />
.</p>
</li>
<li>The window changes to show you the Workaround options. The very first option is &#8220;Legacy Fullscreen Support&#8221;. This is unchecked by default. Click on the checkbox so that it IS checked, and then click on the Back button, then close the window.
<p style="text-align: center;"><a title="Click for full size" href="http://www.serenux.com/~hyrax/snaps/CompizWorkaroundSettings2.jpg" target="_blank"><img title="Compiz Workarounds" src="http://www.serenux.com/~hyrax/snaps/CompizWorkaroundSettings2_thumb.jpg" alt="Click for full size" /></a><br />
Click for full size (71K)<br />
.</p>
</li>
<li>Quit the MythTV Frontend if you had it open already and then restart it. You will now find that the gap has disappeared, and that the MythTV display is now appearing full-screen properly instead of just being a window.<br />
.</li>
<li>Pat yourself on the back.</li>
</ol>
<p>Happy viewing! <img src='http://www.serenux.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><em>Please note: This workaround is just that &#8211; a workaround. One minor problem that arises with it is that you may get occasional screen &#8220;flashing&#8221; or a flash of the background wallpaper appearing when a DBus message is displayed, or if you scroll a window or terminal on the same or other screen in a multi-screen setup. This does not occur often, however, and so may not bother you at all! The bug has been reported, and no doubt will be fixed in due course. When it is fixed, this workaround should be reversed.<br />
</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.serenux.com/2009/04/howto-fix-mythtvs-frontend-not-going-full-screen-in-ubuntu-jaunty/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>MythTV Frontend on an EeePC</title>
		<link>http://www.serenux.com/2008/10/mythtv-on-an-eeepc/</link>
		<comments>http://www.serenux.com/2008/10/mythtv-on-an-eeepc/#comments</comments>
		<pubDate>Mon, 06 Oct 2008 06:58:18 +0000</pubDate>
		<dc:creator>HyRax</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[EeePC]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MythTV]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.serenux.com/?p=50</guid>
		<description><![CDATA[A few days ago I was reading on another forum about people wondering if MythTV would work on an EeePC. Of course the answer is yes, but exactly how well would it run? In my mind I had more questions &#8211; would Myth work well over a wireless LAN? Would it handle HDTV given it [...]]]></description>
			<content:encoded><![CDATA[<p>A few days ago I was reading on another forum about people wondering if MythTV would work on an EeePC. Of course the answer is yes, but exactly how well would it run?</p>
<p><span id="more-50"></span></p>
<p>In my mind I had more questions &#8211; would Myth work well over a wireless LAN? Would it handle HDTV given it wouldn&#8217;t have the overhead of processing it from a tuner?</p>
<p>So I did some tests. I grabbed my EeePC 701 with Ubuntu Hardy and the <a title="Array.org custom EeePC kernel for Ubuntu" href="http://www.array.org/ubuntu/" target="_blank">Array.org custom kernel</a>, installed the MythTV Frontend from the repository and tried it out. I have to say I was impressed with the completely unexpected results.</p>
<p>Loading the front end and bringing up live TV was a little slower than on my quad-core desktop, but SD live TV ran smoothly and fluidly, and changing channels was reasonably quick too, but still slower than my quad-core. HD, unfortunately didn&#8217;t run so well. Unlike when tuning directly where you get only 1 frame per second, this time I got bursts of about 1-2 seconds of fluid playback before it paused and played again for 1-2 seconds, paused and played again. Clearly the little Celeron ain&#8217;t beefy enough to deal with it.</p>
<p>But I was doing this over wireless &#8211; perhaps the WLAN didn&#8217;t have enough bandwidth to handle HD? I shutdown wireless and hooked up a piece of ethernet. Same story, unfortunately. The EeePC 701 cannot do HD. Unfortunate, really, since nearly all my recordings are in HD! Never mind, it&#8217;s still useful for watching random live TV in bed on the sidetable! <img src='http://www.serenux.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>I recorded a video demonstrating the MythTV Frontend on the Eee which you can view it <a title="EeePC 701 running the MythTV Frontend" href="http://www.youtube.com/watch?v=x-AO-8JA3s4" target="_blank">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.serenux.com/2008/10/mythtv-on-an-eeepc/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

