This page will describe how to compile the firmware, the host utilities and how to use them.
If you haven't done so already, checkout PreliminaryRequirements
osmocomBB consists out of software that is intended to be run on the phone (target) and the host system.
Dependencies for the host¶
osmocomBB requires GNU autoconf, automake, libtool, pkg-config, make and GCC to compile.
The name of these packages depend on the distribution used. You will also need git to access and update the sources.
For Debian(and Debian-like distros), these packages can be installed using:
sudo apt install libtool shtool automake autoconf git-core pkg-config make gcc
For osmocomBB, as for several other osmocom projects, you will also need libosmocore. Note: Although libosmocore is included when getting osmocom-bb from the git repository, you have to install it separately. The libosmocore subtree is only used to compile the embedded ARM version of libosmocore.
Dependencies for the target¶
To compile osmocomBB or SIMtrace for the target we need a GNU toolchain for ARM.
Getting and updating the source¶
git clone https://gitea.osmocom.org/phone-side/osmocom-bb.git cd osmocom-bb git pull --rebase
Building the source¶
Compiling both the target and the host code will happen with the following command. It assumes that the arm-elf-gcc
is* inside the current path._
cd src make
If your GCC binary that produces ARM code is not called arm-elf-gcc you will need to invoke the following statement
and provide the basename of the toolchain with the ending *-*.
cd src make -e CROSS_TOOL_PREFIX=arm-OTHER_NAME-
For example after installing gcc-arm-none-eabi package on Ubuntu/Debian the proper command would be
make -e CROSS_TOOL_PREFIX=arm-none-eabi-
If no error has occured you will have the firmware binaries in src/target/firmware/board/compal_e88/*.bin that can be
used with the Motorola C123. You also have the binaries to run on your host in src/host/osmocon/osmocon, in
src/host/layer23/src/misc and layer23/src/mobile.
The original bootloader of Compal and others are built in a way to load code via the serial interface. The osmocon
utility implements this protocol and can upload the firmware. Please refer the osmocon wiki page for details on how to use
After the firmware has been loaded, the osmocon application will print the output of the serial console
and it provides a unix domain socket that another layer of software can connect to. In the case of osmocomBB
this higher layer software is called ccch_scan and is actually a group of binaries providing different functionality. Please
see ccch_scan for the details.