I will skip right to the point: The magic command for creating an ISO9660 image for a disc that is bootable both on a PC BIOS and on a modded Xbox goes something like this:
$ mkisofs -udf -r -joliet -eltorito-catalog isolinux/boot.cat -boot-info-table -eltorito-boot isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -o basic.iso basic/
Before continuing the series on Xbox-Linux, I want to write down how I currently manage my local kernel patches. While it is possible to use git and its rebase functionality for this purpose, it is not optimal. The way I currently work is to start with a vanilla Linux kernel tarball, extract it and apply the big Xbox-Linux patch. I then make changes to this tree, one change per commit/patch as a disciplined VCS user. Eventually I expect to want to update the Linux kernel by fetching a new tarball and applying all patches again. There is a tool which was created for exactly this workflow, and it's called quilt. It is commonly used in Debian to keep track of downstream changes to deb packages. Unlike git, it's been around forever so I can even use it on my ancient Debian 3.1 building VM.
Continuing from Compiling a kernel I wanted to boot the existing X-DSL installation with my custom kernel. As noted in the concluding sections of that article, the kernel did boot but wouldn't find the hard disk. Examining the kernel messages on the screen I noticed devfs being mounted slightly...
This is a continuation of Reviving Xbox-Linux, 15 years later. Refer to that article for an introduction.
As a first step I'm going to try to compile and hopefully boot the latest available Xbox-Linux kernel (2.4.32). The Xbox-Linux page about porting existing Linux distributions to the Xbox suggests starting by making the kernel mount the root filesystem over NFS, as this will make it easier to make changes to it. While I'm not sure these instructions were ever tested, it does sound like a good idea.
I've recently acquired a fondness for the original Xbox from 2001, henceforth known as the Xbox Classic. It is very similar to an Intel Pentium III based PC with an Nvidia GPU. It is also a game console, which means that its hardware is (or was) completely static (with a few well-documented exceptions between the different versions) so you can be sure that even low-level programs written for one Xbox will run on another. The Xbox's security features were thoroughly broken soon after its release, so there are many ways of getting unsigned code to run on it. Further, even though I insist on calling it a classic console, it is usually not yet regarded as a retro console so there are lots of tiny things to improve on it for the keen hacker. All of these reasons tempt me to try to develop some toy programs for the Xbox Classic.