Page 1 of 1

toolchain for Raspberry PI 4 (8GB) ?

Posted: Wed Nov 18, 2020 11:31 am
by jumjum123
Is there a toolchain available for ESP32 and/or ESP8266 running on Raspberry PI ?

Re: toolchain for Raspberry PI 4 (8GB) ?

Posted: Thu Nov 19, 2020 7:54 am
by ESP_igrr
Yes, ESP32 toolchain for 32-bit ARM is available. If you follow the getting started guides for Linux (https://docs.espressif.com/projects/esp ... index.html), it should be installed.

If you need to download the toolchain separately, the link is on this page: https://docs.espressif.com/projects/esp ... -esp32-elf

Re: toolchain for Raspberry PI 4 (8GB) ?

Posted: Fri Nov 20, 2020 1:48 pm
by jumjum123
Thanks a lot for this. Tested everything and it works fine for ESP-IDF V4

And thats where my problem starts again, we are working on V3.
There are some good reasons for that, for example size of binary.
For that we need toolchain gcc_5.2 Is there anything available ?

And last not least, is something similiar available for ESP8266 ?

Re: toolchain for Raspberry PI 4 (8GB) ?

Posted: Fri Nov 20, 2020 10:18 pm
by ESP_igrr
Yes, you should also be able to install it on v3.3. There is no documentation page for v3.3 with the list of the toolchain downloads, but the URL and SHA256 can be found here:
https://github.com/espressif/esp-idf/bl ... s.json#L46
There is no -armel toolchain for the ESP8266 from Espressif, I'm afraid. Please file an issue at https://github.com/espressif/ESP8266_RTOS_SDK/issues if you need it.

Re: toolchain for Raspberry PI 4 (8GB) ?

Posted: Thu Nov 14, 2024 3:31 am
by lironghua
I've recently been facing the same problem, running some code based on v4.3 on RPI4. The error I met during "./install.sh" is
"tool esp32ulp-elf does not have versions compatible with platform linux-arm64"

In fact, the newer version of idf_tool already provides such supports: https://github.com/espressif/binutils-g ... m64.tar.gz

In case someone needs help when facing the same problem, here is how I solve the problem with such arm-support.

Suppose that your esp-idf tool is cloned in ~/esp/esp-idf
In side ~/esp/esp-idf/tools, there is a tools.json file, including all meta information needed for downloading and installing the needed idf tools

Open tools.json, search for "esp32ulp" and find out the meta information of this tool (you need to make sure you are at the correct position because there is meta information for other tools and devices)

Then add the following to the "versions" list (Inside the version list, there is usually only one version dict)

Code: Select all

"linux-arm64": {
            "sha256": "d6671b31bab31b9b13aea25bb7d60f15484cb8bf961ddbf67a62867e5563eae5",
            "size": 10052225,
            "url": "https://github.com/espressif/binutils-gdb/releases/download/esp32ulp-elf-v2.35_20220830/esp32ulp-elf-2.35_20220830-linux-arm64.tar.gz"
          },
You need to make sure both sha256 and size are correct (don't worry if they are not. you will get an error and know what to do)

Now, the code can be downloaded by the shell script, but its version check would fail. The current version is 2.35, while the original version name for release/v4.3 is something like "2.28.51-esp-20191205". So, change the value of "name" to "2.35." "name" is also inside the version dict.

Now the the versions should look like the following

Code: Select all

"versions": [
        {
          "linux-amd64": {
            "sha256": "b1f7801c3a16162e72393ebb772c0cbfe4d22d907be7c2c2dac168736e9195fd",
            "size": 10685282,
            "url": "https://github.com/espressif/binutils-gdb/releases/download/esp32ulp-elf-v2.35_20220830/esp32ulp-elf-2.35_20220830-linux-amd64.tar.gz"
          },
          "linux-arm64": {
            "sha256": "d6671b31bab31b9b13aea25bb7d60f15484cb8bf961ddbf67a62867e5563eae5",
            "size": 10052225,
            "url": "https://github.com/espressif/binutils-gdb/releases/download/esp32ulp-elf-v2.35_20220830/esp32ulp-elf-2.35_20220830-linux-arm64.tar.gz"
          },
          "linux-armel": {
            "sha256": "88967c086a6e71834282d9ae05841ee74dae1815f27807b25cdd3f7775a47101",
            "size": 8033639,
            "url": "https://github.com/espressif/binutils-esp32ulp/releases/download/v2.28.51-esp-20191205/binutils-esp32ulp-linux-armel-2.28.51-esp-20191205.tar.gz"
          },
          "macos": {
            "sha256": "a35d9e7a0445247c7fc9dccd3fbc35682f0fafc28beeb10c94b59466317190c4",
            "size": 8872874,
            "url": "https://github.com/espressif/binutils-esp32ulp/releases/download/v2.28.51-esp-20191205/binutils-esp32ulp-macos-2.28.51-esp-20191205.tar.gz"
          },
          "name": "2.35",
          "status": "recommended",
          "win32": {
            "sha256": "bade309353a9f0a4e5cc03bfe84845e33205f05502c4b199195e871ded271ab5",
            "size": 12234162,
            "url": "https://github.com/espressif/binutils-esp32ulp/releases/download/v2.28.51-esp-20191205/binutils-esp32ulp-win32-2.28.51-esp-20191205.zip"
          },
          "win64": {
            "sha256": "bade309353a9f0a4e5cc03bfe84845e33205f05502c4b199195e871ded271ab5",
            "size": 12234162,
            "url": "https://github.com/espressif/binutils-esp32ulp/releases/download/v2.28.51-esp-20191205/binutils-esp32ulp-win32-2.28.51-esp-20191205.zip"
          }
        }
      ]
Finally, since the newer extracted tool has a different inner path than the older archives, change the name of the "export_paths" as well:

Code: Select all

"export_paths": [
        [
          "esp32ulp-elf",
          "bin"
        ]
]
Then it will work.

I guess this should also work for other idf tools.