在 Ubuntu 上构建 GNU Radio Building GNU Radio on Ubuntu LinuxGNU Radio 发行版 3.2GNU
Radio 最新发行版 3.2,
已经对 Ubuntu 9.04 (Jaunty) 有二进制的安装包(binary package)。再也不需预先手动安装构建工具和进行从繁琐的源码安装了。而且 USRP 和
USRP2 的安装和配置是自动完成的。这是最快和最简洁的方法让 GNU Radio 平台运行在你的系统上。 以下的篇幅有点过时而且布局也需做些调整。 安 装选项这儿提供的信息和脚本用于编译和安装 GNU Radio 及所需的后台程序、库,其可用于 Ubuntu Linux 6.10 ("Edgy") 或其后的版本;也可能适用于此前的版本但这些没有被测试过。 在 Ubuntu 6.10 ("Edgy") 上安装 GNU Radio 可以由二进制的安装包(binary package)和软件包管理器基本上完成,但是也有部分软件包需要下载源码以及从源码编译。 在 Ubuntu 7.04 ("Feisty") 及其后的版本上安装 GNU Radio 可以完全由二进制的安 装包(binary package)和软件包管理器完成,或者由下载源码再编译也可。 备注: GNU Radio 版本 3.0.3 及更早的版本安装在 Ubuntu 7.04 ("Feisty") 上时使用 USRP 功能不稳定; USRP 工作一阵子便死机,需 USRP 或 Ubuntu 重新启动。 在 SVN 可以找到对此的修补。 基于源码构建时的先决条件以下软件包是安装 GNU Radio 到 Ubuntu 上为编译源码所需。 这些软件包可以通过 "synaptic"、 "dselect"、 或
"apt-get" 来安装。除非有明确的强调,在此便认为各个软件包都应该安装最新的版本。
sudo
apt-get update 便可升级为合适的 qt4.
安装脚本籍希望能提供足够多的指导来将 GNU Radio 设置并运行于 Ubuntu 上,如下脚本的目的是用来“牵手”大多数的用户将
GNU Radio 安装在一个典型的 Ubuntu 上。
此部分仅针对 Edgy 或更早的版本(除非是想去除
CDROM 功能,对于 Feisty 或新于它的版本而言,不需做任何更改): 通过如下两种方法之一手动注释所
有的库使得包含 "universe" 和 "multiverse" sudo <EDITOR> /etc/apt/sources.list (方法之一) 或 通过图形界面 GUI:沿着 System -> Administration -> Software
Sources。然后键入 admin 的密码进入。在 "Ubuntu" tab 上,确认所有的 "main restricted
universe multiverse" 的选项被选中而其它部分没有被选中(或者做认为对设置合适的工作)。顺序点击"Close" 和
"Reload" 来更新软件包的列单。文件 "/etc/apt/sources.list" 内被注释的行列将会如下一般读入 (DIST
是其具体的发行版本名,诸如:edgy, feisty, gusty, 等等): deb
http://us.archive.ubuntu.com/ubuntu/ DIST main restricted universe
multiverse deb http://us.archive.ubuntu.com/ubuntu/ DIST-updates main restricted universe multiverse deb http://security.ubuntu.com/ubuntu/ DIST-security main restricted universe multiverse 更新
本地 dpkg 缓存: sudo apt-get update 安装所需的包(有些似乎已经被 Ubuntu 缺省的安装上了;有一些似乎同其它的相重叠;无论如何这些包含了除 Edgy 之外所需的所有软件包)
sudo apt-get -y install libfontconfig1-dev libxrender-dev libpulse-dev swig g++ automake libtool python-dev libfftw3-dev \
sudo apt-get -y install swig g++ automake libtool python-dev libfftw3-dev \
需安装软件包
sdcc-nf needs (而不是
sdcc) sudo apt-get -y install swig g++ automake1.9 libtool python2.5-dev fftw3-dev \ 如果
安装是来自对旧版本的升级,那就是说安装了python-wxgtk2.6。其原因是 python-wxgtk2.6 比
python-wxgtk2.8 有更高的优先级被安装,它必须使用如下指令被去除: sudo apt-get remove
python-wxgtk2.6
需安装软件包 sdcc-nf needs (而不是
sdcc) sudo apt-get -y install swig g++ automake1.9 libtool python-dev fftw3-dev \
如
README.building-boost 所阐述的一样应当安装 Boost。 sudo apt-get -y install swig g++ automake1.9 libtool python-dev fftw3-dev \
如
README.building-boost 文档所阐述的一样应当安装 Boost。也需要 GSL 。 sudo apt-get -y install g++ automake libtool python-dev fftw3-dev \
如
README.building-boost 文档所阐述的一样应当安装 Boost。也需要 GSL 。 sudo apt-get -y install g++ automake1.9 libtool python-dev fftw3-dev \
强
烈建议使用上面的新发行版之一 sudo apt-get -y install g++ automake1.9 libtool python-dev fftw3-dev \ 备注:如上的 Edgy 安装 python-wxgtk-2.6。这对于 GNURadio 以前的版本的用户是没问题,但对于最新
GNURadio 的 svn
snapshots (svn
快照技术)显得过于古老。若想基于最新的 svn 快照技术
(svn snapshot)构建 GNURadio,便需 wxgtk
version 2.8 或更新。 可以到 wxwidgets debian 和 ubuntu 的知识栈库安装最新的版本的 wxwidgets。 查阅 Installing latest wxgtk-2.8 packages on debian or Ubuntu 进行选项安装;有些也许已经在以前的命令中已经被成功地安装到系统中。 sudo apt-get -y install gkrellm wx-common libwxgtk2.8-dev alsa-base autoconf xorg-dev g77 gawk bison openssh-server emacs cvs usbview octave (以下)仅适于 Edgy : 获取、编译、然后安装 SWIG wget http://prdownloads.sourceforge.net/swig/swig-1.3.33.tar.gz 可选项:获取、编译、然后安装 QWT 5.0.0 (或 更新): 备注: 不必设置诸如 "QTDIR" 或 "QWT_CFLAGS"
的环境变量, (在此)不必理睬这些。 wget http://superb-east.dl.sourceforge.net/sourceforge/qwt/qwt-5.0.2.tar.bz2
将 UNIX 版本的 "INSTALLBASE”置换为 “/usr/local”(原为 "/usr/local/qwt-5.0.2"); 将原来的 "doc.path" 变换为 "$$INSTALLBASE/doc/qwt" ; Save, exit(保存,推出)。 "doc" 是由 HTML 和 man 格式构建,这些都位于 /usr/local/doc/{html,man}。它不是标准路径,但分离出这些似乎也不是一件容易的事情,所以对它弃之不予理睬: qmake 安装 Boost对于 Ubuntu 8.04 或更早的版本,下载并安装 Boost 1.35 或更新版本如下(参阅文档 README.building-boost): 1) 在 boost.sourceforge.net 下载最新的 boost 的版本 (在写此文时 boost_1_37_0.tar.bz2 是最新的版本)。 2)
就地解压缩并进入该目录 $ cd boost_1_37_0 3) 选择前缀来安装。比如使用 /opt/boost_1_37_0 $ BOOST_PREFIX=/opt/boost_1_37_0 4)
配置 $ ./configure --prefix=$BOOST_PREFIX --with-libraries=thread,date_time,program_options 5)
编译 $ make 6)
安装 $ sudo make install 安装 GNU Radio
git clone http://gnuradio.org/git/gnuradio.git 可选项:运行 GNU Radio 的自检程序;这并不需 USRP。 make check 即使有一个甚至一些测试没能通过,但 GNU Radio
也有可能功能性正常工作。尽管如此,到邮件列表寻求解决的方案或者将解决的方案贡献到列表是比较理智的做法。有此善举之时,不要忘记附带如下信息:OS
类型、OS 版本、CPU 类型(诸如,使用"uname -a"获得的)、任何有关硬件的特别之处、软件的版本(诸如:gcc, g++, swig, sdcc,
等)以及如何安装(标准或非标软件包,源代码)。
sudo make install
sudo addgroup usrp
sudo udevadm control --reload-rules 或 sudo /etc/init.d/udev stop 或 sudo killall -HUP udevd 当 USRP 被插入系统后,可以使用如下命令通过检查 /dev/bus/usb 来查看是否被认知: ls -lR /dev/bus/usb | grep usrp 结果会显示一、两行信息(每个USRP 占据一行)如下: crw-rw---- 1 root usrp 189, 514 Mar 24 09:46 003 每个设备文件的列表将以‘usrp' 作为群(group)、
'crw-rw----' 作为状态(mode)。
测试宿主机和 USRP 之间一个大致的最大数据吞吐量(以 2 的幂来表示)。 cd gnuradio-examples/python/usrp
测试宿主机和 USRP 之间一个大致的最大数据吞吐量(非量化) cd usrp/host/apps
sudo apt-get -y upgrade
sudo apt-get -y dist-upgrade Debian 和 Ubuntu 系统的的 libtool 故障Debian 和 Ubuntu 系统在完善 libtool 的 upstream version 不尽人意,它们在安装代码和库之前会失去测试的这些代码和库能力。但是安装之前的测试不失是个好主意。为了解决这个问题,请将把 $PREFIX/lib (和 64 位机器的 $PREFIX/lib64) 包含在 /etc/ld.so.conf 之中。如果没有这样做的话(把 $PREFIX/lib包含在
/etc/ld.so.conf 之中),在构建的链接阶段便会看见出错信息。这现象将会在多处出现。最有可能是在构建 mblocks 第一次出现。这不是 mblocks 的问题,是 Debian/Ubuntu 自身的问题。
如下步骤便可解决这些“问题”: 1) 将当前的
ld.so.conf 文件拷贝并保存到 temp 目录下如下: cp /etc/ld.so.conf /tmp/ld.so.conf 2) 添加路径 /usr/local/lib: echo /usr/local/lib >> /tmp/ld.so.conf 3)如果手动安装 Boost (比如:version 1_37_0),添加它的库函数路径如下: echo /opt/boost_1_37_0/lib >> /tmp/ld.so.conf 4)
删除原 ld.so.conf 文件,用如上编辑后的文件替代它: sudo mv /tmp/ld.so.conf /etc/ld.so.conf 5) 运行 ldconfig: sudo ldconfig 注:GNU Radio Release 3.2(原文出处,翻译整理仅供参考!) |