Project

General

Profile

Building OpenBSC » History » Version 42

wirelesss, 12/09/2016 11:11 AM

1 35 csaba
{{>toc}}
2 1 tec
3 41 wirelesss
bq. *Before you consider building from source, be aware that there are [[cellular-infrastructure:Nightly Builds]]
4 38 wirelesss
available for Debian + Ubuntu platforms. These are recommended for normal users.*
5 1 tec
6 38 wirelesss
7 35 csaba
h2. [[OpenBSC]] build guide
8 1 tec
9 35 csaba
This page will describe the entire installation process of [[OpenBSC]] under GNU/Linux.
10
11 1 tec
This tutorial is based on Debian Netinstall 5.0 but will work more or less the same with other GNU/Linux
12
distributions.
13
14 42 wirelesss
OpenBSC User Manual is available at: http://ftp.osmocom.org/docs/latest/osmobsc-usermanual.pdf
15 1 tec
16 35 csaba
17 42 wirelesss
h3. Compiling + running [[OpenBSC]]
18 35 csaba
19
20
h4. Dependencies
21
22
23
Installing software that [[OpenBSC]] depends upon is distribution-dependent.  On Debian (or Debian-derived) systems,
24 1 tec
you should install the following Debian packages before you start:
25 41 wirelesss
26 35 csaba
* libdbi0
27 1 tec
* libdbi0-dev
28 41 wirelesss
* libdbi-dev
29 35 csaba
* libdbd-sqlite3
30
* libortp-dev
31
* build-essential
32
* libtool
33
* autoconf
34
* automake
35
* git-core
36 1 tec
* pkg-config
37 41 wirelesss
* libtalloc-dev
38
* libpcsclite-dev 
39
* libpcap-dev
40 1 tec
(The list may be incomplete)
41
42
On Debian, you can install those packages with
43 35 csaba
<pre>
44 37 msuraev
sudo apt install libdbi-dev libdbd-sqlite3 libortp-dev build-essential libtool autoconf automake git-core pkg-config libtalloc-dev libpcsclite-dev libpcap-dev
45 35 csaba
</pre>
46 1 tec
47 37 msuraev
h4. Installation via packages
48 1 tec
49 37 msuraev
It is always better to use your distribution's package management system for installing stuff. Only use "make install" as a last resort. For example, almost all Osmocom projects include metadata required for building .deb packages (contributions for other package systems are more than welcomed). So if you're installing OpenBSC on .deb based system (Debian, Ubuntu, Mint etc) the right way to do it is:
50
<pre>
51
git clone git://git.osmocom.org/XXX
52
cd XXX
53
dpkg-buildpackage -uc -us -tc
54
cd ..
55 35 csaba
sudo dpkg -i *.deb
56 1 tec
</pre>
57 38 wirelesss
58 1 tec
h4. Building 
59 35 csaba
60 41 wirelesss
Please follow instructions as per [[cellular-infrastructure:Build from Source]] to build following projects:
61 3 tec
62 38 wirelesss
* libosmocore
63
* libosmo-abis
64
* libosmo-netif
65
* openbsc
66 35 csaba
67 14 laforge
68 35 csaba
Congratulations, you should now have the [[OpenBSC]] programs like _[[osmo-nitb]]_, _ipaccess-config_ and others in the subdirectories of 'src/',
69 17 laforge
like
70 35 csaba
* src/ipaccess/ipaccess-config (see [[ipaccess-config]])
71
* src/ipaccess/ipaccess-find (see [[ipaccess-find]])
72
* src/osmo-nitb/osmo-nitb (see [[osmo-nitb]])
73 11 laforge
74
To proceed from here, you typically would
75 35 csaba
* set-up your BTS (see [[BS11Getting_Started]] or [[nanoBTSGetting_Started]])
76
* configure and start [[osmo-nitb]]
77 17 laforge
78 11 laforge
79 35 csaba
h4. mISDN enabled kernel in case of E1 based BTS like BS-11
80 1 tec
81
82 35 csaba
If you want to use a E1-based BTS (like the BS-11), you will need to install mISDN (or DAHDI).
83 1 tec
84 35 csaba
*If you have an IP/Ethernet based BTS (like the ip.access nanoBTS), you don't need this section!*
85 1 tec
86 35 csaba
Because [[OpenBSC]]'s E1 support relies on mISDN (named ISDN4Linux before) and hfcmulti as an interface to the BS11, it has to be integrated as a module into the kernel.
87 1 tec
88 35 csaba
First of all you will need to download the 2.6.31 Linux kernel from "Change to */usr/src/* on your [[OpenBSC]] machine.
89
90 1 tec
Unpack the archive:
91 39 wirelesss
92 35 csaba
<pre>
93 25 laforge
tar --bzip2 -xvf linux-2.6.31.tar.bz2
94 35 csaba
</pre>
95 25 laforge
and create a symlink to fit the Linux standard conventions: 
96 35 csaba
<pre>
97 25 laforge
ln -s linux-2.6.30 linux
98 35 csaba
</pre>
99 26 laforge
100
Now change to linux-2.6.30 typing
101 35 csaba
<pre>
102 26 laforge
cd linux-2.6.30
103 35 csaba
</pre>
104 26 laforge
105 1 tec
You are ready now to prepare for the main part:
106
107
Install some tools needed to build the kernel.
108
109 35 csaba
<pre>
110 1 tec
apt-get install libncurses5-dev kernel-package
111 35 csaba
</pre>
112 1 tec
113
Now configure the kernel modules with
114 35 csaba
<pre>
115 1 tec
make menuconfig
116 35 csaba
</pre>
117 1 tec
118 35 csaba
Include the _mISDN_ modules and _hfcmulti / hfc e1 drivers_.
119 1 tec
120 35 csaba
Save the new configuration to *.config* .
121 1 tec
122
You can now try to build the Debian kernel package:
123 35 csaba
<pre>
124 1 tec
make-kpkg linux-image --initrd --revision=openbsc01.0
125 35 csaba
</pre>
126 1 tec
127
Go a directory higher
128 35 csaba
<pre>
129 1 tec
cd ..
130 35 csaba
</pre>
131 1 tec
132
and install the new kernel package typing:
133
134 35 csaba
<pre>
135 1 tec
dpkg -i  kernelpackagename.deb
136 35 csaba
</pre>
137 1 tec
138
Now you only have to add the dslot=1 parameter for hfcmulti to load with this parameter.
139 35 csaba
Otherwise [[OpenBSC]] will talk on signalling timeslot 15 where BS11 uses 1.
140 1 tec
141 35 csaba
Simply add the following in */boot/grub/menu.lst* :
142 1 tec
143
Add this line to the "Kernel"-line
144
145 35 csaba
*hfcmulti.dslot=1*
146 1 tec
147
Save changes and reboot your machine with your new kernel.
148
149
150 35 csaba
h4. DAHDI kernel in case of E1 based BTS like BS-11
151
152
153 1 tec
This is an alternative to the mISDN drivers.  For DAHDI installation, please check with the Asterisk / DAHDI homepage.
154
155 35 csaba
<pre>
156 1 tec
dchan=1
157
bchan=2-30
158 35 csaba
</pre>
159
160
<pre>
161 1 tec
e1_input
162
 e1_line 0 driver dahdi
163 35 csaba
</pre>
Add picture from clipboard (Maximum size: 48.8 MB)