August 1, 2026
Booting mad
Linux on ESP32
Linux squeezed onto a tiny ESP chip, and the comments are already fighting
TLDR: A developer got Linux 6.12 to boot on a tiny ESP32-S31 chip, which is impressive because these chips normally run much simpler software. Commenters are split between amazed curiosity and brutal skepticism, with many arguing it’s more of a flashy experiment than a practical breakthrough.
Someone got Linux 6.12 booting on an ESP32-S31, a tiny low-cost chip usually used for gadgets and smart devices, and the reaction was basically equal parts applause, confusion, and side-eye. On paper, it’s a wild hack: the project shows a booting system, memory stats, and even a benchmark run. In practice, the status page reads like a reality show cast list where almost everyone is labeled "untested" or "work in progress".
And that is exactly where the comment drama kicks off. One camp is cheering the sheer audacity of it all, with the breezy "Have a try" energy of people who love seeing hackers do ridiculous things just because they can. The other camp is asking the very fair, very spicy question: if so much is unfinished, is this really news yet? One commenter bluntly summed up the skeptical mood with a variation of, "Everything is untested or WIP. What is the news here?"
Then came the deeper nerd panic. People questioned how Linux can even run on this chip without the usual memory hardware, and whether relying on an older feature that was removed from newer Linux versions makes this project a glorious breakthrough or a charming dead end. Another commenter threw in a curveball by suggesting NetBSD might fit better, which is the open-source equivalent of starting a family dinner argument. The vibe? Impressive stunt, questionable practicality, maximum comment-section entertainment.
Key Points
- •The article presents an attempt to port MMU-enabled Linux 6.12 to the ESP32-S31, tested on an ESP32-S31-WROOM-3 E1H16R16V module.
- •Most general features, peripheral drivers, and connectivity drivers are currently marked either untested or work in progress, with several interfaces not implemented.
- •The port required custom handling for the ESP32-S31 interrupt architecture because the chip uses CLIC and CLINT while Linux expects PLIC.
- •The write-up says the ESP32-S31 supervisor mode is nonstandard, so some CSR behavior and interrupt configuration were inferred from P4 documentation and direct probing.
- •OpenSBI was modified to use XIP from flash and internal SRAM to conserve 16 MB of PSRAM, and Linux 6.12 was selected because it still supports RISC-V XIP.