idf.py menuconfig Doesn't draw an interface, but goes straight to make

lulingar
Posts: 2
Joined: Wed Jun 03, 2020 3:24 pm

idf.py menuconfig Doesn't draw an interface, but goes straight to make

Postby lulingar » Wed Jun 03, 2020 3:42 pm

Hi,

I have just gotten started with the framework, and I intend to build one of the example projects, by following the "getting started" guide. However, when I run

Code: Select all

idf.py menuconfig
from within the project directory, this is the log output:

Code: Select all

[luis@localhost build]$ get_idf
Adding ESP-IDF tools to PATH...
WARNING: tool openocd-esp32 found in path, but failed to run
Checking if Python packages are up to date...
Python requirements from /home/luis/src/esp-idf/requirements.txt are satisfied.
Added the following directories to PATH:
  /home/luis/src/esp-idf/components/esptool_py/esptool
  /home/luis/src/esp-idf/components/espcoredump
  /home/luis/src/esp-idf/components/partition_table/
  /home/luis/.espressif/tools/xtensa-esp32-elf/esp-2019r2-8.2.0/xtensa-esp32-elf/bin
  /home/luis/.espressif/tools/esp32ulp-elf/2.28.51.20170517/esp32ulp-elf-binutils/bin
  /home/luis/.espressif/tools/openocd-esp32/v0.10.0-esp32-20190313/openocd-esp32/bin
  /home/luis/.espressif/python_env/idf4.0_py3.8_env/bin
  /home/luis/src/esp-idf/tools
Done! You can now compile ESP-IDF projects.
Go to the project directory and run:

  idf.py build

[luis@localhost build]$ cd $IDF_PATH/examples/get-started/hello_world/

[luis@localhost hello_world]$ idf.py menuconfig
Checking Python dependencies...
Python requirements from /home/luis/src/esp-idf/requirements.txt are satisfied.
Executing action: menuconfig
Running cmake in directory /home/luis/src/esp-idf/examples/get-started/hello_world/build
Executing "cmake -G 'Unix Makefiles' -DPYTHON_DEPS_CHECKED=1 -DESP_PLATFORM=1 --warn-uninitialized -DWARN_UNINITIALIZED=1 -DCCACHE_ENABLE=0 /home/luis/src/esp-idf/examples/get-started/hello_world"...
Warn about uninitialized values.
-- Found Git: /usr/bin/git (found version "2.26.2") 
-- Component directory /home/luis/src/esp-idf/components/cbor does not contain a CMakeLists.txt file. No component will be added
-- Component directory /home/luis/src/esp-idf/components/tinyusb does not contain a CMakeLists.txt file. No component will be added
-- IDF_TARGET not set, using default target: esp32
-- The C compiler identification is GNU 8.2.0
-- The CXX compiler identification is GNU 8.2.0
-- The ASM compiler identification is GNU
-- Found assembler: /home/luis/.espressif/tools/xtensa-esp32-elf/esp-2019r2-8.2.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc
-- Check for working C compiler: /home/luis/.espressif/tools/xtensa-esp32-elf/esp-2019r2-8.2.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc
-- Check for working C compiler: /home/luis/.espressif/tools/xtensa-esp32-elf/esp-2019r2-8.2.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc - works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /home/luis/.espressif/tools/xtensa-esp32-elf/esp-2019r2-8.2.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-g++
-- Check for working CXX compiler: /home/luis/.espressif/tools/xtensa-esp32-elf/esp-2019r2-8.2.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-g++ - works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Project version: v4.0.1
-- Building ESP-IDF components for target esp32
-- Found PythonInterp: /home/luis/.espressif/python_env/idf4.0_py3.8_env/bin/python (found version "3.8.2") 
-- Found Perl: /usr/bin/perl (found version "5.30.2") 
-- Adding linker script /home/luis/src/esp-idf/examples/get-started/hello_world/build/esp-idf/esp32/esp32_out.ld
-- Adding linker script /home/luis/src/esp-idf/components/esp32/ld/esp32.project.ld.in
-- Adding linker script /home/luis/src/esp-idf/components/esp32/ld/esp32.peripherals.ld
-- Adding linker script /home/luis/src/esp-idf/components/esp_rom/esp32/ld/esp32.rom.ld
-- Adding linker script /home/luis/src/esp-idf/components/esp_rom/esp32/ld/esp32.rom.libgcc.ld
-- Adding linker script /home/luis/src/esp-idf/components/esp_rom/esp32/ld/esp32.rom.syscalls.ld
-- Adding linker script /home/luis/src/esp-idf/components/esp_rom/esp32/ld/esp32.rom.newlib-data.ld
-- Adding linker script /home/luis/src/esp-idf/components/esp_rom/esp32/ld/esp32.rom.newlib-funcs.ld
-- Components: app_trace app_update asio bootloader bootloader_support bt coap console cxx driver efuse esp-tls esp32 esp_adc_cal esp_common esp_eth esp_event esp_gdbstub esp_http_client esp_http_server esp_https_ota esp_https_server esp_local_ctrl esp_ringbuf esp_rom esp_websocket_client esp_wifi espcoredump esptool_py expat fatfs freemodbus freertos heap idf_test jsmn json libsodium log lwip main mbedtls mdns mqtt newlib nghttp nvs_flash openssl partition_table protobuf-c protocomm pthread sdmmc soc spi_flash spiffs tcp_transport tcpip_adapter ulp unity vfs wear_levelling wifi_provisioning wpa_supplicant xtensa
-- Component paths: /home/luis/src/esp-idf/components/app_trace /home/luis/src/esp-idf/components/app_update /home/luis/src/esp-idf/components/asio /home/luis/src/esp-idf/components/bootloader /home/luis/src/esp-idf/components/bootloader_support /home/luis/src/esp-idf/components/bt /home/luis/src/esp-idf/components/coap /home/luis/src/esp-idf/components/console /home/luis/src/esp-idf/components/cxx /home/luis/src/esp-idf/components/driver /home/luis/src/esp-idf/components/efuse /home/luis/src/esp-idf/components/esp-tls /home/luis/src/esp-idf/components/esp32 /home/luis/src/esp-idf/components/esp_adc_cal /home/luis/src/esp-idf/components/esp_common /home/luis/src/esp-idf/components/esp_eth /home/luis/src/esp-idf/components/esp_event /home/luis/src/esp-idf/components/esp_gdbstub /home/luis/src/esp-idf/components/esp_http_client /home/luis/src/esp-idf/components/esp_http_server /home/luis/src/esp-idf/components/esp_https_ota /home/luis/src/esp-idf/components/esp_https_server /home/luis/src/esp-idf/components/esp_local_ctrl /home/luis/src/esp-idf/components/esp_ringbuf /home/luis/src/esp-idf/components/esp_rom /home/luis/src/esp-idf/components/esp_websocket_client /home/luis/src/esp-idf/components/esp_wifi /home/luis/src/esp-idf/components/espcoredump /home/luis/src/esp-idf/components/esptool_py /home/luis/src/esp-idf/components/expat /home/luis/src/esp-idf/components/fatfs /home/luis/src/esp-idf/components/freemodbus /home/luis/src/esp-idf/components/freertos /home/luis/src/esp-idf/components/heap /home/luis/src/esp-idf/components/idf_test /home/luis/src/esp-idf/components/jsmn /home/luis/src/esp-idf/components/json /home/luis/src/esp-idf/components/libsodium /home/luis/src/esp-idf/components/log /home/luis/src/esp-idf/components/lwip /home/luis/src/esp-idf/examples/get-started/hello_world/main /home/luis/src/esp-idf/components/mbedtls /home/luis/src/esp-idf/components/mdns /home/luis/src/esp-idf/components/mqtt /home/luis/src/esp-idf/components/newlib /home/luis/src/esp-idf/components/nghttp /home/luis/src/esp-idf/components/nvs_flash /home/luis/src/esp-idf/components/openssl /home/luis/src/esp-idf/components/partition_table /home/luis/src/esp-idf/components/protobuf-c /home/luis/src/esp-idf/components/protocomm /home/luis/src/esp-idf/components/pthread /home/luis/src/esp-idf/components/sdmmc /home/luis/src/esp-idf/components/soc /home/luis/src/esp-idf/components/spi_flash /home/luis/src/esp-idf/components/spiffs /home/luis/src/esp-idf/components/tcp_transport /home/luis/src/esp-idf/components/tcpip_adapter /home/luis/src/esp-idf/components/ulp /home/luis/src/esp-idf/components/unity /home/luis/src/esp-idf/components/vfs /home/luis/src/esp-idf/components/wear_levelling /home/luis/src/esp-idf/components/wifi_provisioning /home/luis/src/esp-idf/components/wpa_supplicant /home/luis/src/esp-idf/components/xtensa
-- Configuring done
-- Generating done
-- Build files have been written to: /home/luis/src/esp-idf/examples/get-started/hello_world/build
Running make in directory /home/luis/src/esp-idf/examples/get-started/hello_world/build
Executing "make -j 10 menuconfig"...
Scanning dependencies of target mconf-idf
[  0%] Creating directories for 'mconf-idf'
[  0%] No download step for 'mconf-idf'
[  0%] No update step for 'mconf-idf'
[  0%] No patch step for 'mconf-idf'
[  0%] No configure step for 'mconf-idf'
[  0%] Performing build step for 'mconf-idf'
/bin/sh: gperf: command not found
make[4]: *** [/home/luis/src/esp-idf/tools/kconfig/Makefile:343: zconf.hash.c] Error 127
make[4]: *** Waiting for unfinished jobs....
make[3]: *** [CMakeFiles/mconf-idf.dir/build.make:148: mconf-idf-prefix/src/mconf-idf-stamp/mconf-idf-build] Error 2
make[2]: *** [CMakeFiles/Makefile2:1816: CMakeFiles/mconf-idf.dir/all] Error 2
make[1]: *** [CMakeFiles/Makefile2:1850: CMakeFiles/menuconfig.dir/rule] Error 2
make: *** [Makefile:301: menuconfig] Error 2
make failed with exit code 2

