AnyTux step by step: Linux on a SEGA Dreamcast
Stefan Lang, contributions by Maik Henker
While searching the web for information to put on AnyTux.org I found Dreamcast Linux, a Debian based distribution created especially for SEGA's game console.
This was quite fascinating, so I got myself a Dreamcast along with keyboard and mouse on eBay and tried it out.
Dreamcast Linux is a "Live" CD like the famous Knoppix distribution for x86 systems.
It makes full use of the available Dreamcast peripherals.
For whatever reason, the authors of Dreamcast Linux did not put full information about creating a bootable Dreamcast Linux CD on their site, so here is how it goes (it's really simple in fact).
You need the following to bring Tux to your Dreamcast:
- Dreamcast game console (obviously)
- Dreamcast keyboard (or PC keyboard with adapter)
- Dreamcast mouse (optional, to use the GUI)
- Linux PC with CD writer and Internet access
You will need about 350 MB of free space on your PC's harddisk to complete the preparation of the bootable CD. Most work will be done on the console.
Create a work directory, e.g. in your home directory:
Dreamcast Linux distribution
to that directory (Note: as the original FTP site is gone,.you may download the tarball directly from AnyTux.org)
Unpack the tarball:
tar xjfv dreamcast-linux-[version].tar.bz2
Download the bootstrap creation tool
to that directory.
Unpack the tarball and compile the source:
tar xzfv makeip.tar.gz
gcc -o makeip makeip.c
Generating the Bootstrap
To make the CD boot, it must have bootable code (the bootstrap) within the first 16 sectors. This is created as a file called IP.BIN prior to creating the CD.
You might want to edit the file ip.txt and put your own "SW Maker Name" and "Game Title" there, but this is not required. After that, create IP.BIN with
./makeip ip.txt IP.BIN
Creating the CD
Find out the SCSI ID for your CD writer:
If you have an IDE CD writer, you will probably get something like 0,0,0 or 0,1,0
This value must be put into the CD mastering script in the distributions root directory:
vi master.sh (or use any editor of your liking)
Put the numbers you found above into the line beginning with "CDRECORD=", e.g.
Save the modified master.sh script.
Insert an empty CD-R into your CD writer (CD-RW media will not work).
Start writing the CD-R:
After your CD is written you can put it into your Dreamcast and boot Linux. You can login as root with no password.
If you experience any problems booting into Linux, try Maik Henker's hints:
The cdrecord line in master.sh uses the parameter "-xa1".
This parameter has a different meaning in some versions of cdrecord, resulting in the Dreamcast not booting but trying to play the audio track.
This problem can be avoided by changing the parameter "-xa1". to "-xa".
If the Dreamcast starts booting but hangs during initialization of the initrd, try adding the parameter
"-l" to the mkisofs line in master.sh. This will allow 31 character long file names in the ISO file system.
This document is based on information from the following pages:
See also Marcus Comstedt's Dreamcast Programming site for more information about Dreamcast hardware and programming.
There are several things that remain to do for an improved version of Dreamcast Linux
- Create a German localized version (I'm German, remember?)
- Support for the built-in hardware clock is missing
Update kernel and applications to more recent versions - Dreamcast Linux is based on Debian unstable with kernel 2.4.5, release date is mid of June 2001.
- Put more software on the CD