
"Can it run Linux?" has joined "Can it run Doom?" as the benchmark for coaxing unlikely hardware into doing complicated things. One enterprising engineer has now brought penguins to the Sega 32X. Fresh from wrangling Linux into life on the ill-fated Atari Jagua games console, a Spanish engineer calling himself cakehonolulu has performed the same trick with Sega's equally unsuccessful 32X and managed to run the operating system on hardware designed for gaming in the 1990s. The Sega 32X was an add-on for the Sega Genesis (also known in some regions as the Sega Mega Drive). Released in 1994, it arrived just in time to be steamrolled by Sony's PlayStation, who were also grappling with the launch of the Genesis's true successor, the Saturn. The 32X added 256 KB of SDRAM to the Genesis's 64 KB, 256 KB of video RAM, and a pair of Hitachi SH-2 CPUs running at 23 MHz. The Genesis made do with a Motorola 68000 running at 7.6 MHz. Linux supports the 68000 architecture, but "getting Linux to run on the SH-2s (running as in having it print anything meaningful over UART) required some brainstorm," the engineer noted in his post. Cakehonolulu told The Register that the challenges were "mostly a combination of things, but the major pushback is always how little memory you have to even begin to work with" - and even that is halved, as each framebuffer needs its own share, leaving little to work with. "In practice, this means that you can cram very little stuff (In terms of Linux kernel features and/or Busybox; which serves as the init process for the system once Linux has finished the boot process)." Eventually, Linux booted. But then there was symmetric multiprocessing (SMP). After all, the 32X has two SH-2s... Cakehonolulu told us, "I also wanted to investigate how feasible it would be to run SMP on the configuration of the 32X since it doesn't really have some of the hardware primitives we're used up to using for multi-processor synchronization and akin. Turns out it was something that could be done; but again, performance is abysmal." In his post he added, "But it does work - and that's fine by me." Cakehonolulu then wrote a simple console display driver, completing the port (after a fashion). We wondered if a keyboard had been considered. "I actually tried to track down any commercially-available keyboard for the Mega Drive/Genesis but all I could find were some early-prototypes. I'm not really sure if something did ever come out officially but I chose not to go down that rabbit hole," he said. "You could technically try to come up with some sort of Pi Pico/ATMega/Arduino/FPGA board that enabled a PS/2 or USB keyboard to transmit data to the console but I felt like it was a bit beyond what I was really willing to do to get any form of interaction w/it)." So interaction is limited to the TTL UART pins, which, considering the feat of getting Linux booting at all, is fair enough. And then there's what to do with the system once booted. Can it do much? "Honestly, not much, not with the limitations it has at least. We're lucky we can even add a few more kilobytes worth of data... But it serves as a good example (Linux and Busybox) that you can indirectly let people tinker and bringup a piece of software if it's well-written ... it enables stuff like this to happen. "Not that I envision anyone using it but I just enjoy the process of tinkering." What's next? "Sega Saturn : )" Hurrah for tinkerers everywhere, motivated by that age-old justification: "because it's there". (R)