Particle Workbench cannot compile on Linux Mint 20

I have a PC running the latest Linux Mint 20 (Ulyana) with Cinamon. I was able to install VSCode by enabling and installing snapd using sudo snap install code --classic. This installed v1.47.2 of VSCode. Installing Particle Workbench was a simple matter of selecting it in the Extensions Marketplace. There were NO errors installing Workbench and it ran as expected, including CLI.

I created a new project with its folder in the Document folder. I then configured the project for DeviceOS v1.5.2, an Argon and I specified a valid device name. The correct toolchain installed without error. When I tried to compile the Application and DeviceOS, the terminal indicated the following error:

> Executing task: make -f '/home/lindev/.particle/toolchains/buildscripts/1.9.2/Makefile' compile-all -s <


:::: COMPILING APPLICATION & DEVICE OS

make[1]: /home/lindev/.particle/toolchains/gcc-arm/5.3.1/bin/arm-none-eabi-gcc: Command not found
../build/arm-tools.mk:61: *** "ARM gcc version 5.3.1 or later required, but found ".  Stop.
make: *** [compile-all] Error 2
The terminal process "/bin/bash '-c', 'make -f '/home/lindev/.particle/toolchains/buildscripts/1.9.2/Makefile' compile-all -s'" terminated with exit code: 2.

Resetting the environment did not produce different results. All directories indicated exist. I can provide an Environment Audit if required.

I’m a Windows guy so please be gently :wink:

1 Like

I had a few issues myself the other day with gdb from particle toolchain. Turns out that the toolchain is 32bit only, and I had to manually install some 32bit libs to make it work.

Could you run the same call from a terminal and share the error message?

/home/lindev/.particle/toolchains/gcc-arm/5.3.1/bin/arm-none-eabi-gcc

Also, for the same GCC binary run it with the ld command. This will tell us if you are missing a library like I did.

ldd /home/lindev/.particle/toolchains/gcc-arm/5.3.1/bin/arm-none-eabi-gcc
1 Like

yep - see the “Linux Tips” section at the bottom of this page:

@peekay123

You will need to install these packages:

libarchive-zip-perl for crc32

libc6-i386 for 32 bit libs

sudo apt install libarchive-zip-perl libc6-i386

Thanks all for your guidance. @nrobinson2000 that’s exactly what was missing! :smiley:

2 Likes

@peekay123 did the dependencies i linked to not get things working? should we update our FAQ?

@m_m, I used @nrobinson2000’s instructions first and they worked so I can’t speak to the Linux Tips.

2 Likes

@m_m, I believe that the current FAQ Linux Tips are complete as far as gcc and gdb goes. libc that @nrobinson2000 pointed is dependency of gcc-multlib from the FAQ guide lines.

I’m just not sure about libarchive-zip-perl. Particularly I don’t have the i386 version installed and everything is fine.

1 Like

As I mentioned, libarchive-zip-perl provides the crc32 command which is used in the Makefile near the end of the build process.

Can you build successfully? Perhaps your crc32 command is provided by another package?

great thanks @Gildons :pray::+1:

1 Like

I checked the make from the toolchain here and it seems to be the x86-64 version, so it’s probably calling the same version of crc32 and that’s why it’s not causing any issues.

The version of crc32 shouldn’t matter as the Makefile will use the first one in your $PATH.

1 Like