It turned out that ARM decided to make our life easier (sarcasm) by deprecating the use of PPA - their page at launchpad now has an anouncement: "... all new binary and source packages will not be released on Launchpad henceforth ...".

So, to make use of their latest arm-none-eabi-gdb you have to install gcc-arm-embedded manually.

Remove arm-none-eabi-gcc from your system:

sudo apt remove gcc-arm-none-eabi

Download latest version (Linux x86_64 Tarball) from their website, check its MD5. Unpack it into some directory. I used /usr/share/ :

sudo tar xjf gcc-arm-none-eabi-YOUR-VERSION.bz2 -C /usr/share/

Create links so that binaries are accessible system-wide:

sudo ln -s /usr/share/gcc-arm-none-eabi-YOUR-VERSION/bin/arm-none-eabi-gcc /usr/bin/arm-none-eabi-gcc 
sudo ln -s /usr/share/gcc-arm-none-eabi-YOUR-VERSION/bin/arm-none-eabi-g++ /usr/bin/arm-none-eabi-g++
sudo ln -s /usr/share/gcc-arm-none-eabi-YOUR-VERSION/bin/arm-none-eabi-gdb /usr/bin/arm-none-eabi-gdb
sudo ln -s /usr/share/gcc-arm-none-eabi-YOUR-VERSION/bin/arm-none-eabi-size /usr/bin/arm-none-eabi-size
sudo ln -s /usr/share/gcc-arm-none-eabi-YOUR-VERSION/bin/arm-none-eabi-objcopy /usr/bin/arm-none-eabi-objcopy

Install dependencies. ARM's "full installation instructions" listed in readme.txt won't tell you what dependencies are - you have to figure it out by trial and error. In my system I had to manually create symbolic links to force it to work:

sudo apt install libncurses-dev
sudo ln -s /usr/lib/x86_64-linux-gnu/libncurses.so.6 /usr/lib/x86_64-linux-gnu/libncurses.so.5
sudo ln -s /usr/lib/x86_64-linux-gnu/libtinfo.so.6 /usr/lib/x86_64-linux-gnu/libtinfo.so.5

Check if it works:

arm-none-eabi-gcc --version
arm-none-eabi-g++ --version
arm-none-eabi-gdb --version
arm-none-eabi-size --version
Answer from Aleksander Khoroshko on askubuntu.com
Top answer
1 of 5
49

It turned out that ARM decided to make our life easier (sarcasm) by deprecating the use of PPA - their page at launchpad now has an anouncement: "... all new binary and source packages will not be released on Launchpad henceforth ...".

So, to make use of their latest arm-none-eabi-gdb you have to install gcc-arm-embedded manually.

Remove arm-none-eabi-gcc from your system:

sudo apt remove gcc-arm-none-eabi

Download latest version (Linux x86_64 Tarball) from their website, check its MD5. Unpack it into some directory. I used /usr/share/ :

sudo tar xjf gcc-arm-none-eabi-YOUR-VERSION.bz2 -C /usr/share/

Create links so that binaries are accessible system-wide:

sudo ln -s /usr/share/gcc-arm-none-eabi-YOUR-VERSION/bin/arm-none-eabi-gcc /usr/bin/arm-none-eabi-gcc 
sudo ln -s /usr/share/gcc-arm-none-eabi-YOUR-VERSION/bin/arm-none-eabi-g++ /usr/bin/arm-none-eabi-g++
sudo ln -s /usr/share/gcc-arm-none-eabi-YOUR-VERSION/bin/arm-none-eabi-gdb /usr/bin/arm-none-eabi-gdb
sudo ln -s /usr/share/gcc-arm-none-eabi-YOUR-VERSION/bin/arm-none-eabi-size /usr/bin/arm-none-eabi-size
sudo ln -s /usr/share/gcc-arm-none-eabi-YOUR-VERSION/bin/arm-none-eabi-objcopy /usr/bin/arm-none-eabi-objcopy

