Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Esp32s2 Build fails with: ninja: build stopped: subcommand failed (IDFGH-8327) #9804

Closed
3 tasks done
skickar opened this issue Sep 18, 2022 · 3 comments
Closed
3 tasks done
Assignees
Labels
Resolution: Won't Do This will not be worked on Status: Done Issue is done internally Type: Bug bugs in IDF

Comments

@skickar
Copy link

skickar commented Sep 18, 2022

Answers checklist.

  • I have read the documentation ESP-IDF Programming Guide and the issue is not addressed there.
  • I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
  • I have searched the issue tracker for a similar issue and not found a similar issue.

IDF version.

idf4.4

Operating System used.

macOS

How did you build your project?

Command line with idf.py

If you are using Windows, please specify command line type.

No response

What is the expected behavior?

I am exactly following the setup documentation for MacOS and trying the default HelloWorld example.

I have an ESP32s2 chip plugged in and in flashing mode. When I run:
idf.py -p /dev/cu.usbmodem01 -b 460800 flash

I expect it to build and flash the helloworld example.

What is the actual behavior?

When I run the command, this is the end of the output:

`WARNING: ESP32-S2FNR2 chip was placed into download mode using GPIO0.
esptool.py can not exit the download mode over USB. To run the app, reset the chip manually.
To suppress this note, set --after option to 'no_reset'.
CMake Error at run_serial_tool.cmake:56 (message):
/Users/skicka/.espressif/python_env/idf4.4_py3.10_env/bin/python
/Users/skicka/esp/esp-idf/components/esptool_py/esptool/esptool.py --chip
esp32s2 failed

FAILED: CMakeFiles/flash /Users/skicka/esp/hello_world/build/CMakeFiles/flash
cd /Users/skicka/esp/esp-idf/components/esptool_py && /usr/local/Cellar/cmake/3.24.2/bin/cmake -D IDF_PATH="/Users/skicka/esp/esp-idf" -D SERIAL_TOOL="/Users/skicka/.espressif/python_env/idf4.4_py3.10_env/bin/python /Users/skicka/esp/esp-idf/components/esptool_py/esptool/esptool.py --chip esp32s2" -D SERIAL_TOOL_ARGS="--before=default_reset --after=hard_reset write_flash @flash_args" -D WORKING_DIRECTORY="/Users/skicka/esp/hello_world/build" -P /Users/skicka/esp/esp-idf/components/esptool_py/run_serial_tool.cmake
ninja: build stopped: subcommand failed.
ninja failed with exit code 1`

To troubleshoot, I have also tried selecting "only most common certificates" in the menu, and disabling certificates entirely. There is no effect.

After the failed flashing, the esp32s2 will not show up as a serial device unless it's put into flash mode.

Steps to reproduce.

  1. Install Espressif IDF on MacOS
  2. Select the default HelloWorld example
  3. Run idf.py -p /dev/cu.usbmodem01 -b 460800 flash
  4. Build fails with:
    ninja: build stopped: subcommand failed. ninja failed with exit code 1

Build or installation Logs.

