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 18 laforge
distributions.
9 1 tec
10 14 laforge
=== Compiling + running OpenBSC ===
11 14 laforge
12 15 laforge
==== Dependencies ====
13 15 laforge
14 17 laforge
Installing software that OpenBSC depends upon is distribution-dependent.  On Debian (or Debian-derived) systems,
15 17 laforge
you should install the following Debian packages before you start:
16 14 laforge
 * libdbi0
17 14 laforge
 * libdbi0-dev
18 14 laforge
 * libdbd-sqlite3
19 20 tec
 * libtool
20 14 laforge
 * autoconf
21 14 laforge
 * git-core
22 21 dexter
 * pkg-config
23 1 tec
(The list may be incomplete)
24 1 tec
25 17 laforge
On Debian, you can install those packages with
26 17 laforge
{{{
27 17 laforge
apt-get install libdbi0-dev libdbd-sqlite3 autoconf git-core
28 17 laforge
}}}
29 1 tec
30 1 tec
==== Building libosmocore ====
31 17 laforge
 * Check out libosmocore from git using
32 17 laforge
{{{
33 17 laforge
git clone git://git.osmocom.org/libosmocore.git
34 17 laforge
}}}
35 17 laforge
 * Change into the right directory using
36 17 laforge
{{{
37 17 laforge
cd libosmocore
38 17 laforge
}}}
39 17 laforge
 * Rebuild the configure script using
40 17 laforge
{{{
41 17 laforge
autoreconf -i
42 17 laforge
}}}
43 17 laforge
 * Run the configure script using
44 17 laforge
{{{
45 17 laforge
./configure
46 17 laforge
}}}
47 17 laforge
 * Build the actual software using
48 17 laforge
{{{
49 17 laforge
make
50 17 laforge
}}}
51 17 laforge
 * Install the library by using
52 17 laforge
{{{
53 17 laforge
make install
54 17 laforge
}}}
55 1 tec
56 1 tec
==== Building OpenBSC ====
57 17 laforge
 * Check out OpenBSC from git using
58 17 laforge
{{{
59 17 laforge
git clone git://bs11-abis.gnumonks.org/openbsc.git
60 17 laforge
}}}
61 17 laforge
 * Change into the right directory using
62 17 laforge
{{{
63 17 laforge
cd openbsc/openbsc
64 17 laforge
}}}
65 17 laforge
 * Rebuild the configure script using 
66 17 laforge
{{{
67 17 laforge
autoreconf -i
68 17 laforge
}}}
69 19 zecke2
 * Point OpenBSC to the installation of libosmocore.
70 19 zecke2
{{{
71 19 zecke2
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
72 19 zecke2
}}}
73 17 laforge
 * Run the configure script using
74 17 laforge
{{{
75 17 laforge
./configure
76 17 laforge
}}}
77 17 laforge
 * Build the actual software using
78 17 laforge
{{{
79 17 laforge
make
80 17 laforge
}}}
81 1 tec
82 1 tec
Congratulations, you should now have the OpenBSC programs like ''bsc_hack'', ''ipaccess-config'' and others in the 'src/' subdirectory.
83 1 tec
84 1 tec
==== mISDN enabled kernel in case of BS-11 ====
85 1 tec
86 1 tec
If you want to use a E1-based BTS (like the BS-11), you will need to install mISDN.
87 1 tec
88 1 tec
'''If you have an IP/Ethernet based BTS (like the ip.access nanoBTS), you don't need this section!'''
89 1 tec
90 1 tec
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 1 tec
92 1 tec
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 17 laforge
}}}
101 17 laforge
and create a symlink to fit the Linux standard conventions: 
102 17 laforge
{{{
103 17 laforge
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 17 laforge
{{{
108 17 laforge
cd linux-2.6.30
109 17 laforge
}}}
110 1 tec
111 1 tec
You are ready now to prepare for the main part:
112 1 tec
113 1 tec
Install some tools needed to build the kernel.
114 1 tec
115 17 laforge
{{{
116 17 laforge
apt-get install libncurses5-dev kernel-package
117 17 laforge
}}}
118 1 tec
119 17 laforge
Now configure the kernel modules with
120 17 laforge
{{{
121 17 laforge
make menuconfig
122 17 laforge
}}}
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 17 laforge
{{{
130 17 laforge
make-kpkg linux-image --initrd --revision=openbsc01.0
131 17 laforge
}}}
132 14 laforge
133 17 laforge
Go a directory higher
134 17 laforge
{{{
135 17 laforge
cd ..
136 17 laforge
}}}
137 11 laforge
138 11 laforge
and install the new kernel package typing:
139 11 laforge
140 17 laforge
{{{
141 17 laforge
dpkg -i  kernelpackagename.deb
142 17 laforge
}}}
143 11 laforge
144 1 tec
Now you only have to add the dslot=1 parameter for hfcmulti to load with this parameter.
145 1 tec
Otherwise OpenBSC will talk on signalling timeslot 15 where BS11 uses 1.
146 1 tec
147 1 tec
Simply add the following in '''/boot/grub/menu.lst''' :
148 1 tec
149 1 tec
Add this line to the "Kernel"-line
150 1 tec
151 1 tec
'''hfcmulti.dslot=1'''
152 1 tec
153 1 tec
Save changes and reboot your machine with your new kernel.
Add picture from clipboard (Maximum size: 48.8 MB)