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.
Updated by fixeria almost 5 years ago · 16 revisions