Installation of "toolchain-gccarmnoneeabi" fails on "arm64" Debian (during -> "pio platform install ststm32")

Hi Guys,

Is anyone else having issues with PIO Core installed on Arm Linux? I get the following error when I try to install a platform (such as “ststm32”) that relies on “toolchain-gccarmnoneeabi”.

jnr2820@nano-cube-black:~$ pio platform install ststm32 -f
PlatformManager: Installing ststm32
Downloading  [####################################]  100%
Unpacking  [####################################]  100%
ststm32 @ 6.1.0 has been successfully installed!
PackageManager: Installing toolchain-gccarmnoneeabi @ >=1.60301.0,<1.80000.0
Error: Could not find a version that satisfies the requirement '>=1.60301.0,<1.80000.0' for your system 'linux_aarch64'

jnr2820@nano-cube-black:~$ uname -a
Linux nano-cube-black 5.4.28-sunxi64 #20.02.7 SMP Sat Mar 28 17:25:10 CET 2020 aarch64 GNU/Linux

jnr2820@nano-cube-black:~$ hostnamectl
   Static hostname: nano-cube-black
         Icon name: computer
        Machine ID: --snip--
           Boot ID: --snip--
  Operating System: Debian GNU/Linux 10 (buster)
            Kernel: Linux 5.4.28-sunxi64
      Architecture: arm64

Is “toolchain-gccarmnoneeabi” not working on “arm64”? (Am I doing it wrong? I’m a bit new to PlatformIO/Arduino/STM32 etc)

Compiling also doesn’t work:

jnr2820@nano-cube-black:~/superblink$ pio run -t compile -v
Processing bpill (platform: ststm32; framework: arduino; board: genericSTM32F103C8; upload_protocol: dfu; board_upload.maximum_size: 131072)
---------------------------------------------------------------------------------------------------------------------------------------------------
PackageManager: Installing toolchain-gccarmnoneeabi @ >=1.60301.0,<1.80000.0
Error: Could not find a version that satisfies the requirement '>=1.60301.0,<1.80000.0' for your system 'linux_aarch64'

Indeed there is no package for Linux AARCH64 which fulfills these version requirements (ref):

You can try and hack your way around it by forcing an older toolchain version by adding

platform_packages = toolchain-gccarmnoneeabi @ 1.50401.1

in the platformio.ini of the project (docs), but this is something that must be fixed in the package repositories. This is already tracked in Toolchain '>=1.60301.0,<1.80000.0' for 'linux_aarch64' · Issue #301 · platformio/platform-ststm32 · GitHub but not fixed.

1 Like

Thanks,
I was able to hack my way around it by editing one of the platform json’s but I ran into another tool/toolchain that is missing (Not sure which one it was, but can look if needed). I ended up just using an arm7 box for now, which has the complete toolchain.

More context:

I ran into this issue while trying to program a Generic STM32F1x Bluepill from a “NanoPi Neo2 Black” running Armbian. These boards have Allwinner H5’s and would be great for programing boards with PlatformIO, due to their small size. (They could even be integrated into a project.)
(INFO: http://wiki.friendlyarm.com/wiki/index.php/NanoPi_NEO2_Black)

I am using a NanoPi Neo (1) and Duo 2 for now, as they are is “Armv7l” and the toolchain appears to be complete for that architecture.

NanoPi NEO (1) w/Armbian:
Linux nano-uno-1 5.4.43-sunxi #20.05.1 SMP Sat May 30 20:32:43 CEST 2020 armv7l GNU/Linux

NanoPi NEO 2 Black w/Armbian:
Linux nano-cube-black 5.4.43-sunxi64 #20.05.1 SMP Sat May 30 21:02:33 CEST 2020 aarch64 GNU/Linux