OsmocomBB Getting Started Guide

This page will describe how to compile the firmware, the host utilities and how to use them. If you haven't do so already, checkout PreliminaryRequirements

Compiling osmocomBB

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. You will also need to use git to access and update the sources. There should be no other depedencies. The name of these packages depend on the distribution used. To

For Debian the package names are:

sudo aptitude install libtool shtool autoconf git-core pkg-config make gcc

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 git://git.osmocom.org/osmocom-bb.git
$ cd osmocom-bb
$ git pull --rebase

Verify the PATH environment variable

Please ensure that the cross-compiler is available in your PATH, for example by adding the following command to your shell's startup script (e.g. .bashrc) or typing it in the terminal you use to build:

export $PATH:$HOME/install/gnuarm-3.4.3/bin

Or on Ubuntu you might want to try:

export PATH=$PATH:$HOME/install/gnuarm-3.4.3/bin

(presuming it's in your home directory, if you have changed to root it probably wont be :))

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-

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.

Running osmocomBB

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 the osmocon for the details of how to use it properly.

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 layer23 and is actually a group of binaries providing different functionality. Please see layer23 for the details.