Modding the Xbox

1. Introduction

Hacking the Xbox bookFor Christmas I got given a copy of “Hacking the XBOX: An Introduction to Reverse Engineering” by Andrew ‘bunnie’ Huang. The book is written by the person from MIT who reverse engineered the Xbox risking violating the controversial DMCA act. The book provides step by step instructions on basic hacking techniques and reverse engineering skills along with information on Xbox security, hardware, and software.

I have been interested in computers since before I could walk! I was always fascinated by how they worked and enjoyed programming them to make them do other things that I wanted them to do. So naturally, once I had finished reading Bunnie’s book I had to get myself an Xbox and mod it. There was no real goal to what I wanted to achieve with it, I just wanted to play with it. Saying that there were a couple of things I wanted to try and do with it such as get it to run Linux and see if I could make a neat little DivX box to sit under the TV.

You may be wondering what all the fuss is about modding the Xbox, after all it’s only a games console just like the PS2 or Gamebube, right? Actually unlike the PS2 and Gamecube the Xbox is essentially a PC inside. Its CPU is an Intel Pentium III 733 with 64Mb ram, GeForce 3 graphics chip, Ethernet port, 4 USB ports, 8Gb IDE hard drive and a DVD-Rom drive. And all for the price of ?125. Ok, so its hardly up to today’s standards but considering the price it makes a very cheap PC.

Unfortunately it’s not quite as easy as you might initially think to use the Xbox as a PC. Microsoft, as with most other games console manufacturers, sell there consoles at a loss and actually make money off the games. For this reason, and to stop piracy, Microsoft have done everything they can to stop you turning the Xbox back into a PC. This includes modifying most of the components, both hardware and software, inside the Xbox so that it isn’t quite a normal PC. For example, if you put the Xbox hard drive in your PC then Windows won’t be able to read it because it uses the FatX file system. The gamepad ports, although they’re USB ports, aren’t a standard USB shaped socket. The DVD-Rom drive has a specially designed power connector. On the software side most data on the various chips and data travelling along the busses between chips is encrypted and the Xbox will only boot signed code which is why your copy of Knoppix or your illegal copy of Halo won’t work.

Warning!
By following these instructions you could potentially destroy your Xbox (although it worked fine for me)! As the very least you WILL void your warrenty simply by opening the lid! I will not be held responsible if you destroy your Xbox, Microsoft try to sue you, you burn your house down, kill your cat, yadda yadda yadda…

2. Requirements

Before you start work, there are a few things you’re going to need:

  • An XBox – Duh!
  • Torx screw driver (T10 and T20) – Maplin order code GU60Q
  • Fine tipped soldering iron, or conductive pen – Maplin order code N74AA
  • 2x 3mm Blue LEDs (optional) – Maplin order code JA27
  • USB pen drive
  • Xbox-USB adapter/cable – try eBay
  • 007 Agent Under Fire
  • A Linux PC (and experience in compiling kernels)
  • Nerves of steel!

3. Hardware Modifications

An unmodified Xbox will only run signed code such as authenticated games and the Microsoft Xbox dashboard. These restrictions are enforced by the bios, so to remove these restrictions we need to replace the bios. In the past this has been done by using a “mod-chip”, however it is possible to replace the contents of the Xbox bios avoiding the need for a mod-chip.

The first thing to do is to remove the write-protection on the bios to allow it to be re-flashed. This is accomplished by bridging two pairs of contacts; one the top side of them otherboard and one on the underside. To do this your going to need a fine tipped soldering iron, or if you don’t fancy wielding a 300o iron at your beloved Xbox you can always take the slightly less destructive approach and use a conductive pen, like the one shown here from Maplin.

solder-pen torx-set

Micro-Tip Conductive Pen from Maplin

33 Piece Security Bit Set from Maplin

Of course, before we can do any soldering we have to break into the Xbox. To remove the lid you will need a T-20 Torx screwdriver to remove the 6 long screws hidden under the four feet and two of the stickers. Once inside you will need a T-10 Torx screwdriver to remove the three screws holding down the drive carriers. Two are either side of the DVD drive at front and the other is under the IDE cable to the hard disk at the back. To reveal the motherboard you will probably need to remove the DVD drive and hard drive, although you may be able to move then without unplugging them.

