OpenBTS source code可以在这里下载:http://sourceforge.net/projects/openbts/

OpenBTS入门的各种问题可以在这里找到答案:http://gnuradio.org/redmine/projects/gnuradio/wiki/OpenBTS

开始接触gnuradio,然后到OpenBTS+asterisk,令我十分兴奋。同时也手足无措,入门之后,谁也不知道你要搭建的平台用于什么用途,没有办法给以明确的指导,只能自已动手了。

刚完好OpenBTS后,我迫不及待的运行了。结果如下图,可以运行。但是,看看下面的ALARM,发生了TXTUNE failed with status 1的悲剧。后来才明白,是使用的硬件不同引起的。

下图是在http://sourceforge.net/projects/openbts/里,fordummies.pdf教程中使用的硬件

下面的图是我使用的硬件,多了一块板,RX和TX分开了。这是很大的不同,所以不能直接使用OpenBTS/release,要进行改动,还好,这个工作已经有人完成了。可以直接使用别人改好的,OpenBTS/UHD版本。

使用OpenBTS-UHD版本,自己还是要修改的,如下图,AC_DEFINE(USE_UHD,,Define to 1 if using UHD),这里本来是1的,改为0,因为我不用UHD。

如果你没有改这里,又不用UHD,那在./configure的时候就会出现下面的这个错误。不要小看这个错误,也许就因为这个错误,项目的进度会延期一周。

最后,还有一个关键点,不使用UHD,总要有一个驱动吧。在上述步骤完成后,./configure --with-usrp1 这个usrp1就是你想要使用的驱动!到这里之后 make ,make install 就可以安装好了,真不容易!

安装完成,体验会OpenBTS的趣味。首先,你要得到IMSI,在OpenBTS搭建好后,我这里搭的是GSM.MCC=460  GSM.MNC=10,然后,用手机寻找运营商,就会找到一个名叫 CHN-10的运营商,选择接入它就可以了。接着,就在OpenBTS中用,tmsis就可以得到IMSI。

什么是MCC呢?MCC是Mobile Country Codes,460代表中国

什么是MNC呢?MNC是Mobile Network Codes,10在中国是还没有使用的。

中国具体的运营商和网络如下图:

这些资料在ITU都可以查到。

通过OpenBTS,得知我的IMSI为460029078808551。这样就可以通过OpenBTS给我手机发短信了。

其格式如下: sendsms <IMSI> <发送短信在手机上显示的号码>(号码可以任意,但一定要有) MNC <text>

由上图,这样短信就发出去了。

这是我收到的短信,乱码的那条,是我尝试发中文信息,结果发现不支持。有人可能会好奇,IMSI怎么不是手机号码啊?IMSI是存在SIM卡里的,确实不是手机号码,也不是SIM卡后面的数字。真正的手机号码是MSISDN。GSM把是两者区分开的,为了一定的安全,真正使用时还会分配一个TMSI!

这样OpenBTS就可以正常使用了。两手机互打电话和互发短信,光有OpenBTS还不行,还要asterisk(这个以后再提)。

接着就安装wireshark和wammu



安装完成后,就可以按https://svn.berlin.ccc.de/projects/airprobe/wiki/tracelog 里的教程,用Nokia3310深入学习GSM协议啦!!!

最后,推荐一下两本资料


