Best way to specify specific target architecture for --with-package additional packages?

I’m trying to build a docker image on a build server, then send it to a Raspberry Pi 3, but one part of my deployment doesn’t work because of architecture issues.

So, I’d like to run pio platform install atmelsam@2.3.0 --with-package=tool-bossac --with-package=framework-arduinosam in my Dockerfile (running on arm_v8 server architecture), but it can’t find tool-bossac or framework-arduinosam binaries for arm_v8 (they only seem to exist for arm_v7). Since my Raspberry Pi is an arm_v7 system, I can run that command post-deployment onto the Pi, but I’d rather do it on the server.

Is there a way for me to direct the pio platform install command to find the arm_v7 binaries, or do I need to fork platform-atmelsam and modify platform.json to grab a different manifest.json?

You can process project directly on RPi side via PIO Remote. Do you mean this?

Not exactly. It seems to be because the manifest.json doesn’t list linux_armv8l as a system:

{
  "sha1": "fcd1cab363b9c9c2fbc79c4103a1a313caf1ce08", 
  "system": [
    "linux_armv6l", 
    "linux_armv7l", 
    "linux_aarch64"
  ], 
  "url": "http://dl.platformio.org/packages/tool-bossac-linux_armv6l-1.10700.0.tar.gz", 
  "version": "1.10700.0"
}, 

So, when I run run pio platform install atmelsam@2.3.0 --with-package=tool-bossac --with-package=framework-arduinosam I get the following error:

 Error: Could not find a version that satisfies the requirement '>=1.40803.0,<1.40805.0' for your system 'linux_armv8l'

Is the resolution the same as in this issue?

@ivankravets given that armv8l is fully backwards compatible with armv7l, wouldn’t it make sense to add linux_armv8l everywhere where linux_armv7l is already listed? Right now platformio doesn’t allowing armv8l platforms to download armv7l packages they can use.

@ivankravets This is actually becoming a fairly pressing concern on my end - is there another avenue for support? We’ve tried forking platform-atmelsam and configuring it ourselves, without success.

I’ve just added linux_armv8l to all manifests. Could you try again?

Awesome! Looks like that worked - thanks very much @ivankravets :slightly_smiling_face: