Code Sourcery ARM toolchain 2009q1-203

From RidgeRun Developer Connection
Jump to: navigation, search

About Mentor Embedded / Code Sourcery

CodeSourcery builds software tools that enable its customers to get the most out of hardware platforms ranging from embedded devices to supercomputers. CodeSourcery's products and services deliver on the promise of open-source software and open standards. Founded in 1997.

Mentor acquired Code Sourcery in November 2010.

Mentor Integrated development environment-gnu toolchain - CodeSourcery

Downloading toolchain

The following binary installer is recommended for adding the toolchain to your host computer.

Binary installer (arm-2009q1-203-arm-none-linux-gnueabi.bin)

Creating directory to hold toolchain

Run the following commands to create the directory to hold the toolchain and allow anyone to write to that directory.

sudo mkdir -p /opt/codesourcery
sudo chmod ugo+wrx /opt/codesourcery

After you install the toolchain, you can make the directory non-writable if you so desire.

Using bash instead of dash

By default on Ubuntu systems, /bin/sh is linked to /bin/dash and that causes problems with certain versions of the toolchain and some SDK build scripts. Run the following commands to switch to using bash:

sudo rm /bin/sh
sudo ln -s /bin/bash /bin/sh

Ubuntu 12.04 and later

In order to run the toolchain installer you need to install the 32-bits libs, since this versions removed ia32-libs ia32-libs-gtk packages from the repository you need to run

sudo apt-get install libgtk2.0-0:i386 libxtst6:i386 gtk2-engines-murrine:i386 libstdc++6 libxt6:i386
sudo apt-get install libdbus-glib-1-2:i386 libasound2:i386

More info: What do I need to do to install and run Sourcery CodeBench on an x86 64-bit Linux host system?

Installing toolchain

You also need a Java Virtual Machine to install the toolchain:

sudo apt-get install openjdk-6-jre

for Ubuntu 16.04:

sudo add-apt-repository ppa:openjdk-r/ppa  
sudo apt-get update   
sudo apt-get install openjdk-9-jre 

How can i install openjdk on ubuntu-16-04

After downloading the toolchain, set the execution permission and run the installer

chmod ugo+x arm-2009q1-203-arm-none-linux-gnueabi.bin

# if you get a JRE error, install the toolchain using the console instead of the GUI
./arm-2009q1-203-arm-none-linux-gnueabi.bin -i console

You will see a welcome screen:


Press Next.


Accept the license, and press Next.


Review the components that are included with the toolchain and press Next.


Select Typical install and press Next.


Change the install location to


and press Next.


Change option to Do not modify PATH. and press Next.


Select Don't create links and press Next.


Review summary information and press Install.


Press Done when the installation is complete.

Configuring SDK to use toolchain

The RidgeRun SDK configuration tool allows you to set the toolchain directory path. The default location is /opt/codesourcery/arm-2009q1 so if the recommended location was used above, you do not need to configure your SDK. If you used a different location, then you will need to run the SDK configuration tool once you have the SDK installed in order to change the toolchain directory path.

The menu tree is

RidgeRun SDK Configuration ->
   Toolchain configurations ->
      Toolchain binaries path

Errors and how to fix them

/lib/ No such file

On Ubuntui 12.04, you might see this error when installing the toolchain (which is harmless and can be ignored):

Preparing to install...
Extracting the JRE from the installer archive...
Unpacking the JRE...
Extracting the installation resources from the installer archive...
Configuring the installer for this system's environment...
strings: '/lib/': No such file

Launching installer...

You can use the locate command to find the library:



so the library is on the system, just not at the hard coded path the toolchain installer was expecting.

You can see that the installer has the path hard coded using the strings command:

strings arm-2009q1-203-arm-none-linux-gnueabi.bin | fgrep

nptl="`strings /lib/ | grep -i nptl`"

You can create a symbolic link to the path expected by the toolchain, something like

sudo ln -s /lib/x86_64-linux-gnu/ /lib/