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

电视棒SDR——GNU RADIO安装(UBUNTU,APT-GET安装)

前面在Windows下使用SDRSharp已经可以接收FM,AM,SSB信号,但如果想要接收SDRSharp或RTL1090不支持的信号,或者想自己定义无线数据格式,就需要自己编写相关软件。使用GNU Radio,可以使用类似Simulink的拖框图的方式编写调制解调软件,可以大大方便初学者。因为GNU RADIO 最初在LINUX平台上开发,因此自然在LINUX上安装和使用最方便。
GNU RADIO有LiveCD,可以直接引导电脑。如果只是想尝试GNU RADIO的话可以将LiveCD安装到U盘上,然后从U盘启动。LiveCD自带RTL-SDR支持,运行后就可以使用电视棒SDR。镜像可以从这里下载http://gnuradio.org/redmine/projects/gnuradio/wiki/GNURadioLiveDVD。
GNU RADIO有两种安装方法,一种是自己从GITHUB上GIT源代码自己编译,一种是直接用UBUNTU自带的APT-GET安装。GIT的方法可以安装最新的GNU RADIO,APT-GET的方法最简单,需要时间短,但APT-GET软件源里面的GNU RADIO不是最新的,在写这篇文章的时候GITHUB上的版本为3.7.7.1,而APT-GET的版本为3.7.2.1,鉴于只是小版本号变更,应该功能差别不大。
下面先介绍简单的APT-GET安装方法,以UBUNTU 14.04 LTS版本为例,在全新系统系统上安装GNU RADIO。DEBIAN上的安装方式基本相同。
首先你需要装好UBUNTU系统,然后进入系统设置,软件和更新设置,将除了source code外其他的软件源都选上,如下图

然后点下面的Download from,选择一个离你最近的服务器

然后输入sudo apt-get install gnuradio,然后回车开始安装GNU RADIO。如果在打开终端窗口后是第一次运行sudo,会提示你输入登陆密码,输入密码时候不会显示字符,输入完后按回车确认。

然后显示需要安装的软件包。因为GNU RADIO依赖别的软件包实现其中的功能,所以会显示需要安装的软件包,其中recommend的可以不用安装,默认也不会安装,其他的都需要安装。输入y然后回车开始安装。过程中会从之前选的软件源服务器下载需要安装的软件包。

开始下载软件包,下载完之后会自动开始安装,中间不需要任何操作

安装好之后,点左上角UBUNTU图标,输入GRC,然后点找到的软件图标即可运行GNU RADIO。但这个时候是没法用电视棒的。GNU RADIO默认只安装了FUN CUBE DONGLE和USRP的支持软件,电视棒的支持软件是RTL-SDR,需要单独安装。

在安装RTL-SDR之前先安装一个软件包管理器,是图形界面的,这样就不用在终端里敲键盘了,当然你要是想在安装GNU RADIO之前安装这个软件包管理器也行。终端界面输入sudo apt-get install synaptic开始安装。和安装GNU RADIO一样也会提示需要安装的其他软件包,输入y回车开始安装。

安装好之后输入sudo synaptic运行软件包管理器,点击上面Search,在里面输入gnuradio,点Search,然后就会出现和GNU RADIO相关的软件包。

在gr-osmosdr前面的方框上点右键,选Mark as Installation,然后会弹出需要安装其他软件包的提示,点Mark继续

然后点上方Apply,开始安装。会提示需要安装的所有软件包让你确认,点Apply。

安装完后会提示安装完成,点Close。

现在在运行GNU RADIO,在右边找到Sources,里面就能找到RTL-SDR Source,这就是GNU RADIO中的电视棒信号源,然后就可以使用电视棒+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来减少垃圾评论。了解我们如何处理您的评论数据