How to Install SuSE Linux 8 on your Xbox
by Michael Steil, 5 September 2002
Standard Linux distributions do work on the Xbox, with minor modifications. To run SuSE Linux as a server, you only have to change two lines in the Linux kernel, disable one init script and install two drivers for audio and networking. Having an Xbox that runs as a standalone Linux workstation does not require much more work. This article is a step-by-step tutorial to install SuSE 8 with X-Window on the Xbox.
You will need
* an Xbox that is equipped with a 10 GB drive (most are) and with any modchip
* a SuSE 8 compatible PC with a network card
* SuSE Linux 8 (at least CD 1)
* the latest XBE bootloader as well as the patched SuSE kernel available from the Xbox Linux Project ("SuSE8-Xbox.tar.bz2")
* either a CD/RW (or DVD/RW) that works in your Xbox DVD drive or EvoX on your Xbox hard disk
* good Linux knowlegde
For network and audio support you will also need
* the SuSE 8 nForce device driver RPM, available on nVidia's site (the SuSE support database links there)
To work interactively on the command line, you'll need,/p>
* an Xbox/USB adaptor, as described on the web site
* a USB keyboard
To work in X-Window on your Xbox, you will need in addition:
* either another Xbox/USB adaptor or a hub to plug the Keyboard and the mouse into the first adaptor
* a USB mouse
* the Xbox Linux 0.4 ISO
We'll do a cross-install, i.e. we connect the Xbox hard disk to the PC, install Linux onto it, make some more modifications to the installation (drivers, patches), plug it into the Xbox and install the bootloader for the Xbox.
Before you start, it is strongly recommend to backup your Xbox hard disk, as described on the Xbox Linux site. Linux will be installed into unused parts of the hard disk, but...
You cannot just connect the Xbox hard disk to your PC, because it is locked. You have to "hot-swap" it. Place the PC and the Xbox next to each other and prepare an IDE cable to be able to connect the Xbox hard drive as secondary master. With the USB keyboard and USB mouse (if you want to use them on the Xbox later) connected (and with the PS/2 keyboard and mouse disconnected), turn the PC on and put the SuSE boot CD into the PC's CD drive. Stop at the boot loader menu and turn on the Xbox. When the Microsoft Dashboard (or EvoX) shows up, disconnect the Xbox hard disk's IDE cable and connect the PC's IDE cable while both computers are running. Chose "Installation" in the bootmanager. In the boot messages, the HD should be detected as a 10 GB drive at /dev/hda. If it's only 8 GB, you cannot install SuSE using this method (yet), sorry.
The USB mouse and the keyboard should get properly detected, just install according to your wishes (keyboard map, time zone, packages to install), but you will have to change the partitioning SuSE suggests or else it will overwrite your Xbox system data and savegames on the disk. Tell SuSE to discard the suggestion, and you want to define the partitions on your own in expert mode. Create /dev/hda1 starting at track 15534 (that's right after the last Xbox partition) with a size of 128 MB as a swap partition. Allocate the rest behind this partition (about 1.7 GB) as your root file system /dev/hda2; ReiserFS is preferred. Note that the SuSE installer can safely write a PC-like partition table, since the first sector of the Xbox hard disk is unused.
Start the installation and follow the onscreen-instructions. If the installer tells you that the disk might not be bootable, just ignore it, it should be bootable afterwards, unless your PC is really very old. When the installer wants to reboot, you either have to disconnect the IDE cable of the hard disk between the unmount messages and the actual reboot and reconnect it when the VGA card's bios prints it's initialization messages onto the screen, or you will have to unlock it again by connecting it to the Xbox and starting the Dashboard and hot-swap it to the PC while the VGA messages are shown (these should be some seconds), because a reboot locks the hard disk again.
The second phase of the installer should now start from hard disk. Configure your network now to match the settings you will expect in your Xbox. Just ignore all other hardware settings. The installer will reboot again, and you'll have to do the disconnect trick or unlock process again. Boot into your newly installed system.
Install the nForce driver RPM now. Edit /etc/modules.conf and disable your PC network interface and audio hardware. Enable the already existing nForce lines (just scan for "nForce"). Also edit /etc/inittab and change the default runlevel from 5 to 3 ("id:3:initdefault:"). The init script "hwscan" in /etc/init.d would crash the Xbox, so disable it by simply renaming it. Copy the file /boot/initrd to a disk, because we will need it later. Your SuSE installation is now prepared for the Xbox hardware. Shut down and connect the hard disk to the Xbox.
You need a bootloader configuration now. Either you boot from CD or through EvoX. In either way, you need the bootloader default.xbe, the patched SuSE kernel, the initrd you copied from the SuSE hard disk before, and a linuxboot.cfg file. The package from the Xbox Linux web site contains the kernel and for each of both solutions a default.xbe and a linuxboot.cfg. Put the corresponding four files either onto a CD/RW (DVD/RW) containing a UDF filesystem ("mkisofs -udf") or copy them to E:\Linux\ using EvoX.
You should now be able to boot Linux. You should see the kernel initialization messages, the initrd messages and the init scripts, and you should finally get a "Login:" after a minute or two. If you chose to access the Xbox only through the network, you can ssh into it now and do everything you can do on a Linux PC. If you want to work with the Xbox directly, you can now connect the USB keyboard through the adaptor, and you should be able to log in.
If you want to use X-Window, you'll have to use the X server contained in the Xbox Linux 0.4 ISO, SuSE's server don't work (yet). Extract the initrd from the ISO (mount -o loop etc.), uncompress it (gzip -d), and extract the files in the initrd (mount -o loop again) to the newly created directory /X on the Xbox. Create the devices tty0, tty7, fb0 and usbmouse0 and create a symlink from mouse to usbmouse0 in /dev. You can now start X-Window with
chroot /X X
Change to another virtual terminal, log in as a user and type
export DISPLAY=localhost:0; startkde
and, when you change to console 7, you should be in KDE.
This is not yet perfect. Some issues:
* Starting SaX or installing software with YaST crashes
* Pressing the eject button reboots
* Pressing the power button doesn't shut Linux down
* Trying to reboot Linux only makes it halt, you can reboot then by pressing the eject button.
I only had the current versions of Mandrake and SuSE here, and I don't have a broadband internet connection, so that I could download any other distributions. I tried Mandrake first, starting with root mounted as NFS, and with its own partition later. Too bad Mandrake is very pedantic about module versions, and there's something wrong with the compiler, so I was unable to run a kernel based on the Mandrake-patched 2.4.18 sources that loads nvnet.o. And without a Mandrake kernel, the kernel modules on hard disk would not load. So I tried SuSE, which made a lot less problems. If there are any Mandrake experts out there, I would still like to try Mandrake, too! And RedHat...
Again: The project has nothing to do with SuSE.
This article has been written in OpenOffice.org 1.0.1 in SuSE 8 on the Xbox.