Project

General

Profile

Building OpenBSC » History » Version 23

sylvain, 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 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
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 tec
61
==== Building OpenBSC ====
62 17 laforge
 * Check out OpenBSC from git using
63
{{{
64
git clone git://bs11-abis.gnumonks.org/openbsc.git
65
}}}
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 zecke2
 * 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 tec
87
Congratulations, you should now have the OpenBSC programs like ''bsc_hack'', ''ipaccess-config'' and others in the 'src/' subdirectory.
88
89
==== mISDN enabled kernel in case of BS-11 ====
90
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 tec
99 1 tec
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 tec
102 17 laforge
Unpack the archive:
103 1 tec
{{{
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 tec
111 17 laforge
Now change to linux-2.6.30 typing
112
{{{
113
cd linux-2.6.30
114
}}}
115 1 tec
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 tec
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 tec
Save the new configuration to '''.config''' .
132 1 tec
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 tec
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.
Add picture from clipboard (Maximum size: 48.8 MB)