Project

General

Profile

Building OpenBSC » History » Revision 36

Revision 35 (Anonymous, 02/19/2016 10:48 PM) → Revision 36/46 (wirelesss, 10/20/2016 01:58 PM)

{{>toc}} 


 


 h2. [[OpenBSC]] build guide 


 


 This page will describe the entire installation process of [[OpenBSC]] under GNU/Linux. 

 This tutorial is based on Debian Netinstall 5.0 but will work more or less the same with other GNU/Linux 
 distributions. 


 


 h3. Compiling + running [[OpenBSC]] 



 



 h4. Dependencies 


 


 Installing software that [[OpenBSC]] depends upon is distribution-dependent.    On Debian (or Debian-derived) systems, 
 you should install the following Debian packages before you start: 
 * libdbi0 
 * libdbi0-dev 
 * libdbd-sqlite3 
 * libortp-dev 
 * build-essential 
 * libtool 
 * autoconf 
 * automake 
 * git-core 
 * pkg-config 
 (The list may be incomplete) 

 On Debian, you can install those packages with 
 <pre> 
 
 apt-get install libdbi0-dev libdbd-sqlite3 build-essential libtool autoconf automake git-core pkg-config libortp-dev libtalloc-dev 
 </pre> 


 


 h4. Building libosmocore 

 

 * Check out libosmocore from git using 
 <pre> 
 
 git clone git://git.osmocom.org/libosmocore.git 
 </pre> 
 
 * Change into the right directory using 
 <pre> 
 
 cd libosmocore 
 </pre> 
 
 * Rebuild the configure script using 
 <pre> 
 
 autoreconf -fi 
 </pre> 
 
 * Run the configure script using 
 <pre> 
 
 ./configure 
 </pre> 
 
 * Build the actual software using 
 <pre> 
 
 make 
 </pre> 
 
 * Install the library by using 
 <pre> 
 
 make install 
 </pre> 
 
 * Don't forget ldconfig: 
 <pre> 
 
 ldconfig 
 </pre> 


 


 h4. Building libosmo-abis 


 


 * Check out libosmo-abis from git using 
 <pre> 
 
 git clone git://git.osmocom.org/libosmo-abis.git 
 </pre> 
 
 * Change into the right directory using 
 <pre> 
 
 cd libosmo-abis 
 </pre> 
 
 * Rebuild the configure script using 
 <pre> 
 
 autoreconf -fi 
 </pre> 
 
 * Run the configure script using 
 <pre> 
 
 ./configure 
 </pre> 
 
 * Build the actual software using 
 <pre> 
 
 make 
 </pre> 
 
 * Install the library by using 
 <pre> 
 
 make install 
 </pre> 
 
 * Don't forget ldconfig: 
 <pre> 
 
 ldconfig 
 </pre> 


 


 h4. Building libosmo-netif 


 


 * Check out libosmo-abis from git using 
 <pre> 
 
 git clone git://git.osmocom.org/libosmo-netif.git 
 </pre> 
 
 * Change into the right directory using 
 <pre> 
 
 cd libosmo-netif 
 </pre> 
 
 * Rebuild the configure script using 
 <pre> 
 
 autoreconf -fi 
 </pre> 
 
 * Run the configure script using 
 <pre> 
 
 ./configure 
 </pre> 
 
 * Build the actual software using 
 <pre> 
 
 make 
 </pre> 
 
 * Install the library by using 
 <pre> 
 
 make install 
 </pre> 
 
 * Don't forget ldconfig: 
 <pre> 
 
 ldconfig 
 </pre> 


 


 h4. Building [[OpenBSC]] 

 

 * Check out [[OpenBSC]] from git using 
 <pre> 
 
 git clone git://git.osmocom.org/openbsc.git 
 </pre> 
 
 * Change into the right directory using 
 <pre> 
 
 cd openbsc/openbsc 
 </pre> 
 
 * Rebuild the configure script using  
 <pre> 
 
 autoreconf -i 
 </pre> 
 
 * Point [[OpenBSC]] to the installation of libosmocore. 
 <pre> 
 
 export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig 
 </pre> 
 
 * Run the configure script using 
 <pre> 
 
 ./configure 
 </pre> 
 
 * Build the actual software using 
 <pre> 
 
 make 
 </pre> 

 

 Congratulations, you should now have the [[OpenBSC]] programs like _[[osmo-nitb]]_, _ipaccess-config_ and others in the subdirectories of 'src/', 
 like 
 * src/ipaccess/ipaccess-config (see [[ipaccess-config]]) 
 * src/ipaccess/ipaccess-find (see [[ipaccess-find]]) 
 * src/osmo-nitb/osmo-nitb (see [[osmo-nitb]]) 

 To proceed from here, you typically would 
 * set-up your BTS (see [[BS11Getting_Started]] or [[nanoBTSGetting_Started]]) 
 * configure and start [[osmo-nitb]] 


 


 h4. mISDN enabled kernel in case of E1 based BTS like BS-11 


 


 If you want to use a E1-based BTS (like the BS-11), you will need to install mISDN (or DAHDI). 

 *If you have an IP/Ethernet based BTS (like the ip.access nanoBTS), you don't need this section!* 

 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. 

 First of all you will need to download the 2.6.31 Linux kernel from "Change to */usr/src/* on your [[OpenBSC]] machine. 
 <pre> 

 

 Unpack the archive: 
 <pre> 
 
 tar --bzip2 -xvf linux-2.6.31.tar.bz2 
 </pre> 
 
 and create a symlink to fit the Linux standard conventions:  
 <pre> 
 
 ln -s linux-2.6.30 linux 
 </pre> 

 

 Now change to linux-2.6.30 typing 
 <pre> 
 
 cd linux-2.6.30 
 </pre> 

 

 You are ready now to prepare for the main part: 

 Install some tools needed to build the kernel. 

 <pre> 
 
 apt-get install libncurses5-dev kernel-package 
 </pre> 

 

 Now configure the kernel modules with 
 <pre> 
 
 make menuconfig 
 </pre> 

 

 Include the _mISDN_ modules and _hfcmulti / hfc e1 drivers_. 

 Save the new configuration to *.config* . 

 You can now try to build the Debian kernel package: 
 <pre> 
 
 make-kpkg linux-image --initrd --revision=openbsc01.0 
 </pre> 

 

 Go a directory higher 
 <pre> 
 
 cd .. 
 </pre> 

 

 and install the new kernel package typing: 

 <pre> 
 
 dpkg -i    kernelpackagename.deb 
 </pre> 

 

 Now you only have to add the dslot=1 parameter for hfcmulti to load with this parameter. 
 Otherwise [[OpenBSC]] will talk on signalling timeslot 15 where BS11 uses 1. 

 Simply add the following in */boot/grub/menu.lst* : 

 Add this line to the "Kernel"-line 

 *hfcmulti.dslot=1* 

 Save changes and reboot your machine with your new kernel. 


 


 h4. DAHDI kernel in case of E1 based BTS like BS-11 


 


 This is an alternative to the mISDN drivers.    For DAHDI installation, please check with the Asterisk / DAHDI homepage. 

 <pre> 
 
 <pre> 
 
 dchan=1 
 bchan=2-30 
 </pre> 

 

 <pre> 
 
 <pre> 
 
 e1_input 
  e1_line 0 driver dahdi 
 </pre>
Add picture from clipboard (Maximum size: 48.8 MB)