我是如何编译osmocomBB的

OsmocomBB是GSM协议栈(Protocols stack)的开源实现,全称是Open source mobile communication Baseband。目的是要实现手机端从物理层(layer1)layer3的三层实现。但是目前来看,真正的物理层(physical layer)并没有真正的开源实现,暂时也没看到实施计划。只有物理层控制。因为真正的物理层是运行在baseband processor的DSP core上,涉及到许多信号处理算法的实现,而且还要牵扯很多硬件RF的东西。




编译环境:ubuntu 13.10

1、用root用户进行所有操作

<code>$ sudo su</code>

 

2、安装编译osmocomBB所依赖的软件包

<code>$ aptitude install libtool shtool autoconf git-core pkg-config make gcc</code>

 

3、下载编译需要的GnuARM ToolChain

<code>$ wget http://gnuarm.com/bu-2.15_gcc-3.4.3-c-c++-java_nl-1.12.0_gi-6.1.tar.bz2</code>

百度网盘下载x86

<code>$ tar xf bu-2.15_gcc-3.4.3-c-c++-java_nl-1.12.0_gi-6.1.tar.bz2
$ mv gnuarm-* ~/gnuarm</code>

基于x64构架:

<code>$ 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</code>

这样子就已经完成了关于OsmocomBB的交叉编译环境的搭建,剩下就是最关键的设置环境变量

<code>$ export PATH=~/gnuarm/bin:$PATH</code>

建议直接编辑~/.bashrc内容,把上面这段话直接加到最后.

4、编译Libosmocore:

<code>$ git clone git://git.osmocom.org/libosmocore.git $ cd libosmocore/  
$ autoreconf -i  
$ ./configure  
$ make  
$ make install  
$ cd ..  
$ sudo ldconfig</code>

如果你没有再root环境下进行编译..ldconfig的时候一定要加上sudo ..保证ldconfig能再root下运行,否则会出现make: *** [firmware] Error 2类似这样的错误.

 

osmocombb编译错误回顾与纠正

最近有兴趣搞一下osmocombb,我不敢说的兴趣有多纯洁,想sniff一下,我想大家都懂的。

按到wiki.radiowar.org上的介绍,最终在编译osmocom的时候出现了如下错误:

comm/timer.c:188: warning: unused parameter 'irq'
AR     comm/libcomm.a
LD     board/compal_e88/hello_world.highram.elf
arm-elf-ld: ../../shared/libosmocore/build-target/src/.libs/libosmocore.a(msgb.o): Relocations in generic ELF (EM: 3)
../../shared/libosmocore/build-target/src/.libs/libosmocore.a: could not read symbols: File in wrong format
make[1]: *** [board/compal_e88/hello_world.highram.elf] Error 1
make[1]: Leaving directory `/home/yuyy/osmocom-bb/src/target/firmware'
make: *** [firmware] Error 2

一直以为是哪个toolchain出了问题,其实是我一直没搞懂linux的机制,root和一般权限的差别,经常在两种权限中间切换,导致编译有些文件会出现access denied。另外在执行gnuarm export到path的时候,如果你没有搞清楚你最终想在那个权限账户下运行,很容易配置出问题,昨天晚上搞到两点,终于搞清楚了,所以我重新来了一遍,都在普通账户下执行操作,遇到没有权限的时候,才在前面加上sudo,例如ldconfig 这个命令,普通权限是不够的。要执行 $sudo ldconfig

然后如果你曾经编译过一次,出现错误,那么第二次进入src编译之前,最好执行一下 :

$ git clean -dfx

然后再make,一般就没有问题了。

另外我在淘宝上买的ftdi的线没有问题,除了音频接口那里插不紧,需要用剪刀剪掉一圈外围的塑料,让它插得进去一点,就好了。

好了,祝好运。

5、编译OsmocomBB

<code>$ git clone git://git.osmocom.org/osmocom-bb.git $ cd osmocom-bb
$ git pull --rebase
$ cd src
$ make</code>

基本上已经完成所有的编译操作了!至于你想要做的事情.还是靠你自己去折腾吧. 毕竟技术已经开源那么多年了.网上已经有非常多的文章介绍如何做到了.比如你想做到的gsm_sms Sniffing . gprs Sniffing . 或者说是 gsm call Sniffing 都是很简单可以做到的




常见问题:
1. 出现libosmocore.so error x
问题出在以上第三部没配置好环境变量
2. 出现make: *** [firmware] Error 2
在root全下下 ldconfig 后重新编译..不行就重启

标签: 无
返回文章列表 文章二维码
本页链接的二维码
打赏二维码