File Name
Size
Date
-
..——
-
README10.13KB2025-06-13 14:26:56cromwell-2.21dev.tar.gz816.50KB2025-06-13 14:26:56cromwell-2.24a.tar.gz541.66KB2025-06-13 14:26:56cromwell-2.24c.tar.gz545.90KB2025-06-13 14:26:56cromwell-2.26.tar.gz602.78KB2025-06-13 14:26:56cromwell-2.27.tar.gz607.01KB2025-06-13 14:26:56cromwell-2.27b.tar.gz607.43KB2025-06-13 14:26:56cromwell-2.29.tar.gz637.55KB2025-06-13 14:26:56cromwell-2.30.tar.gz680.43KB2025-06-13 14:26:56cromwell-2.31.tar.gz530.72KB2025-06-13 14:26:56xbox-linux-0.1.bin.zip885.10KB2025-06-13 14:26:56
http://xbox-linux.sourceforge.net/
Release 0.1 (Hollings/Fatboss) 2002-08-16
By the many hackers of Xbox Limux
SCOPE
This is the first full release of a 'clean' 1MByte BIOS implementation
for the Xbox (<-- TM Microsoft) which actually contains and boots a
2.4.18 Linux Kernel, and brings up the network and some applications
like a small webserver, etc.
The BIOS can either be executed from the motherboard or LPC boot flash,
or from a specially constructed CD, which runs an unsigned XBE that
copies the BIOS into RAM and starts running it as if it was a warm
boot. (So for the CD method, you must have a mod installed allowing
unsigned code to be run.)
Yes, the box lights up on the network and can be telnetted into.
All Microsoft 'innovations' (ie, restrictions) have been burnt away.
The box is still 0wned, but now its 0wned by YOU.
OVERVIEW
What does a 'clean' BIOS mean? It means it does not use any MS code
from their BIOS. We have studied the original code and boiled away
everything we did not actually need to get Linux to boot.
All of this work is aimed at getting the Xbox to interoperate with
Linux according to the provisions in the US DMCA and EUCD. Why is
it that the representatives of our countries place the 'rights' of
bloated Copyright owners so far above those basic rights of the rest
of the Citizens they are elected to represent? Can you imagine a
reason why they might do what the fat, rich owners of the media might
ask of them, instead of looking after our interests?
PRINCIPLES
- We do not use ANY original Code and only a dozen or so non-code
bytes from the start of the ROM
- In fact we use a single X-Code instruction which subverts and
aborts the X-Code interpreter, this X-Code was obviously not
used by MS originally :-)
- Our ROM does not contain ANY original code or keys from the
original Xbox. So its kind of hard for MS to complain about
any kind of copyright violation.
- We use a standard Linux kernel with a suitable configuration for
the box
- Everything is compressed into a 1MByte BIOS image - so you will
either need to be able to program a 1MByte boot flash
(motherboard or LPC) in order to use this release, or you
will need to use the CD BIOS launcher method.
IMPLEMENTATION
So what does this first full release actually do?
- If you boot from the CD BIOS launcher, the CD will eject as the
boot begins. This is normal; don't press eject again or you'll
get a reboot.
- during the boot, Linux unpacks a compressed ram filing system
from flash, called initrd this stands for Initial Ram Drive,
and it contains root filesystem (that is, /), the shell and
other utilities like webservers, telnet daemon, etc.
- Linux can see and init the Ethernet adapter, default startup
scripts from the initrd assign it an IP and so make it visible
to your LAN and the internet using standard protocols
- we can use NFS to make directories from other machines read/
writable to the box
- Linux can also mount non-locked HDDs on the box IDE port. By
default we do not mount any HDD. Although we have the code
and keys to unlock the drive in software we decided not to
issue it yet due to the trouble bugs would cause. It is
believed that a UDMA drive of reasonably recent vintage is
required for correct operation with the nVidia chipset
currently.
- our default scripts bring the ethernet up as 192.168.0.64,
netmask 255.255.255.0 (<---set in ./bootdisk/etc/init.d/rcS).
So what can you do with this default setup?
- http://192.168.0.64 your box wants to tell you something
- telnet 192.168.0.64 yes - a shell prompt
Source Package
./crom/ The C BIOS ROM
boot.h constants needed by ASM and C
consts.h constants needed by C
BootStartup.S from-reset init, jumps into C
BootResetAction.c C manages reset sequence, calling other subs
BootPerformXCodeActions.c C to perform peripheral init
BootPciPer...lization.c C to perform more detailed peripheral init
BootPerfor...onseAction.c I2C code, PIC watchdog, LED setting
BootVgaInitialization.c C to bring up the video, not working yet
BootLinux.c C to bring up Linux kernel, not working yet
./kernel/ Kernel patches and configuration
config minimal kernel .config
pci.c substitute for linux/drivers/pci/pci.c
./initrd/ The initrd contents before packing
busybox-0.60.3/ Busybox shell library
busybox Symbolic link to current busybox library
bin/ contains syslinux
initrd.src/ contains the default filesystem
etc/ configuration files go here
init.d/
rcS Startup script sets up IP address/mask, etc
boa/
boa.conf Configuration for boa
initab Maps system actions to scripts
group Maps users to the login group they belong to
passwd Information about users and home directories
fstab What partitions or devices to mount where
mime.types Maps Mime types to file types for boa
lib/
modules/
2.4.18/ Kernel modules for our version
xbox_proc.o Customized proc filesystem driver
nvnet.o nVidia network driver compiled against 2.4.18
mnt/ Other filesystems can be attached here
proc/ A synthetic filesystem that reports
information about the system using text files
sbin/ Contains executable files mainly for root use
usr/ Files that are for all users
httpd/ The boa webserveruses files in here
htbins/ CGI scripts for the webserver
info a CGI script used to present information
about the xbox state in a remote browser
htdocs/ Root directory for the web server content
index.html The default page for the whole webserver
yourbox.jpg picture
freedom.jpg picture for webpage
var/ Logs go here
httpd/ Web server logs
build Main build script. You will probably need to
edit the LINUX variable on line 26 to point
to your linux distribution you will be using
./xbe-boot-bin/ Source code for CD BIOS loader
xbeboot.S Xbox kernel escape and BIOS boot code
xbe.S XBE header
font.S 8x16 VGA font for debug messages
logo.S Tux the penguin
ROM Package
./xbox-linux-0.1.bin 1MByte image to be burnt into flash BIOS (
LPC or motherboard)
Note there is no video yet, but the network is up
Bootable CD Package
./xbox-linux-0.1.iso ISO ready to burn CD that will start up Linux
Note there is no video yet, but the network is up
BUILDING
The "build" script takes care of the complete building process, but note
that the commands replacing your kernel configuration are disabled in
"build" by default, to avoid accidently overwriting your current configuration.
Just use the configiration from the kernel subdirectory, and replace the
file linux/drivers/pci/pci.c with the version provided.
The build process will create a file xbox-linux-0.1.iso, which can be
written to CD, and image-rom.bin, which can be copied into a ROM chip.
ENVIRONMENT
Once you are booted, what does the envirnoment inside the box look like?
Note that as the system is setup, you are automatically logged in as root.
The / filesystem is a 4MByte ram drive called /dev/rd0. Around 2.7MB
is free.
# ls -l
drwxr-xr-x 2 root root 1024 Aug 16 2002 bin
drwxr-xr-x 1 root root 0 Jan 1 1970 dev
drwxr-xr-x 4 root root 1024 Aug 16 2002 etc
drwxr-xr-x 3 root root 1024 Aug 16 2002 lib
lrwxrwxrwx 1 root root 11 Aug 16 2002 linuxrc -> bin/busybox
drwx------ 2 root root 12288 Aug 16 2002 lost+found
drwxr-xr-x 2 root root 1024 Aug 16 2002 mnt
dr-xr-xr-x 24 root root 0 Oct 16 04:29 proc
drwxr-xr-x 2 root root 1024 Aug 16 2002 sbin
drwxr-xr-x 5 root root 1024 Aug 16 2002 usr
drwxr-x--- 3 root root 1024 Aug 16 2002 var
THE FUTURE
Microsoft have apparently made revisions to the ROM in the MPCX chip
which are intended to break our code. At the time of writing (2000-08-16)
these 'version 2' boxes have not been seen in the wild. We know that
they are coming because nVidia, Microsft's uncomfortable looking partner
in this endeavour (all of Microsoft's partners get that uncomfortable
look after a while, like they want to put a little more distance between
their body and the Microsoft guy they're standing next to, but they don't
dare let them know they feel that way; cf Intel and Dell) told analysts
recently that some of their poor performance in the last quarter was due
to having to write down stocks of obsoleted 'version 1' MCPX chips. This
caused a lot of amazement that nVidia had to take the hit for that and not
Microsoft, but its *Microsoft*, that's what its like to lie down with
the Beast.
All of the Xboxes that are out today will work fine with our release,
but another round of understanding the firmwware will be necessary before
a version suitable for the 'version 2' boxes can be issued.
TODO
The next focus of development will be on making a genuinely friendly
distro, which will hopefully boot from CD directly from X like any
modern distro.
- * - - * - - * - - * -
If even one kid is saved from emptying his wallet into the livingroom
coinslot that is the retail Xbox, and instead turned on to how they
can contribute to free software for the enrichment of everyone's lives,
all of our work will have been worthwhile.