With the Xtensa Lx7 twin CPU cores in the ESP32-S3 running at a relatively zippy 240 MHz and accompanying PSRAM of up to 16 MB, you might find yourself wondering whether it could run Linux. As [Paulneja] demonstrates with Linux kernel 6.11, the answer is a ‘yes’, though with the usual caveats.
What complicates matters with the ESP32-S3 is that it lacks certain amenities that spoiled OSes like Linux have come to take for granted, such as a Memory Management Unit (MMU). To deal with this, the NOMMU Linux configuration was used, along with a custom fork() implementation. Although the previous 0.7 version sort-of worked, the current 0.8 release is the first that manages to actually boot reliably and has a usable amount of RAM available after boot.
You can see the comparison between the two versions in the header image, with v0.8 having a blistering 3.7 MB available after booting and with overall resource usage and performance having improved massively. Note that only one core is available to Linux, with the other used by the typical FreeRTOS ESP-IDF stack to provide WiFi and Bluetooth.
This was all run on an ESP32-S3 with the N16R8 configuration, meaning 16 MB Flash that’s also used for writable storage and 8 MB of octal PSRAM. As for practical applications, it’s noted by [Paulneja] that this is a research project, though one could imagine this being an embedded Linux project along the lines of a network router running something like BusyBox.

“and 8 MB of octal PSRAM.” For those wondering (like me), this means psram using 8-bit parallel interface.
Is that even a formally accepted way to use the term? I think of octal as 3 bits, but to be precise that is base-8 expressed in base-2. Octet, OTOH, refers to 8 bits.
It evolved from dual (2-bit parallel serial RAM), to quad (4-bit) then octal. Etymology does not follow precise rules.
the ESP8266 and ESP32 have made it so i never have to buy another router at a thrift store to install open-wrt on. as a consequence, there are stacks and stacks of such routers at the Tibetan Center thrift store west of Kingston, NY. i’ve also stopped buying old digital cameras
Help me connect the dots: are you using your ESPs as access points? What firmware do you use for it? Do you use the default pcb internal antenna, or something external?
Also not sure. Esp8266 cant handle more than 3-4 clients
That is not entirely true, it has an MMU of sorts:
https://docs.espressif.com/projects/esp-idf/en/stable/esp32s3/api-reference/system/mm.html
Based on that doc, a MMU just for flash and PSRAM mapping. Linux apparently wants a MMU that handles supervisor address translation and protection, page tables, and page fault features.
Well, let’s play with words.
What the Linux kernel calls a “MMU” is a page-based MMU hardware block that implement memory protection and (virtual->physical) address translation.
The way Espressif wrote their docs it seems like there’s something called “a MMU”, but I can assure you there’s not. This is just a small piece of code that does something remotely similar to a MMU in a way that’s not even remotely useful for running OS with actual memory protection.
Same limitations also apply for the RISC-V line of ESP MCUs. It would have been awesome of it had a real MMU, but nope…
The ESP32-P4(X) has 16/32MB on-chip PSRAM. Might be an easier target.
Well, esp32-p4 also doesn’t have a MMU. It has a PMP (physical memory protection) which is not capable of page-based address translation, so no virtual memory.
You can implement SW workarounds and you can hack things on top of PMP, but the combination of these will never come close to the capabilities of a real MMU (cheap relocation of non-pic code, shared libraries across multiple processes, etc).
why run it on that when the ESP32-S31 is out. Then again, why even run it at all as its pointless, other than for the challenge.
Isn’t doing “pointless” things for “the challenge” the very essence of much of the hacker philosophy?
I break it down into intent. White mages use healing magic, black magic deals damage, red style is a sort of hybrid approach. As an artist I see hacking as part of the process, sometimes it is completely pointless but obsessive minds arent bothered by such considerations
Octal PSRAM like Centronix was octal RS232 ? 🙄
I can actually not, since the image is a tad too blurry for my eyes.
Double the resolution please?