Project

General

Profile

Building OpenBSC » History » Version 44

laforge, 03/23/2018 12:55 PM

1 35
{{>toc}}
2 1
3 44 laforge
{{include(cellular-infrastructure:MacroLegacy)}}
4
5 41 wirelesss
bq. *Before you consider building from source, be aware that there are [[cellular-infrastructure:Nightly Builds]]
6 38 wirelesss
available for Debian + Ubuntu platforms. These are recommended for normal users.*
7 1
8 38 wirelesss
9 35
h2. [[OpenBSC]] build guide
10 1
11 35
This page will describe the entire installation process of [[OpenBSC]] under GNU/Linux.
12
13 1
This tutorial is based on Debian Netinstall 5.0 but will work more or less the same with other GNU/Linux
14
distributions.
15
16 42 wirelesss
OpenBSC User Manual is available at: http://ftp.osmocom.org/docs/latest/osmobsc-usermanual.pdf
17 1
18 35
19 42 wirelesss
h3. Compiling + running [[OpenBSC]]
20 35
21
h4. Dependencies
22
23
24
Installing software that [[OpenBSC]] depends upon is distribution-dependent.  On Debian (or Debian-derived) systems,
25 1
you should install the following Debian packages before you start:
26 41 wirelesss
27 35
* libdbi0
28 1
* libdbi0-dev
29 41 wirelesss
* libdbi-dev
30 35
* libdbd-sqlite3
31
* libortp-dev
32
* build-essential
33
* libtool
34 1
* autoconf
35 43 msuraev
* autoconf-archive
36 35
* automake
37
* git-core
38 1
* pkg-config
39 41 wirelesss
* libtalloc-dev
40
* libpcsclite-dev 
41
* libpcap-dev
42 1
(The list may be incomplete)
43
44
On Debian, you can install those packages with
45 35
<pre>
46 43 msuraev
sudo apt install libdbi-dev libdbd-sqlite3 libortp-dev build-essential libtool autoconf autoconf-archive automake git-core pkg-config libtalloc-dev libpcsclite-dev libpcap-dev
47 35
</pre>
48 1
49 37 msuraev
h4. Installation via packages
50 1
51 37 msuraev
It is always better to use your distribution's package management system for installing stuff. Only use "make install" as a last resort. For example, almost all Osmocom projects include metadata required for building .deb packages (contributions for other package systems are more than welcomed). So if you're installing OpenBSC on .deb based system (Debian, Ubuntu, Mint etc) the right way to do it is:
52
<pre>
53
git clone git://git.osmocom.org/XXX
54
cd XXX
55
dpkg-buildpackage -uc -us -tc
56
cd ..
57 35
sudo dpkg -i *.deb
58 1
</pre>
59 38 wirelesss
60 1
h4. Building 
61 35
62 41 wirelesss
Please follow instructions as per [[cellular-infrastructure:Build from Source]] to build following projects:
63 3
64 38 wirelesss
* libosmocore
65
* libosmo-abis
66
* libosmo-netif
67
* openbsc
68 35
69 14 laforge
70 35
Congratulations, you should now have the [[OpenBSC]] programs like _[[osmo-nitb]]_, _ipaccess-config_ and others in the subdirectories of 'src/',
71 17 laforge
like
72 35
* src/ipaccess/ipaccess-config (see [[ipaccess-config]])
73
* src/ipaccess/ipaccess-find (see [[ipaccess-find]])
74
* src/osmo-nitb/osmo-nitb (see [[osmo-nitb]])
75 11 laforge
76
To proceed from here, you typically would
77 35
* set-up your BTS (see [[BS11Getting_Started]] or [[nanoBTSGetting_Started]])
78
* configure and start [[osmo-nitb]]
79 17 laforge
80 11 laforge
81 35
h4. mISDN enabled kernel in case of E1 based BTS like BS-11
82 1
83
84 35
If you want to use a E1-based BTS (like the BS-11), you will need to install mISDN (or DAHDI).
85 1
86 35
*If you have an IP/Ethernet based BTS (like the ip.access nanoBTS), you don't need this section!*
87 1
88 35
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.
89 1
90 35
First of all you will need to download the 2.6.31 Linux kernel from "Change to */usr/src/* on your [[OpenBSC]] machine.
91
92 1
Unpack the archive:
93 39 wirelesss
94 35
<pre>
95 25 laforge
tar --bzip2 -xvf linux-2.6.31.tar.bz2
96 35
</pre>
97 25 laforge
and create a symlink to fit the Linux standard conventions: 
98 35
<pre>
99 25 laforge
ln -s linux-2.6.30 linux
100 35
</pre>
101 26 laforge
102
Now change to linux-2.6.30 typing
103 35
<pre>
104 26 laforge
cd linux-2.6.30
105 35
</pre>
106 26 laforge
107 1
You are ready now to prepare for the main part:
108
109
Install some tools needed to build the kernel.
110
111 35
<pre>
112 1
apt-get install libncurses5-dev kernel-package
113 35
</pre>
114 1
115
Now configure the kernel modules with
116 35
<pre>
117 1
make menuconfig
118 35
</pre>
119 1
120 35
Include the _mISDN_ modules and _hfcmulti / hfc e1 drivers_.
121 1
122 35
Save the new configuration to *.config* .
123 1
124
You can now try to build the Debian kernel package:
125 35
<pre>
126 1
make-kpkg linux-image --initrd --revision=openbsc01.0
127 35
</pre>
128 1
129
Go a directory higher
130 35
<pre>
131 1
cd ..
132 35
</pre>
133 1
134
and install the new kernel package typing:
135
136 35
<pre>
137 1
dpkg -i  kernelpackagename.deb
138 35
</pre>
139 1
140
Now you only have to add the dslot=1 parameter for hfcmulti to load with this parameter.
141 35
Otherwise [[OpenBSC]] will talk on signalling timeslot 15 where BS11 uses 1.
142 1
143 35
Simply add the following in */boot/grub/menu.lst* :
144 1
145
Add this line to the "Kernel"-line
146
147 35
*hfcmulti.dslot=1*
148 1
149
Save changes and reboot your machine with your new kernel.
150
151
152 35
h4. DAHDI kernel in case of E1 based BTS like BS-11
153
154
155 1
This is an alternative to the mISDN drivers.  For DAHDI installation, please check with the Asterisk / DAHDI homepage.
156
157 35
<pre>
158 1
dchan=1
159
bchan=2-30
160 35
</pre>
161
162
<pre>
163 1
e1_input
164
 e1_line 0 driver dahdi
165 35
</pre>
Add picture from clipboard (Maximum size: 48.8 MB)