Software Getting Started » History » Revision 26
Revision 25 (Anonymous, 02/19/2016 10:49 PM) → Revision 26/31 (Anonymous, 02/19/2016 10:49 PM)
h2. [[OsmocomBB]] == 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 done so already, checkout [[PreliminaryRequirements]] h3. [wiki:PreliminaryRequirements] === Compiling osmocomBB === osmocomBB consists out of software that is intended to be run on the phone (target) and the host system. h4. ==== 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: <pre> <code class="sh"> {{{ #!sh sudo aptitude install libtool shtool automake autoconf git-core pkg-config make gcc </code></pre> }}} For osmocomBB, as for several other osmocom projects, you will also need [[libosmocore]]. [wiki: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. h4. ==== Dependencies for the target ==== To compile osmocomBB or SIMtrace for the target we *need '''need a GNU [[toolchain]] [wiki:toolchain] for ARM.* h4. ARM.''' ==== Getting and updating the source <pre> <code class="sh"> ==== {{{ #!sh git clone git://git.osmocom.org/osmocom-bb.git cd osmocom-bb git pull --rebase </code></pre> h4. }}} ==== Building the source ==== Compiling both the target and the host code will happen with the following command. It assumes that the *arm-elf-gcc* '''arm-elf-gcc''' is* is''' inside the current path._ path.'' <pre> <code class="sh"> {{{ #!sh cd src make </code></pre> }}} If your GCC binary that produces ARM code is not called *arm-elf-gcc* '''arm-elf-gcc''' you will need to invoke the following statement and provide the basename of the toolchain with the ending *-*. '''-'''. <pre> <code class="sh"> {{{ #!sh cd src make -e CROSS_TOOL_PREFIX=arm-OTHER_NAME- </code></pre> }}} If no error has occured you will have the firmware binaries in _src/target/firmware/board/compal_e88/*.bin_ ''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_, ''src/host/osmocon/osmocon'', in _src/host/layer23/src/misc_ ''src/host/layer23/src/misc'' and _layer23/src/mobile_. h3. ''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]] [wiki:osmocon] utility implements this protocol and can upload the firmware. Please refer the [[osmocon]] [wiki:osmocon] wiki page for details on how to use it properly. After the firmware has been loaded, the [[osmocon]] [wiki: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]] [wiki:ccch_scan] and is actually a group of binaries providing different functionality. Please see [[ccch_scan]] [wiki:ccch_scan] for the details.