Hello and welcome back to The Cool Blog. I’ve been meaning to write more but I had these things called finals and then I had to move home for the summer and then I got addicted to Satisfactory again and yeah. Anyway I’m back and time for me to share a project of mine that I’ve been working on since like March.

Back in March I came home for spring break and quickly found myself motivated to do something dumb with Linux but there was an issue, all of my stuff was back in my dorm. The only thing I really had was a hard modded Xbox 360, an old monitor, and an even older keyboard.

I knew what I had to do.

So firstly the Xbox 360 specs so you have an idea of what I’m working with.

  • CPU: A 3 core 6 thread IBM PowerPC (big endian) Xenon CPU running at 3.2Ghz
  • RAM: 512mb GDDR3 shared between the CPU and GPU
  • GPU: Unimportant as Linux can’t use it
  • Storage: Proprietary hard drive connector for SATA hard drives. No idea what version of SATA it is.

First thing I did was quickly assemble The Setup™


A Compaq keyboard from like 1999 sitting on a cardboard box on the floor with a pizza squishmallow being used as a mousepad for a gaming mouse. Behind it sits the Xbox 360 with the monitor on top of the Xbox.

So quickly I started looking around online for information on running Linux on the Xbox 360. I knew you could do it I just didn’t know how. After about 2 seconds of throwing words into duckduckgo I found free60.org. An archive of the old xbox 360 linux wiki complete with broken links and information from 2009. It was an okay start. Clicking around there took me to their Sourceforge page where I was able to find an old Ubuntu liveCD. I threw the files for the liveCD onto a fat32 partition on a flash drive, popped it into the Xbox, and started XeLL Loader.

After a few minutes of it slowly loading we were brought to a Desktop.


Ubuntu desktop with LXDE desktop environment.

Okay so cool I can boot a liveCD but I want something that I can actually have installed and modify. So I went back to the free60 website and started looking around to see what else there was and I found a download for a precompiled Linux 2.6.24.3 Kernel and figured that I could probably get a root filesystem onto something and get it to boot from it. So my next plan was to use debootstrap to get Debian booting on it. I knew Debian had dropped support for big endian powerpc ages ago but that’s fine as the kernel I had to work with was also ancient. I went to the Wikipedia page for Debian version history to figure out which version came with a kernel closest to what I had and settled on Debian lenny.

Next I had to figure out I wanted to install it on the Xbox. I would prefer it be on a hard drive so I didn’t have to worry about USB 2.0 speeds or just me wanting my flash drive in the future but I also didn’t want to wipe my only hard drive I had for it. I just tore apart the drive enclosure and swapped the drives in it. Eventually I just threw out the enclosure and just kept the cable that went from the proprietary plug to regular SATA and just used that so I could swap drives easily.

Now with a hard drive to install it was time to start. I started with plugging the hard drive into my laptop with some random USB to SATA adapter I had and had it do stage 1 of debootstrap onto the hard drive. I couldn’t do stage 2 on my laptop because that involves chrooting into the install and unfortunately my laptop isn’t powerpc. I just popped the hard drive into the Xbox, booted up the Ubuntu liveCD, chrooted into the filesystem on the hard drive from there, and had it do stage 2. After doing that and creating the fstab and network interfaces files it was time to edit the config file for XeLL to load the 2.6.26 kernel and point to the right root device.


Debian 5 login prompt with a bunch of errors coming before it.

Well there were a bunch of errors being thrown across the screen during boot but it booted so success.

I still wanted something newer. The last version of Debian to support powerpc was Jessie (Debian 8) but to boot that I was going to need a newer kernel. Someone I know was able to find one. Here’s the mirror it’s at if anyone else is insane like me.

Now with the extremely recent kernel 3.5.4 it was time to do this again.

It was basically the exact same process as the last time so I’m not going to go into any detail.


Neofetch showing Debian 8 on an xbox 360.

Anyway now I had slightly newer Linux running on the Xbox. Now what do I do with this?

Obviously we’re gonna try and run a Minecraft Server on this.

It took about 30 minutes to generate the world and it crashed almost immediately after I joined the game because the server was immediately lagging so much that it thought it had hung and quit but I can prove that I did join the server for at least a second.


Picture of Minecraft server console output showing that I did join the server.

It was at this point that sprink break ended and I went back to Purdue. Once I came home for summer break though it was time to get back to work because I had a new plan. Now it was time for Gentoo. I grabbed a stage3 tarball from the gentoo website and extracted it to a partition on the hard drive, booted up the old debian install, chrooted in, and got to work. I managed to compile a little before at one point it froze and I gave up.

Neofetch showing Gentoo on an Xbox 360

Gentoo on the Xbox 360 compiling utmp.

So that’s how far I got with Linux on the Xbox 360. The next part will be about Linux on the PS3. No idea how long it will be until that comes out. I’ll let you know that Gentoo is going well on it and I’ve been waiting for cmake to compile for like 4 hours now.

Follow me on Mastodon

Back

Read More