在安装OpenBTS 5.0之前,要先安装GNU Radio和UHD,只要运行安装文件包可执行脚本build-gnuradio,就可以自动安装,安装过程耗时较长,但是不需要过多的手动操作。
Step1:安装合适的系统
Ubuntu Desktop or Server 32-bit 12.04(我使用的是Desktop)
Step2:更新Git
OpenBTS使用了Git的几个新的特性,为了确保客户端的兼容性,Git的版本必须在1.8.2以上。命令如下:
$ sudo apt-get install software-properties-common python-software-properties
$ sudo add-apt-repository ppa:git-core/ppa
(press enter to continue)
$ sudo apt-get update
$ sudo apt-get install git
Step3:下载
l 工具:
首先确定Git的版本是不是大于1.8.2
$ git --version
git version 1.9.1
下载最新的工具
$ git clone https://github.com/RangeNetworks/dev.git
l 组件:
首先在GitHub上建立自己的SSH keys。首先登陆github,可以使用已经注册的github账号。
在执行下列命令之前,首先输入命令
sudo apt-get install ssh
安装了ssh之后,再进行下列步骤
产生SSH keys的步骤:
1、首先检查已经存在的SSH keys,输入命令
检查是否已经有了公钥,默认的公钥文件名:
? id_dsa.pub
? id_ecdsa.pub
? id_ed25519.pubid_rsa.pub
注:如果没有出现上述文件,则需要使用ssh-keygen -t rsa命令产生
2、产生新的SSH key
3、把自己的SSH key加到GitHub中
打开id_rsa.pub,把里面的内容复制到剪贴板
登陆自己的github,在每个页面的右上角,点击
选择SSH keys,点击add SHH key
在title field添加名字
把复制的内容粘贴到“key”field。
4、检测是否产生了SSH keys
这时可能会有这样的提示:
输入yes,显示如下
说明SSH配置成功。
下面就可以下载所有的组件了,只需要简单的输入命令:
$ cd dev
$ ./clone.sh
就可以实现自动的安装。
Step4:选择一个branch或tag
$ ./switchto.sh master
Step5:编译
Build.sh脚本会自动安装所有编译所需要的东西
$ ./build.sh
N210
编译的包会被放在一个新的目录中。这个目录在dev的BUILD中,找到最新的时间戳文件夹。
注意:这一步需要在安装完GNU Radio之后进行,否则会报找不到UHD包的错误。
Step6:安装
先cd到最新的时间戳文件里
$ sudo dpkg -i *.deb
安装了该目录下所有.deb
这里可能会遇到dependencies的问题,输入下面的命令可以解决:
$ sudo apt-get -f install
Step7:运行
下面可以运行OpenBTS
$ sudo start sipauthserve
$ sudo start smqueue
$ sudo start openbts
$ sudo start asterisk
如果上述组件都能被启动,分配到进程号,说明OpenBTS安装成功,这里需要注意一点,前两个进程可以在没有安装完GNU Radio的情况下被启动,openbts和asterisk必须在安装完GNU Radio的情况下才能被启动。是否能被启动的判断依据是是否分配了进程号,如果输入start命令显示的是unknown job,则表示启动失败。
停止的命令:
$ sudo stop sipauthserve
$ sudo stop smqueue
$ sudo stop openbts
$ sudo stop asterisk
Step8:用户数据库的注册
$ 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运行
Step1:连接USRP,按照USRP的ip地址,给主机配置一个网络,命令行中中执行uhd_find_devices,若能够找到USRP,则继续执行下述步骤,否则,检查IP地址配置是否正确,网线是否正确连接,UHD和GNU Radio驱动是否正常运行。
Step2:启动上面提到的四个进程:
$ sudo start sipauthserve
$ sudo start smqueue
$ sudo start openbts
$ sudo start asterisk
Step3:四个进程都被分配了各自的进程号以后。启动OpenBTSCLI命令,操作如下:
$ cd /OpenBTS
$ ./OpenBTSCLI
OpenBTS> help (list all commands available)
OpenBTS> audit (check if your configuration is correct)
OpenBTS> config (list all parameters)
OpenBTS> config XYZ (list all parameters that contain XYZ)
OpenBTS> devconfig (change developer and factory parameters)
OpenBTS> trxconfig (view the factory radio calibration) [so far only on Range Networks equipment]
OpenBTS> chans (view the currently active channels)
OpenBTS> tmsis (view all IMSIs that have interacted with the system)
OpenBTS> trans (view all completed transactions like calls and sms)
OpenBTS> quit
Step4:启动OpenBTSCLI以后
config GSM.Radio.Band 900
config GSM.Radio.C0 1
config Control.LUR.OpenRegistration .*
上面配置BTS 为GSM900,ARFCN 1,对所有手机开放注册权限。注意:该配置使得手机没有注册限制。这样如果系统配置天线的情况下,附近的任何手机便可使用该网络,谨慎在居民点使用。
给101发送你想使用的手机号码,位数在5到12位之间均可。
手机选择运营商(我搜到的运营商名字是00101),连接该运营商。
这样配置以后手机就可以接入网络,并实施通话,发短信功能了。