How to install arm-none-eabi-gdb on Ubuntu 20.04 LTS (Focal Fossa)

44,327

Solution 1

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

Solution 2

The answer from Aleksander solved 99 percent of my issues, however after running make I got one error arm-none-eabi-objcopy : command not found. So I had do make one more symlink to get the files generated.

sudo ln -s /usr/share/gcc-arm-none-eabi-your-version/bin/arm-none-eabi-objcopy /usr/bin/arm-none-eabi-objcopy

I tried to add this as comment to the answer but I don't have enough points to do that.

Share:
44,327
Aleksander Khoroshko
Author by

Aleksander Khoroshko

Updated on September 18, 2022

Comments

  • Aleksander Khoroshko
    Aleksander Khoroshko over 1 year

    I tried to install arm-none-eabi-gdb as a part of gcc-arm-embedded. I added PPA:

    sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa
    

    and executed:

    sudo apt install gcc-arm-embedded 
    

    It responded with:

    Err:8 http://ppa.launchpad.net/team-gcc-arm-embedded/ppa/ubuntu focal Release
      404  Not Found [IP: 91.189.95.83 80]
    

    As far as I understand - gcc-arm-embedded doesn't have a version for Ubuntu 20. So I've changed release version for this PPA in Software & Updates to bionic so that I can avoid error 404.

    Even though ubuntu 20 has libisl22, now I have unmet dependencies when I try to install gcc-arm-embedded:

    The following packages have unmet dependencies:
     gcc-arm-embedded : Depends: libisl15 (>= 0.15) but it is not installable
    E: Unable to correct problems, you have held broken packages.
    

    I was unable to find a way to install requested version of libisl, as apt offers only two versions - libisl22 and libisl-dev and both are not accepted by installer.

    I need advice on how to install arm-none-eabi-gdb. Thank you!

    • Admin
      Admin almost 4 years
      Not really. I've found out, that there is a version for focal on launchpad: launchpad.net/ubuntu/focal/+source/gcc-arm-none-eabi But I have no idea why ppa doesn't give access to it.
    • Admin
      Admin almost 4 years
      @AleksanderKhoroshko Although they have package for focal but they do miss the folder in dists and release file. Release file contains the path of the deb in the pool which is to be fetched when requested. Neither they uploaded the package in pool of archives. You may consider contacting the PPA maintainer regarding the same.
    • Admin
      Admin almost 4 years
      @Kulfy thank you for your effort! It turned out that PPA maintainer decided to deprecate this PPA (it is in the notes on their website), so now non-PPA way of installation is the only way to go. I've made an answer below with instructions.
  • SusanW
    SusanW over 3 years
    @AleksanderKhoroshko OMG, we've been unwittingly using old tools for ages. Thank you thank you! Bit evil of ARM to leave the old stuff up there... hmm. Ok, I've just raised a flag to say your question should be reopened, because the listed alternative qqs are nothing to do with this specific problem.
  • MianQi
    MianQi over 3 years
    I tried this package"gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.‌​bz2", needn't manually create symbolic links, the result for "Check if it works: " was OK.
  • lmat - Reinstate Monica
    lmat - Reinstate Monica over 3 years
    How do I use the ubuntu AUR?
  • debuti
    debuti almost 3 years
    Instead of the symlinks for libncurses you can directly install it sudo apt install libncurses5
  • CivMeierFan
    CivMeierFan almost 3 years
    I suggest symlinking everything in the bin folder -- sudo ln -s /usr/share/gcc-arm-none-eabi-your-version/bin/* /usr/bin/
  • Nonny Moose
    Nonny Moose about 2 years
    Welcome to Ask Ubuntu! I've gone ahead and added your suggestion to the answer you referred to. Please do not leave comments in answers. Instead, you can post answers that do not require clarification from the question author, or, if you have a suggestion, edit the post to incorporate your suggestion.