skicka@Tammy-Napkins hello_world % idf.py -p /dev/cu.usbmodem01 -b 460800 flash
Executing action: flash
Running ninja in directory /Users/skicka/esp/hello_world/build
Executing "ninja flash"...
[0/1] Re-running CMake...
-- Project is not inside a git repository, or git repository has no commits; will not use 'git describe' to determine PROJECT_VER.
-- Building ESP-IDF components for target esp32s2
-- Project sdkconfig file /Users/skicka/esp/hello_world/sdkconfig
-- App "hello_world" version: 1
-- Adding linker script /Users/skicka/esp/hello_world/build/esp-idf/esp_system/ld/memory.ld
-- Adding linker script /Users/skicka/esp/esp-idf/components/esp_system/ld/esp32s2/sections.ld.in
-- Adding linker script /Users/skicka/esp/esp-idf/components/esp_rom/esp32s2/ld/esp32s2.rom.ld
-- Adding linker script /Users/skicka/esp/esp-idf/components/esp_rom/esp32s2/ld/esp32s2.rom.api.ld
-- Adding linker script /Users/skicka/esp/esp-idf/components/esp_rom/esp32s2/ld/esp32s2.rom.libgcc.ld
-- Adding linker script /Users/skicka/esp/esp-idf/components/esp_rom/esp32s2/ld/esp32s2.rom.newlib-funcs.ld
-- Adding linker script /Users/skicka/esp/esp-idf/components/esp_rom/esp32s2/ld/esp32s2.rom.newlib-data.ld
-- Adding linker script /Users/skicka/esp/esp-idf/components/esp_rom/esp32s2/ld/esp32s2.rom.spiflash.ld
-- Adding linker script /Users/skicka/esp/esp-idf/components/esp_rom/esp32s2/ld/esp32s2.rom.newlib-time.ld
-- Adding linker script /Users/skicka/esp/esp-idf/components/soc/esp32s2/ld/esp32s2.peripherals.ld
-- Components: app_trace app_update asio bootloader bootloader_support bt cbor cmock coap console cxx driver efuse esp-tls esp32s2 esp_adc_cal esp_common esp_eth esp_event esp_gdbstub esp_hid esp_http_client esp_http_server esp_https_ota esp_https_server esp_hw_support esp_ipc esp_lcd esp_local_ctrl esp_netif esp_phy esp_pm esp_ringbuf esp_rom esp_serial_slave_link esp_system esp_timer esp_websocket_client esp_wifi espcoredump esptool_py expat fatfs freemodbus freertos hal heap idf_test ieee802154 jsmn json libsodium log lwip main mbedtls mdns mqtt newlib nghttp nvs_flash openssl openthread partition_table perfmon protobuf-c protocomm pthread sdmmc soc spi_flash spiffs tcp_transport tcpip_adapter tinyusb touch_element ulp unity usb vfs wear_levelling wifi_provisioning wpa_supplicant xtensa
-- Component paths: /Users/skicka/esp/esp-idf/components/app_trace /Users/skicka/esp/esp-idf/components/app_update /Users/skicka/esp/esp-idf/components/asio /Users/skicka/esp/esp-idf/components/bootloader /Users/skicka/esp/esp-idf/components/bootloader_support /Users/skicka/esp/esp-idf/components/bt /Users/skicka/esp/esp-idf/components/cbor /Users/skicka/esp/esp-idf/components/cmock /Users/skicka/esp/esp-idf/components/coap /Users/skicka/esp/esp-idf/components/console /Users/skicka/esp/esp-idf/components/cxx /Users/skicka/esp/esp-idf/components/driver /Users/skicka/esp/esp-idf/components/efuse /Users/skicka/esp/esp-idf/components/esp-tls /Users/skicka/esp/esp-idf/components/esp32s2 /Users/skicka/esp/esp-idf/components/esp_adc_cal /Users/skicka/esp/esp-idf/components/esp_common /Users/skicka/esp/esp-idf/components/esp_eth /Users/skicka/esp/esp-idf/components/esp_event /Users/skicka/esp/esp-idf/components/esp_gdbstub /Users/skicka/esp/esp-idf/components/esp_hid /Users/skicka/esp/esp-idf/components/esp_http_client /Users/skicka/esp/esp-idf/components/esp_http_server /Users/skicka/esp/esp-idf/components/esp_https_ota /Users/skicka/esp/esp-idf/components/esp_https_server /Users/skicka/esp/esp-idf/components/esp_hw_support /Users/skicka/esp/esp-idf/components/esp_ipc /Users/skicka/esp/esp-idf/components/esp_lcd /Users/skicka/esp/esp-idf/components/esp_local_ctrl /Users/skicka/esp/esp-idf/components/esp_netif /Users/skicka/esp/esp-idf/components/esp_phy /Users/skicka/esp/esp-idf/components/esp_pm /Users/skicka/esp/esp-idf/components/esp_ringbuf /Users/skicka/esp/esp-idf/components/esp_rom /Users/skicka/esp/esp-idf/components/esp_serial_slave_link /Users/skicka/esp/esp-idf/components/esp_system /Users/skicka/esp/esp-idf/components/esp_timer /Users/skicka/esp/esp-idf/components/esp_websocket_client /Users/skicka/esp/esp-idf/components/esp_wifi /Users/skicka/esp/esp-idf/components/espcoredump /Users/skicka/esp/esp-idf/components/esptool_py /Users/skicka/esp/esp-idf/components/expat /Users/skicka/esp/esp-idf/components/fatfs /Users/skicka/esp/esp-idf/components/freemodbus /Users/skicka/esp/esp-idf/components/freertos /Users/skicka/esp/esp-idf/components/hal /Users/skicka/esp/esp-idf/components/heap /Users/skicka/esp/esp-idf/components/idf_test /Users/skicka/esp/esp-idf/components/ieee802154 /Users/skicka/esp/esp-idf/components/jsmn /Users/skicka/esp/esp-idf/components/json /Users/skicka/esp/esp-idf/components/libsodium /Users/skicka/esp/esp-idf/components/log /Users/skicka/esp/esp-idf/components/lwip /Users/skicka/esp/hello_world/main /Users/skicka/esp/esp-idf/components/mbedtls /Users/skicka/esp/esp-idf/components/mdns /Users/skicka/esp/esp-idf/components/mqtt /Users/skicka/esp/esp-idf/components/newlib /Users/skicka/esp/esp-idf/components/nghttp /Users/skicka/esp/esp-idf/components/nvs_flash /Users/skicka/esp/esp-idf/components/openssl /Users/skicka/esp/esp-idf/components/openthread /Users/skicka/esp/esp-idf/components/partition_table /Users/skicka/esp/esp-idf/components/perfmon /Users/skicka/esp/esp-idf/components/protobuf-c /Users/skicka/esp/esp-idf/components/protocomm /Users/skicka/esp/esp-idf/components/pthread /Users/skicka/esp/esp-idf/components/sdmmc /Users/skicka/esp/esp-idf/components/soc /Users/skicka/esp/esp-idf/components/spi_flash /Users/skicka/esp/esp-idf/components/spiffs /Users/skicka/esp/esp-idf/components/tcp_transport /Users/skicka/esp/esp-idf/components/tcpip_adapter /Users/skicka/esp/esp-idf/components/tinyusb /Users/skicka/esp/esp-idf/components/touch_element /Users/skicka/esp/esp-idf/components/ulp /Users/skicka/esp/esp-idf/components/unity /Users/skicka/esp/esp-idf/components/usb /Users/skicka/esp/esp-idf/components/vfs /Users/skicka/esp/esp-idf/components/wear_levelling /Users/skicka/esp/esp-idf/components/wifi_provisioning /Users/skicka/esp/esp-idf/components/wpa_supplicant /Users/skicka/esp/esp-idf/components/xtensa
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/skicka/esp/hello_world/build
[334/1025] Performing build step for 'bootloader'
[0/1] Re-running CMake...
-- Building ESP-IDF components for target esp32s2
-- Project sdkconfig file /Users/skicka/esp/hello_world/sdkconfig
-- Adding linker script /Users/skicka/esp/esp-idf/components/soc/esp32s2/ld/esp32s2.peripherals.ld
-- Adding linker script /Users/skicka/esp/esp-idf/components/esp_rom/esp32s2/ld/esp32s2.rom.ld
-- Adding linker script /Users/skicka/esp/esp-idf/components/esp_rom/esp32s2/ld/esp32s2.rom.api.ld
-- Adding linker script /Users/skicka/esp/esp-idf/components/esp_rom/esp32s2/ld/esp32s2.rom.libgcc.ld
-- Adding linker script /Users/skicka/esp/esp-idf/components/esp_rom/esp32s2/ld/esp32s2.rom.newlib-funcs.ld
-- Adding linker script /Users/skicka/esp/esp-idf/components/esp_rom/esp32s2/ld/esp32s2.rom.spiflash.ld
-- Adding linker script /Users/skicka/esp/esp-idf/components/bootloader/subproject/main/ld/esp32s2/bootloader.ld
-- Adding linker script /Users/skicka/esp/esp-idf/components/bootloader/subproject/main/ld/esp32s2/bootloader.rom.ld
-- Components: bootloader bootloader_support efuse esp32s2 esp_common esp_hw_support esp_rom esp_system esptool_py freertos hal log main micro-ecc newlib partition_table soc spi_flash xtensa
-- Component paths: /Users/skicka/esp/esp-idf/components/bootloader /Users/skicka/esp/esp-idf/components/bootloader_support /Users/skicka/esp/esp-idf/components/efuse /Users/skicka/esp/esp-idf/components/esp32s2 /Users/skicka/esp/esp-idf/components/esp_common /Users/skicka/esp/esp-idf/components/esp_hw_support /Users/skicka/esp/esp-idf/components/esp_rom /Users/skicka/esp/esp-idf/components/esp_system /Users/skicka/esp/esp-idf/components/esptool_py /Users/skicka/esp/esp-idf/components/freertos /Users/skicka/esp/esp-idf/components/hal /Users/skicka/esp/esp-idf/components/log /Users/skicka/esp/esp-idf/components/bootloader/subproject/main /Users/skicka/esp/esp-idf/components/bootloader/subproject/components/micro-ecc /Users/skicka/esp/esp-idf/components/newlib /Users/skicka/esp/esp-idf/components/partition_table /Users/skicka/esp/esp-idf/components/soc /Users/skicka/esp/esp-idf/components/spi_flash /Users/skicka/esp/esp-idf/components/xtensa
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/skicka/esp/hello_world/build/bootloader
[1/1] cd /Users/skicka/esp/hello_world/build/bootloader/esp-idf/esptool_py && /Users/skicka/.espressif/python_env/idf4.4_py3.10_env/bin/python /Users/skicka/esp/esp-idf/components/partition_table/check_sizes.py --offset 0x8000 bootloader 0x1000 /Users/skicka/esp/hello_world/build/bootloader/bootloader.bin
Bootloader binary size 0x50a0 bytes. 0x1f60 bytes (28%) free.
[1021/1023] Generating binary image from built executable
esptool.py v3.3.2-dev
Creating esp32s2 image...
Merged 2 ELF sections
Successfully created esp32s2 image.
Generated /Users/skicka/esp/hello_world/build/hello_world.bin
[1022/1023] cd /Users/skicka/esp/hello_world/build/esp-idf/esptool_py &&.../partition-table.bin /Users/skicka/esp/hello_world/build/hello_world.bin
hello_world.bin binary size 0x25580 bytes. Smallest app partition is 0x100000 bytes. 0xdaa80 bytes (85%) free.
[1022/1023] cd /Users/skicka/esp/esp-idf/components/esptool_py && /usr/l...-P /Users/skicka/esp/esp-idf/components/esptool_py/run_serial_tool.cmake
esptool.py esp32s2 -p /dev/cu.usbmodem01 -b 460800 --before=default_reset --after=hard_reset write_flash --flash_mode dio --flash_freq 80m --flash_size 2MB 0x1000 bootloader/bootloader.bin 0x10000 hello_world.bin 0x8000 partition_table/partition-table.bin
esptool.py v3.3.2-dev
Serial port /dev/cu.usbmodem01
Connecting.....
Chip is ESP32-S2FNR2
Features: WiFi, Embedded Flash 4MB, Embedded PSRAM 2MB, ADC and temperature sensor calibration in BLK2 of efuse V1
Crystal is 40MHz
MAC: 84:f7:03:d7:ef:00
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Configuring flash size...
Flash will be erased from 0x00001000 to 0x00006fff...
Flash will be erased from 0x00010000 to 0x00035fff...
Flash will be erased from 0x00008000 to 0x00008fff...
Compressed 20640 bytes to 12912...
Writing at 0x00001000... (14 %)
Writing at 0x00002483... (28 %)
Writing at 0x0000313d... (42 %)
Writing at 0x00003cac... (57 %)
Writing at 0x000046f1... (71 %)
Writing at 0x0000508a... (85 %)
Writing at 0x00005d14... (100 %)
Wrote 20640 bytes (12912 compressed) at 0x00001000 in 0.3 seconds (effective 476.6 kbit/s)...
Hash of data verified.
Compressed 152960 bytes to 85937...
Writing at 0x00010000... (2 %)
Writing at 0x00011194... (4 %)
Writing at 0x000128da... (7 %)
Writing at 0x00013da4... (9 %)
Writing at 0x0001534c... (11 %)
Writing at 0x00016a10... (14 %)
Writing at 0x000187d1... (16 %)
Writing at 0x00019859... (19 %)
Writing at 0x0001a1e1... (21 %)
Writing at 0x0001ad0b... (23 %)
Writing at 0x0001b843... (26 %)
Writing at 0x0001c24e... (28 %)
Writing at 0x0001cef5... (30 %)
Writing at 0x0001d99f... (33 %)
Writing at 0x0001e468... (35 %)
Writing at 0x0001efbb... (38 %)
Writing at 0x0001fbed... (40 %)
Writing at 0x00020853... (42 %)
Writing at 0x00021371... (45 %)
Writing at 0x00021e40... (47 %)
Writing at 0x00022b4c... (50 %)
Writing at 0x000235ee... (52 %)
Writing at 0x00023fa8... (54 %)
Writing at 0x00024c18... (57 %)
Writing at 0x000255f7... (59 %)
Writing at 0x000261ae... (61 %)
Writing at 0x00026c29... (64 %)
Writing at 0x0002770a... (66 %)
Writing at 0x000281c0... (69 %)
Writing at 0x00028d74... (71 %)
Writing at 0x0002a21c... (73 %)
Writing at 0x0002adf0... (76 %)
Writing at 0x0002b7c1... (78 %)
Writing at 0x0002c133... (80 %)
Writing at 0x0002cf19... (83 %)
Writing at 0x0002e687... (85 %)
Writing at 0x00030126... (88 %)
Writing at 0x000318c3... (90 %)
Writing at 0x0003251c... (92 %)
Writing at 0x0003328d... (95 %)
Writing at 0x00033c80... (97 %)
Writing at 0x0003478a... (100 %)
Wrote 152960 bytes (85937 compressed) at 0x00010000 in 1.6 seconds (effective 746.9 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 103...
Writing at 0x00008000... (100 %)
Wrote 3072 bytes (103 compressed) at 0x00008000 in 0.0 seconds (effective 501.4 kbit/s)...
Hash of data verified.

Leaving...
WARNING: ESP32-S2FNR2 chip was placed into download mode using GPIO0.
esptool.py can not exit the download mode over USB. To run the app, reset the chip manually.
To suppress this note, set --after option to 'no_reset'.
CMake Error at run_serial_tool.cmake:56 (message):
  /Users/skicka/.espressif/python_env/idf4.4_py3.10_env/bin/python
  /Users/skicka/esp/esp-idf/components/esptool_py/esptool/esptool.py --chip
  esp32s2 failed


FAILED: CMakeFiles/flash /Users/skicka/esp/hello_world/build/CMakeFiles/flash 
cd /Users/skicka/esp/esp-idf/components/esptool_py && /usr/local/Cellar/cmake/3.24.2/bin/cmake -D IDF_PATH="/Users/skicka/esp/esp-idf" -D SERIAL_TOOL="/Users/skicka/.espressif/python_env/idf4.4_py3.10_env/bin/python /Users/skicka/esp/esp-idf/components/esptool_py/esptool/esptool.py --chip esp32s2" -D SERIAL_TOOL_ARGS="--before=default_reset --after=hard_reset write_flash @flash_args" -D WORKING_DIRECTORY="/Users/skicka/esp/hello_world/build" -P /Users/skicka/esp/esp-idf/components/esptool_py/run_serial_tool.cmake
ninja: build stopped: subcommand failed.
ninja failed with exit code 1

More Information.

I've tried the fixes mentioned here: #5322 (comment)

It was not effective.

@skickar skickar added the Type: Bug bugs in IDF label Sep 18, 2022
@espressif-bot espressif-bot added the Status: Opened Issue is new label Sep 18, 2022
@github-actions github-actions bot changed the title Esp32s2 Build fails with: ninja: build stopped: subcommand failed Esp32s2 Build fails with: ninja: build stopped: subcommand failed (IDFGH-8327) Sep 18, 2022
@dobairoland
Copy link
Collaborator

To troubleshoot, I have also tried selecting "only most common certificates" in the menu, and disabling certificates entirely. There is no effect.

I've tried the fixes mentioned here: #5322 (comment)

Hi @skickar. This has nothing to do with certificates.

The issue is explained in the output message:

WARNING: ESP32-S2FNR2 chip was placed into download mode using GPIO0.
esptool.py can not exit the download mode over USB. To run the app, reset the chip manually.
To suppress this note, set --after option to 'no_reset'.

If you put the chip into download mode manually then idf.py flash cannot reset it. You need to reset it manually after flashing and then you can connect to it by idf.py monitor. There is really no issue here.

@dobairoland
Copy link
Collaborator

BTW, I forgot to mention that putting the chip into download mode manually is not necessary. idf.py flash is able to do that automatically and then you will not receive the above error.

Note that idf.py monitor using the same port will work only if you've built and USB console application. Otherwise, the same port won't show up after reset.

@espressif-bot espressif-bot added Resolution: Won't Do This will not be worked on Status: Done Issue is done internally and removed Status: Opened Issue is new labels Sep 19, 2022
@francudina
Copy link

francudina commented Nov 2, 2023

@skickar I found out for this link, it helped me with the flashing and monitoring, and also solved the challenge: link

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Resolution: Won't Do This will not be worked on Status: Done Issue is done internally Type: Bug bugs in IDF
Projects
None yet
Development

No branches or pull requests

4 participants