Project

General

Profile

Building OpenBSC » History » Version 33

zecke2, 02/19/2016 10:47 PM

1 14 laforge
[[PageOutline]]
2 1 tec
3 18 laforge
== OpenBSC build guide ==
4 1 tec
5 18 laforge
This page will describe the entire installation process of OpenBSC under GNU/Linux.
6 4 tec
7 18 laforge
This tutorial is based on Debian Netinstall 5.0 but will work more or less the same with other GNU/Linux
8
distributions.
9 1 tec
10 14 laforge
=== Compiling + running OpenBSC ===
11
12 15 laforge
==== Dependencies ====
13
14 17 laforge
Installing software that OpenBSC depends upon is distribution-dependent.  On Debian (or Debian-derived) systems,
15
you should install the following Debian packages before you start:
16 14 laforge
 * libdbi0
17
 * libdbi0-dev
18
 * libdbd-sqlite3
19 32 zecke2
 * libortp-dev
20 31 sylvain
 * build-essential
21 20 tec
 * libtool
22 14 laforge
 * autoconf
23 30 ahuemer
 * automake
24 14 laforge
 * git-core
25 21 dexter
 * pkg-config
26 1 tec
(The list may be incomplete)
27
28 17 laforge
On Debian, you can install those packages with
29 1 tec
{{{
30 33 zecke2
apt-get install libdbi0-dev libdbd-sqlite3 build-essential libtool autoconf automake git-core pkg-config libortp-dev
31 17 laforge
}}}
32 1 tec
33
==== Building libosmocore ====
34 17 laforge
 * Check out libosmocore from git using
35
{{{
36
git clone git://git.osmocom.org/libosmocore.git
37
}}}
38
 * Change into the right directory using
39
{{{
40
cd libosmocore
41
}}}
42
 * Rebuild the configure script using
43
{{{
44 29 laforge
autoreconf -fi
45 17 laforge
}}}
46
 * Run the configure script using
47
{{{
48
./configure
49
}}}
50
 * Build the actual software using
51
{{{
52
make
53
}}}
54
 * Install the library by using
55
{{{
56
make install
57
}}}
58 22 dexter
 * Don't forget ldconfig:
59
{{{
60
ldconfig
61
}}}
62 1 tec
63 29 laforge
==== Building libosmo-abis ====
64
65
 * Check out libosmo-abis from git using
66
{{{
67
git clone git://git.osmocom.org/libosmo-abis.git
68
}}}
69
 * Change into the right directory using
70
{{{
71
cd libosmo-abis
72
}}}
73
 * Rebuild the configure script using
74
{{{
75
autoreconf -fi
76
}}}
77
 * Run the configure script using
78
{{{
79
./configure
80
}}}
81
 * Build the actual software using
82
{{{
83
make
84
}}}
85
 * Install the library by using
86
{{{
87
make install
88
}}}
89
 * Don't forget ldconfig:
90
{{{
91
ldconfig
92
}}}
93 1 tec
94
==== Building OpenBSC ====
95 17 laforge
 * Check out OpenBSC from git using
96
{{{
97 24 laforge
git clone git://git.osmocom.org/openbsc.git
98 17 laforge
}}}
99
 * Change into the right directory using
100
{{{
101
cd openbsc/openbsc
102
}}}
103
 * Rebuild the configure script using 
104
{{{
105
autoreconf -i
106
}}}
107 19 zecke2
 * Point OpenBSC to the installation of libosmocore.
108
{{{
109
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
110
}}}
111 17 laforge
 * Run the configure script using
112
{{{
113
./configure
114
}}}
115
 * Build the actual software using
116
{{{
117
make
118
}}}
119 1 tec
120 28 laforge
Congratulations, you should now have the OpenBSC programs like ''[wiki:osmo-nitb]'', ''ipaccess-config'' and others in the subdirectories of 'src/',
121
like
122
 * src/ipaccess/ipaccess-config (see [wiki:ipaccess-config])
123
 * src/ipaccess/ipaccess-find (see [wiki:ipaccess-find])
124
 * src/osmo-nitb/osmo-nitb (see [wiki:osmo-nitb])
125 1 tec
126 28 laforge
To proceed from here, you typically would
127
 * set-up your BTS (see [wiki:BS11/Getting_Started] or [wiki:nanoBTS/Getting_Started])
128
 * configure and start [wiki:osmo-nitb]
129
130 1 tec
==== mISDN enabled kernel in case of E1 based BTS like BS-11 ====
131
132 28 laforge
If you want to use a E1-based BTS (like the BS-11), you will need to install mISDN (or DAHDI).
133 1 tec
134
'''If you have an IP/Ethernet based BTS (like the ip.access nanoBTS), you don't need this section!'''
135
136
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.
137
138
First of all you will need to download the 2.6.31 Linux kernel from [http://www.kernel.org/pub/linux/kernel/v2.6/].
139 3 tec
140 1 tec
Change to '''/usr/src/''' on your OpenBSC machine.
141 17 laforge
Then simply do a {{{wget [http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.31.tar.bz2]}}}
142 1 tec
143 17 laforge
Unpack the archive:
144 1 tec
{{{
145 17 laforge
tar --bzip2 -xvf linux-2.6.31.tar.bz2
146
}}}
147
and create a symlink to fit the Linux standard conventions: 
148
{{{
149
ln -s linux-2.6.30 linux
150 18 laforge
}}}
151 1 tec
152 17 laforge
Now change to linux-2.6.30 typing
153
{{{
154
cd linux-2.6.30
155
}}}
156 1 tec
157
You are ready now to prepare for the main part:
158
159
Install some tools needed to build the kernel.
160
161 17 laforge
{{{
162
apt-get install libncurses5-dev kernel-package
163
}}}
164 1 tec
165 17 laforge
Now configure the kernel modules with
166
{{{
167
make menuconfig
168
}}}
169 11 laforge
170 17 laforge
Include the ''mISDN'' modules and ''hfcmulti / hfc e1 drivers''.
171 11 laforge
172 3 tec
Save the new configuration to '''.config''' .
173 1 tec
174 17 laforge
You can now try to build the Debian kernel package:
175
{{{
176
make-kpkg linux-image --initrd --revision=openbsc01.0
177
}}}
178 14 laforge
179 17 laforge
Go a directory higher
180
{{{
181
cd ..
182
}}}
183 11 laforge
184
and install the new kernel package typing:
185
186 17 laforge
{{{
187
dpkg -i  kernelpackagename.deb
188
}}}
189 11 laforge
190 1 tec
Now you only have to add the dslot=1 parameter for hfcmulti to load with this parameter.
191
Otherwise OpenBSC will talk on signalling timeslot 15 where BS11 uses 1.
192
193
Simply add the following in '''/boot/grub/menu.lst''' :
194
195
Add this line to the "Kernel"-line
196
197
'''hfcmulti.dslot=1'''
198
199
Save changes and reboot your machine with your new kernel.
200 25 laforge
201
==== DAHDI kernel in case of E1 based BTS like BS-11 ====
202
203
This is an alternative to the mISDN drivers.  For DAHDI installation, please check with the Asterisk / DAHDI homepage.
204
205
We have positively tested with a Digium TE110P card and the BS-11, using the following config in {{{/etc/dahdi/system.conf}}}:
206
{{{
207
dchan=1
208
bchan=2-30
209
}}}
210 26 laforge
211
In your {{{openbsc.cfg}}}, you will have to use
212
{{{
213
e1_input
214
 e1_line 0 driver dahdi
215
}}}
Add picture from clipboard (Maximum size: 48.8 MB)