最近在安装 GNSS-SDR软件时,遇到了很多问题,这里回顾了我的安装过程,罗列了所遇到的问题和解决办法。希望后来者不要再踩这些坑了!

  1. 首先,在官方文档中看到,GNSS-SDR目前并不支持直接在 Windows系统下直接运行,通常需要借助虚拟机构建客户操作系统(Linux),在虚拟系统内安装并运行该软件。

  2. 官网上给出的建议虚拟工具是(VirtualBox),于是我就去官网下载了最新版本的 VirtualBox5.2.12。具体安装和新建虚拟机的过程都算简单,在网上也能找到很多相关介绍,所以这里不再赘言。

  3. Linux系统,这里我选用了 Ubuntu,一来是之前就经常听到这个名称,很好奇到底是个啥东西;二来是搜到的教程所安装的就是 Ubuntu。所以去官网上下载了最新的 18.04版本,这里要吐槽一下,也许是因为墙的原因,很多次都是卡在下载之前的那个网页上,就发生了“404”现象,很气!

  4. 按照教程安装和配置好 Ubuntu之后,需要安装增强功能,在教程中去找那个光盘标志并执行弹出操作时,也许是因为教程中是16.04版本的问题,反正我就是找不到光盘标志,于是作罢。

  5. 命令行执行“sudo apt-get install gnss-sdr”,真正准备安装 GNSS-SDR了,结果报错“can not locate passage”。于是去百度解决方法,才知道默认 Ubuntu的下载源都在国外,速度很慢,需要切换国内的镜像源。教程也很多,这里给出一个看起来简单一点的,切换阿里云。切换完软件源之后,再执行“sudo apt-get install gnss-sdr”时,就不会再报这个错误了。

  6. 接下来要说的这个问题是本次安装过程中最恶心的问题了,但可能只是此次我遇到了,也许并不具有普遍性。就是所安装的 VirtualBox 5.2.12 + Ubuntu 18.04在虚拟系统开机、鼠标点击或执行操作时,经常会发生电脑蓝屏、卡死的现象。卡死了,只能强制关机,可笑的是强制关机或蓝屏后虚拟机内所进行的配置(源设置、下载的 GNSS-SDR)都没了,前前后后发生了十多次,我终于是不能忍,于是决定使用 VMWare,并且安装较低版本的 Ubuntu 16.04。

  7. 按照安装教程,在该网站下载了 VMware Workstation Pro 12,又在官网上下载了 Ubuntu 16.04,执行安装操作。总体安装过程其实与 VirtualBox 类似,大多都是直接执行“下一步”。

  8. 安装完虚拟 Ubuntu系统后,第一件事就是安装 VMware Tools,可以很方便的使虚拟系统全屏和进行宿主机与客户机的文件交换。安装  VMware Tools,我主要参考了这篇文章。安装完 VMware Tools后,令虚拟系统全屏,只需在 VMware的 “查看”菜单栏里点击“立即适应客户机”就可以了。然后就是设置共享文件夹,这个还是很有必要的,通过虚拟机进行操作所得到的文件通过这种方式也能够被宿主机使用。具体过程参照这里。进行完以上设置后,别忘记还要切换软件源!

  9. 接着在命令行执行“sudo apt-get install gnss-sdr”,这一次安装过程很顺利,没有像 VirtualBox那样会报“dpkg错误”或卡死的事情。测试是否成功安装 GNSS-SDR,命令行输入“GNSS-SDR --version”,结果显示的版本居然是“0.0.6”。官网上特别强调过,如果早于“0.0.9”的版本,对于所给出的测试用例,可能会有问题。没办法,只能卸载刚刚安装好的 GNSS-SDR,使用从源代码编译的方法来安装最新版本(0.0.9)的 GNSS-SDR了。

  10. 具体过程就是参考官网,一步步跟着操作就可以了。但在执行 “git clone https://github.com/gnss-sdr/gnss-sdr”时,下载速度特别慢,只有 5Kb/s,无法忍受。遂百度一下,发现这个问题很普遍,大家都会遇到,解决办法我用的是这一个,亲测可用。之后继续官网上给出的操作,就可以成功安装 GNSS-SDR了。使用 “GNSS-SDR --version”检测时,版本号也是最新的 “0.0.9”了,至此 GNSS-SDR的安装过程算是完成了。

  11. 下载测试数据,文件有 1.6G,还是挺大的,不知道是不是国外资源的问题,下载起来速度并不快。

  12. 之后就是制作配置文件,这里有几点需要格外注意。一、“GNSS-SDR.internal_fs_hz”应换成 “GNSS-SDR.internal_fs_sps”  二、SignalSource.filename那一项需要填写自己系统内数据文件的实际存放位置   三、Observables.implementation那一项中的 “GPS_L1_CA_Obserables”需要替换成“Hybrid_Observables”  四、PVT.implementation那一项的 “GPS_LA_CA_PVT”需要替换成“RTKLIB_PVT”。这样的话,配置文件也制作完了。

  13. 转到数据文件所在目录下,执行“gnss-sdr --config_file=./my-first-GNSS-SDR-receiver.conf"操作,即可顺利运行,并生成相应的文件。

  14. 官网上 “Configuration”部分主要是介绍数据源是硬件芯片时的配置,手头并没有相应芯片,所以这一节就跳过没看了。出于好奇,查了一下 “HackRF”芯片的价格,居然要 300美元,看来不是能随便玩的东西了。。。另外,还查了下制作团队的信息,发现他们都属于 "CTTC"。百度后,得知全称为“Center Tecnologic Telecommunications Catalunya”,翻译成中文就是“加泰罗尼亚电信科技中心”,怪不得下载到的数据文件是在 Spain测到的。不过很羡慕他们,平时做研究,周末可以去诺坎普看球呀。。。

好了,至此,本次按照 GNSS-SDR官网教程,安装和测试基本用例的过程就记录完毕了。

基于 win7下虚拟机的 GNSS-SDR安装过程的更多相关文章

  1. Windows下的lua-5.3.4安装过程

    Windows下的lua-5.3.4安装过程 Mingw平台下的编译过程: $ make echo$ make mingw$ make local $ make echo PLAT= none CC= ...

  2. windows10下 MySQL5.7.18版本安装过程及遇到的问题

    windows10下 MySQL5.7.18版本安装过程及遇到的问题           mysql-5.7.18-winx64 安装           1.解压 此次将MySQL装在H盘,依个人喜 ...

  3. Win7下虚拟机个人使用小结:Virtual PC,VMware和VirtualBox

    想来用了很多年的虚拟机了,换了Win7之后,种种原因又需要使用虚拟机,这里就简单介绍和比较一下. 点击小图看大图. Virtual PC: 如果想做Windows虚拟机的话,Virtual PC在之前 ...

  4. golang学习之win7下go web之revel安装

    接着上回记录的win7下go环境搭建,go的开发,现在除了sublime外,LiteIDE比较推荐,下载链接 下载安装后直接打开,需要配置下go环境(本机使用的是window 386版本),如下: 打 ...

  5. 在Ubuntu 14.04 TLS下openvas V8.0源代码安装过程

    [Qboy原创]详细记录源代码的安装过程 1.下载原代码 在http://www.openvas.org/install-source.html下载 Libraries 8.0.8 Scanner 5 ...

  6. win7下虚拟机安装mac 转载自 http://itbbs.pconline.com.cn/50602805.html

    最近,不断有人问起,如何在vmware下安装MAC系统.起因是以前曾发过一篇贴,在vmware8下安装MAC的方法.于是,重新下载了最新版苹果系统10.8.5,终于成功安装.现将注意事项及过程与各位朋 ...

  7. win7下Arduino Mega 2560驱动安装失败解决办法

    因为玩四轴用的apm的飞控板,而其需要安装此驱动,曾经在win8使用其,但是因为win8有相对应的数字证书保护措施(应该是这样的,因为好久了记不清楚了),以至于我每次都需要长按shift重启电脑关闭此 ...

  8. win7下从ruby源代码编译安装

    工作中需要在c++代码中嵌入ruby c api,然而在vs工程中编译失败,所以现在通过手动从源代码编译ruby寻找原因(之前使用rubyinstaller安装).   先从官网下载ruby 2.4. ...

  9. win7下KiWi Syslog服务器的安装与配置

    今天就来聊聊日志服务器KiWi Syslog的安装与配置. 首先,所需文件有以下2个: 1.Kiwi_Syslog_Server_9.5.0.Eval.setup.exe[此版本只有14天寿命][Ki ...

随机推荐

  1. javascript基础语法备忘录-变量和数据类型

    //javascript基础语法备忘录-变量和数据类型 // 定义变量使用var关键字 后面跟变量名,不要使用eval 和arguments为变量名 var message = "hi&qu ...

  2. java 多线程 yield方法的意义

    Thread.yield( )方法: 使当前线程从执行状态(运行状态)变为可执行态(就绪状态).cpu会从众多的可执行态里选择,也就是说,当前也就是刚刚的那个线程还是有可能会被再次执行到的,并不是说一 ...

  3. 常见的25个顶级PHP模板引擎

    为了找到一个好的模板引擎,我在互联网上进行搜索,目前已经整理出了以下名单: SmartySmarty的特点是将模板编译成PHP脚本,然后执行这些脚本.很快,非常灵活. Heyes Template C ...

  4. HDU 5587——Array——————【规律】

    Array Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total Sub ...

  5. 一个WPF小项目小结

    一:缘起 老板有做PC桌面客户端的需求,做的是能耗的计算和评估,要算能耗,就有很多环节,最后对这些环节数据进行一些简单计算.我想要是做的话就用比较熟的wpf,就去聊了下,对方给了1张比较复杂的Exce ...

  6. 卸载jrebel

    Setting-Plugins-搜索Jrebel-右击选择Uninstall-apply 确认重启idea即可

  7. Android基础Activity篇——Toast

    1.Toast Toast在英文中有烤面包的意思,而在安卓开发中是用来提醒用户的消息显示.我猜这里之所以用Toast为该功能命名可能是因为消息的弹出方式就像面包烤好了从面包机中弹出来一样. 2.使用T ...

  8. ES7的Async/Await的简单理解

    Async/Await 的个人见解 正文: async,顾名思义,一个异步执行的功能,而 await 则是配合 async 使用的另一个关键字,也是闻字识其意,就是叫你等待啦! 二者配合食用效果更佳哦 ...

  9. JSON:使用json_encode函数解析结果为Null

    1.首先,数据库中的json数据是这样的 2.仓鼠使用json_encode()函数进行解析json数据时,显示了一个NULL: 3.这时候,我们需要使用,表示在解析json之前,该json是有语法错 ...

  10. rosservice call ERROR:Unable to load type ... Have you typed 'make'

    you need to source in the new terminal $ source ~/catkin_ws/devel/setup.bash