最近研究OpenBTS,去网上找相关的资料,好吧,很少。
比较稳定的v4.0版好像是X86的,我为了让系统稳定的跑在VHD硬盘上。使用了64位内核因此只好编译只是alpha的5.0版,并且官网也说了,64位下只保证模编译没问题功能都没测试过。
编译过程中肯定需要解决很多依赖库的问题,只是之前编译GNURadio和UHD驱动时已经雷都铲过了,所以编译这个东西时基本没有再提示我还缺少什么库了。
首先给个编译参考吧,英文的,我讨厌英文所以才写了这个。因为之前没看这个参考走了一些弯路,丢人的事先不提。
首先取代码:$ git clone https://github.com/RangeNetworks/dev.git
然后加载所有模块的源码:$ ./clone.sh
然后就可以编译了:$ ./build.sh B210 ////////因为我是B210,所以我给了这个参数,如果你用的不同的无线模块,这里肯定是需要换的。如果你没有USRP的模块,好吧,那你得花大代价改代码了。
编译过程中我碰到两个问题,一是国内不能访问googlecode的问题,你可以把coredumper-1.2.1.tar.gz事先放到libcoredumper目录下绕过这个问题。另一个问题是一个错误openbts编译中出错了。因为openbts/SIP/SIPRtp.cpp中128行103列存在类型不匹配问题,怎么办呢,强类型转换吧,在最后一个参数前加上(void*)好吧,这不是一个好方法。但看起来这样解决问题是最佳方式。
解决以上问题后重新编译。完成了。运气不错。
编译后在dev目录下生成BUILDS/2016-04-02–23-39-38目录,你们编译时这个和时间相关的目录肯定是会变的。
执行安装 sudo dpkg -i BUILDS/[timestamp]/*.deb
我在安装时出了个错误,提示缺少ntp和bind9
安装后执行一下这个命令:$ sudo apt-get -f install
然后启动服务试试吧。安装就是这些内容了。有关依赖库的问题,后面碰到了再补充。