El microprocesador ESP32-S31 ya tiene soporte de Linux por parte de Espressif Systems. El ESP32-S31, un microprocesador RISC-V de doble núcleo, se presentó en marzo, dos placas de desarrollo llegaron en mayo y la producción en masa se anunció hace algunas semanas.
El nuevo chip RISC-V incorpora una MMU (unidad de gestión de memoria), lo que vuelve mucho más manejable correr Linux, y las placas de desarrollo traen además 16 MB de PSRAM, así que una imagen mínima del sistema es posible. Pasando de la teoría a la práctica, Espressif liberó ahora una versión de vista previa para desarrolladores del ESP Linux BSP para el ESP32-S31, y hay también un par de portes comunitarios en camino.
¿Qué contiene realmente el BSP oficial?
El repositorio recién mencionado solo contiene el diseño de imagen y las herramientas de empaquetado que usa la integración con Buildroot para el ESP32-S31. El núcleo del proyecto está en el repositorio esp-buildroot-external, con la pila de arranque NOR y el sistema de archivos raíz sobre Buildroot 2025.02, más las instrucciones para compilar y grabar una imagen. También se puede revisar directamente el código fuente del fork del kernel Linux 6.18 que usa esta vista previa.
¿Cómo se compila la imagen?

El autor de la nota no dispone de una placa, así que se limitó a construir la imagen. Sigue haciendo falta una versión reciente de la utilidad esptool: la suya era la 4.7.0 y el ESP32-S31 exige esptool 5.3.0 o superior, de modo que la actualizó vía pipx, quedando en la versión 5.3.1.
Después clonó el árbol de Buildroot y el árbol externo de Espressif:
mkdir ~/edev/sandbox
git clone --branch 2025.02 --depth 1 https://gitlab.com/buildroot.org/buildroot.git esp-buildroot
git clone -b buildroot/v2025.02-esp32s31 https://github.com/espressif/esp-buildroot-external.git esp-buildroot-externalNo hace falta clonar el repositorio esp-linux-bsp, porque Buildroot lo descarga solo. La configuración se genera con el defconfig de la placa (espressif_esp32s31_function_core_board_nor_defconfig) y luego se lanza la compilación completa apuntando ESP_ESPTOOL a la ruta del binario actualizado.
Esa parte toma su tiempo, bastante más de una hora, porque el sistema descarga los paquetes y los construye uno a uno. Al terminar, la salida deja la imagen lista para grabar:
gen_esp_flash_image: merging slots -> s31_full_flash.bin
esptool v5.3.1
SHA digest in image updated.
Wrote 0xd1f000 bytes to file 's31_full_flash.bin', ready to flash to offset 0x0.
gen_esp_flash_image: s31_full_flash.bin (13758464 bytes) readySon 13.758.464 bytes, es decir unos 13,1 MiB de imagen completa, cómodamente dentro de los 16 MB de PSRAM de las placas. El directorio de salida queda con el árbol habitual de un arranque RISC-V: esp32s31.dtb, fw_dynamic.bin y fw_jump.bin de OpenSBI, los distintos formatos del sistema de archivos raíz (rootfs.tar, rootfs.cpio, rootfs.cramfs), U-Boot con su SPL y el xipImage del kernel.
¿Cómo se graba y se accede a la consola?
Con una placa ESP32-S31 a mano, el comando de grabado apunta al binario unificado:
esptool --chip esp32s31 --port <puerto-serial> --baud 1152000 write-flash 0x0 <ruta-de-salida>/images/s31_full_flash.binLa consola de Linux queda accesible a 115200 baudios.
¿Está listo para producción?
No, y Espressif lo dice sin ambigüedad. El BSP es por ahora solo para experimentación, no se recomienda para producción y apunta exclusivamente al ESP32-S31. La compañía habla además de actualizaciones irregulares, posibles cambios que rompan compatibilidad, aceptación limitada de nuevas funciones y corrección de errores en la modalidad de mejor esfuerzo durante la vista previa. Tampoco queda claro qué está implementado hasta ahora: por ejemplo, no se sabe si el WiFi funciona.
Dos portes comunitarios en paralelo
Además del BSP oficial, al menos dos proyectos de la comunidad vienen portando Linux a la placa ESP32-S31-Korvo-1:
- El trabajo de GrieferPig es un porte de Linux 6.12 para RV32 con MMU corriendo de forma nativa en el microcontrolador. El sistema de archivos raíz de Buildroot y el reinicio son estables, el apagado no está implementado, y funciones como WiFi, Bluetooth de doble modo y soporte de doble núcleo siguen en estado experimental. El estado completo y el código están en GitHub.
- El proyecto esp32-s31-linux de Marco lleva Linux 7.1 y OpenSBI 1.9 a la misma placa Korvo-1. La mayoría de los periféricos distintos del panel LCD, la ranura microSD, el host USB y el módem WLAN todavía no están habilitados. El proyecto también está en GitHub.

Comparativa de los tres caminos
| Proyecto | Kernel | Estado | Base |
|---|---|---|---|
| ESP Linux BSP (oficial) | Linux 6.18 (fork) | Vista previa para desarrolladores, sin uso en producción | Buildroot 2025.02, arranque NOR |
| Porte de GrieferPig | Linux 6.12 | Raíz y reinicio estables; WiFi, Bluetooth y doble núcleo experimentales | ESP32-S31-Korvo-1 |
| Porte de Marco | Linux 7.1 | Mayoría de periféricos aún sin habilitar | ESP32-S31-Korvo-1, OpenSBI 1.9 |
Para quien quiera evaluarlo desde la región, el punto de entrada más realista sigue siendo la placa Korvo-1 que usan los dos portes comunitarios, ya que es la que concentra el trabajo de depuración publicado hasta ahora. Conviene tener presente que las tres vías comparten la misma restricción de fondo: 16 MB de PSRAM alcanzan para un Linux mínimo con Buildroot, no para una distribución de escritorio ni para un espacio de usuario con systemd completo.




