I used to tinker endlessly to keep my GNU ARM tool chains built, installed, and updated. Now I prefer to use the open source cross compilers from CodeSourcery.
Here is a simple example of a recent install.
I downloaded the Sourcery G++ Lite 2010q1-188 for ARM EABI binary installer for Linux. This link may be dated when you read this, so be sure to check for the latest version for your system. I am programming bare ARM systems without an operating system, e.g., I am building my own custom OS, so I installed the ARM EABI variant.
The binary installer and the tools were built for 32-bit systems, so I had to make sure the ia32 bit library was installed on my 64-bit Ubuntu system. You will not need this if your system is 32-bit. I once tried to install the CodeSourcery tools on a fresh installation of Ubuntu, and the GUI Java based installer failed to run. I wrongly assumed there was something wrong with my Java configuration, so I switched to the non-GUI version of the CodeSourcery installer, which if I remember correctly is disabled via a command line switch on the installer. The non-GUI installer failed too, and it turned out that I was missing the IA32 libraries on my Ubuntu system, which I installed by something like this.
sudo apt-get install ia32-libs
I chose to install the the tool chain in the default directory “/usr/local/share/CodeSourcery” instead of in my home directory. Simply follow the GUI instructions and watch it happen.
sudo ./arm-2010q1-188-arm-none-eabi.bin
If you need or prefer the non-GUI installer, then invoke with the console switch.
sudo ./arm-2010q1-188-arm-none-eabi.bin -i console
I updated my path in “/etc/environment” by appending “/usr/local/share/CodeSourcery/bin”, the location of the new CodeSourcery executables, to the existing path.
sudo gedit /etc/environment
I verified my new environment settings by testing the existence an arbitrary CodeSourcery executable in the new path.
which arm-none-eabi-ar
If you chose to install the documentation as prompted by the GUI installer as I did, you can find PDF, HTML, info, and man documents here.
/usr/local/share/CodeSourcery/share/doc/arm-arm-none-eabi
That’s pretty much it.