OpenBTS / OsmoBTS Transceiver¶
To get started with your phone-as-BTS setup, follow the following steps:
The transceiver needs libosmodsp as a dependency:
git clone https://gitea.osmocom.org/sdr/libosmo-dsp.git
To compile and install it:
sudo make install
In the OsmocomBB-tree, switch to the sylvain/testing branch:
git checkout sylvain/testing
After doing that, build the source:
Follow this excellent how-to in the Range Networks Public wiki on building OpenBTS.
Once you have OpenBTS up and running, you need to change the following configuration parameters in the database (/etc/OpenBTS/OpenBTS.db):
Control.GSMTAP.TargetIP = 127.0.0.1 GSM.Radio.NeedBSIC = 1 GSM.Radio.Band = 1800 GSM.CellSelection.Neighbors = (set to empty string) GSM.RACH.MaxRetrans = 3 GSM.RACH.TxInteger = 8 GSM.Radio.C0 = <your ARFCN (see note)> 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)
Warning: Only set GSM.Radio.C0 to an ARFCN you have a valid license for.
Booting the phone¶
Use osmocon to execute the trx app on the phone (trx.compalram/highram.bin).
In the folder where the OpenBTS executable resides, create a script with the filename transceiver with the following content and make it executable:
exec <your path to osmocom-bb>/src/host/layer23/src/transceiver/transceiver 1
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).
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.