亲测支持ubuntu 16.04(lattepanda alpha)和Raspbian 10(树莓派4),sdr可以支持limesdr-usb和limesdr mini

下面是树莓派的安装命令,如果是ubuntu,就把Raspbian_10换成xUbuntu_16.04即可。

安装命令:

sudo apt install git g++ cmake libsqlite3-dev libi2c-dev libusb-1.0-0-devwget http://download.opensuse.org/repositories/network:/osmocom:/latest/Raspbian_10//Release.keysudo apt-key add Release.key
rm Release.keysudo su
echo "deb  http://download.opensuse.org/repositories/network:/osmocom:/latest/Raspbian_10/ ./" > /etc/apt/sources.list.d/osmocom-latest.listsudo apt updatesudo apt install osmocom-nitb osmo-trx-lms osmo-bts-trx osmo-ggsn osmo-sgsn osmo-pcu osmo-sip-connector libsofia-sip-ua-glib-dev asterisk sqlite3 libsmpp1 telnet python3-pipsudo pip3 install smpplibsudo apt install limesuite limesuite-udev gr-limesdr liblimesuite-devsudo susystemctl stop osmocom-nitb
systemctl stop osmo-nitb
systemctl stop osmo-trx-lms
systemctl stop osmo-bts-trx
systemctl stop osmo-ggsn
systemctl stop osmo-sgsn
systemctl stop osmo-pcu
systemctl stop osmo-sip-connector
systemctl stop asterisksystemctl disable osmocom-nitb
systemctl disable osmo-nitb
systemctl disable osmo-trx-lms
systemctl disable osmo-bts-trx
systemctl disable osmo-ggsn
systemctl disable osmo-sgsn
systemctl disable osmo-pcu
systemctl disable osmo-sip-connector
systemctl disable asteriskgit clone https://github.com/DrLafa/osmo-nitb-scripts

使用方法:

sudo ./main.py

这样可以启动基站,支持通话,以及短信下发

如果要启用gprs则需要输入

sudo  ./main.py --gprs -i wlan0

如果要自动发短信给新接入的终端可以加上-u,如果要启用sip,可加上--sip。

另外,这个基站还有一个脚本是interact.py,它可以用来查询数据库里的用户,以及下发短信等,但是有点bug要改改。

首先要去掉第29行的monitor.update_monitor(db.subscribers),这句话没什么用,而且会导致循环出错,导致只能对一个用户执行操作。28行的user_interact.interact(args.config, extension)是在与用户交互,根据config.json里的设置,可以给用户发短信,运营商指令,或者打电话,如果只是要查询数据库里有哪些用户也建议删除掉。

改完了就可以输入sudo ./interact来运行了,如果要给指定用户发消息也可以用参数来指定,没的话默认是查询所有用户,并与所有用户交互。

在没有用这些脚本之前,我找了osmo和lime的官方教程,但是是有问题的,如果没有按照脚本里那样先关闭服务,也就是没做disable和stop,直接用命令行运行,会有端口占用的情况,因为apt安装后默认都启动了。另一个问题,使用这个脚本,有时候不正常退出程序,用户数据库不会清空,会有问题,要让它正常退出一下,再启动再行,这种情况在树莓派4上出现的比lattepanda多,可能是性能问题。

还有一点,根据osmo官方的网页,limesdr的时钟不够精确,对于gsm这种tdd系统,长时间运行会有不稳定的情况出现。 推荐给limesdr-usb加一个gpsdo。

这个基站目前我已经实现了手机互相打电话,基站下发短信,手机gprs联网等功能,手机互相发短信不行,可能配置上还有点问题。

这是基站的运行演示视频:

https://v.youku.com/v_show/id_XNDQwOTE3OTI0OA==.html?spm=a2h3j.8428770.3416059.1

以上方法是脚本调用系统服务执行的,如果要看调试信息,也可以用命令行执行,但是这样的话就要自己查询数据库才能知道用户的手机号码,我稍微做了点修改,并且运行成功了。

运行方式是,到osmo-nitb-scripts/configs/目录下,开3个终端窗口,分别输入:

osmo-nitb -c openbsc.cfg

sudo osmo-bts-trx -r 1 -c osmo-bts.cfg

sudo osmo-trx-lms -r 1 -c osmo-trx.cfg

这样基站就启动了,这时候可以把手机都连上去了。接下来可以返回osmo-nitbs-scripts目录,输入:

./interact.py -D ~/osmo-nitb-scripts-master/configs/hlr-sqlite3,来查询接入手机的手机号码,这个功能是我修改interact.py函数实现的,其实也很简单,只是在第28行处加了一行print ("numbers: ", extension)就行了。

下面是运行截图:

我发现一个问题,我视频里用的都是lte测试手机和lte测试sim卡,但是把iphone插着中国移动的卡就很难连上这个gsm基站,但是如果我把中移动的卡插到安卓手机上就可以,把lte测试卡插到iphone上也行。

下图是小米插着中移动卡取到的imsi号码(第三个)。

下图是iphone连我的基站的照片,网络选择里显示的就是我的基站,到这一步我已经把基站名字改了,在configs的openbsc.cfg里可以改。

后来我发现,iphone插着中移动卡也能连上我们的gsm基站,但是要把iphone先设置为3g模式,另外我把基站设置里发射attenuation减少了。

另外我的苹果电脑pip3命令找不到,但是pip里装过smpplib,后来我干脆把代码都改为python2的就行,main和interact开头环境设置要改掉,另外user_interact.py里encoding要删掉python2不支持。

LimeSDR实验教程(3) GSM基站相关推荐

  1. LimeSDR实验教程(13) LTE基站、终端、核心网 (srsLTE nextepc)

    接下来我会讲一个大型应用,实现LTE基站和LTE终端.其实这个应用之前国内就有很多人做,但是一般都是使用OAI实现的,这个软件包虽然很全,但是安装很麻烦,而且很不稳定.我使用的是srsLTE实现的,它 ...

  2. LimeSDR+Ubuntu18.04实现GSM基站

    目录 LimeSDR+Ubuntu18.04实现GSM基站 查看系统是否识别LimeSDR 安装Soapy库 安装osmo-nitb 配置文件 运行 手机连接基站 LimeSDR+Ubuntu18.0 ...

  3. LimeSDR实验教程(15) Lattepanda + LimeSDR Mini转接板

    最近做portapack教程,感觉反响不错,Portapack的优点是可以脱离电脑使用,具有很高的便携性.同样的功能在portapack上运行比在电脑上运行感觉实用了不少,我早期也是被portapac ...

  4. LimeSDR实验教程(10) DVB-S发射和接收

    我在windows下实现了dvb-s的发射和接收. 发射使用的是limesdr-mini,接收使用的是hackrf/limesdr-usb. 这次和以前的dvb-t发射不同,这次的发射和接收都是用软件 ...

  5. LimeSDR实验教程(11) GFSK音频发射和接收

    gnuradio 3.7.13 下面的流图可以实现本地回环,可以听一下声音是不是录音文件里的,其中采样率必须等于wav文件实际采样率,要不然声音会有问题,可以查看wav的详细信息,观察采样率和通道数, ...

  6. 【CC3200AI 实验教程6】疯壳·AI语音人脸识别(会议记录仪/人脸打卡机)-串口

    CC3200AI实验教程 --疯壳·开发板系列 串口 串行接口分为异步串行接口和同步串行接口两种.异步串行接口统称为通用异步收发器(UART)接口,同步串行接口有SPI和I2C等,同步串行接口除了包含 ...

  7. 计算机控制实验教程,新)《计算机控制技术》实验教程.doc

    肇庆学院光机电一体化综合性实验教学示范中心实验教材之二十六 计算机控制技术 实 验 教 程 肇庆学院电子信息与机电工程学院 编 二00八年九月 内容简介 本书主要是基于清华大学出版社出版的由于海生先生 ...

  8. 数学实验matlab课后习题答案,matlab数学实验教程答案

    摘要: 数学实验如按工程组成来分单价分部分项,答案形式工程价的有(量清单报,在工中计价清单程量.项目题了质量问出现,数学实验造成了一定的损失,业主取的包括对此措施可噪.... 数学实验 教程工程价的量 ...

  9. ArcGIS实验教程——实验三十九:ArcGIS多元分类(ISO聚类分析、最大似然分类、主成分分析)案例教程

    ArcGIS实验视频教程合集:<ArcGIS实验教程从入门到精通>(附配套实验数据)> 文章目录 一.ISO聚类 1. ISO聚类简介 2. ISO聚类进行非监督分类实验操作 二.最 ...

  10. ArcGIS实验教程——实验三十八:基于ArcGIS的等高线、山体阴影、山顶点提取案例教程

    ArcGIS实验视频教程合集:<ArcGIS实验教程从入门到精通>(附配套实验数据)> 文章目录 1. 加载DEM 2. 提取等高距为15m的等高线 3. 提取等高距为75m的等高线 ...

最新文章

  1. 微软中国CTO:不思进取、放弃基本技能的程序员在34.9岁会被淘汰!
  2. springboot 定时任务schedule
  3. 信息系统项目管理师-配置管理知识点
  4. 方立勋_30天掌握JavaWeb_自己编写jdbc框架、dbutils框架(未完)
  5. potainer 日志_日志系统落地:制定日志规范
  6. AFTER触发器与INSTEAD OF触发器的区别
  7. 洛谷P3402 【模板】可持久化并查集
  8. babel 配置整理
  9. java使用水晶报表,java水晶报表实例教程
  10. 告诉你怎样学Java才是硬道理(转自chinaitlab)
  11. php盘古分词,百度分词技术_百度输入法分词怎么关_百度分词原理
  12. 网络调试助手连接远程服务器
  13. 基于微信小程序的健身小助手小程序
  14. HDU杭电OJ经典100题2000-2099_Java版详细题解(持续更新)
  15. win10计算机管理没有蓝牙,win10系统中缺少打开或关闭蓝牙选项的解决方法
  16. 计算机硬盘不能存储文件,磁盘已满,文件无法保存怎么弄
  17. php laravel 开发工具,Laravel 快速开发工具
  18. 连连看连接算法Javascript版
  19. 单片机联网远程控制的服务器设置,经验分享:单片机如何与手机实现远程通讯...
  20. 三坐标检测基础知识之测针选型

热门文章

  1. Golang的基础数据类型
  2. MongoDB从入门到高级的实战操作
  3. Invisible Backdoor Attack with Sample-Specific Triggers
  4. 网络上的计算机无权限访问权限,权限,教您怎么解决无internet访问权限
  5. 华为手机自带的双系统模式,你知道吗?一部手机当两部使用
  6. C语言——快速取以2为底x的对数
  7. linux微信登陆失败,微信登陆失败原因与解决方法
  8. 三维激光雷达路沿检测
  9. 最简单PS双重曝光效果制作教程
  10. 从0开始使用腾讯云GPU服务器