Cromwell Manual
From Xbox-Linux
Note: This guide describes the latest Cromwell/Xromwell release, 2.40. Previous releases lacked many of the features described below.
This guide documents the Cromwell/Xromwell bios/xbe, and does not cover the customised 'Flashbios' variants that ship with modchips. For support and information, please contact your modchip vendor.
Author: David Pye (mailto:dmp@davidmpye.dyndns.org)
| Missing image Icon-admonition-warning.png Caution | Cromwell 2.40 has some stability issues on v1.6 Xboxes. A temporary fix (http://article.gmane.org/gmane.linux.ports.xbox.devel/7568) is available, but installing it requires taking some extra steps. |
|---|
| Table of contents |
What is Cromwell/Xromwell?
Cromwell is a free, legal bios replacement for the Xbox. It is capable of loading Linux from the Xbox's Hard Disk, and CDROM. It is not able to load Xbox games, either originals or copies. It can be installed and used in one of two ways.
- Flashed to a modchip - If selected, it will let you boot linux. If not selected, it will load the original MS bios, so no functionality is lost.
- Flashed to the TSOP - this replaces the MS bios stored on the Xbox, and makes it impossible to play games (whether original or not).
The advantage of the second method is that it makes it possible to dedicate the whole harddisk to Xbox Linux. The first method only allows installation of Linux to a portion of the original Xbox hard drive. A modchip can be used in a conjunction with a dedicated Linux hard disk, but de-activating the modchip would result in Linux not booting correctly
Xromwell is a very similar program, built from the same sourcecode. However, instead of being a bios, it is an XBE (XBox Executable), meaning that it can be launched like other XBEs. It is not signed with the MS key, which means you will need either a modchip with a bios that allows you to run unsigned XBEs, or a softmod exploit, such as the UDE.
Cromwell/Xromwell also has a number of other functions, such as locking and unlocking hard disks, and selecting video modes (PAL/NTSC switching).
The Initial Screen
When you load Cromwell/Xromwell, you will see some text at the top of the screen, describing your Xbox, and the IDE devices that are connected.
You will then see a number of icons at the bottom, showing you the options you can choose. From here on, this will be described as the 'Icon Menu'.
The options you may see are as follows:
CDROM
This icon appears if you have a CD/DVD drive connected to your Xbox. Selecting it will allow you to boot an Xbox-customised Linux distribution (such as Xebian (http://www.xbox-linux.org) or Gentoox (http://gentoox.shallax.com)) from CD/DVD. It will not allow you to boot a standard Linux distribution, or any other non-Xbox customised OS, such as MS Windows.
Etherboot
This icon will allow you to load Linux over your network, if you have an Etherboot/BootP server. It is primarily useful for developers and those running Xbox linux clusters. You can find more information at the Etherboot Project (http://www.etherboot.org) website. This icon is always present.
FatX
This icon appears if you have FatX partitions on your Xbox, on which Cromwell has found at least one Xbox Linux distribution installed.
Native
This icon appears if you have native Linux partitions on your Xbox, either a native 'F' drive install (the space after 8GB), or a native installation elsewhere on the hard disk. Cromwell has found at least one Xbox Linux distribution installed natively (ie not within FatX) on the partition. The partition filesystem must be either ReiserFS or ext2/3 for this option to be available.
Advanced
This icon allows you to access some of Cromwell's 'system tools' menus.
Booting
CDROM, FatX and Native
Once you have selected the desired icon, press the 'A' or 'Select button'. Cromwell will then try to load Linux from the selected device. If the configuration file found contains entries for multiple kernels, or boot options, a text menu will appear listing these choices. Move up and down to select the desired option, and press A to launch it. If you do not have multiple boot options, this menu will not appear, and the only boot option available will be automatically selected.
Etherboot
Once you have selected Etherboot, Cromwell will immediately try to contact your bootp server, and download a kernel/initrd from it, which it will then boot.
Advanced Menus
The advanced menus allow you to perform tasks such as locking and unlocking the Xbox hard disk, changing the video mode settings between PAL/NTSC and flashing the bios from CD (useful to update Cromwell).
To navigate the menus, button 'A' selects an item, and button 'B' moves back up a menu.
Video Settings
To configure widescreen mode, select the Widescreen: menu, and press A to toggle between Widescreen and Normal.
To configure video mode, select the Video Mode: option, and press A to toggle between PAL (Europe), NTSC-M (USA) and NTSC-J (Japan).
Note: Video mode is *NOT* the same as Game region. Changing this setting alters the video signal that the Xbox sends to your TV.
These settings are saved to the EEPROM as soon as they are changed, and will be picked up by Cromwell/Xbox-Linux/Microsoft bios after a reboot. When you are happy with the settings, press 'B' to return to the Main Menu. xxx
HDD Menu
This menu allows you to 'lock' and 'unlock' Xbox hard disks. If you want to use the normal MS bios, a hard disk must be locked with an auto-generated password to the Xbox. For Linux, it is often desirable to remove this password protection, which means the hard disk can be read in a normal PC, if the Xbox breaks, for example.
To use it, select the Lock or Unlock menu (The Lock menu is displayed if the HDD is currently unlocked, and vice-versa). Press 'A'.
If the selected operation was 'Lock', the Xbox prints the 20 byte password used, in Hexadecimal. You should write this down, in case you need to unlock it manually in the event of the failure of its matched Xbox.
Cromwell uses a 'master' password of XBOXLINUX (in ascii), again, to enable you to unlock the drive using this password, if the normal, or user password, is lost.
You will need to reboot for the lock or unlock operation to take affect.
Note: If you depend on the Microsoft retail Xbox bios, do NOT unlock the hard disk, as the MS bios will not boot if the disk is unlocked.
Flash Menu
This is to be added in a future release.
Reset Menu
The reset menu allows you to power off, or reboot your Xbox.
There are three options:
- Reboot (slow) - This is a slow reboot. If you have a modchip with its' own built in OS, this will reload on reboot.
- Reboot (fast) - This is a very quick reboot. Cromwell will reinitialise itself.
- Power off - The Xbox will turn itself off.
Additional notes
Exact criteria for bootability of devices
The following criteria are used to determine if a drive is bootable by cromwell, and hence, whether you will get an icon available for it in the Icon Menu.
CDROM: A CD/DVDROM drive connected to the xbox is sufficient for the icon to appear. In order for booting to work, a linuxboot.cfg file must exist in the root directory of the CD.
HDD (FATX): a linuxboot.cfg file lives in either E:\ or E:\debian.
HDD (Native): a linuxboot.cfg exists in either / or /boot on partitions marked bootable (or 'active') in the partition table for the disk. Cromwell supports ReiserFS, and ext2/3 filesystems. It is possible to compile in XFS/JFS support too, although for space reasons, these are omitted in the standard build. It seems, Cromwell supports only booting from primary partitions.
If you have multiple partitions which fulfil this criteria, you will get one icon for each in the icon menu.
Linuxboot.cfg syntax
The linuxboot.cfg syntax, as understood by Cromwell 2.33 and future releases has been modified, in order to support multiple boot options (kernels/initrd/append line combinations). Versions prior to this did not understand the extra options, and will pick up the last kernel, initrd and append line it finds within the file.
The configuration file syntax is loosely based on that of GNU Grub, the Grand Unified Bootloader (http://www.gnu.org/software/grub/).
An example syntax is as follows:
title AMeaningfulTitle (max 30 chars) kernel /path/to/kernelimage initrd /path/to/initrd append kbd-reset root=/dev/rootdevice title AnotherMeaningfulTitle (max 30 chars) kernel /path/to/differentkernelimage initrd /path/to/differentinitrd append kbd-reset root=/dev/differentrootdevice default AMeaningfulTitle
There is no maximum number of times you can repeat the title, kernel, initrd, append, blocks so you can add as many boot options as you like. Lines beginning 'title' are the separators between different boot option blocks.
You may, if you like, add a line starting 'default <title>' to specify which boot option should be selected by default.
If you do not want to use an initrd, or append line for a particular boot option, just omit the line. There is no need to use 'initrd no', as with previous Cromwell versions, although this is still supported, if you have older format configuration files.
Another thing to note is that, although it is untidy, for backwards compatibility the following applies for linuxboot.cfg files located on the FatX E partition:
If the linuxboot.cfg resides in E:\debian, the paths specified for initrd and kernel are relative to /debian. e.g.:
If the linuxboot.cfg is in E:\debian, and the kernel and initrd are E:\debian\vmlinuz and E:\debian\initrd respectively, the block would read:
kernel /vmlinuz initrd /initrd
If the linuxboot.cfg resides in E:\, these would be specified as:
kernel /debian/vmlinuz initrd /debian/initrd.
Please do not rely on this behaviour, however, as it may change at some point in the future. It is best to put your linuxboot.cfg in E:\ and specify the full path to the kernel and initrd.
Bugs
This version of Cromwell has undergone lots of changes from previous releases, and it is certain that some bugs will have been introduced as the result of this. If you believe you have found a bug, please email either David Pye (mailto:dmp@davidmpye.dyndns.org) or the Xbox-Linux Developer Mailing List (mailto:xbox-linux-devel@lists.sourceforge.net) with a full description of your Xbox, Cromwell version, and if relevant, linuxboot.cfg.
Related links
- Cromwell and xromwell.xbe source code in the CVS (http://xbox-linux.cvs.sourceforge.net/xbox-linux/cromwell/)
- xbeboot.xbe (an older, more primitive alternative bootloader) source code in the CVS (http://xbox-linux.cvs.sourceforge.net/xbox-linux/xbeboot/)

