Forum: Compiler & IDEs ESP8266 RTOS SDK aufsetzen - der Horror


von Max M. (maxmicr)


Lesenswert?

Guten Abend,

hat schon mal jemand bei sich das ESP8266 RTOS SDK aufgesetzt: 
https://github.com/espressif/ESP8266_RTOS_SDK ?

Ich würde das gerne auf Windows (ggf. in Kombination mit dem 
Linux-Subsystem) zum laufen zu bekommen, hab aber erstmal keine Ahnung 
wie ich da ran gehen soll.

Ich hab mir im Linux-Subsystem (Ubuntu) die Toolchain heruntergeladen 
und das GitHub-Repo geklont, dann folgendes ausgeführt:
1
export IDF_PATH=/mnt/c/Users/test/Documents/ESP8266/ESP8266_RTOS_SDK/

dann bin ich in den Pfad
1
ESP8266_RTOS_SDK/examples/get-started/hello-world

und hab
1
make

ausgeführt - mit folgendem Ergebnis:
1
make[1]: Entering directory '/mnt/c/Users/test/Documents/ESP8266/ESP8266_RTOS_SDK/tools/kconfig'
2
cc -c  -DCURSES_LOC="<curses.h>" -DLOCALE -MMD -MP -I "." -I "/mnt/c/Users/test/Documents/ESP8266/ESP8266_RTOS_SDK/tools/kconfig"  /mnt/c/Users/test/Documents/ESP8266/ESP8266_RTOS_SDK/tools/kconfig/mconf.c -o mconf.o
3
<command-line>:0:12: fatal error: curses.h: No such file or directory
4
compilation terminated.
5
Makefile:173: recipe for target 'mconf.o' failed
6
make[1]: *** [mconf.o] Error 1
7
make[1]: Leaving directory '/mnt/c/Users/test/Documents/ESP8266/ESP8266_RTOS_SDK/tools/kconfig'
8
The following Python requirements are not satisfied:
9
click>=5.0
10
pyserial>=3.0
11
future>=0.15.2
12
pyparsing>=2.0.3,<2.4.0
13
pyelftools>=0.22
14
Please refer to the Get Started section of the ESP-IDF Programming Guide for setting up the required packages.
15
Alternatively, you can run "/usr/bin/python -m pip install --user -r /mnt/c/Users/test/Documents/ESP8266/ESP8266_RTOS_SDK/requirements.txt" for resolving the issue.
16
/mnt/c/Users/test/Documents/ESP8266/ESP8266_RTOS_SDK//make/project.mk:247: recipe for target 'check_python_dependencies' failed
17
make: *** [check_python_dependencies] Error 1

Hab dann versucht, die fehlenden Python-Pakete einzeln 
nachzuinstallieren:
1
pip install --user click>=5.0

Dann kam nach ca. 1 Minute warten diese Meldung:
1
Exception:
2
Traceback (most recent call last):
3
  File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 215, in main
4
    status = self.run(options, args)
5
  File "/usr/lib/python2.7/dist-packages/pip/commands/install.py", line 360, in run
6
    prefix=options.prefix_path,
7
  File "/usr/lib/python2.7/dist-packages/pip/req/req_set.py", line 784, in install
8
    **kwargs
9
  File "/usr/lib/python2.7/dist-packages/pip/req/req_install.py", line 851, in install
10
    self.move_wheel_files(self.source_dir, root=root, prefix=prefix)
11
  File "/usr/lib/python2.7/dist-packages/pip/req/req_install.py", line 1064, in move_wheel_files
12
    isolated=self.isolated,
13
  File "/usr/lib/python2.7/dist-packages/pip/wheel.py", line 247, in move_wheel_files
14
    prefix=prefix,
15
  File "/usr/lib/python2.7/dist-packages/pip/locations.py", line 153, in distutils_scheme
16
    i.finalize_options()
17
  File "/usr/lib/python2.7/distutils/command/install.py", line 357, in finalize_options
18
    self.create_home_path()
19
  File "/usr/lib/python2.7/distutils/command/install.py", line 593, in create_home_path
20
    os.makedirs(path, 0700)
21
  File "/usr/lib/python2.7/os.py", line 150, in makedirs
22
    makedirs(head, mode)
23
  File "/usr/lib/python2.7/os.py", line 150, in makedirs
24
    makedirs(head, mode)
25
  File "/usr/lib/python2.7/os.py", line 157, in makedirs
26
    mkdir(name, mode)
27
OSError: [Errno 13] Permission denied: '/home/test/.local/lib'

Das Problem ist nun: Wenn ich es mit "sudo" installiere, läuft die 
Installation durch. Aber in Linux haben "sudo" und der normale Benutzer 
ein seltsames Verhältnis miteinander, bzw. eher ein nicht-Verhältnis, 
d.h. wenn ich dann einfach wieder "make" ausführe, kommt immer noch die 
selbe Fehlermeldung mit fehlenden Paketen, d.h. es bringt mir nichts, 
wenn die Installation mit sudo durchläuft - diese Pakete gibt es dann 
anscheinend nur für "sudo" aber nicht für den normalen Benutzer.


Na gut - vielleicht läuft es ja auf purem Windows!

Also - MinGW installiert:
1
$ mingw32-make
2
C:\Users\test\Documents\ESP8266\ESP8266_RTOS_SDK/make/project.mk:60: esp-idf build system only supports GNU Make versions 3.81 or newer. You may see unexpected results with other Makes.
3
C:\Users\test\Documents\ESP8266\ESP8266_RTOS_SDK/make/project.mk:65: esp-idf build system only supports MSYS2 in "MINGW32" mode. Consult the ESP-IDF documentation for details.
4
C:\Users\test\Documents\ESP8266\ESP8266_RTOS_SDK/make/project.mk:116: *** IDF_PATH cannot contain colons. If overriding IDF_PATH on Windows, use MSYS Unix-style /c/dir instead of C:/dir.  Stop.

Okay, hab dann die Pfadvariable angepasst:
1
$ mingw32-make                                                                                                          Makefile:8: c/Users/test/Documents/ESP8266/ESP8266_RTOS_SDK/make/project.mk: No such file or directory
2
mingw32-make: *** No rule to make target 'c/Users/test/Documents/ESP8266/ESP8266_RTOS_SDK/make/project.mk'.  Stop.

Also irgendwann ist doch mal gut :(

Leider hat Espressif zum Dezember diesen Jahres den Support für das 
NON_OS-SDK eingestellt, das hab ich früher immer verwendet. Da hatte ich 
nie solche Probleme.

Kennt sich jemand damit aus? Wäre sehr nett

von Max M. (maxmicr)


Lesenswert?

Okay, Lösung für das Python-Problem war (im Linux-Subsystem eingeben):
1
sudo chown -R test:test /home/test/.local/

Lösung für
1
<command-line>:0:12: fatal error: curses.h: No such file or directory

war:
1
sudo apt-get install libncurses-dev

Dann noch flex, bison und gperf installieren - läuft!

von Markus F. (mfro)


Lesenswert?

Max M. schrieb:
> Makefile:8:
> c/Users/test/Documents/ESP8266/ESP8266_RTOS_SDK/make/project.mk: No such
> file or directory

Hier fehlt offensichtlich der führende '/'.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.