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>