How to install arm-eabi-none-gdb on Ubuntu
The Arm GNU Toolchain allows developers to use features of the Arm computer architecture using open source compilation toolchains. However, it is currently an absolute pain to install, thus leading to many workarounds and troubleshooting forums. This article aims to condense many of the troubleshooting forums into one, cohesive article.
Note : you may want to try this install script in the form of a .deb file (Debian based only): https://gitlab.com/alelec/arm-none-eabi-gcc-deb/-/releases
-
Download arm-eabi-non-gdb from https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/downloads
-
Decompress it into /usr/share
-
Symlink everything to the bin folder: sudo ln -s /usr/share/YOUR-VERSION/bin/* /usr/bin/
-
Install the dependencies:
-
The toolchain still may request for another few dependencies to install, which we will install next:
Common error message:
If it asks for another version/library of libncurses, install that and symlink it (many people have different versions of this package, which is why I am being intentionally vague). I had to install libncursesw5-dev .
-
If the toolchain now complains about a missing library, such as: arm-none-eabi-gdb: error while loading shared libraries: libpython3.6m.so.1.0: cannot open shared object file: No such file or directory
-
It is time to compile Python 3.6 — full stop. No clue why they still use Python 3.6, but they do. Note that some have had luck symlinking a python lib file from a newer version, but I had no such luck. # Symlinking command for the lib file: sudo ln -s /usr/local/lib/LIBPYTHON-FILE/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0
-
Compiling Python 3.6: 1. Download and extract any old version of Python 3.6 from the Python website: https://www.python.org/downloads/source/ 2. Install dependencies: 3. Run: sudo ./configure -with-lto —enable-shared to compile Python. The —enabled-shared option actually compiles the library. 4. Run sudo make sharedinstall 5. Symlink: sudo ln -s /usr/local/lib/libpython3.6m.so.1.0 /usr/lib/x86_64-linux-gnu
-
Now, hopefully it’ll work. Try it with: