OpenBTS是开源的2G/2.5G无线通信系统的SDR实现的项目,可以用于实现一个建议的GSM基站,在应急通信、徒步等方面可能有应用前景。
OpenBTS的官网上要求OpenBTS运行的基础操作系统时UbuntuServer12.04,32bit版本。在前面的《OpenBTS编译指南》的博客中,已经描述了如何在x64 Ubunt14.04的系统下编译OpenBTS。
随着ARM体系架构的普及,越来越多的嵌入式设备使用ARM体系架构的CPU。所以,我大概花了4天的时间完成了OpenBTS在ARM 7A体系架构下的编译。遇到的一些问题和相应的解决方法总结如下:
1.操作系统
在ARM 7A下安装了Ubuntu 14.04的操作系统,在此基础上完成编译工作。
2.需要安装的库/软件
- uhd驱动库
用于驱动USRP射频前端。可以按照官网的方法去安装。http://files.ettus.com/manual/page_install.html
当然,后面再这个库上回遇到一些问题,在本博客稍后会提出。
- boost库
在openbts中在编译的时候会有依赖关系的需求。使用
apt-get install libboost-dev
来安装。
3.隔离coredumper
在ARM 7A 体系架构下编译openbts遇到的最大的问题是coredumper。在openbts中,使用google-coredumper的库来执行一些调试相关的工作。但是,这个库在2008年的时候就停止维护了,通过查看相关源码,这个库只能支持x86, x64,ARM 3等体系架构,而ARM 7A是不支持的。如果想使用这个库,必须对google-coredumper进行相关的移植工作。这个工作的性价比并不高。
// in ./coredumper-1.2.1/src/linux_syscall_support.h
/* We currently only support x86-32, x86-64, ARM, MIPS, and PPC on Linux.
* Porting to other related platforms should