有没有玩过嵌入式的朋友?提到ESP32你的第一反应是什么?几十块钱出头的物联网单片机,做个温湿度采集、智能灯控、远程开门是它的常规操作,顶天了跑个FreeRTOS实时系统对吧? 但最近有个叫GrieferPig的开发者,干了件所有嵌入式玩家想都不敢想的事:直接把Linux 6.12原生系统,移植到了ESP32-S31这款单片机上! 我看到项目的时候整个人都傻了:这玩意可是个MCU啊,以往跑Linux至少得是更高阶的MPU芯片,门槛直接被踹没了?

这个项目到底牛在哪?
先给不懂硬件的朋友科普下难度:ESP32-S31是乐鑫出的32位RISC-V架构MCU,主频最高240MHz,一般配个几百KB的SRAM就顶天了,这次移植用的型号配了16MB的PSRAM,就算如此,要跑完整的Linux内核,还要解决硬件适配、驱动、内存优化一大堆问题,难度不亚于把大象塞进冰箱。 作者自己也说,这次移植是在S31官方技术手册还没公开的情况下做的,很多硬件寄存器的特性全靠自己猜、自己试: 比如官方资料说CLIC中断配置寄存器的NMBITS位是不可写的,作者愣是试出来能改,改完才能正常启用S模式中断,就这一个坑就不知道踩了多少次才摸出来。 更有意思的是作者还坦诚,这次开发大量用了AI Agent辅助:他负责给方向,比如「参考ESP-IDF的SDMMC用法把Linux现有驱动移植过来」,AI帮着写代码、查资料,最终才把进度推得这么快——谁说AI只会写垃圾代码?只要用对了,能帮普通开发者干出以前想都不敢想的项目。
现在能玩了吗?怎么玩?
目前项目还处于实验阶段,作者明确说了【绝对不要用到生产环境】,但是普通爱好者已经可以拿来刷机玩了,门槛特别低:
1.先执行pip install esptool装个乐鑫官方的烧录工具$esptool -p /dev/ttyUSB0 -b 2000000 erase-flash$esptool -p /dev/ttyUSB0 -b 2000000 write-flash \ --flash-mode dio --flash-freq 80m --flash-size 16MB \ 0x2000 bootloader.bin \ 0x8000 partition-table.bin \ 0x20000 hello_world.bin \ 0x220000 fw_payload.bin \ 0x400000 xipImage \ 0xA00000 rootfs.sqfs
3.开发板通过USB连接电脑,修改命令里的串口地址为你自己的设备号,直接跑官方提供的烧录命令就行,一键就能把Linux刷进开发板 现在已经稳定的功能包括Buildroot根文件系统、重启关机、UART控制台,WiFi、以太网、GPIO这些常用外设都是实验状态,虽然还有点糙,但是你拿它跑个轻量脚本、做个小型Linux服务器完全没问题。https://github.com/GrieferPig/esp32-s31-linux/blob/main/docs/build.md
为啥不支持双核?作者的回答太真实了
很多人问为啥不做双核SMP支持,作者的回答特别实在:
首先乐鑫的WiFi蓝牙固件是闭源的,必须跑在FreeRTOS上,硬改双核不光技术难度大还可能有法律风险;其次两个核共享32KB的缓存,本来PSRAM速度就不快,双核反而会拖慢性能;真要追求性能的话买个全志T113-S3不好吗? 而且作者自己也说,他之前玩BL808的时候被稀烂的驱动坑惨了,才转头搞ESP32的移植,毕竟乐鑫的软件生态是真的香。
不得不说现在的开发者真的太猛了,以前想玩嵌入式Linux至少得买个百元的开发板,现在几十块的ESP32就能搞定,以后物联网项目的想象空间直接被拉大了有没有?
👉 玩过ESP32的朋友举个手!你要是拿到这个系统打算做什么好玩的项目?是整个微型服务器还是做个带Linux的智能玩具?欢迎在评论区分享你的脑洞! 觉得这个项目有意思的别忘了点赞、在看、转发给你身边的硬件爱好者,关注我给你扒最有意思的科技新鲜事~
项目地址:https://github.com/GrieferPig/esp32-s31-linux/