Trying to execute the following command on a Raspberry Pi…
edge-impulse-linux-runner --download modelfile.eim
…results in an “unsupported architecture” error that seems to contradict itself:
[RUN] Failed to run impulse Error: Unsupported architecture "aarch64", only armv7l or aarch64 supported for now
at RunnerDownloader.getDownloadType (/usr/lib/node_modules/edge-impulse-linux/build/cli/linux/runner-downloader.js:31:27)
at async RunnerDownloader.getLastDeploymentVersion (/usr/lib/node_modules/edge-impulse-linux/build/cli/linux/runner-downloader.js:55:28)
at async /usr/lib/node_modules/edge-impulse-linux/build/cli/linux/runner.js:123:31
Any ideas? (Side note: I posted this on GitHub as well, but now I see this is a more appropriate spot for issues!)
@roblauer Which Raspberry Pi is this?
The latest - RPi 4 model B.
Are you using Raspberry Pi OS 32 bits? Can you provide the output of uname -a
64-bit…I assume that’s the issue? I’ll flash a fresh version of 32-bit Raspbian and try again.
Linux raspberrypi 5.10.17-v8+ #1421 SMP PREEMPT Thu May 27 14:01:37 BST 2021 aarch64 GNU/Linux
Hmm… That would be interesting, here’s my output - architecture differs in my uname output:
pi@raspberrypi:~ $ uname -a
Linux raspberrypi 5.10.17-v7l+ #1403 SMP Mon Feb 22 11:33:35 GMT 2021 armv7l GNU/Linux
instead of v8+
… Would be weird if this was misrepresented on 32-bit vs 64-bit… My Linux is 32-bit though:
pi@raspberrypi:~ $ getconf LONG_BIT
@aurel Any chance you can test if you run a Raspberry Pi model (downloaded from the 32-bit Pi) on the 64-bit Pi? If so, we need to refine our architecture detection code in the Linux CLI. If not, we need to do a deepdive into building for 64-bit Pi’s…
I’ll give it a try in the next days. We managed to build it for Balena 64 bits OS though using a similar script as Jetson: https://github.com/just4give/balena-edge-impulse-linux/blob/master/ei-inference/Dockerfile.aarch64
FYI, everything works fine after a fresh 32-bit Raspbian install.
I’m having the same error with the architecture “aarch64”. I’ve used the last 32 bits version available for Rasp4 (with a Rasp4 model B - 64 bits). Any recommendation for this case?
Hi, I am having the same problem as well ‘Unsupported architecture “aarch64”, only armv7l or aarch64 supported for now’. Using a Pi 4. I did a fresh install, but then installed TensorFlowLite.
I’m the author of ‘The Raspberry Pi Cookbook’ (O’Reilly) It’s the Japanese translator for the book that flagged this up to me, as they have the same problem. I’m guessing I originally did all this on a Pi3, and it worked fine. Your early help on this, EI support, would be very much appreciated. Also good luck with the Pi 5!
If you are seeing the aarch64
error, it likely means you have a 32-bit OS installed on your 64-bit Raspberry Pi. Please see this troubleshooting guide for more information.
PS - I’m a big fan of your work! Your “Programming the Raspberry Pi” book was invaluable when I was first starting to tinker with the board years ago.
Hi @shawn_edgeimpulse thank you - that’s very kind, I’m glad the book was useful. Thanks for the link to the guide, that’s really informative. I can see that its a problem that will go away when 64-bit Raspberry Pi OS becomes the recommended distribution, but at the moment the Pi-people recommend the 32-bit version. Is there any workaround that we can tell the readers (apart from reinstall your operating system with an unstable version)? Any tweak to a config file or anything to fool your code? I think EI is great BTW - you’ve managed to make something really difficult accessible to mortals like me.
Unfortunately, at this time, the .eim file is generated on the Edge Impulse servers based on the architecture being used. It’s a known issue, so there may be 32-bit OS support in the future, but for now, we are focused on deploying to 64-bit operating systems for the Raspberry Pi. I’ve updated the troubleshooting in the docs (in the link I posted) to hopefully help people catch this.
Ah, I see - ok thanks Shawn, I guess and instructions in the book to get yourself another micro SD card and install 64-bi Raspberry Pi OS is probably the answer. Thanks for your help.