关于设计,生活和电子的二三事

电视棒SDR——GNU RADIO安装(UBUNTU,安装脚本方式安装)

上次介绍了从UBUNTU自带的软件源安装GNU RADIO,这种方法安装比较方便,但安装的GNU RADIO不是最新的,这次介绍使用国外牛人制作的自动安装脚本安装GNU RADIO。这种方法在安装时会从GITHUB上下载最新的源码,然后在本地编译安装,因此安装的软件是最新版本的,并且同样能够安装所有支持硬件的依赖软件包,包括RTL-SDR和USRP等。
这种方法同样需要全新的UBUNTU系统,因为已经安装较多其他软件的系统可能会存在软件依赖问题。首先是选择系统软件更新源,如下图,将除了source code之外的软件源都选上,并且选择一个国内的更新服务器。

然后打开终端窗口,输入wget http://www.sbrac.org/files/build-gnuradio下载安装脚本

下载完成后,输入chmod a+x ./build-gnuradio将脚本设为可执行,然后输入./build-gnuradio –verbose开始安装。–verbose的作用是显示安装过程中的详细信息,防止像我第一次安装那样,因为有一段时间没有响应,以为死机了,实际只是在下载GNU RADIO源码。

回车后屏幕会显示一大段英文,然后问是否继续安装,输入y然后回车,然后会询问是否有超级用户权限,安装过程中会用到。输入y然后回车,然后会要求输入当前用户密码(如果当前用户是超级用户的话)或超级用户用户名及密码。输入后回车,安装过程会继续。

然后安装脚本会首先检查所需的软件依赖,并下载安装所需的软件包。

在所需软件包安装完成后会提示是否从GITHUB上下载GNU RADIO源码,输入y回车继续,下载的GNU RADIO和其他软件源码会保存在Home文件夹下。中间可能还会提示是否从GITHUB上下载UHD等的源码,同样输入y并回车继续。

等所有源码下载完成,脚本会自动开始编译过程。这是个相当耗时间的工作,这时候可以先看会视频或找个小游戏什么的等自动编译完成。编译完成后会自动安装,等待提示安装完成,是否发送反馈信息给作者时候,就可以关掉终端窗口,点左上角UBUNTU图标,输入GRC回车,就可以使用GNU RADIO了。
当连接完框图,第一次运行时候有可能会提示Kernal driver is active,无法正常运行,如下图所示。这是因为UBUNTU 14.04已经自带了电视棒驱动,是用来收DVB电视用的,把电视棒作为SDR需要另外的驱动,所以需要先把UBUNTU自带的驱动关掉。按Ctrl+Alt+T打开终端窗口,输入sudo modprobe -r dvb_usb_rtl28xxu关掉自带驱动,然后再运行,这次应该就能正常运行了。这种方法重启后会失效,需要每次重启之后运行一次。
一个永久性的解决方法如下,这个方法我没有测试,需要自己测试。
在终端窗口里输入sudo touch /etc/modprobe.d/blacklist-dvb.conf创建一个黑名单文件,然后输入sudo nano /etc/modprobe.d/blacklist-dvb.conf编辑这个文件,在这个文件里加入:

# Blacklist entries to prevent the DVB side from hooking
# an RTL2832 stick for TV usage instead of the desired usage
# with rtl_sdr.
 
blacklist dvb_usb_rtl28xxu
blacklist rtl2832
blacklist rtl2830

保存退出,然后重启系统,问题解决。

如果不是全新系统,安装时候可能会有软件包依赖问题,可以用sudo apt-get autoremove修复软件包依赖。但据老米说会在DEBIAN系统上这种方法并不能修复软件包依赖,在UBUNTU系统我到目前没发现有问题,所以自己决定要不要用这种方法。最好是在全新UBUNTU系统上安装。
【本篇完】

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据