• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Нужна помощь Ошибка Failed to find Xtensa toolchain

Andrey L

Member
Решил испробовать альтернативну для работы с ESP32, а точнее Linux (Raspbian).

Следовал инструкциям с сайта docs.espressif.com , дошёл до "make menuconfig" и до "make flash". Если первая команда выдала ошибку, но запустила меню, но вот вторая команда выполняться отказалась.

Текст ошибки:
WARNING: Failed to find Xtensa toolchain, may need to alter PATH or set one in the configuration menu

xtensa у меня расспакована по адресу: /home/pi/esp/xtensa-esp32-elf

printenv PATH у меня выдаёт:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games:/home/pi/esp/xtensa-esp32-elf/bin
(редактировал файл ~/.profile)

Пытался найти решение в сети на других форумах, но у меня ничего не получилось.
 

Алексей.

Active member
Вы на малине пытаетесь собрать?
У эспресифа ссылки на скачивание тулчейна икстенсы только для 32/64-х битных i386/amd64, для арм-а, что на вашей малине, икстенсу с исходников собрали или собранную добыли?
 

quireljohn6

New member
Решил испробовать альтернативну для работы с ESP32, а точнее Linux (Raspbian).

Следовал инструкциям с сайта docs.espressif.com , дошёл до "make menuconfig" и до "make flash". Если первая команда выдала ошибку, но запустила меню, но вот вторая команда выполняться отказалась.

Текст ошибки:
WARNING: Failed to find Xtensa toolchain, may need to alter PATH or set one in the configuration menu

xtensa у меня расспакована по адресу: /home/pi/esp/xtensa-esp32-elf

printenv PATH у меня выдаёт:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games:/home/pi/esp/xtensa-esp32-elf/bin
(редактировал файл ~/.profile)

Пытался найти решение в сети на других форумах, но у меня ничего не получилось.




Ситуация напоминает настройку нового сервиса: пока не сделаешь всё по инструкции и не учтёшь мелкие нюансы, результат не приходит сразу. В этом плане нравится подход у онлайн-казино Get X — там как раз всё интуитивно и прозрачно, без лишних танцев с бубном, хотелось бы такого же опыта и здесь
Судя по описанию, проблема не в самом make flash, а в том, что среда ESP-IDF не «видит» тулчейн так, как ожидает.
Несколько моментов, на которые стоит обратить внимание:
  1. ESP-IDF ожидает инициализацию окружения
    Просто добавить путь в ~/.profile часто недостаточно. Для ESP-IDF обязательно нужно перед сборкой выполнить:

    source export.sh
    находясь в корне ESP-IDF (~/esp/esp-idf).
    Именно этот скрипт корректно прописывает PATH и другие переменные (IDF_PATH, Python env и т.д.). Без него make часто не находит xtensa, даже если путь есть.
  2. Проверь, виден ли компилятор напрямую
    Выполни:

    xtensa-esp32-elf-gcc --version
    Если команда не находится — значит PATH реально не применяется в текущей сессии (особенно если работаешь через SSH или из другого терминала).
  3. Версия ESP-IDF и способ сборки
    Если используешь относительно свежий ESP-IDF, то make уже считается устаревшим. Рекомендуемый способ:

    idf.py menuconfig
    idf.py flash
    Старые инструкции на make часто ломаются на новых версиях IDF или тулчейна.
  4. Путь к тулчейну
    Обычно ESP-IDF кладёт тулчейн в:

    ~/esp/xtensa-esp32-elf/
    но он должен быть именно тот, который ставился через официальный установщик ESP-IDF (install.sh). Если ты распаковал его вручную, есть шанс, что версия не совпадает с версией IDF.
  5. Проверь toolchain в menuconfig
    В make menuconfig (или idf.py menuconfig) есть пункт, где можно явно указать путь к Xtensa toolchain. Иногда автодетект не срабатывает.
Резюмируя:
чаще всего проблема решается либо source export.sh, либо использованием idf.py вместо make. Я бы начал именно с этого, а уже потом копал дальше.
 
Сверху Снизу