Project

General

Profile

Building OpenBSC » History » Version 29

laforge, 02/19/2016 10:47 PM
add section on libosmo-abis

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