Transceiver » History » Version 2
steve-m, 02/19/2016 10:49 PM
1 | 1 | steve-m | |
---|---|---|---|
2 | 2 | steve-m | h1. Transceiver |
3 | 1 | steve-m | |
4 | |||
5 | 2 | steve-m | The following how-to will guide you through the steps needed for using an [[OsmocomBB]]-compatible phone as transceiver for [[OpenBTS]]. |
6 | 1 | steve-m | |
7 | 2 | steve-m | |
8 | h3. Prerequisites |
||
9 | |||
10 | |||
11 | First of all, make sure you have the *[[PreliminaryRequirements|Preliminary Requirements]* Also you *need to have a [wikiGettingStarted working setup]]* of [[OsmocomBB]]. |
||
12 | |||
13 | 1 | steve-m | To get started with your phone-as-BTS setup, follow the following steps: |
14 | |||
15 | |||
16 | 2 | steve-m | h3. Dependencies |
17 | |||
18 | |||
19 | 1 | steve-m | The transceiver needs libosmodsp as a dependency: |
20 | |||
21 | 2 | steve-m | <pre> |
22 | <code class="sh"> |
||
23 | 1 | steve-m | git clone git://git.osmocom.org/libosmo-dsp.git |
24 | 2 | steve-m | </code></pre> |
25 | 1 | steve-m | |
26 | To compile and install it: |
||
27 | |||
28 | 2 | steve-m | <pre> |
29 | <code class="sh"> |
||
30 | 1 | steve-m | cd libosmo-dsp/ |
31 | autoreconf -i |
||
32 | ./configure |
||
33 | make |
||
34 | sudo make install |
||
35 | cd .. |
||
36 | 2 | steve-m | </code></pre> |
37 | 1 | steve-m | |
38 | |||
39 | 2 | steve-m | h3. Building [[OsmocomBB]] |
40 | |||
41 | |||
42 | In the [[OsmocomBB]]-tree, switch to the sylvain/testing branch: |
||
43 | <pre> |
||
44 | <code class="sh"> |
||
45 | 1 | steve-m | git checkout sylvain/testing |
46 | 2 | steve-m | </code></pre> |
47 | 1 | steve-m | |
48 | After doing that, build the source: |
||
49 | |||
50 | 2 | steve-m | <pre> |
51 | <code class="sh"> |
||
52 | 1 | steve-m | make HOST_layer23_CONFARGS=--enable-transceiver |
53 | 2 | steve-m | </code></pre> |
54 | 1 | steve-m | |
55 | |||
56 | 2 | steve-m | h3. Building [[OpenBTS]] |
57 | 1 | steve-m | |
58 | |||
59 | 2 | steve-m | Follow this "excellent how-to":http://wush.net/trac/rangepublic/wiki/BuildInstallRun in the Range Networks Public wiki on building [[OpenBTS]]. |
60 | |||
61 | Once you have [[OpenBTS]] up and running, you need to change the following configuration parameters in the database (/etc/OpenBTS/OpenBTS.db): |
||
62 | |||
63 | <pre> |
||
64 | 1 | steve-m | Control.GSMTAP.TargetIP = 127.0.0.1 |
65 | GSM.Radio.NeedBSIC = 1 |
||
66 | GSM.Radio.Band = 1800 |
||
67 | GSM.CellSelection.Neighbors = (set to empty string) |
||
68 | GSM.RACH.MaxRetrans = 3 |
||
69 | GSM.RACH.TxInteger = 8 |
||
70 | GSM.Radio.C0 = <your ARFCN (see note)> |
||
71 | Control.LUR.OpenRegistration = ^26242.*$ (note: in this example only IMSIs with MCC 262 and the MNC 42 will be allowed to register to the network, change that accordingly) |
||
72 | 2 | steve-m | </code></pre> |
73 | 1 | steve-m | |
74 | 2 | steve-m | *Warning:* Only set GSM.Radio.C0 to an ARFCN you have a *valid license* for. |
75 | 1 | steve-m | |
76 | |||
77 | 2 | steve-m | h3. Booting the phone |
78 | 1 | steve-m | |
79 | |||
80 | 2 | steve-m | Use osmocon to execute the *trx* app on the phone (trx.compalram/highram.bin). |
81 | 1 | steve-m | |
82 | 2 | steve-m | |
83 | h3. Starting [[OpenBTS]] |
||
84 | |||
85 | |||
86 | In the folder where the [[OpenBTS]] executable resides, create a script with the filename *transceiver* with the following content and make it executable: |
||
87 | |||
88 | <pre> |
||
89 | <code class="sh"> |
||
90 | 1 | steve-m | #!/bin/bash |
91 | exec <your path to osmocom-bb>/src/host/layer23/src/transceiver/transceiver 1 |
||
92 | 2 | steve-m | </code></pre> |
93 | 1 | steve-m | |
94 | 2 | steve-m | Whereas 1 needs to be replaced with the ARFCN of the reference cell you want to use for synchronization (find a strong one with the *rssi*-app for example). |
95 | 1 | steve-m | |
96 | 2 | steve-m | You now can start up [[OpenBTS]] and should hopefully see the BTS by performing a manual network search with your phone. Monitor the output of osmocon and the transceiver/OpenBTS to see if all goes well. If anything should fail, reboot the phone and start over. |