OpenBTS的安装(转)的更多相关文章

  1. GSM BTS Hacking: 利用BladeRF和开源BTS 5搭建基站

    引文 如果你已经购买了Nuand(官方)BladeRF x40,那么就可以在上面运行OpenBTS并可以输入一些指令来完成一些任务.一般来说HackRF,是一款覆盖频率最宽的SDR板卡.它几乎所有的信 ...

  2. Moto C118 基于 Osmocom-BB 和 OpenBTS 搭建小型GSM短信基站

    此文章PDF文档下载地址:点击下载 0x00 写在前面 大家应该都听说过摩托罗拉C118配合Osmocom-BB实现GSM网络下的短信拦截功能吧,在14年左右新出了一种玩法就是Osmocom-BB的s ...

  3. 使用OpenBTS基站测试物联网模块安全性

    0×00 引子 近年来,随着云计算.物联网技术的快速发展,物联网的理念和相关技术产品已经广泛渗透到社会经济民生的各个领域,越来越多的穿戴设备.家用电器通过蓝牙.Wi-Fi.Li-Fi.z-wave.L ...

  4. docker——容器安装tomcat

    写在前面: 继续docker的学习,学习了docker的基本常用命令之后,我在docker上安装jdk,tomcat两个基本的java web工具,这里对操作流程记录一下. 软件准备: 1.jdk-7 ...

  5. 网络原因导致 npm 软件包 node-sass / gulp-sass 安装失败的处理办法

    如果你正在构建一个基于 gulp 的前端自动化开发环境,那么极有可能会用到 gulp-sass ,由于网络原因你可能会安装失败,因为安装过程中部分细节会到亚马逊云服务器上获取文件.本文主要讨论在不变更 ...

  6. Sublime Text3安装JsHint

    介绍 Sublime Text3使用jshint依赖Nodejs,SublimeLinter和Sublimelinter-jshint. NodeJs的安装省略. 安装SublimeLinter Su ...

  7. Fabio 安装和简单使用

    Fabio(Go 语言):https://github.com/eBay/fabio Fabio 是一个快速.现代.zero-conf 负载均衡 HTTP(S) 路由器,用于部署 Consul 管理的 ...

  8. gentoo 安装

    加载完光驱后 1进行ping命令查看网络是否通畅 2设置硬盘的标识为GPT(主要用于64位且启动模式为UEFI,还有一个是MBR,主要用于32位且启动模式为bois) parted -a optima ...

  9. Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级

    Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 5.安装Database软件 5. ...

随机推荐

  1. git 常用技巧

    撤销修改 撤销本地修改 git reset --hard 或者 git checkout -- . 切换分支 切换到前一分支 git checkout - 切换到某个分支 git checkout & ...

  2. Silverlight 上传文件源代码

    public class FileUploadArgs : EventArgs { public string FileName { get; set; } public Exception Ex { ...

  3. 更换光纤后路由器端口映射 -VPN相关

    之前一直是ADSL的线路,使用路由器后,很简单就可以实现端口映射了!外网也可以随意连接,可是最近升级宽带更换了光纤后,发现怎么都不能正常工作了!在光纤猫里显示的IP居然是:10.0.*.*,查询到的外 ...

  4. (Python) 函数、匿名函数

    本节将学习如何用Python定义函数,调用函数,以及学习匿名函数的使用 1.定义函数 Python中定义函数用关键字def,如下例所示,testFun为函数名 def testFun(): print ...

  5. POJ2396_Budget

    题意为给一个矩形数字阵,给出一些限制条件,包括每行和每列的和,还有一些位置的数值范围,求出满足情况的一个. 首先建图,源点->行和->列和->汇点,显然,行和列之间的边为那个数字的大 ...

  6. Round函数

    Round():函数返回一个数值,舍入到指定的长度或精度 eg: --1) ) ---->123.9990 ) ---->124.0000 --3为需要舍入的位数 --2) ) ----- ...

  7. Java 第14章 字符串

    字符串 基本数据类型和引用数据类型作为方法参数 ,在传递时有什么不同之处. 答:基本数据类型按值传递,相当于复制了一份过去. 引用数据类型是指向引用 内存地址,两个地方 根据地址使用同一份数据,如被更 ...

  8. 在centos上编译安装mariadb数据库

    一.安装前提(准备数据文件.安装其他依赖的软件) 1.准备数据存放的目录 [root@localhost ~]# fdisk /dev/sdb  (fdisk /dev/sdb 创建一个逻辑分区/de ...

  9. sublime text 3 技巧

    sublime text 技巧 学习目的:熟悉sublime快捷键和功能,改进自己的工作方式. 学习流程:先把视频中涉及到的技巧记录下,再完整的看一遍所有的菜单和功能. 前端开发工具技巧介绍-Subl ...

  10. Linux和Windows下查看、设置环境变量的比较

    [一]查看环境变量: 1.windows 查看所有的变量:set    范例:>set    查看某个变量的值:set 环境变量名    范例:     >set JAVA_HOME    ...