【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的介绍:

【SDR】OpenBTS 介绍及安装_第1张图片

       OpenBTS运行在Linux系统下,并且其实现了面向用户的基于软件定义无线电的标准3GPP的空中接口,同时将这些设备作为SIP端点连接到Internet;OpenBTS 网络的实现构成了一种新型无线网络的基础,该网络将覆盖范围扩大到了无服务以及服务不足的地方,同时释放了一个创新的平台,包括对于新兴网络技术的基础,如面向物联网的相关技术。

       OpenBTS 网络有以下特点,可以简单概括为三个词:简单、灵活、低成本,简单翻一下OpenBTS的特点:

  • 基于IP,软件实现,并且开源平台;
  • 手机或者调制解调器即可作为一个SIP设备,无需任何特殊的软件;
  • 对于小型网络,网络硬件可以通过软件定义的无线电减少到单个商品服务器;
  • 任何IP连接都可以作为回程,包括点对点WiFi
  • 所有的软件都是基于IP协议,且运行在Linux系统的,因此可以将核心网看做一个虚拟的云服务;
  • 在传统的蜂窝网络中的专有软件可以用相关的开源应用程序替代;
  • 新网络基于IETF互联网时代协议,因此开发人员不需要额外的培训来处理陈旧的传统技术。
【SDR】OpenBTS 介绍及安装_第2张图片

       感觉讲了半天,都是虚的,还是不适合将理论性的东西啊,下面来说干货,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 update

            sudo 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/时间戳/中,如我编译完成之后,安装包目录为:


             其次,对于UHD的安装,如果系统在之前安装过UHD的话,可以在build.sh中将安装UHD驱动的命令行屏蔽或者删除,因为执行过程中,会通过 apt-get 安装 UHD,且版本不一定,如果之前系统上有UHD驱动,再次安装后,会发生库调用的冲突:
【SDR】OpenBTS 介绍及安装_第3张图片

            UHD安装成功后,将USRP连接到电脑上,可以通过 sudo uhd_find_devices 来看是否能检测到USRP,如果无法检测,则换一个USB口重插;在使用的时候,还需要下载对应的镜像文件,可以使用命令  sudo uhd_images_downloader 来进行下载。

           

(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

            为了后期的使用方便,其实可以进行以下设置,将启动命令以及停止命令写到一个脚本中,并设置运行权限,则在启动以及停止的时候,只需要如以下运行即可:

【SDR】OpenBTS 介绍及安装_第4张图片

           (7) OpenBTS提供了命令行界面用于管理OpenBTS基站,其位于/OpenBTS目录下,运行命令为:

                  ./OpenBTSCLI

            另外,还可以加参数运行,可以通过 –h 来看参数:

【SDR】OpenBTS 介绍及安装_第5张图片

            简单讲一下,就是 –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的配置、使用以及总体架构,可以参考下一篇博客

参考

       [1] http://openbts.org/about/
       [2] https://github.com/RangeNetworks/dev/wiki


你可能感兴趣的:(SDR)