OsmocomBB是GSM协议栈(Protocols stack)的开源实现,全称是Open source mobile communication Baseband。目的是要实现手机端从物理层(layer1)到layer3的三层实现。但是目前来看,真正的物理层(physical layer)并没有真正的开源实现,暂时也没看到实施计划。只有物理层控制。因为真正的物理层是运行在baseband processor的DSP core上,涉及到许多信号处理算法的实现,而且还要牵扯很多硬件RF的东西。
以下所有操作基于Ubuntu Linux下,所以基于Ubuntu、Debian等Linux版本均可使用。
一、以Root权限进行接下来的所有操作:
$ sudo -s
二、安装编译osmocomBB所需的软件包:
$ aptitude install libtool shtool autoconf git-core pkg-config make gcc
三、下载所需要的GnuARM ToolChain
基于x86架构
$ wget http://gnuarm.com/bu-2.15_gcc-3.4.3-c-c++-java_nl-1.12.0_gi-6.1.tar.bz2
百度网盘
$ tar xf bu-2.15_gcc-3.4.3-c-c++-java_nl-1.12.0_gi-6.1.tar.bz2
$ mv gnuarm-* ~/gnuarm
基于64位架构
$ wget http://www.gnuarm.com/bu-2.16.1_gcc-4.0.2-c-c++_nl-1.14.0_gi-6.4_x86-64.tar.bz2
百度网盘
$ tar xf bu-2.16.1_gcc-4.0.2-c-c++_nl-1.14.0_gi-6.4_x86-64.tar.bz2
$ mv gnuarm-* ~/gnuarm
这样子就已经完成了关于OsmocomBB的交叉编译环境的搭建,剩下就是最关键的设置环境变量
$ export PATH=~/gnuarm/bin:$PATH
建议是直接编辑~/.bashrc的内容,把上面的这个段话直接加到最后。
四、编译libosmocore:
$ git clone git://git.osmocom.org/libosmocore.git $ cd libosmocore/
$ autoreconf -i
$ ./configure
$ make
$ make install
$ cd ..
$ ldconfig
ldconfig命令一定不要忘记执行,否则osmocomBB编译后运行时会出现找不到libosmocore.so.4的错误。
五、编译OsmocomBB:
$ git clone git://git.osmocom.org/osmocom-bb.git $ cd osmocom-bb
$ git pull --rebase
$ cd src
$ make
基本上已经完成所有的编译操作了!Enjoy你的玩具吧!