Project

General

Profile

Building OpenBSC » History » Version 21

dexter, 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
apt-get install libdbi0-dev libdbd-sqlite3 autoconf git-core
28
}}}
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 1 tec
56
==== Building OpenBSC ====
57 17 laforge
 * Check out OpenBSC from git using
58
{{{
59
git clone git://bs11-abis.gnumonks.org/openbsc.git
60
}}}
61
 * Change into the right directory using
62
{{{
63
cd openbsc/openbsc
64
}}}
65
 * Rebuild the configure script using 
66
{{{
67
autoreconf -i
68
}}}
69 19 zecke2
 * Point OpenBSC to the installation of libosmocore.
70
{{{
71
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
72
}}}
73 17 laforge
 * Run the configure script using
74
{{{
75
./configure
76
}}}
77
 * Build the actual software using
78
{{{
79
make
80
}}}
81 1 tec
82
Congratulations, you should now have the OpenBSC programs like ''bsc_hack'', ''ipaccess-config'' and others in the 'src/' subdirectory.
83
84
==== mISDN enabled kernel in case of BS-11 ====
85
86
If you want to use a E1-based BTS (like the BS-11), you will need to install mISDN.
87
88
'''If you have an IP/Ethernet based BTS (like the ip.access nanoBTS), you don't need this section!'''
89
90
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.
91
92
First of all you will need to download the 2.6.31 Linux kernel from [http://www.kernel.org/pub/linux/kernel/v2.6/].
93 3 tec
94 1 tec
Change to '''/usr/src/''' on your OpenBSC machine.
95 17 laforge
Then simply do a {{{wget [http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.31.tar.bz2]}}}
96 1 tec
97 17 laforge
Unpack the archive:
98 1 tec
{{{
99 17 laforge
tar --bzip2 -xvf linux-2.6.31.tar.bz2
100
}}}
101
and create a symlink to fit the Linux standard conventions: 
102
{{{
103
ln -s linux-2.6.30 linux
104 18 laforge
}}}
105 1 tec
106 17 laforge
Now change to linux-2.6.30 typing
107
{{{
108
cd linux-2.6.30
109
}}}
110 1 tec
111
You are ready now to prepare for the main part:
112
113
Install some tools needed to build the kernel.
114
115 17 laforge
{{{
116
apt-get install libncurses5-dev kernel-package
117
}}}
118 1 tec
119 17 laforge
Now configure the kernel modules with
120
{{{
121
make menuconfig
122
}}}
123 11 laforge
124 17 laforge
Include the ''mISDN'' modules and ''hfcmulti / hfc e1 drivers''.
125 11 laforge
126 3 tec
Save the new configuration to '''.config''' .
127 1 tec
128 17 laforge
You can now try to build the Debian kernel package:
129
{{{
130
make-kpkg linux-image --initrd --revision=openbsc01.0
131
}}}
132 14 laforge
133 17 laforge
Go a directory higher
134
{{{
135
cd ..
136
}}}
137 11 laforge
138
and install the new kernel package typing:
139
140 17 laforge
{{{
141
dpkg -i  kernelpackagename.deb
142
}}}
143 11 laforge
144 1 tec
Now you only have to add the dslot=1 parameter for hfcmulti to load with this parameter.
145
Otherwise OpenBSC will talk on signalling timeslot 15 where BS11 uses 1.
146
147
Simply add the following in '''/boot/grub/menu.lst''' :
148
149
Add this line to the "Kernel"-line
150
151
'''hfcmulti.dslot=1'''
152
153
Save changes and reboot your machine with your new kernel.
Add picture from clipboard (Maximum size: 48.8 MB)