xbox-mod-1-large

The xbox

xbox-mod-2-large

with the lid removed

xbox-mod-3-large

then the HDD removed

xbox-mod-4-large

and finally the DVD removed

xbox-mod-5-large

The exposed Xbox motherboard and PSU

xbox-mod-6-large

The removed motherboard

The images above show the Xbox in the various stages of being taken apart. Be careful when removing the motherboard. There are a number of screws to undo first and mine got a bit stuck around the video and Ethernet sockets when being pulled out. Remember to use an anti-static wrist strap when your working on the Xbox so you don’t fry the motherboard, and if you’ve got one place the board on a large anti-static bag once you’ve removed it.

Now you can take a good look at the Xbox motherboard. You should immediately recognise various parts of the motherboard because of its similarity to a PC motherboard. The figure below shows the Xbox motherboard with all the main components labeled.

xbox-mod-6-annotated

Now we have the Xbox motherboard out of its housing we need to identify the two pairs of contacts that need to be bridged in order to remove the write-protection on the bios. The first is on the top side of the board between the bottom-right corner of the nVidia southbridge chop and the top-left of the region labeled LPC. On versions 1.0 and 1.1 of the Xbox motherboard the pair of contacts are labeled R7D3 and newer versions a labeled R7D10.

xbox-mod-7-large

The 1st pair of contacts on the top of the board

xbox-mod-8-large

The 2nd pair of contacts on the underside of the board

The second pair of contacts are in a similar place to the first pair but are on the underside of the board. As the contacts are very close to one of the screw holes they may be covered up by the protective pad around the hole. In this case you will have to carefully peel the pad back to uncover the contacts. On versions 1.0 and 1.1 of the Xbox motherboard the pair of contacts are labeled R7R3. Newer versions don’t appear to have them labeled.

Once you have bridged these two pairs of contacts you should be able to re-flash the bios. Seeing as we already have the Xbox dismantled you might like to take the opportunity to replace the green LEDs around the front eject button with some much nicer blue ones! The front panel does require quite a bit of effort to unclip it but once removed you should be able to see a small circuit board containing two LEDs and two switches.

xbox-mod-9

The front panel PCB with the LEDs and power and eject buttons

I don’t want to go into huge detail about how to get at and replace the LEDs as it’s all explained in great detail in the Hacking the Xbox book mentioned earlier. What I will say though is that the Xbox uses dual-colour LEDs with a common cathode, hence the three legs.This is because the Xbox indicates error conditions by flashing the red parts of the LEDs, but under normal operation they just glow green. I have not been able to find any red-blue LEDs and because you don’t have to connect an error indicator LED I’m just going to replace the dual-colour LEDs with a couple of 3mm blue ones, and before you ask, no there isn’t room to fit two 3mm LEDs next to each other.

4. Flashing the BIOS

Once you have bridged the two contacts and reassembled the Xbox you now need to flash the bios. The way to do this is a slightly interesting one because at this point the Xbox still won’t run unsigned code. Thankfully for us however, some clever hackers managed to find some exploits in the save games files used by a number of games. Using a specially crafted saved game file the game you can get the Xbox to boot a basic version of Linux which contains a bios flashing program.

More on this in a bit because first we need to source a replacement bios. A great number are available but the main one, and the one that I have used, is the Evolution X bios. Because of the nature of these bios files it is tricky to get hold of them. One way to get hold of them and a load of Xbox applications and tools is to log onto #xbins on one of the Efnet IRC servers. So you will need a copy of mIRC or some other IRC client. Then connect to one of the Efnet servers, e.g. efnet.demon.co.uk, and then join the #xbins channel by typing “/join #xbins”. You will then receive instructions on how to obtain the files you need.

