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. |