【SDR】OpenBTS 介绍及安装
前言
今天是元旦假期的第一天,还有两天,就要跨入2018年了,无心工作,写两篇博客吧,纪念一下自己的2017,也为2018开个好头,希望2018,我的三个愿望,能够圆满实现!好了,开始正题,前一段时间搭建了OpenBTS的环境,用于测试其相关的功能,这篇博文来介绍一下OpenBTS,然后对于其安装以及功能进行一个简单的介绍。
OpenBTS Introduction
OpenBTS,全称为OpenBase Transceiver Station,即开放基地台,是由Range Networks公司所开源以及支持的GSM网络项目,目前OpenBTS已经到了GSM5.0版本,能够支持GSM以及GPRS的功能,并且还有OpenUMTS,即3G;从官网上看到,其之后会继续开源LTE的项目,但目前还没有任何信息,只能说期待吧!
下面来看一下官方对于OpenBTS的介绍:
OpenBTS运行在Linux系统下,并且其实现了面向用户的基于软件定义无线电的标准3GPP的空中接口,同时将这些设备作为SIP端点连接到Internet;OpenBTS 网络的实现构成了一种新型无线网络的基础,该网络将覆盖范围扩大到了无服务以及服务不足的地方,同时释放了一个创新的平台,包括对于新兴网络技术的基础,如面向物联网的相关技术。
OpenBTS 网络有以下特点,可以简单概括为三个词:简单、灵活、低成本,简单翻一下OpenBTS的特点:
- 基于IP,软件实现,并且开源平台;
- 手机或者调制解调器即可作为一个SIP设备,无需任何特殊的软件;
- 对于小型网络,网络硬件可以通过软件定义的无线电减少到单个商品服务器;
- 任何IP连接都可以作为回程,包括点对点WiFi;
- 所有的软件都是基于IP协议,且运行在Linux系统的,因此可以将核心网看做一个虚拟的云服务;
- 在传统的蜂窝网络中的专有软件可以用相关的开源应用程序替代;
- 新网络基于IETF互联网时代协议,因此开发人员不需要额外的培训来处理陈旧的传统技术。
感觉讲了半天,都是虚的,还是不适合将理论性的东西啊,下面来说干货,OpenBTS的安装及使用。
OpenBTS Install
首先,Linux系统的选择,官方建议是在Ubuntu 32bit 12.04,但是我目前在14.04以及16.04上面均安装成功了,所以对于系统选择,都是可以的,下面以Ubuntu 14.04来进行介绍,系统的安装可以百度了,就不一一介绍了。
系统安装好后,更新系统源并且安装git,由于OpenBTS中使用了git的一些最新特性,因此需要git 1.8.2以上版本,使用以下命令:
sudo apt-get updatesudo apt-get install git
git --version
以下是具体的安装步骤:
(1)OpenBTS包括几个不同的软件,因此使用脚本进行下载安装,而官方提供了安装的脚本,从github 上 clone安装脚本(需要在github上有对应的ssh):
git clone https://github.com/RangeNetworks/dev.git
(2)打开dev目录,然后进行clone软件包
cd dev
./clone.sh
(3)选择要进行编译的branch或者tags:
./switchto.sh master
(or)
./switchto.sh 4.0
(or)
./switchto.sh v4.0.0
(4)安装所需要的依赖库,然后进行编译,使用build.sh脚本,其中需要加上要使用的SDR外设,如USRP B200等:
./build.sh B200
另外,如果系统不是Ubuntu16.04,在安装依赖库的过程中,会报错libzmq5找不到,可以打开build.sh将libzmq5改为libzmq3。
编译时间比较久,编译完成后,会生成几个deb文件,即安装包,且其位于BUILDS/时间戳/中,如我编译完成之后,安装包目录为:
(5)安装步骤(4)中所编译成功的deb文件,
sudo dpkg –i *.deb
在安装过程中,会出现报错,可以运行 sudo apt-get install –f ,然后再重新安装一次即可。
(6)最后运行,在安装的过程中,已经对OpenBTS以及其他几个软件进行了配置,据我所知的有开机自动启动、使用start /stop来启动相关软件:
sudo start sipauthserve
sudo start smqueue
sudo start openbts
sudo start asterisk相反,如果要停止运行,使用以下命令:
sudo stop sipauthserve
sudo stop smqueue
sudo stop openbts
sudo stop asterisk为了后期的使用方便,其实可以进行以下设置,将启动命令以及停止命令写到一个脚本中,并设置运行权限,则在启动以及停止的时候,只需要如以下运行即可:
(7) OpenBTS提供了命令行界面用于管理OpenBTS基站,其位于/OpenBTS目录下,运行命令为:
./OpenBTSCLI
另外,还可以加参数运行,可以通过 –h 来看参数:
简单讲一下,就是 –c 表示只需要查询一次,即查询完就退出,如以下命令:
(8) 用户数据库注册,OpenBTS使用sqlite3进行数据的存储,因此需要进行设置,使用以下命令:
sudo sqlite3/var/lib/asterisk/sqlite3dir/sqlite3.db
sqlite> .tables
DIALDATA_TABLE RRLP SIP_BUDDIES rates
sqlite> select * from sip_buddies;
sqlite> select * from dialdata_table;
sqlite> .quit对于OpenBTS的安装基本就介绍到这里,关于OpenBTS的配置、使用以及总体架构,可以参考下一篇博客!