Once you have downloaded a bios you might need to do some special preparation depending on the version of your Xbox. The original Microsoft bios is only 256Kb, but the bios chips on some of the older Xboxs are 1Mb big. Therefore the bios needs to be duplicated four times to fill the bios. My Xbox is a brand new one and only has a 256Kb bios so I didn’t need to do any preparation work. If you own an older Xbox you will need a tool such as x-boxbiosslicer to produce a 1Mb bios image ready for flashing. To find out which version of the Xbox you have check out Xbox-Scene.

007 Agent Under Fire Xbox USB cable USB pen drive

Once you have your bios you now need to flash the bios chip. As mentioned earlier this is done by loading a specially crafted save game that causes the Xbox to boot a basic version of Linux. Although a number of exploitable games exist the main one used appears to be 007: Agent Under Fire. So you will need a proper copy of this game and a specially crafted saved game file.

The tricky part, once you’ve got the saved game file, is to get it onto the Xbox hard drive. As mentioned earlier you can’t simply plug the Xbox hard drive into a PC because the Xbox hard drive uses the FatX file system and so Windows won’t be able to read it. Linux on the other hand is able to read the FatX file system provided you are using a specially modified kernel. Rather than move hard drives about I decided to put the save game on my USB pen drive and then copy the saved games from the pen drive to the Xbox hard drive. To do this you will obviously need an Xbox to USB adapter cable and these can easily be found on eBay. Once you plug your USB pen drive in you can go to the Memory section on the Xbox dashboard. This will then detect the external memory device and format to FatX for you. Now that it’s formatted as FatX Windows won’t recognise it and neither will Linux, so the next step is to compile a custom Linux kernel that will read it.

To build the special kernel you will need a PC already running Linux. Go to http://www.kernel.org/ and download kernel version 2.4.24. Once downloaded, un-tar the kernel and rename its folder to something like “linux-2.4.24-xbox” so you know its not a normal kernel. Then you need to download the Xbox kernel patches from the Sourceforge CVS server. Once downloaded you need to patch the vanilla 2.4.24 kernel by copying the contents of the xbox-kernel folder into the linux-2.4.24 folder. Now you need to compile your special xbox kernel by selecting the required modules for your system along with the FatX module from the File Systems section. Once you have everything you need it’s time to sit back and wait while your new kernel is compiled. Once compiled you will need to copy the compressed kernel image from “./arch/i386/boot/bzImage” to “/boot/bzImage-xbox”. In order to be able to boot this new kernel image you will need to edit the Lilo bootloader config file. Assuming your root Linux partition is /dev/hdb2, add the following lines to /etc/lilo.conf:

image=/boot/bzImage-xbox
label="xbox"
root=/dev/hdb2
initrd=/boot/initrd.img
append="devfs=mount acpi=ht resume=/dev/hdb1 splash=silent"
read-only

All the commands to download and compile the custom kernel are given below:

