Project

General

Profile

Building OpenBSC » History » Version 27

laforge, 02/19/2016 10:47 PM
rename bsc_hack to osmo-nitb in page text

1 14 laforge
[[PageOutline]]
2 1
3 18 laforge
== OpenBSC build guide ==
4 1
5 18 laforge
This page will describe the entire installation process of OpenBSC under GNU/Linux.
6 4
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
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
 * libtool
20 14 laforge
 * autoconf
21
 * git-core
22 21 dexter
 * pkg-config
23 1
(The list may be incomplete)
24
25 17 laforge
On Debian, you can install those packages with
26
{{{
27 23
apt-get install libdbi0-dev libdbd-sqlite3 libtool autoconf git-core pkg-config
28 17 laforge
}}}
29 1
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
autoreconf -i
42
}}}
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
60 1
61
==== Building OpenBSC ====
62 17 laforge
 * Check out OpenBSC from git using
63
{{{
64 24 laforge
git clone git://git.osmocom.org/openbsc.git
65 17 laforge
}}}
66
 * Change into the right directory using
67
{{{
68
cd openbsc/openbsc
69
}}}
70
 * Rebuild the configure script using 
71
{{{
72
autoreconf -i
73
}}}
74 19
 * Point OpenBSC to the installation of libosmocore.
75
{{{
76
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
77
}}}
78 17 laforge
 * Run the configure script using
79
{{{
80
./configure
81
}}}
82
 * Build the actual software using
83
{{{
84
make
85
}}}
86 1
87 27 laforge
Congratulations, you should now have the OpenBSC programs like ''[wiki:osmo-nitb]'', ''ipaccess-config'' and others in the 'src/' subdirectory.
88 1
89 25 laforge
==== mISDN enabled kernel in case of E1 based BTS like BS-11 ====
90 1
91
If you want to use a E1-based BTS (like the BS-11), you will need to install mISDN.
92
93
'''If you have an IP/Ethernet based BTS (like the ip.access nanoBTS), you don't need this section!'''
94
95
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.
96
97
First of all you will need to download the 2.6.31 Linux kernel from [http://www.kernel.org/pub/linux/kernel/v2.6/].
98 3
99 1
Change to '''/usr/src/''' on your OpenBSC machine.
100 17 laforge
Then simply do a {{{wget [http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.31.tar.bz2]}}}
101 1
102 17 laforge
Unpack the archive:
103 1
{{{
104 17 laforge
tar --bzip2 -xvf linux-2.6.31.tar.bz2
105
}}}
106
and create a symlink to fit the Linux standard conventions: 
107
{{{
108
ln -s linux-2.6.30 linux
109 18 laforge
}}}
110 1
111 17 laforge
Now change to linux-2.6.30 typing
112
{{{
113
cd linux-2.6.30
114
}}}
115 1
116
You are ready now to prepare for the main part:
117
118
Install some tools needed to build the kernel.
119
120 17 laforge
{{{
121
apt-get install libncurses5-dev kernel-package
122
}}}
123 1
124 17 laforge
Now configure the kernel modules with
125
{{{
126
make menuconfig
127
}}}
128 11 laforge
129 17 laforge
Include the ''mISDN'' modules and ''hfcmulti / hfc e1 drivers''.
130 11 laforge
131 3
Save the new configuration to '''.config''' .
132 1
133 17 laforge
You can now try to build the Debian kernel package:
134
{{{
135
make-kpkg linux-image --initrd --revision=openbsc01.0
136
}}}
137 14 laforge
138 17 laforge
Go a directory higher
139
{{{
140
cd ..
141
}}}
142 11 laforge
143
and install the new kernel package typing:
144
145 17 laforge
{{{
146
dpkg -i  kernelpackagename.deb
147
}}}
148 11 laforge
149 1
Now you only have to add the dslot=1 parameter for hfcmulti to load with this parameter.
150
Otherwise OpenBSC will talk on signalling timeslot 15 where BS11 uses 1.
151
152
Simply add the following in '''/boot/grub/menu.lst''' :
153
154
Add this line to the "Kernel"-line
155
156
'''hfcmulti.dslot=1'''
157
158
Save changes and reboot your machine with your new kernel.
159 25 laforge
160
==== DAHDI kernel in case of E1 based BTS like BS-11 ====
161
162
This is an alternative to the mISDN drivers.  For DAHDI installation, please check with the Asterisk / DAHDI homepage.
163
164
We have positively tested with a Digium TE110P card and the BS-11, using the following config in {{{/etc/dahdi/system.conf}}}:
165
{{{
166
dchan=1
167
bchan=2-30
168
}}}
169 26 laforge
170
In your {{{openbsc.cfg}}}, you will have to use
171
{{{
172
e1_input
173
 e1_line 0 driver dahdi
174
}}}
Add picture from clipboard (Maximum size: 48.8 MB)