Install dependencies. ARM's "full installation instructions" listed in readme.txt won't tell you what dependencies are - you have to figure it out by trial and error. In my system I had to manually create symbolic links to force it to work:

sudo apt install libncurses-dev
sudo ln -s /usr/lib/x86_64-linux-gnu/libncurses.so.6 /usr/lib/x86_64-linux-gnu/libncurses.so.5
sudo ln -s /usr/lib/x86_64-linux-gnu/libtinfo.so.6 /usr/lib/x86_64-linux-gnu/libtinfo.so.5

Check if it works:

arm-none-eabi-gcc --version
arm-none-eabi-g++ --version
arm-none-eabi-gdb --version
arm-none-eabi-size --version
2 of 5
10

I've wrapped the script here by @kmhallen into a semi-automated debian package builder here: https://gitlab.com/alelec/arm-none-eabi-gcc-deb/-/releases

Installing a package like this means you can skip the tedious manual symlinks to put tools on the path, and just as importantly you can uninstall / upgrade to newer packages (assuming I remember to make more packages)

Discussions

linux - E: Unable to locate package arm-none-eabi-gcc - Stack Overflow
After entering the following command ... arm-none-eabi-gcc arm-none-eabi-binutils arm-none-eabi-newlib", I'm getting some errors (basically, unable to locate packages). I tried googling a lot but didn't come across any relevant links. Does anyone know what I need to do? My pc configurations are AMD Ryzen 5 processor (IdeaPad 3 15ALC6), and I'm using Ubuntu 22.04.1 ... More on stackoverflow.com
🌐 stackoverflow.com
[SOLVED] Arm-none-eabi-gcc not found when building firmware on Linux
Hello everyone! I have been working on po-util recently, and I am encountering a very frustrating bug on Ubuntu / Mint. Arm-none-eabi-gcc is not being found, and I am having trouble adding it to $PATH. Here is the output when trying to build firmware on my VPS (Ubuntu 16.04.1): nrobinson@u... More on community.particle.io
🌐 community.particle.io
4
0
August 23, 2016
arm-none-eabi toolchain version 14 on Ubuntu 22.04 LTS?
No. Ubuntu 22.04 provides GCC 10 for arm-none-eabi. 24.04 provides GCC 13. I would suggest installing distrobox to run an Arch container, and using the ARM toolchain from that. More on reddit.com
🌐 r/Ubuntu
1
0
June 26, 2024
unrecognized command-line option ‘-mthumb’
Without seeing the actual commands, I can only guess that you are using the system compiler (x86_64) and not arm. More on reddit.com
🌐 r/gcc
3
1
February 26, 2023
🌐
Arm Learning
learn.arm.com › install-guides › gcc › arm-gnu
Arm GNU Toolchain | Arm Learning Paths
Arm GNU Toolchain is a community-supported, pre-built GNU compiler toolchain for Arm-based CPUs. This guide covers installing the toolchain directly from the Arm GNU Toolchain downloads page , which is the recommended approach for bare-metal and embedded targets such as arm-none-eabi.
🌐
UbuntuUpdates
ubuntuupdates.org › gcc-arm-none-eabi
UbuntuUpdates - Package "gcc-arm-none-eabi" (resolute 26.04)
gcc-arm-none-eabi-source · About - Send Feedback to @ubuntu_updates · google-chrome-beta 148.0.7778.96 · Packages changelogs Bugs & CVEs ·
Find elsewhere
🌐
Particle
community.particle.io › troubleshooting
[SOLVED] Arm-none-eabi-gcc not found when building firmware on Linux - Troubleshooting - Particle
August 23, 2016 - Hello everyone! I have been working on po-util recently, and I am encountering a very frustrating bug on Ubuntu / Mint. Arm-none-eabi-gcc is not being found, and I am having trouble adding it to $PATH. Here is the output when trying to build firmware on my VPS (Ubuntu 16.04.1): nrobinson@u...
🌐
Quora
quora.com › How-do-you-install-arm-none-Eabi-GDB-on-Ubuntu-20-04-LTS-Focal-Fossa-apt-gcc-arm-Ubuntu
How to install arm none Eabi GDB on Ubuntu 20.04 LTS (Focal Fossa, apt, gcc, arm, Ubuntu) - Quora
Install the ARM Embedded GDB (arm-none-eabi-gdb) on Ubuntu 20.04 using these practical options: Ubuntu packages, the GNU Arm Embedded Toolchain from Arm, or building from source. Each method below gives exact commands and notes on paths and alternatives. 1) Install the Ubuntu/Debian packaged toolchain (simple, apt-managed) Update apt and install the packages: sudo apt update sudo apt install gcc-arm-none-eabi gdb-multiarch
🌐
Linux Mint Forums
forums.linuxmint.com › board index › main edition support › software & applications
Getting to work ARM-compiler arm-none-eabi with Linux 21 Vanessa - Linux Mint Forums
November 28, 2022 - sudo ln -s /usr/share/gcc-arm-11.2-2022.02-x86_64-arm-none-eabi/bin/arm-none-eabi-gcc /usr/bin/arm-none-eabi-gcc ... 3)Install dependency sudo apt install libncurses-dev 4) Create links 5) From here on: I can call arm-none-eabi-gcc and g++ version without an error.
🌐
Arm Developer
developer.arm.com › downloads › - › gnu-rm
Downloads | GNU Arm Embedded Toolchain Downloads – Arm Developer
See the downloaded package readme.txt file for full installation instructions. For the Linux, Mac, and source packages, readme.txt is in the share/doc/gcc-arm-none-eabi folder.
🌐
Ubuntu
launchpad.net › ubuntu › jammy › +package › gcc-arm-none-eabi
gcc-arm-none-eabi : Jammy (22.04) : Ubuntu
Bare metal C and C++ compiler for embedded ARM chips using Cortex-M, and Cortex-R processors. This package is based on the GNU ARM toolchain provided by ARM.
🌐
Lindevs
lindevs.com › install-arm-gnu-toolchain-on-ubuntu
Install Arm GNU Toolchain on Ubuntu 22.04 | Lindevs
November 14, 2023 - You are doing a bit more than only extend the PATH variable. You are echoing the command to extend the PATH variable onto stdin then capture it via tee and put it (append it) into a file called gcc-arm-none-eabi.sh which resides in the path /etc/profile.d/.
🌐
Ubuntu
old-releases.ubuntu.com › ubuntu › pool › universe › g › gcc-arm-none-eabi
Index of /ubuntu/pool/universe/g/gcc-arm-none-eabi
Index of /ubuntu/pool/universe/g/gcc-arm-none-eabi · Apache/2.4.52 (Ubuntu) Server at old-releases.ubuntu.com Port 80
🌐
Ubuntu
launchpad.net › ubuntu › noble › +package › gcc-arm-none-eabi
gcc-arm-none-eabi : Noble (24.04) : Ubuntu
Bare metal C and C++ compiler for embedded ARM chips using Cortex-M, and Cortex-R processors. This package is based on the GNU ARM toolchain provided by ARM.
🌐
Susu
aiu.susu.ru › iot › arm-none-eabi
IT Академия Samsung
Установка Arm GNU Toolchain в операционной системе Ubuntu
🌐
Arm Developer
developer.arm.com › downloads › - › arm-gnu-toolchain-downloads
Arm GNU Toolchain Downloads – Arm Developer
$ arm-none-eabi-gcc -mcpu=cortex-m7 -mfloat-abi=hard $ arm-none-eabi-gcc -mcpu=cortex-r5 -mfloat-abi=hard -mthumb · Example with floating-point and Advanced SIMD instructions with soft-float ABI: $ arm-none-eabi-gcc -mcpu=cortex-a53 -mfloat-abi=softfp -mthumb
🌐
Byran
byran.tech › html › how-to-install-arm-eabi-none-gdb-on-ubuntu.html
How to install arm-eabi-none-gdb on Ubuntu | byran.tech
July 1, 2022 - 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