[luis@localhost hello_world]$
... and I never get the usual nice menuconfig curses-based interface for configuring the build!

For a check, I tested that curses works in that very same shell I'm running this commands on, by executing this test script and seeing a ncurses interface actually getting drawn.

My system is Arch Linux x64, Python 3.8.3... is there any other specification required?

Thanks for your help!

ESP_Angus
Posts: 2344
Joined: Sun May 08, 2016 4:11 am

Re: idf.py menuconfig Doesn't draw an interface, but goes straight to make

Postby ESP_Angus » Wed Jun 03, 2020 11:38 pm

Hi lulingar,

In ESP-IDF V4.0, the menuconfig tool is compiled on the host[*] before being run for the first time - this is the compilation which is failing.

In this case it's failing because "gperf" is not installed ("gperf: command not found"). Did you run the prerequisite installation step for Arch Linux shown in the Getting Started guide?
https://docs.espressif.com/projects/esp ... setup.html


Angus

[*] In ESP-IDF V4.1 this has changed and we use a Python-based menuconfig tool, but the V4.1 stable release is not available yet.

lulingar
Posts: 2
Joined: Wed Jun 03, 2020 3:24 pm

Re: idf.py menuconfig Doesn't draw an interface, but goes straight to make

Postby lulingar » Thu Jun 11, 2020 10:34 am

Hi ESP_Angus, thank you for your reply ;) ! You were right on point! I missed installing gperf. Actually also ninja and ccache, but I guess gperf is the critical one! :)

Who is online

Users browsing this forum: Bing [Bot] and 263 guests