Adventures with MythTV and Xbox
The details of my project to create a home PVR system using an Xbox, Linux and MythTV.
My MythTV plan
The big plan I have is to put together an integrated MythTV system for my home. A part of this plan is to have MythTV thin clients for each of my rooms. From these clients you could access the main MythTV back end which would control all the content. So I needed to find an inexpensive PC that could run MythTV. I discovered through the MythTV website that the original Xbox could support MythTV quite well for standard definition. So I decided to go with Xbox for my front end.

Getting the hardware
So the first thing I did was roll over to a GameSpot store and get a used Xbox system and controller for $60 dollars. Make sure you get an Xbox with a manufacturing date before 2005 because your linux video support will suck! While I was here I also picked up a copy of 007 Agent Under Fire ($5), an Xbox memory card ($6) and a controller extension cord ($3). The 007 game is know to have a weakness that allows you to run arbitrary code which is necessary to hack the Xbox operating system. I used the extension cord to make a USB patch cable to connect the game controller to my PC. Also later I replaced one of the game controller ports with a female USB connection.


Hacking the Xbox
My first attempt was to load the exploit using the Xbox game controller, memory card and my PC booted to the Xebian Linux CD. When booting to a PC make sure you type "24" at the boot prompt for the 2.4 kernel which has fatx file system support needed to read the memory card. I was able to load the exploit onto the memory card but whenever I went tried to read device from the Xbox OS I would get a memory corruption error. I'm still not really sure what went wrong.So undaunted by my first failure I attempted to try and load the exploit using a USB memory stick. They said that the USB memory sticks could be finicky so I was happy to learn that my Lexar 128MB Secure Jump Drive was on the list of compatible drives. To load the exploit I needed a way to plug the memory stick into the Xbox. My solution was to open the Xbox and install a female USB connection in place of one of the game ports (which is really a funny USB connection anyways). After dremeling, soldering and some bondo the new USB port was in place. I formatted and transfered the exploit to the memory stick same as the Xbox memory card. However I did a number of things wrong. First I didn't copy the exploit to the hard drive but tried to run it off the memory stick. This does not work and will give you the infamous error 21. Second I didn't copy the installer files to the hard drive. This will also give you an error 21. Finally I copied all the files to the hard drive and loaded the save game exploit from 007. Success! The EvoX screen appeared!

Installing Linux
I inserted a freshly burned Xebian DVD-R (only DVD-R will work) install disk into the XBox and selected to boot to it from the EvoX screen. Next I was looking at the Xebian installation screens. I have the 10GB XBox hard-drive so I decided to install Linux on the extra 2GB free space. Linux went though it's installation paces and I finally ended up in X with a fully installed system. So with the install done I rebooted the system. Back at the EvoX screen I realized I needed a way to boot into linux. So I edited the evox.ini file and added the following line which serves as a boot loader for the Linux kernel.
evox.ini - This entry allows me to boot to linux from the Evolution X screen.
Section "Root"
{
Item "Linux","E:\debian\default.xbe"
Section "Play Games from Hard Drive"
{
Configuring MythTV
Edit your /etc/apt/sources.list to include following MythTV package respository.
# MythTVNext install the mythtv frontend
deb http://www.debian-multimedia.org/ etch main
# apt-get updateBy default Xebian sets up the mce user to automatically run X. Edit the /home/mce/.xinitrc file and change it to the following. This will start a very basic Xwindow manager, run the MythTV frontend and kick off the IR remote for input if you have a remote.
# apt-get install mythtv-frontend
exec /usr/bin/ratpoison &All my media is located on my mythbackend server using samba to share it. So I added an entry in my fstab to mount the remote media.
exec /usr/bin/mythfrontend 2>&1 >> /home/mce/mythfrontend.log
exec /usr/bin/irexec &
/dev/hda2 / ext3 defaults,errors=remount-ro 0 1Reboot the system, run through the MythTV setup and you've got a pretty cheap multi-media system.
/dev/hda1 none swap sw 0 0
proc /proc proc defaults 0 0
/dev/cdrom /mnt/cdrom iso9660 defaults,ro,user,noauto 0 0
/dev/hda51 /mnt/xboxsys fatx defaults,ro 0 0
/dev/hda50 /mnt/xboxdata fatx defaults 0 0
\\192.168.100.3\mythtv /mnt/mythtv smbfs lfs,credentials=/etc/samba/creds 0 0