Building from Source

This page is about how to build the simtrace2 firmware and host software from source.

Binary Packages

Osmocom provides binary packages for several flavors of Debian and Ubuntu GNU/Linux on a variety of architectures (i586, x86_64, armhf, armv7l). Unless you are a software developer interested in developing on Osmocom, it is recommended you use those packages instead of building from source.

For more details see Binary_Packages

We traditionally have built our software primarily on Debian GNU/Linux (jessie, stretch, buster) and on a variety of Ubuntu versions. If you have problems, it is suggested you start with a tested/supported environment, or use the docker based approach listed further below.

Classic approach on Debian/Ubuntu

Installing packages from upstream Debian/Ubuntu

apt-get install autotools-dev autoconf automake libtool pkg-config git \
                libpcsclite-dev libnewlib-arm-none-eabi libusb-1.0-0-dev \

Installing packages from the Osmocom Package feeds

You will need libosmocore-dev, either
  • install it from the Osmocom package feed Binary_Packages (latest feed if you use a tagged version of simtrace2.git, nightly feed if you use git master of simtrace2.git)
    • apt-get install libosmocore-dev (after you added the above-mentioned feed
  • or build libosmocore from source, too.

Docker based approach

You can use the debian-buster-simtrace2 docker image, whose Dockerfile you can find at

Building the debian-buster-simtrace2 container

$ git clone
$ cd docker-playground
$ cd debian-buster-build
$ make
Successfully tagged $USER/debian-buster-build:latest
$ cd ../debian-buster-simtrace2
$ make
Successfully tagged $USER/debian-buster-simtrace2:latest

Running the container and performing an actual build

firmware builds

$ docker run --rm -it $USER/debian-buster-simtrace2
osmocom@d81d29b620a7:~$ cd simtrace2/firmware
osmocom@d81d29b620a7:~/simtrace2/firmware$ make BOARD=qmod APP=cardem
  31548       0   26028   57576    e0e8 bin/qmod-cardem-dfu.elf
  • BOARD= specifies the target hardware / circuit board and
  • APP= specifies the actual firmware application

See for more information on available targets.

host tools build

$ docker run --rm -it $USER/debian-buster-simtrace2
osmocom@d81d29b620a7:~$ cd simtrace2/host
osmocom@d81d29b620a7:~/simtrace2/host$ autoreconf -fi && ./configure && make -j4
  CCLD     simtrace2-list
  CCLD     simtrace2-remsim-usb2udp
  CCLD     simtrace2-remsim
  CCLD     simtrace2-sniff
make[2]: Leaving directory '/home/osmocom/simtrace2/host/src'
Making all in contrib
make[2]: Entering directory '/home/osmocom/simtrace2/host/contrib'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/osmocom/simtrace2/host/contrib'
make[2]: Entering directory '/home/osmocom/simtrace2/host'
make[2]: Nothing to be done for 'all-am'.
make[2]: Leaving directory '/home/osmocom/simtrace2/host'
make[1]: Leaving directory '/home/osmocom/simtrace2/host'

Add picture from clipboard (Maximum size: 48.8 MB)