Software & AppsOperating SystemLinux

How To Install arm-none-eabi-gdb on Ubuntu 20.04 LTS

Ubuntu 19

In this article, we will guide you through the process of installing arm-none-eabi-gdb on Ubuntu 20.04 LTS (Focal Fossa). The arm-none-eabi-gdb is a part of the GNU Arm Embedded Toolchain which includes a GCC source-and-binary package for bare-metal ARM embedded systems.

Quick Answer

To install arm-none-eabi-gdb on Ubuntu 20.04 LTS, you need to remove any existing gcc-arm-none-eabi package, download the latest version of gcc-arm-none-eabi, extract the tarball, create symbolic links to make the binaries accessible system-wide, install necessary dependencies, and verify the installation.


Before we start, you should have Ubuntu 20.04 LTS installed on your system. You should also have sudo privileges to execute the necessary commands.

Step 1: Remove Existing gcc-arm-none-eabi Package

If you have an existing gcc-arm-none-eabi package installed on your system, you should remove it to avoid any conflicts. You can do this by executing the following command in your terminal:

sudo apt remove gcc-arm-none-eabi

This command uses the apt package handling utility to remove the gcc-arm-none-eabi package. The sudo command is used to execute the command with root privileges.

Step 2: Download the Latest Version of gcc-arm-none-eabi

Next, you need to download the latest version of the gcc-arm-none-eabi package. You can download it from the GNU Arm Embedded Toolchain downloads page.

Look for the Linux x86_64 Tarball and download it to your system.

Step 3: Verify the MD5 Checksum

After downloading the package, you should verify the MD5 checksum to ensure the integrity of the downloaded file. This step is optional but recommended.

Step 4: Extract the Downloaded Tarball

Once the download is complete, you need to extract the tarball into a directory of your choice. For instance, you can use the /usr/share/ directory:

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

In this command, tar is used to extract files from a tarball. The xjf options tell tar to extract (x), use bzip2 decompression (j), and specify the file (f). The -C option is used to specify the directory where the files will be extracted.

Step 5: Create Symbolic Links

Next, you need to create symbolic links to make the binaries accessible system-wide. You can do this using the following commands:

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

The ln command is used to create links between files. The -s option is used to create symbolic links. In this case, we’re linking the binaries in the gcc-arm-none-eabi directory to the /usr/bin/ directory, which is included in the system’s PATH.

Step 6: Install Necessary Dependencies

You may need to install the libncurses-dev package, which provides libraries for terminal handling. You can install it using the following command:

sudo apt install libncurses-dev

Step 7: Verify the Installation

Finally, you can verify if the installation was successful by running the following commands:

arm-none-eabi-gcc --version
arm-none-eabi-g++ --version
arm-none-eabi-gdb --version
arm-none-eabi-size --version

Each of these commands will display the version of the respective tool, indicating that they are correctly installed and accessible.


Congratulations! You have successfully installed arm-none-eabi-gdb on Ubuntu 20.04 LTS. Now, you can start developing and debugging bare-metal ARM embedded systems on your Ubuntu machine.

Please note that the PPA team-gcc-arm-embedded/ppa does not have a version for Ubuntu 20.04. The PPA has been deprecated, so the non-PPA method described above is the recommended way to install arm-none-eabi-gdb on Ubuntu 20.04.

Can I install `arm-none-eabi-gdb` on other versions of Ubuntu?

Yes, you can install arm-none-eabi-gdb on other versions of Ubuntu by following the same steps mentioned in this article.

Can I use these instructions for other Linux distributions?

These instructions are specifically for Ubuntu 20.04 LTS. However, you may be able to adapt them for other Linux distributions with minor modifications.

What is the purpose of removing the existing `gcc-arm-none-eabi` package?

Removing the existing gcc-arm-none-eabi package is necessary to avoid conflicts with the newly installed version. It ensures a clean installation of arm-none-eabi-gdb.

How can I verify the MD5 checksum?

To verify the MD5 checksum, you can use the md5sum command followed by the path to the downloaded file and compare it to the provided checksum. For example: md5sum gcc-arm-none-eabi-YOUR-VERSION.bz2.

Can I choose a different directory to extract the tarball?

Yes, you can choose a different directory to extract the tarball. Just replace /usr/share/ in the extraction command with the desired directory path.

What are the symbolic links used for?

Symbolic links are created to make the arm-none-eabi-gdb binaries accessible system-wide. This allows you to execute the commands from any location without specifying the full path.

Do I need to install the `libncurses-dev` package?

You may need to install the libncurses-dev package if it is not already installed on your system. It provides libraries for terminal handling, which may be required by arm-none-eabi-gdb.

How can I uninstall `arm-none-eabi-gdb`?

To uninstall arm-none-eabi-gdb, you can use the following command: sudo apt remove gcc-arm-none-eabi. This will remove the package from your system.

Can I use the GNU Arm Embedded Toolchain for other ARM architectures?

The GNU Arm Embedded Toolchain is primarily designed for bare-metal ARM embedded systems. However, it may also work for other ARM architectures, but compatibility cannot be guaranteed.

Is there any official documentation or support available for `arm-none-eabi-gdb`?

Yes, there is official documentation available for arm-none-eabi-gdb on the GNU Arm Embedded Toolchain website. You can refer to the documentation for detailed information and support.

Leave a Comment

Your email address will not be published. Required fields are marked *