Wed 15 Jul 2026 / 09:42 ET
Kernel
Hardware 3 min read

Developer boots Linux on Sega 32X hardware from 1994

Developer cakehonolulu has Linux and BusyBox running on Sega’s 32X add-on despite 23MHz CPUs, 256KB of RAM and awkward hardware limits.

Felix Aranda

By Felix Aranda / Silicon Editor

Developer boots Linux on Sega 32X hardware from 1994
img: Tom's Hardware

Developer cakehonolulu has ported Linux to Sega’s 1994 32X, the short-lived Mega Drive and Genesis expansion better remembered for its mushroom-shaped hardware than for Unix-like respectability. According to cakehonolulu’s project write-up, the port boots the Linux kernel and reaches a BusyBox prompt on the original 32X architecture.

That is a neat abuse of old console silicon. The 32X was Sega’s attempt to extend the life of the Mega Drive and Genesis as newer machines such as Atari’s Jaguar, the 3DO and Commodore’s Amiga CD32 pushed the market toward more capable hardware. It plugged into Sega’s existing console and added its own processors, memory and video capabilities.

The base Genesis used a Motorola 68000 running at 7MHz and had 64KB of system RAM. The 32X added two Hitachi SuperH SH2 SH7604 CPUs clocked at 23MHz and 256KB of RAM. It also expanded the machine’s display capabilities, taking the available simultaneous on-screen colors from 64 to 32,000, according to the technical details cited in the project coverage.

Those numbers sound microscopic next to anything Linux usually runs on now, which is the point of the exercise. Cakehonolulu had already released a Linux port for Atari’s 1993 Jaguar, another console with a reputation for being hostile to developers. The 32X project repeats that stunt on even tighter memory.

What made the port awkward

Cakehonolulu’s write-up lists several problems that had to be solved before Linux could run usefully on the 32X. The first was the RAM ceiling. A full Linux environment wants far more memory than 256KB, so getting the kernel far enough to run BusyBox meant treating every assumption about available space as suspect.

The dual-processor setup also complicated the job. The 32X has two SH2 CPUs, and cakehonolulu wanted symmetric multiprocessing to work across both chips. The hardware does not provide the synchronization primitives that modern operating systems expect, according to the project notes, so the port had to work around missing low-level machinery rather than call into it.

Serial output was another nuisance. Cakehonolulu notes that the 32X does not provide direct UART access, which makes the usual bring-up work harder. A developer trying to boot an operating system on strange hardware needs some way to see what broke. Without a straightforward serial path, debugging becomes more of a scavenger hunt.

The project also ran into scheduler bugs, according to cakehonolulu. That is the sort of problem that makes a boot logo less interesting than the boring question of whether the kernel can reliably decide what runs next.

Old tools did some useful work

The port was not built in a vacuum. Cakehonolulu credited several existing projects and tools, including Chilly Willy’s 32X development kit, the linuxmd project, documentation and sample code for the SH2, and a Krikzz FPGA-based flash cartridge with ROM and RAM mapping tools.

A screenshot published by cakehonolulu shows Linux running with a BusyBox prompt on the 32X. The developer has described work like this as part of a portfolio intended to help with job hunting. If the goal is to show comfort with unpleasant hardware constraints, a Linux prompt on Sega’s odd 1994 expansion makes the point without needing much sales copy.

This story draws on original reporting from Tom's Hardware.

More Hardware/

view all ↗