Project

General

Profile

Software Getting Started » History » Version 32

fixeria, 06/12/2024 11:17 AM
update host side dependencies

1 26
h2. [[OsmocomBB]] Getting Started Guide
2
3
4 1
This page will describe how to compile the firmware, the host utilities and how to use them.
5 26
If you haven't done so already, checkout [[PreliminaryRequirements]]
6 1
7 26
8
h3. Compiling osmocomBB
9
10 1
osmocomBB consists out of software that is intended to be run on the phone (target) and the host system.
11
12
h4. Dependencies for the host
13 26
14 32 fixeria
OsmocomBB requires GNU autoconf, automake, libtool, pkg-config, make and GCC to compile.
15 1
The name of these packages depend on the distribution used. You will also need git to access and update the sources.
16 32 fixeria
17
For Debian (and Debian-like distros), these packages can be installed using:
18
19
<pre><code class="sh">
20
$ sudo apt install libtool shtool automake autoconf git-core pkg-config make gcc
21 1
</code></pre>
22
23 32 fixeria
You'll also need to install the following libraries:
24 1
25 32 fixeria
* [[libosmocore:]]
26
* [[libosmo-gprs:]]
27
* [[gapk:|libosmo-gapk]] (optional, enables voice calls)
28
* lua53 (optional, enables LUA scripting support)
29
* libgps (optional, enables GPS support)
30
31
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.
32 1
33 26
h4. Dependencies for the target
34 1
35
36 26
To compile osmocomBB or SIMtrace for the target we *need a GNU [[toolchain]] for ARM.*
37
38
39
h4. Getting and updating the source
40
41
42
<pre>
43
<code class="sh">
44 31 laforge
git clone https://gitea.osmocom.org/phone-side/osmocom-bb.git
45 1
cd osmocom-bb
46
git pull --rebase
47 26
</code></pre>
48 1
49 20 tsaitgaist
50 26
h4. Building the source
51
52
Compiling both the target and the host code will happen with the following command. It assumes that the *arm-elf-gcc*
53
is* inside the current path._
54
55
<pre>
56
<code class="sh">
57 4
cd src
58
make
59 26
</code></pre>
60 20 tsaitgaist
61 26
If your GCC binary that produces ARM code is not called *arm-elf-gcc* you will need to invoke the following statement
62
and provide the basename of the toolchain with the ending *-*.
63 1
64 26
<pre>
65
<code class="sh">
66 4
cd src
67
make -e CROSS_TOOL_PREFIX=arm-OTHER_NAME-
68 26
</code></pre>
69 5
70 30 msuraev
For example after installing *gcc-arm-none-eabi* package on Ubuntu/Debian the proper command would be
71 27 msuraev
<pre>
72
<code class="sh">
73 29 msuraev
make -e CROSS_TOOL_PREFIX=arm-none-eabi-
74 27 msuraev
</code></pre>
75
76 26
If no error has occured you will have the firmware binaries in _src/target/firmware/board/compal_e88/*.bin_ that can be
77
used with the Motorola C123. You also have the binaries to run on your host in _src/host/osmocon/osmocon_, in 
78
_src/host/layer23/src/misc_ and _layer23/src/mobile_.
79 5
80
81 26
82
h3. Running osmocomBB
83
84
The original bootloader of Compal and others are built in a way to load code via the serial interface. The [[osmocon]]
85
utility implements this protocol and can upload the firmware. Please refer the [[osmocon]] wiki page for details on how to use
86 1
it properly.
87
88 26
After the firmware has been loaded, the [[osmocon]] application will print the output of the serial console
89 1
and it provides a unix domain socket that another layer of software can connect to. In the case of osmocomBB
90 26
this higher layer software is called [[ccch_scan]] and is actually a group of binaries providing different functionality. Please
91
see [[ccch_scan]] for the details.
Add picture from clipboard (Maximum size: 48.8 MB)