cd /usr/src wget
http://www.kernel.org/pub/linux/kernel/v2.4/linux-2.4.24.tar.gz
tar xzf linux-2.4.24.tar.gz
mv linux-2.4.24 linux-2.4.24-xbox
cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/xbox-linux login
cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/xbox-linux co kernel
mv kernel xbox-kernel
cp -Rf ./xbox-kernel/* ./linux-2.4.24-xbox/
cd linux-2.4.24-xbox/
make menuconfig
make clean; make dep; make bzImage; make modules; make modules_install
cp arch/i386/boot/bzImage /boot/bzImage-xbox
lilo
reboot

Xbox Linux Kernel

Once you have booted using your new kernel you should be able to mount your FatX formatted USB pen drive:

mkdir /mnt/pendrive mount /dev/sda /mnt/pendrive -t fatx

You should then be able to extract the contents of save game archive to your pendrive. This should contain the following directory structure (assuming you have the “007savewithraincoat.zip” file):

savegame-dirstruct

cp ~/007savewithraincoat.zip /mnt/pendrive
unzip 007savewithraincoat.zip
rm 007savewithraincoat.zip
umount /mnt/pendrive

Once the pen drive has been prepared you can plug it back in to the Xbox and copy the saved game to the hard drive using the Microsoft dashboard. Once copied you can start up 007: Agent under fire and load your game. The screen will go blank and you should hear footsteps, then an orchestra, then a weird sound, then an explosion. At this stage Linux is now loaded. You should then be able to FTP and Telnet to you Xbox whose IP address will be 192.168.0.64. The username is “root” and the password is “xbox”.

I would just like to point out at this point that if the MS Dashboard says the save game file is corrupt and you can’t copy it then go back to your Linux PC and move the 4541000d folder out of the UDATA folder so that it is on the root of the pen drive. Then try copying the save game in the Xbox again.

Once you have your Xbox running Linux it is advisable to make a backup of your Xbox hard drive. You can do this by using an FTP client (I recommend FlashFXP for Windows users), connecting to 192.168.0.64, logging in as “root” and the password “xbox” and copying the C and E folders from the Xbox to your PC. Note that you will most likely need to change the IP address on your PC to something like 192.168.0.65.

Now you should be ready to flash your bios. Telnet to 192.168.0.64 and then type:

cd /media/E/UDATA/4541000d/000000000000/raincoat

You can make a backup of the original Microsoft bios by typing:

./raincoat -r backup.bin

The bios will then be backed up to backup.bin which you can copy to your PC using FTP. The “007savewithraincoat.zip” includes the new bios image and so should already have been copied to the Xbox. If not, or if you prepared your own bios you need to copy it the Xbox you by FTPing to the Xbox but this time logging in as “guest” with the password “guest”. You can then copy the bios to the current directory using Telnet by typing:

cp /home/guest/bios.bin .

To flash the new bios simply type:

./raincoat -p bios.bin

If anything goes wrong re-flash the bios with backup of the original Microsoft bios (you did make a backup like I said didn’t you?) and have a search on the net to see what went wrong. If everything went successfully you should be able to reboot your Xbox and the original Microsoft dashboard should appear.

5. Linux Live CD

DynebolicAt this stage you may be disappointed that your Xbox looks the same as it used to, but there is one important difference – the ability to run unsigned disks. This allows you to modify the software on the hard drive such as replacing the dashboard, installing your own applications, and most importantly of all install Linux!You may have heard of Linux Live distributions. These run directly from the CD without needing to touch your hard drive. One popular Linux Live distro is Knoppix. Unfortunately the Xbox requires a slightly modified kernel and so Knoppix probably wont work (I haven’t tried it), but there is one distribution called dynebolic that is designed to run on low-spec systems and it also works on the Xbox as well as PCs.

6. Upgrading the Dashboard

If you want to be able to run other Xbox applications from the hard disk you need to replace the dashboard. As with bios’s, many dashboards are available, but the main one appears to be the Evolution X dashboard made by the same people who created the bios you just used.

Once you have downloaded a copy of the replacement dashboard you need to transfer it to the Xbox. The easiest way to do this is to start 007: Agent Under Fire and load that special saved game again. This will load a basic version of Linux allowing you to FTP the replacement dashboard to the Xbox.

Telnet to 192.168.0.64 and change to the C partition by typing:

cd /media/C

You should then rename the original Microsoft dashboard to something like msdashboard.xbe by typing:

mv xboxdash.xbe msxboxdash.xbe

Now FTP the replacement dashboard files over using the guest account and use Telnet to copy them to the C drive. One of the files you will copy over will be called evoxdash.xbe and this should be renamed to xboxdash.xbe so that it is booted when the Xbox starts:

mv evoxdash.xbe xboxdash.xbe

Once you have copied all the files over you can reboot and you should be greeted with the Evolution X dashboard.

Xbox Original Dashboard Xbox Evox Dashboard

The original Microsoft dashboard

A skinned EvolutionX dashboard

As you can see from the screenshots above, the Evolution X dashboard is much nicer and much more powerful. It is also heavily customisable allowing you to, amongst other things, configure the menus listed and apply different skins. Evolution X also includes a built in FTP server allowing you to easily copy over new applications. A number of articles already exist detailing the Evolution X configuration file, including one over at Xbox-Scene that details every section of the ini file.

7. Xbox Media Center

One of the best applications I have seen for the Xbox is the Xbox Media Center.

XboxMediaCenter can be used to play and view supported video/audio/picture formats such as MPEG-1/2, DivX, XVID, MP3, JPG and more direct from a CD/DVD in the Xbox DVD-ROM or of the Xbox hard disk drive, it can also play files from a PC over a LAN / network via XStream Server software or from a Windows (SMB) share. It has playlists and slideshow. These features enable the Xbox running XboxMediaCenter to fully function as a multi-media jukebox.

www.xboxmediacenter.com

Exciting stuff! In fact that is the main use of my Xbox now that I have modded it. It sits underneath the TV and gets used to play DivX files and MP3s from computers on my home network!

xbmc1xbmc2xbmc3xbmc4

8. Installing Debian

Download Ed’s Xebian from http://xbox-linux.sourceforge.net/docs/download.html.

You will need to burn the 1.0.0.iso file to CD. Remember to burn it as an image rather than burning it as a file. Note that the Xbox does not read CD-Rs and depending on the make of drive can very picky about different brands of CD-RW. From my experience Datawrite CD-RWs work quite well provided they are completely erased (not quick erase) and are burnt at the slowest speed possible. To check if your media will work in the Xbox try burning an audio CD and then ripping it using the Microsoft dashboard.

Now you’ve burnt the CD you need to put it into the Xbox and boot from it. You should see Linux boot from the CD and eventually launch into its graphical environment.

screenshot-linux-1 screenshot-linux-2

You now need to log in using the username “root” and the password “xbox”. You’re supposed to be able to use the Xbox’s gamepad to type using the on-screen keyboard, but this didn’t work for me. Fortunately I had a couple of Xbox to USB adapters and a spare keyboard and mouse. Linux will work quite happily running off the CD, but you cant change any settings or install software so you need to install it to the hard drive. To begin the installation procedure being up a terminal window and type “XBOXLinuxInstall”.

screenshot-linux-3

You now have the choice of installing Debian onto either the games save partition (E), or, if you have a 10Gb drive, installing onto the unpartitioned space sometimes referred to as drive F. Installing to drive E simply creates an image file into which Debian is installed and is probably the safest method. The 10Gb hard drives are made by Seagate and the 8Gb ones by Western Digital, so I hope you made a note of which one you have when had the lid off. My hard drive is a 10Gb Seagate so I’m going to choose to install Linux onto the unpartitioned space.

Which ever option you choose, you will be asked for the size you want the swap partition/file to be. The suggested 256Mb is fine. If you’re installing onto the games partition (E) then you will next be asked for the size of the root partition. As far as I’m aware this cant be larger than 2Gb, and you certainly wouldn’t want it any smaller than this! If your using the unpartitioned space then what ever space it left after the swap partition has been created will be used as the root filesystem. Once the partitions are all created Debian will begin installing itself which will take several minutes. Once all the files are copied you will then be asked to enter the IP address, etc. for your network. Once this is done you can reboot.

Now that your have Debian installed you need someway of booting it and you have two options available. You can either boot Debian using a boot CD, or you can boot it from the dashboard. In the Xebian archive you downloaded there are two other ISO files boot_fatx_e.iso and boot_hdd.iso. The first ISO is for if you installed Debian on your game save partition (E), and the second for if you installed Debian onto the unpartitioned space (F). If you want to boot Debian from a CD then you need to burn the appropriate ISO file to CD. If you want to launch Debian from the Dashboard you need to extract the contents of the appropriate ISO, using something like ISOBuster, and upload it the Apps folder on the E drive (assuming you’re using the EvolutionX dashboard).

screenshot-linux-4

This is how I installed Debian on the Xbox, and to be honest it’s pretty straight forward. A much more detailed guide on installed Debian on the Xbox can be found at http://xbox-linux.sourceforge.net/docs/howtodebian.html.

8.1. TV Out

One thing to note is that X only runs the TV at a resolution of 640×480. This is a little small, especially if you want to use something like a web browser. It is possible to increase the resolution to 800×600 and even 1024×768 (though the text was a little small at this point). To change the resolution you simply need to modify the Screen section of /etc/XF86Config-4-xbox:

Section "Screen"
    Identifier      "Default Screen"
    Device          "Nv"
    Monitor         "Generic Monitor"
    DefaultDepth    24
    SubSection "Display"
        Depth           24
        Modes           "800x600"
    EndSubSection
EndSection

Remember to make a backup of the file just in case! You can change the resolution by editing the Mode line. Once edited you can press CTRL+ALT+BACKSPACE (that’s backspace, not delete!) to restart the X server.

8.2. Wallpaper

If you want to change the wallpaper at the X logon screen you can simply upload a JPG of your choice to the /usr/share/wallpapers folder and edit /etc/X11/xdm/Xsetup. You can also turn off the Xbox console keyboard window by editing this file.

# /usr/bin/X11/xvkbd -geometry 550x140 -fn -adobe-times-bold-r-normal-*-20-*-*-*-*-*-*-* &
/usr/bin/xloadimage -onroot /usr/share/wallpapers/xbox.jpg -fullscreen &

Placing a # in front of the first line Xbox console keyboard and the second line says to use /usr/share/wallpapers/xbox.jpg for wallpaper.

8.3. Audio

One problem I discovered recently is that although you can use XMMS to play and stream MP3s, it only appears to work as root. In order to play audio as a normal user on your Xbox you need to add youself to the audio group. Do this by running adduser [username] audio as root, where [username] is your username. You also need to type chmod 777 /dev/sound/dsp and chmod 777 /dev/sound/mixer as root. You might need to logoff and back on again for the changes to take effect.

9. Installing MythTV

9.1. Introduction

myth4 myth5

MythTV is a homebrew PVR project for Linux. It is primarily designed for use with a TV capture card so you can watch and record TV using your TV. Unfortunatly the Xbox does not have any PCI slots to add a TV card, but Myth has other uses on the Xbox thanks to a wide range of plugins that allow you to play MP3s, watch DVDs and DivX videos, play emulator games, surf the web, check the weather, check news feeds and much more. Read on to find out how to install it on the Xbox…

9.2. Installing Dependencies

apt-get update 
apt-get install mysql-server libmysqlclient10-dev

9.3. Building Lame

Download Lame from http://sourceforge.net/project/showfiles.php?group_id=290.
Type the following command to extract the Lame source code:

tar xzf lame-3.95.1.tar.gz

To compile Lame type:

cd lame-3.95.1 
./configure 
make 
make install

9.4. Building QT

Download the QT library source from: http://www.trolltech.com/download/qt/x11.html
Type the following commands to extract the QT source:

su cp qt-x11-free-3.3.0b1.tar.gz /usr/local 
cd /usr/local 
tar xzf qt-x11-free-3.3.0b1.tar.gz 
mv qt-x11-free-3.3.0b1 qt

Add these lines to your .bashrc file:

QTDIR=/usr/local/qt 
PATH=$QTDIR/bin:$PATH 
MANPATH=$QTDIR/doc/man:$MANPATH 
LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

To compile QT with multithreading and mysql support type:

cd qt 
./configure -thread -qt-sql-mysql -I/usr/include/mysql 
make 
make install

Note that compiling QT takes an extreemly long time. On my Xbox it takes a little over 3 hours!!

9.5. Building and Configuring MythTV

Download MythTV from http://www.mythtv.org/.
Type the following command to extract the MythTV source code:

bunzip2 mythtv-0.13.tar.bz2 
tar xf mythtv-0.13.tar

To set up the shared library requirements for MythTV type:

echo /usr/local/lib >> /etc/ld.so.conf 
ldconfig

To set up the initial MySQL database for MythTV type:

cd mythtv-0.13 
mysql < database/mc.sql

To compile MythTV type:

./configure 
qmake mythtv.pro 
make 
make install

Note that compiling MythTV takes quite a long time. On my Xbox it took about an hour and a half.
Now you have MythTV built and installed you now need to configure it, so type the following:

cd setup ./setup

You can say no to the first two questions on clearing capture card and channel information. You should now be presented with the MythTV setup screen. You only need to go to option 1 to configure the general settings. You can then click next to all these pages. Once done you’ll be back at the main setup screen, simply press Escape to exit.

9.6. Running MythTV

If you’ve done everything correctly up to this point you should now be able to run MythTV. Bring up two terminal windows and type mythbackend in one to start the backend server, and mythfrontend into the other to start MythTV. As said before MythTV is a PVR project and is therefore designed to work with TV capture cards, so at the moment MythTV is pretty useless on the Xbox. However there are a load of plugins available for MythTV such as RSS news feeds, weather information, games, music, DVD, video, etc. Once these are installed then you’ll have something useful!

myth1

9.7. Installing MythMusic

MythMusic is a music player add-on module for MythTV which you can download from www.mythtv.org.

CD Paranoia

Before we can compile MythMusic we need to install cdparanoia. Download this from http://www.xiph.org/paranoia/download/cdparanoia-III-alpha9.8.src.tgz and install it following the instructions below:

tar xzf cdparanoia-III-alpha9.8.src.tgz 
cd cdparanoia-III-alpha9.8/ 
./configure 
make all 
make install 
ldconfig

libcdaudio

You’ll also need to download and compile libcdaudio v0.99.9.
Do this by typing:

tar xzf libcdaudio-0.99.9.tar.gz 
cd libcdaudio-0.99.9/ 
./configure make
make install

FLAC

Next, download the full sourcecode for FLAC from http://flac.sourceforge.net/download.html.
Unpack, compile and install as follows:

tar xzf flac-1.1.0.tar.gz 
cd flac-1.1.0/ 
./configure 
make 
make install

Vorbis

Now we need to download Vorbis. This involves two steps. First you need to download libogg from http://www.vorbis.com/files/1.0.1/unix/libogg-1.1.tar.gz and compile it by doing:

tar xzf libogg-1.1.tar.gz 
cd libogg-1.1/ 
./configure 
make 
make install

Then second you need to download libvorbis from http://www.vorbis.com/files/1.0.1/unix/libvorbis-1.0.1.tar.gz. Unpack, compile and install it as follows:

tar xzf libvorbis-1.0.1.tar.gz 
cd libvorbis-1.0.1/ 
./configure 
make 
make install

MAD

Lastly, we need to download MAD from http://sourceforge.net/project/showfiles.php?group_id=12349. You will need both libid3tag and libmad. Compile libid3tag by doing:

tar xzf libid3tag-0.15.1b.tar.gz 
cd libid3tag-0.15.1b/
./configure 
make 
make install

Then compile libmad:

tar xzf libmad-0.15.1b.tar.gz 
cd libmad-0.15.1b/
./configure 
make 
make install

MythMusic

Back to MythMusic, we should now be able to unpack and build it by doing:

bunzip2 mythmusic-0.13.tar.bz2 
tar xf mythmusic-0.13.tar 
cd mythmusic-0.13 
./configure 
qmake mythmusic.pro 
make 
make install 
ldconfig

You can now startup MythTV and configure MythMusic so it knows where your MP3s are. Do this by going to the Setup option on the first screen, and then Music Settings on the second screen. If nothing happens when you select Music Settings and you get the message Unable to initialize plugin 'mythmusic'. on the console then run ldconfig and that should fix the problem.
myth2

9.8. Installing MythVideo

MythVideo is a generic video player frontend module for MythTV. Download it and unpack it

bunzip2 mythvideo-0.13.tar.bz2 
tar xf mythvideo-0.13.tar

and then to build and install do:

cd mythvideo-0.13
qmake mythvideo.pro
make
make install

9.9. Installing MythNews

MythNews is an RSS feed news reader module for MythTV which you can download from www.mythtv.org. Fortunatly MythNews is much easier to install than MythMusic. To unpack simply do:

bunzip2 mythnews-0.13.tar.bz2
tar xf mythnews-0.13.tar

and then to build and install do:

cd mythnews-0.13
qmake mythnews.pro
make
make install

myth3