Error tool-mkspiffs
joelsernamoreno opened this issue · 32 comments
I tried flashing RFQuack on my old laptop (it worked here before), but now I get the same error
I think platformio has made some modification and this is not working now
If you remove the tool-mkspiffs installation in rfquack this should work
To manually install tool-mkspiffs you can run:
platformio platform install espressif32 --with-package tool-mkspiffs
Can you check this in rfquack?
Can you try to install rfquack on any dongle using Docker?
I would like to know if it is a problem with rfquack, platformio or my computer. We have tried several colleagues and we all get the same error
Thanks
H!
This works for me:
1.- Create a Dockerfile on your computer with the following content:
2.- Compile this with: docker build -t evilcrowrf/rfquack .
3.- Flash firmware: docker run --device=/dev/ttyUSB0:/board -e BOARD=ESP32 -e RADIOA=CC1101 -e RADIOA_CS=27 -e RADIOA_IRQ=25 -e RADIOB=CC1101 -e RADIOB_CS=5 -e RADIOB_IRQ=2 --rm -it evilcrowrf/rfquack
To fix this for everyone you can update rfquack with this information. Platformio now does not allow to use older versions and therefore rfquack cannot install the necessary packages.
Thanks!
@joelsernamoreno I'm looking into this, but I don't see tool-mkspiffs
used anywhere in the default Dockerfile
; if this is something specific to your flavor of Dockerfile
, can you make a case why this should be addressed by RFQuack? If it's something blocking that doesn't conflict with RFQuack, I'm more than happy to help.
Hi!
When you run the command to flash rfquack with docker you are using espressif32. When you install espressif32 on platformio it automatically installs other packets like tool-mkspiffs
The problem is that your Dockerfile uses an old version of platformio and because of this it doesn't work correctly.
Change pip install -U platformio==4.1.0 to pip install -U platformio
OK. Got it. That's what I'm about to commit. Thanks!
It seems that now platformio does not work properly if you are using older versions.
Let me know when you change this and I'll test it :D
Have a look now @joelsernamoreno and let me know if it builds fine.
Hi!
I keep getting the same error
Have you changed this in the public container? Note that my installation is with docker run:
docker run --device=/dev/ttyUSB0:/board -e BOARD=ESP32 -e RADIOA=CC1101 -e RADIOA_CS=27 -e RADIOA_IRQ=25 -e RADIOB=CC1101 -e RADIOB_CS=5 -e RADIOB_IRQ=2 --rm -it rfquack/rfquack
I am not flashing this locally
No. I only changed the Dockerfile
. Just run make docker-build
to have a fresh image built locally.
Well, this has compiled
How do I flash this now? I have installed the following:
docker run --device=/dev/ttyUSB0:/board -e BOARD=ESP32 -e RADIOA=CC1101 -e RADIOA_CS=27 -e RADIOA_IRQ=25 -e RADIOB=CC1101 -e RADIOB_CS=5 -e RADIOB_IRQ=2 --rm -it rfquack/rfquack:latest
Now I don't get errors from tool.mkspiffs, but I get these errors:
these compilation errors look familiar to me, that's why I was using @FiorixF1 git repos.
it seems to me that there is some misalignment between RadioLib and RFQuack,
but if @phretor manages to compile the error should be on my side, somewhere...
strange, using the latest Docker hub RFQuack image, I still get:
[dirk@t520 RFQuack]$ docker run --device /dev/ttyUSB0:/board -e BOARD=ESP32 -e RADIOA=CC1101 -e RADIOA_CS=5 -e RADIOA_IRQ=4 -l DEBUG --rm -it rfquack/rfquack:latest
Installation ID is 9b58cd12-5225-4f74-8097-14f3d1f0999f
Processing ESP32 (platform: espressif32; board: esp32doit-devkit-v1; framework: arduino)
---------------------------------------------------------------------------------------------------------------------------------------------
PackageManager: Installing tool-mkspiffs @ ~2.230.0
Error: Detected unknown package 'tool-mkspiffs'
Lol, now my previous solution doesn't work either
Seems to have broken everything :(
Hi @dgeppert
With the solution I had written before (create a new Dockerfile with the information I attached) the tool-mkspiffs problem was solved
But... after today's new changes it seems to have broken everything.
in my Dockerfile I successfully use:
RUN apt-get update \
&& apt-get install -y --no-install-recommends git wget unzip make \
&& apt-get purge -y --auto-remove \
&& rm -rf /var/lib/apt/lists/* \
&& pip install -U platformio \
&& platformio platform install espressif32 --with-package tool-mkspiffs \
&& pip install j2cli \
&& pip install google==2.0.3 \
&& pip install protobuf==3.11.3
hth
@FiorixF1 could you please send PRs from your RadioLib fork to rfquack/RadioLib so I can realign?
@dgeppert
Using your dockerfile I keep getting the RadioLib error
hi @joelsernamoreno
with the changes in Dockerfile only the mkspiffs issue was addressed according to your previous proposal
maybe a stupid add: the Dockerfile is not used for docker run
which pulls the hub image already compiled with the submitter's Dockerfile , only for docker build
compilation issues will be solved once @phretor incorporates @FiorixF1 RadioLib changes and aligns RFQuack, I guess...
Oh, good. This is a radiolib problem
Sorry for trying to update this. A few weeks ago I started getting the tool-mkspiff error.
I solved this by creating an updated Dockerfile to use the latest version of platformio and this worked.
I didn't think this problem would become so big now hahaha
last comment: after rm all my docker images/containers a docker run rfquack/rfquack:latest
does not show the mkspiffs error message. seems it did not pull the new image and reused the local one ;-(
just the RadioLib compilation errors remain as @joelsernamoreno already reported
@dgeppert @joelsernamoreno see the latest commits (and, in particular, the Makefile
and newer Dockerfile
) and additions to the README.md
file and let me know if you're still having issues.
In short, you should be able to:
$ edit build.env
$ make docker-build
$ make build
$ PORT=/dev/ttyUSB0 make flash
Check now please:
$ make docker-build-nc && make build
...
Compiling .pio/build/HUZZAH32/FrameworkArduino/esp32-hal-timer.c.o
Compiling .pio/build/HUZZAH32/FrameworkArduino/esp32-hal-touch.c.o
Compiling .pio/build/HUZZAH32/FrameworkArduino/esp32-hal-uart.c.o
Compiling .pio/build/HUZZAH32/FrameworkArduino/libb64/cdecode.c.o
Compiling .pio/build/HUZZAH32/FrameworkArduino/libb64/cencode.c.o
Compiling .pio/build/HUZZAH32/FrameworkArduino/main.cpp.o
Compiling .pio/build/HUZZAH32/FrameworkArduino/stdlib_noniso.c.o
Compiling .pio/build/HUZZAH32/FrameworkArduino/wiring_pulse.c.o
Compiling .pio/build/HUZZAH32/FrameworkArduino/wiring_shift.c.o
Archiving .pio/build/HUZZAH32/libFrameworkArduino.a
Linking .pio/build/HUZZAH32/firmware.elf
Retrieving maximum program size .pio/build/HUZZAH32/firmware.elf
Checking size .pio/build/HUZZAH32/firmware.elf
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM: [== ] 16.9% (used 55344 bytes from 327680 bytes)
Flash: [== ] 22.9% (used 299594 bytes from 1310720 bytes)
Building .pio/build/HUZZAH32/firmware.bin
esptool.py v3.0
=============================== [SUCCESS] Took 33.12 seconds ===============================
I have tried to install RFQuack-cli locally, but there are ipython errors:
- git clone https://github.com/rfquack/RFQuack-cli.git
- cd RFQuack-cli/
- pipenv install -e .
There was indeed a missing line in the Dockerfile
: thanks for your patience.
When installing locally, beware that you're using Python < 3.9 (which is the recommended minimum version). Because of that, IPython could not be installed.
I recommend using Pyenv to manage multiple Python versions on the same system, if you really want to go dockerless for this one.
Closing this issue. If the CLI thing reappears, please open an issue at rfquack/RFQuack-cli.
Hi!
This work:
- cd RFQuack-cli
- make docker-build
- docker run --device /dev/ttyUSB0 --rm -it rfquack/cli:latest tty -P /dev/ttyUSB0
Thanks!
Great! And by now you can avoid make docker-build
and simply use pre-built images from Docker Hub. In practice: simply skip 2. and go straight to 3.