Project

General

Profile

Software Getting Started » History » Revision 3

Revision 2 (Anonymous, 02/19/2016 10:49 PM) → Revision 3/31 (Anonymous, 02/19/2016 10:49 PM)

== OsmocomBB Getting Started Guide == 

 This page will describe how to compile the firmware, the host utilities and how to use them. 

 === Compiling osmocomBB === 
 osmocomBB consists out of software that is intended to be run on the phone (target) and the host system. 

 ==== Depenendencies 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 autoconf git-core pkg-config make gcc 
 }}} 

 ==== Depenendencies for the target ==== 
 To compile software for the target we need a GNU Toolchain for ARM. There are various pre-compiled toolchains 
 available but not all of them will produce working firmware. We will try to support all these configurations but it 
 might take a while to identify the source of a problem. 

 The toolchains that are known working are the [http://www.gnuarm.com GNUArm.com] ones. They provide a 
 ARM GCC 3.4 .3 for X86 [http://gnuarm.com/bu-2.15_gcc-3.4.3-c-c++-java_nl-1.12.0_gi-6.1.tar.bz2 here] and 
 a ARM GCC 4.0.2 for x86_64 [http://gnuarm.com/bu-2.16.1_gcc-4.0.2-c-c++_nl-1.14.0_gi-6.4_x86-64.tar.bz2 here]. The 
 toolchain is relocatable and be extracted in your home directory. 

 An example for x86 
 {{{ 
 $ wget http://gnuarm.com/bu-2.15_gcc-3.4.3-c-c++-java_nl-1.12.0_gi-6.1.tar.bz2 
 $ mkdir install 
 $ cd install 
 $ tar xjf ../bu-2.15_gcc-3.4.3-c-c++-java_nl-1.12.0_gi-6.1.tar.bz2 
 $ ls gnuarm-3.4.3/bin/arm-elf-gcc 
 }}} 

 ==== Getting and updating the source ==== 
 {{{ 
 git clone git://git.osmocom.org/osmocom-bb.git 
 }}} 

 {{{ 
 $ cd osmocom-bb.git 
 $ 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''' ''''arm-elf-gcc''' you will need to invoke 

 {{{ 
 $ cd src 
 $ make -e CROSS_TOOL_PREFIX=arm-OTHER_NAME- 
 }}}
Add picture from clipboard (Maximum size: 48.8 MB)