Debian on the Xbox

 Home   Software   Projects   Free Software 

Description

Below are a series of Debian packages specific for the Microsoft Xbox.  Their purpose is to assist upgrades from Xebian 1.1.4, which is based on a rather old version of Debian GNU/Linux 3.0 "woody".  These packages allowed me to upgrade my Xebian installation to Debian GNU/Linux 4.0 "etch", with some additional effort.  Here is an approximation of the steps required to install Debian on an Xbox:

  1. Read the Getting Started Guide at the Xbox Linux Project Wiki.  The exact methods that you chose depend entirely on what you have to start with and what are your goals.  You may have to flash the BIOS, etc.
  2. You should evntually end up at the Xebian Download page.  Download the Xebian 1.1.4 archive of your choice.  The "basic" archive is effectively a Debian base install for the Xbox, while the "xbox" archive is a full graphical desktop.  Both work on the Xbox, of course.  If you are an advanced Debian user and intend to immediately upgrade to the latest stable Debian, the upgrade may be more painless by starting with the "basic" archive and adding packages after the upgrade is complete.  I already had the "xbox" archive installed for several years, as it was being used as a MythTV frontend.
  3. Be sure to read the Xbox Linux Boot CD/DVD Burning HOWTO before burning any images.  There are some caveats with the Xbox.
  4. Read the Xebian HOWTO all the way through.
  5. Install and configure Xebian per the procedure outlined in the HOWTO.

Once you have Xebian installed and configured, you need to prepare for the Debian upgrade.  At the time of this writing, Debian GNU/Linux 4.0 "etch" is the most recent release.  This procedure has that assumption in mind.  If Cromwell BIOS is used, version 2.40 or higher is required.

  1. Configure your apt sources.list as shown here and execute "apt-get update".
  2. Upgrade the kernel and modules to version 2.6 using the packages below.  Due to something strange about make-kpkg, the sources may need to be untarred in "/usr/src" for the installation to succeed.
  3. Install the module-init-tools package with "apt-get install module-init-tools".
  4. Replace/merge your "/etc/modules" config file with this one.
  5. Add an entry for the new kernel to "/boot/linuxboot.cfg" as described on the Xebian-1.1.4-Kernel-2.6-Upgrade Wiki page under "Compile the Kernel -> xebian".  You will need to change the "append" line for the new kernel to "root=/dev/hda2 kbd-reset xbox=hdd", as Xebian uses the obsolete devfs driver.  Be sure to leave the entry for the old kernel in case something goes wrong.  This one works with the kernel package below.
  6. Reboot the Xbox with the new kernel.  You need to manually select the HDD boot device to make the kernel selection menu appear.  If all goes well, add a "default" entry to "/boot/linuxboot.cfg" to make the new kernel the default.
  7. Now perform the Debian upgrade.  There are some caveats with "etch", so be sure to carefully follow the upgrade procedure in the Release Notes for Debian GNU/Linux 4.0 ("etch"), Intel x86.  Some manual intervention is required to get the upgrades to go smoothly, including removing some old packages (hotplug and python2.3 come to mind) and browsing through various scenarios presented by the aptitude tool.  This is due to old Xebian cruft.
  8. Once the final "aptitude dist-upgrade" has been completed, reboot the Xbox to make sure it comes back up OK.
  9. Install the "nvxbox" driver for X.Org and place this xorg.conf as "/etc/X11/xorg.conf" to get the X server up.
  10. Replace your "/etc/lirc/lircd.conf" with this one if you were using the Xbox DVD remote with Xebian.  The new lirc_atiusb module only returns one byte per code instead of the 3 byte sequence of the old driver.
  11. Xebian's "blink" tool to control the Xbox LED will not work, again due to its usage of the obsolete devfs device node structure.  I haven't been able to get it to recompile yet, but a simple workaround is to create the device node manually and creating a symlink to it to emulate the devfs structure.  As root (this won't stick if you are using udev):

Packages

Linux Kernel 2.6.16 for the Microsoft XBox

This is a recent point-release of the 2.6.16 kernel with the Xbox patches applied and the modules for LIRC 0.8.0.  Also available is the patched kernel sources that may need to be present in /usr/src when installing the kernel package.  Note that FATX support has not been ported to the 2.6 kernel series yet.


X.Org nVidia Driver

This is a packaged version of the original xf86-video-nvxbox driver found in the Xbox Linux CVS. The driver itself is old, but is suitable for Debian Etch (X.Org v7.1.0) and works sufficiently well for use as a media center.

I also attempted to merge the changes from the xf86-video-nvxbox driver found in the Xbox Linux CVS into the xserver-xorg-video-nv driver for Debian Etch (X.Org v7.1.0).  This seems to work for me, though it will segfault if you do not set "NoAccel" to "true" in xorg.conf.  There is some breakage in the DMA support code that is not present in the older driver, however with the accel disabled the performance of the overlay is poor.  It's not suitable for use as a media center.  It probably breaks support other nVidia GPUs too, so don't try to use it for those.



Updated on 11/07/2007

Copyright © 1996-2007 Russ W. Knize