Skip to content

Instantly share code, notes, and snippets.

@jcmvbkbc
Last active November 21, 2023 18:39
Show Gist options
  • Star 32 You must be signed in to star a gist
  • Fork 12 You must be signed in to fork a gist
  • Save jcmvbkbc/316e6da728021c8ff670a24e674a35e6 to your computer and use it in GitHub Desktop.
Save jcmvbkbc/316e6da728021c8ff670a24e674a35e6 to your computer and use it in GitHub Desktop.
esp32s3 linux rebuild scripts
Latest versions of these scripts are available in git repository https://github.com/jcmvbkbc/esp32-linux-build
@jcmvbkbc
Copy link
Author

jcmvbkbc commented Aug 25, 2023

I am trying to display the console output to an SPI TFT display. I need to write a device driver or I would need to change some configuration?

@metanav I think it involves a virtual console driver and either an SPI driver or an IPC driver that would send commands to a renderer implemented in firmware.

@hpsaturn
Copy link

I added an alternative documentation from the Dockerfile that Adafruit did of this Gist:
https://github.com/hpsaturn/esp32s3-linux

@ppescher
Copy link

Hi @jcmvbkbc
I tried your "wifi" script on WSL (Win 11) and got it to build successfully after resolving some missing dependencies.

I loaded the firmware images on a custom board I made with ESP32-S3 ("wroom-1" module, N16R8 variant) and it seems to work great!

As a quick benchmark, I ran a ping test (to Google server and to my PC on the LAN) and I got this results:

--- www.google.com ping statistics ---
3035 packets transmitted, 3022 packets received, 0% packet loss
round-trip min/avg/max = 19.741/35.490/966.684 ms
--- 192.168.24.129 ping statistics ---
1351 packets transmitted, 1345 packets received, 0% packet loss
round-trip min/avg/max = 10.034/22.907/476.367 ms

Pinging back from my Windows PC yields a min/avg/max = 10/77/138 ms

I also tried to see how much download speed I could get, by running "time wget" with a 1GB file and got around 435KiB/s (1e9 bytes in 37m22s). That's about 3.5Mbps!

That's not bad at all considering the amount of overhead involved.

During all these test I got a few messages with GFP_KERNEL ("page allocation failure") but the system never hanged or rebooted.

I have to say I'm quite impressed by what you achieved with this platform. Great work!

@barbiani
Copy link

Hello everybody,

I tried to build the image using both scripts on wsl2 and got errors on the IDF setup.

++ unset WARNING_MSG
++ unset uninstall
++ unset is_idf_path_esp_idf
++ unset is_script_dir_esp_idf
++ unset __realpath
++ unset __main
++ unset __verbose
++ unset __enable_autocomplete
++ unset __cleanup
++ unset __is_dir_esp_idf
++ return 1
+ cd examples/get-started/linux_boot
+ idf.py set-target esp32s3
./rebuild-esp32s3-linux.sh: line 52: idf.py: command not found
+ cp sdkconfig.defaults.esp32s3 sdkconfig
+ idf.py build
./rebuild-esp32s3-linux.sh: line 54: idf.py: command not found
+ read -p 'ready to flash... press enter'
ready to flash... press enter

Looks like it is missing a call to ./install.sh

@hpsaturn
Copy link

only you need remove the hidden directory of your local machine of the IDF. Something like this:

rm -r ~/.espressif

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment