当前位置: 首页 > 工具软件 > openBTS > 使用案例 >

Ubuntu环境下安装UHD、GNURadio以及Openbts

宇文勇
2023-12-01

**写在这篇博客开头的话:**这是我的第一篇博客。之所以要开博客也是因为研究生期间要搞个“伪基站”出来,在网上查阅了许多资料(大部分也都是博客)感觉比较零散,就想自己总结一下,其实也就是汇总一下前人有的东西,没有什么自己的干货。另外,开博客也是想促进自己多学习,能够多总结,也能够多在这种平台上与各位大牛多交流。本人技术上处于小白级别,所以文章中很多技术点我也比较模糊,而且自己文笔也不好,还请各位多提意见,多交流。
#进入正题
##1.Ubuntu 的安装
ubuntu 的安装方法我就不细说了,网上各种教程都有。我是在我实验室的台式机上安装的双系统,安装的win10和ubuntu15.10。关于ubuntu的版本,想起来我都头大:我找的教程中都是用的ubuntu14.04安装的gnuradio,但是我自己动手安装时发现15.10之前的版本在安装gnuradio时之后再打开(在终端输入gnuradio-companion),总会弹出*段错误(核心已转储)*的问题。百度之后没有头绪,然后我又尝试其他版本的ubuntu,发现15.10以后的虽然gnuradio可以安装,但是openbts安装时会出现问题。各种尝试之后,最后发现之后15.10能够坚持到最后(中间还包括因为不想装双系统,尝试了两种虚拟机,以及对虚拟机使用时产生的各种各样的问题的解决)。
###我在安装ubuntu时遇到的问题

1.在选择时区之后安装过程跳出

具体来说,就是在选择时区那一步之后,整个安装过程跳出,然后又返回到了ubuntu的试用界面。后来我发现在安装时联网问题就解决了。(然而感觉这个问题不只是联网这么简单。。。)

2.安装卡在“SCSI(0.0.0)(sda)设备上的第一分区将被设置为ext4”(细节可能有些差别,如果遇到同样的问题你肯定会懂的→)

出问题的这一步是在你已经定义完姓名、密码之后的本应该漫长的安装过程那里(此问题的出现使安装过程更漫长了。。。)。安装的进度条总是停留在标题说的那里。我两种解决方法:一是在分区的时候可以颠倒下各挂载点的顺序,但是这种方法时灵时不灵的;另一种方法就是更改一下你给ubuntu分配的空间。那我的双系统举例,我是在windows下在F盘里压缩出了50个G给ubuntu。如果出现以上问题,就可以多给或者少给几百兆什么的,更改一下给ubuntu系统的容量,这个方法我百试不爽→。

如果没有遇到乱七八糟的问题,就可以装双系统,然后按步骤安装ubuntu了
ubuntu分区参考百度经验

2.虚拟机的安装

好吧,其实距离上面的文字已经过去一年了。前面的文字写了一半,结果就给耽搁了。一年之后准备在新的笔记本上准备装双系统时,发现又是一堆问题。懒得弄了,所以就在win10下装了vmware12,当然一年过去了,又出现了大大小小的问题,希望装完这次顺利毕业,与它再也不见

1.vmware安装

这个就不多说了,网上下载安装包,找个序列号

2.vmware tool安装

这个是vmware的工具,应该是可以在win和虚拟机之间随意拖动文件的,而且装了之后,虚拟机上unbuntu的显式大小也能改变了,不再只有中间一小块。
依次点击–》虚拟机–》安装vmware tools
将下载后的VMwareTools****.tar.gz提取到任意一个文件夹(我一般是在桌面上新建一个文件夹,然后提取到这里)
然后,在提取后的文件夹中,右键–》在终端打开,输入sudo ./vmware-install.pl(一定要注意语句中的点号),除了第一个选项输入yes后回车,剩下的就是一溜回车(好像现在又有新的工具了,嫌麻烦就不管了,有兴趣的可以看看)。
然后,就好了,可以打开虚拟机菜单里的“查看”,调整一下大小

3.ubuntu 的安装

依旧,这里安装的是ubuntu15.10。当然有出现了新问题。怎么在vmware上装ubuntu这里我就不说了

  • 出现装什么什么没有的问题

我们装东西的时候不是一般都是sudo apt-get install xxx的吗,结果我发现装什么什么没有,就是提示这个玩意没了,还有什么替代之类的。执行sudo apt-get update之后也不行。后来发现时老版本过了支持期限,官方就不再支持了,但是ubuntu官方专门出了一个 old-release的镜像(http://old-releases.ubuntu.com/),可以用这个源更新。
首先将/etc/apt/sources.list 文件备份一份(只是保险)(这个文件里存的是linux系统需要的软件源的网站)

sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup

然后我们重新编写这个网站

sudo gedit /etc/apt/sources.list

在打开的文档中,把以下代码覆盖进去,保存

deb http://old-releases.ubuntu.com/ubuntu/ wily main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu/ wily-security main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu/ wily-updates main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu/ wily-proposed main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu/ wily-backports main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ wily main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ wily-security main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ wily-updates main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ wily-proposed main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ wily-backports main restricted universe multiverse

15.10版本号是wily,其他版本的可以改成相应的代号
然后再sudo apt-get update 就可以了
以下是我参考的一些网址
Ubuntu老版本update时出现error 404 not found
Ubuntu 解决:当执行sudo apt-get update命令时 出现的 “apt-get 404 Not Found Package Repository Errors” 问题

  • re-enable upstart

这一步主要是因为装好openbts之后初始化命令是start,好像是和upstart有关,但ubuntu15.04之后就改成systemd了,所以要改回来,主要就是两句话

sudo apt-get install upstart-sysv
sudo update-initramfs -u

参考网址
How to enable Upstart in Ubuntu 15.04
或者直接用systemd来启动,不过这种方式我没试过

systemctl start xxxxx 
systemctl stop xxxxx 
systemctl status xxxxx 

参考网址
坑爹的 socket /com/ubuntu/upstart: 拒绝连接

  • The remote end hung up unexpectedly

这个是在下载的过程中总会遇到速度极慢,最后停下来,蹦出The remote end hung up unexpectedly等等的问题,解决方案

 git config --global http.postBuffer 524288000

或者

git config --global http.postBuffer 1048576000

后面遇到这种问题也都是这么解决,而且有时候是一戳一蹦跶
参考网站
Git: fatal: The remote end hung up unexpectedly 解决方法

3.uhd和gnuradio安装

安装openbts之前先要安装uhd和gnuradio,这里先把参考网站贴出来,因为我省略了几步我没用上的
ubuntu14.04安装UHD和GNU radio总结
第一步,安装UHD所需要的依赖环境

sudo apt-get install libboost-all-dev libusb-1.0-0-dev python-mako doxygen python-docutils cmake build-essential

第二步,获取源代码,这里就可能出现下载慢的问题

git clone git://github.com/EttusResearch/uhd.git

接着

git init
git submodule init
git submodule update

再这里原链接会有一点小解释
第三步,构建指令

cd <uhd-repo-path>/host
mkdir build
cd build
cmake ../

第一句代码那块,我一般就是直接打开uhd/host ,然后右键终端
然后配置

cmake -DCMAKE_INSTALL_PREFIX=/opt/uhd ../

(这一块不太懂,原文写的多)
第四步,编译与安装

make
make test
sudo make install

第五步,环境配置

sudo ldconfig

第六步,安装gnuradio

sudo apt-get install gnuradio
gnuradio-companion

如果能跳出GRC界面,并能在GRC库中找到UHD,就成功了
这部分好多我并不是很懂,好多就省略了,有兴趣可以看源链接

4.Openbts安装

这一步同样也是先把源链接贴出来
gnuradio+USRP实现OpenBTS 5.0安装
第一步,确定git版本是不是大于1.8.2
(好像是最早要装git的,忘了说的)

sudo apt-get update
sudo apt-get install git
git --version

第二步,下载最新的工具

git clone https://github.com/RangeNetworks/dev.git

第三步,下载所有组件

cd dev
./clone.sh

选择一个branch或tag

./switchto.sh master

is openbts running

设置好了usrp的ip地址,uhd_find_devices之后也能找到设备,但是执行了./OpenBTSCLI之后,显示is openbts running。这是因为usrp的固件没有烧对。需要 更新firmware image和FPGA image,只要版本和驱动版本一致即可。如果你的USRP在Windows下更新过镜像,可以跳过这一步。
输入

sudo uhd_images_downloader

这样可以自动地将网络上合适的镜像下载到本地计算机中。
再输入

uhd_image_loader --args="type=usrp2,addr=IP address,reset"

其中,把IP address改成你的usrp的ip地址就可以
参考网址
手把手教你搭建USRP在Linux GNU Radio下的开发环境

 类似资料: