Page 1 of 1

idf.py menuconfig fail

Posted: Thu Apr 16, 2020 2:56 am
by iamkkk
Hi,
I install esp-idf and menuconfig can not run successfully but I can run idf.py build and idf.py flash
Could you help me?

. ~/esp/esp-idf/export.sh
idf.py menuconfig


Traceback (most recent call last):
File "/root/esp/esp-idf/tools/kconfig_new/menuconfig.py", line 3287, in <module>
_main()
File "/root/esp/esp-idf/tools/kconfig_new/menuconfig.py", line 672, in _main
menuconfig(standard_kconfig(__doc__))
File "/root/esp/esp-idf/tools/kconfig_new/menuconfig.py", line 741, in menuconfig
print(curses.wrapper(_menuconfig))
File "/usr/lib/python2.7/curses/wrapper.py", line 49, in wrapper
curses.nocbreak()
_curses.error: nocbreak() returned ERR
ninja: build stopped: subcommand failed.
ninja failed with exit code 1

Re: idf.py menuconfig fail

Posted: Thu Apr 16, 2020 2:04 pm
by ESP_Roland
Hi iamkkk,

What terminal and OS are you using? What is the value of the TERM enviroment variable? You can find it in the output, e.g.:

Code: Select all

TERM environment variable is set to "rxvt-unicode-256color"

Re: idf.py menuconfig fail

Posted: Fri Apr 17, 2020 1:48 am
by iamkkk
Hi Roland,
I use ubuntu default terminal and export TERM=rxvt-unicode-256color but still have problem.


Executing "ninja menuconfig"...
[1/1] cd /root/esp/esp-idf/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_c...sp/esp-idf/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/sdkconfig
FAILED: cd /root/esp/esp-idf/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/build && /root/.espressif/python_env/idf4.2_py2.7_env/bin/python /root/esp/esp-idf/tools/kconfig_new/prepare_kconfig_files.py --env-file /root/esp/esp-idf/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/build/config.env && /root/.espressif/python_env/idf4.2_py2.7_env/bin/python /root/esp/esp-idf/tools/kconfig_new/confgen.py --kconfig /root/esp/esp-idf/Kconfig --sdkconfig-rename /root/esp/esp-idf/sdkconfig.rename --config /root/esp/esp-idf/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/sdkconfig --defaults /root/esp/esp-idf/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/sdkconfig.defaults --env-file /root/esp/esp-idf/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/build/config.env --env IDF_TARGET=esp32 --dont-write-deprecated --output config /root/esp/esp-idf/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/sdkconfig && /root/.espressif/python_env/idf4.2_py2.7_env/bin/python /root/esp/esp-idf/tools/check_term.py && /usr/local/bin/cmake -E env COMPONENT_KCONFIGS_SOURCE_FILE=/root/esp/esp-idf/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/build/kconfigs.in COMPONENT_KCONFIGS_PROJBUILD_SOURCE_FILE=/root/esp/esp-idf/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/build/kconfigs_projbuild.in IDF_CMAKE=y KCONFIG_CONFIG=/root/esp/esp-idf/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/sdkconfig IDF_TARGET=esp32 /root/.espressif/python_env/idf4.2_py2.7_env/bin/python /root/esp/esp-idf/tools/kconfig_new/menuconfig.py /root/esp/esp-idf/Kconfig && /root/.espressif/python_env/idf4.2_py2.7_env/bin/python /root/esp/esp-idf/tools/kconfig_new/confgen.py --kconfig /root/esp/esp-idf/Kconfig --sdkconfig-rename /root/esp/esp-idf/sdkconfig.rename --config /root/esp/esp-idf/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/sdkconfig --defaults /root/esp/esp-idf/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/sdkconfig.defaults --env-file /root/esp/esp-idf/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/build/config.env --env IDF_TARGET=esp32 --output config /root/esp/esp-idf/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/sdkconfig
Loading defaults file /root/esp/esp-idf/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/sdkconfig.defaults...
TERM environment variable is set to "rxvt-unicode-256color"
Loaded configuration '/root/esp/esp-idf/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/sdkconfig'



ceback (most recent call last):
File "/root/esp/esp-idf/tools/kconfig_new/menuconfig.py", line 3287, in <module>
_main()
File "/root/esp/esp-idf/tools/kconfig_new/menuconfig.py", line 672, in _main
menuconfig(standard_kconfig(__doc__))
File "/root/esp/esp-idf/tools/kconfig_new/menuconfig.py", line 741, in menuconfig
print(curses.wrapper(_menuconfig))
File "/usr/lib/python2.7/curses/wrapper.py", line 49, in wrapper
curses.nocbreak()
_curses.error: nocbreak() returned ERR
ninja: build stopped: subcommand failed.
ninja failed with exit code 1
root@E5450:~/esp/esp-idf/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist# echo $TERM
rxvt-unicode-256color




Thanks

Re: idf.py menuconfig fail

Posted: Fri Apr 17, 2020 6:55 am
by ESP_Roland
Hi iamkkk,

I'm not sure about this issue as menuconfig usually is working well on Ubuntu. The proper TERM value for your terminal is probably "xterm-256color" but I think it should work with the default value as well. No additional packages are necessary on Ubuntu.

You can try different styles and see if that is causing the problem:

Code: Select all

idf.py menuconfig --style monochrome
Are you using some older Ubuntu, i.e. older than 16.04? What is your python version, i.e. the output of "python --version"?

You are not using any terminal multiplexer, i.e. tmux, screen? You are not connecting to the machine over SSH?

You may try to switch to Python 3 and see if you get the same error:
https://docs.espressif.com/projects/esp ... and-debian (you can switch back to Python 2 with update-alternatives if you don't want to keep Python 3 as default)

It is unusual to run these tools as root. You might want to try to switch to a regular user as different environment variables could cause problems. These tools are not tested to run as root.

Re: idf.py menuconfig fail

Posted: Fri Apr 17, 2020 10:46 am
by iamkkk
Hi Roland,
My Ubuntu version is 14.04.6 LTS
python is 2.7.6

You are not using any terminal multiplexer, i.e. tmux, screen? You are not connecting to the machine over SSH?
Yes, I use Ubuntu default terminal and I do not use SSH.

I can not run ". ~/esp/esp-idf/export.sh" if I use python3.
I see there is ~/.rspressif/python_env/idf4.2_py2.7_env , only support python2 ?


Thanks

Re: idf.py menuconfig fail

Posted: Fri Apr 17, 2020 11:10 am
by ESP_Roland
If you switch Python and run install.sh then it will create a new Python environment in directory .espressif based on the new Python.

The version of your Ubuntu is no longer supported and the included Pythons are very old.

Here are a couple of more ideas you can try:
- build in docker: https://docs.espressif.com/projects/esp ... image.html
- Install a newer Python with https://github.com/pyenv/pyenv. However, I've never tested pyenv with install.sh and export.sh.
- Use IDF v4.0 or older until you upgrade to more recent Ubuntu. IDF v4.0 uses the old menuconfig.