Project

General

Profile

Actions

Toolchain » History » Revision 16

« Previous | Revision 16/23 (diff) | Next »
fixeria, 05/11/2019 01:17 AM


Toolchain

To compile the target firmware for OsmocomBB or SIMtrace, you need a GNU Toolchain for ARM. There are various pre-compiled toolchains available, but not all of them will produce working firmware. We're trying to support all these configurations, but it might take a while to identify the source of a problem. If you have persistent errors when compiling, try using a different package.

Binary distribution

You can use a pre-compiled toolchain provided by your GNU/Linux distribution.

For Debian based distributions (Ubuntu, Linux Mint, etc.), use the following command:

$ sudo apt install gcc-arm-none-eabi

For ArchLinux (https://www.archlinux.org/packages/community/x86_64/arm-none-eabi-gcc/):

$ sudo pacman -S arm-none-eabi-gcc

Build in Docker (dockcross)

Please refer: https://github.com/dockcross/dockcross

$ git clone https://github.com/dockcross/dockcross
$ cd dockcross/
$ mkdir build/
$ docker run --rm dockcross/linux-armv7 > build/dockcross
$ chmod +x build/dockcross

Unfortunately, I didn't (yet) manage to build the firmware using this toolchain. Here is what I tried:

$ cd osmocom-bb/src/
$ $HOME/dockcross/build/dockcross make firmware

If you know how to proceed, please update this section.

Build one from source

If you want to build your own toolchain, known to be working with OsmocomBB, see here: GnuArmToolchain.

This is the best option to get a fairly recent GCC, and this is the option used by several OsmocomBB developers.

Building old branches

If you need to build the firmware from old unmaintained branches (sylvain/burst_ind, sylvain/testing, jolly/testing, etc.), an older version of toolchain is needed.

Please follow the build instructions at: https://github.com/axilirator/gnu-arm-installer/

When using toolchain with GCC >=4.8, the firmware can be compiled, but will hang as soon as you want to sync to an ARFCN.
This issue has been fixed in master: http://cgit.osmocom.org/osmocom-bb/commit/?id=a903b3c1ee27047c79728b18ff6340d23d1aad2e.

Mac OS X

Apparently the arm-elf-gcc 4.3.2 from ports for mac os x can compile the sourcecode as well after symlinking /opt/local/bin/arm-elf-ranlib to /opt/local/bin/arm-elf-linux-ranlib and /opt/local/bin/arm-elf-strip to /opt/local/bin/arm-elf-linux-strip.
If you omit the links, there will be unresolvable references to symbols in the libraries.

Files (0)

Updated by fixeria almost 5 years ago · 16 revisions

Add picture from clipboard (Maximum size: 48.8 MB)