This page is a collection of some of my Linux on Cell work.

If you're after general Linux on Cell information, try the Cell Broadband Engine resource center on IBM developerworks.

linux on cell kernel

The mainline kernel has up-to-date support for Cell machines - both the IBM QS21 servers and the Sony PlayStation 3. However, to use some of the PS3-specific features (notably the wireless network and bluetooth interfaces), you will need to use Geoff Levand's ps3-linux git tree.

current spufs development

I have a development spufs tree up on git.kernel.org. At times, this tree may be a work-in-progress, and patches will generally be posted to the cbe-oss-dev list when they're ready for inclusion.

To grab a copy of the current spufs tree:

[jk@pokey ~]  git clone git://git.kernel.org/pub/scm/linux/kernel/git/jk/spufs.git

If you'd like to participate in Linux on Cell development, or have quetions about Cell development, most of the public discussion happens on the cbe-oss-dev mailing list, (tracked using patchwork) or on IRC, at #cell on irc.oftc.net.

spufs testsuite

I have a little testsuite for validating the spufs kernel module, sources are available as a git tree on kernel.org. The testsuite README provides some more specific information.

cell toolchains

I've put up some instructions on building a Cell SPE toolchain from the Cell SDK sources. These may come in handy if you're developing Cell applications, but aren't using a RPM-based distribution.

openwrt on ps3

The PlayStation 3 has a small area of non-volatile RAM to store a bootable image - typically a bootloader, to enable users to boot to a second, more complete, operating system. We generally use Geoff Levand's kboot-based bootloader as this bootable image.

However, there's no reason we can't put a different system in this non-volatile RAM, as long as it fits in the small space available (about 4MB). So, I've done some work to port OpenWRT - a tiny distribution of Linux intended for embedded devices - to the PS3. This should give us a lot more flexibility for reconfiguring the bootloader - for example, it's trivial to add a ssh server to an OpenWRT build, allowing remote access to control the boot process.

As of revision r9413, the kamikaze branch of OpenWRT will boot on a PS3. If you'd like to try it out, you can use my OpenWRT config file as a starting point:

[jk@pokey ~]$ svn checkout https://svn.openwrt.org/openwrt/trunk kamikaze
[jk@pokey ~]$ cd kamikaze
[jk@pokey kamikaze]$ wget -O .config \
[jk@pokey kamikaze]$ make oldconfig
[jk@pokey kamikaze]$ make

If you'd like to change the OpenWRT config (eg, to add packages), just do a make menuconfig before the last make. Or, if you'd like to alter the config of the kernel used, do a make kernel_menuconfig instead.

Alternatively, you can use my current sample build (otheros image, 2.7M), which is based on the above config.

One of the current limitations of the PS3 OpenWRT support is that the root filesystem is read-only, so any changes you make will be lost at the next reboot.

todo list

The initial port is just to get OpenWRT working - to make a useful OpenWRT image, we still need to add a kexec-tools package, to be able to boot into other kernels.

Once this is done, it would be nice to have a petitboot package, to provide a GUI-based bootloader.


Petitboot is a graphical bootloader for the PS3, details on the petitboot page.

other resources

Some other links: