Linux běží na ESP32-S3 bez potřeby emulace

ESP32-S3 Autor: Espressif

ESP32-S3 už nemusí sloužit jen jako mikrokontrolér pro senzory a jednoduché síťové aplikace. Experimentální projekt na něm spouští nativně celé linuxové jádro, tedy přímo na procesoru Xtensa, bez emulace ARMu nebo RISC-V. Výstup shellu navíc zobrazuje na 9,7palcovém e-paperovém panelu s rozlišením 1200 × 825 bodů. Systém podle ukázky nabootuje k přihlašovacímu promptu přibližně za 14 sekund.

Použitý hardware vychází z desky ESP32-S3 N16R8 se 16 MB flash paměti a 8 MB PSRAM. Kořenový souborový systém je uložen v CramFS pouze ke čtení a programy využívají technologii XIP (Execute in Place), takže se mohou spouštět přímo z flash paměti bez kopírování celého obrazu do RAM. Detaily shrnuje Petr Šrámek ve svém článku na Chiptron.cz.

Nejde přitom o linuxové API běžící nad FreeRTOS ani o emulovaný procesor. Jádro je přímo zkompilované pro architekturu Xtensa, kterou ESP32-S3 skutečně používá. Kvůli absenci MMU však Linux běží v režimu NOMMU. Projekt proto obsahuje experimentální implementaci software memory banks, která umožňuje volat omezenou variantu volání  fork().

Výsledek je i přes hardwarová omezení docela použitelný, kromě jádra a základních utilit v Busyboxu jsou nainstalovány také další programy jako Bash 5.2, Dash, Nano, GNU Make 4.4, MicroPython 1.26, Lua, cron, nc, socat, HTTP server, Telnet a volitelně SSH přes Dropbear. Funguje Wi-Fi, DHCP, NTP i běžná komunikace po internetu.

Našli jste v článku chybu?

Autor zprávičky

Petr Krčmář pracuje jako šéfredaktor serveru Root.cz. Studoval počítače a média, takže je rozpolcen mezi dva obory. Snaží se dělat obojí, jak nejlépe umí.