Personal tools
You are here: Home Blog Adventures with MythTV and Xbox
Document Actions

Adventures with MythTV and Xbox

by Nathan Cassano last modified 2009-01-20 14:22

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.
# MythTV
deb http://www.debian-multimedia.org/ etch main
Next install the mythtv frontend
# apt-get update
# apt-get install mythtv-frontend
By 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.
exec /usr/bin/ratpoison &
exec /usr/bin/mythfrontend 2>&1 >> /home/mce/mythfrontend.log
exec /usr/bin/irexec &
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.
/dev/hda2    /        ext3    defaults,errors=remount-ro      0       1
/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
Reboot the system, run through the MythTV setup and you've got a pretty cheap multi-media system.
« May 2012 »
Su Mo Tu We Th Fr Sa
12345
6789101112
13141516171819
20212223242526
2728293031
 

Powered by Plone CMS, the Open Source Content Management System