我正在尝试从源代码构建 RedHawk 安装并尝试将 uhd3.5.3 替换为更高版本的 uhd 用于 USRP_UHD 模块。我看到了 USRP_UHD 源代码,但找不到 uhd3.5.3 源代码。我猜它可能只是使用“yum install ...”来下载和安装超高清主机代码和支持库。有人知道这段代码在 redhawk_src_2.0 包中的位置吗?或者在 linux 中是否有一种有效的方法可以在 redhawk_src_2.0 包中的所有文件中搜索它?
提前致谢!
我正在尝试从源代码构建 RedHawk 安装并尝试将 uhd3.5.3 替换为更高版本的 uhd 用于 USRP_UHD 模块。我看到了 USRP_UHD 源代码,但找不到 uhd3.5.3 源代码。我猜它可能只是使用“yum install ...”来下载和安装超高清主机代码和支持库。有人知道这段代码在 redhawk_src_2.0 包中的位置吗?或者在 linux 中是否有一种有效的方法可以在 redhawk_src_2.0 包中的所有文件中搜索它?
提前致谢!
首先,克隆 uhd 库:
git clone git://github.com/EttusResearch/uhd.git
然后签出 3.9.2 标签:
git checkout release_003_009_002
使用 Ettus ( http://files.ettus.com/manual/page_build_guide.html ) 的说明,安装 Fedora 部分下列出的依赖项:
sudo yum -y install boost-devel libusb1-devel python-mako doxygen python-docutils cmake make gcc gcc-c++
接下来,使用 CMake 生成 Makefile:
cd <uhd-repo-path>/host
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/opt/uhd ../
我建议首先使用备用安装前缀来保留 3.5.3 版本,以防万一,但如果您不想这样做,只需运行:
cmake ../
而不是带有 -DCMAKE_INSTALL_PREFIX 标志的较长命令。(注意:我无法让 cmake 找到已安装的 boost 版本,因此您可能需要对此进行一些其他研究,因为它本身可能是一个完全不同的 stackoverflow 帖子)
现在构建并安装 uhd 库:
make
make test
sudo make install
现在库已安装,您应该编辑 USRP_UHD/cpp/configure.ac 以便 PKG_CONFIG_PATH 指向您的安装前缀(在上面的标志中指定的前缀,或者如果您执行了默认设置,请保留它,因为它应该已经指向/usr/local/lib/pkgconfig)。同样在 configure.ac 文件中,确保将 uhd 版本号更改为 3.9.2。
现在您应该能够重建 USRP_UHD 设备:
./reconf && ./configure && make install
我不保证设备将针对新版本的 uhd 库进行构建,这将取决于已弃用的内容(如果有的话)以及从受支持版本和最新版本之间的库中删除的内容。
最后,如果您成功完成所有这些步骤并且指定了非标准安装前缀,则必须将此前缀添加到 LD_LIBRARY_PATH 或 /etc/ld.so.conf.d/ 脚本中,以便正确执行的设备。
UHD 是 Ettus Research 的 USRP Harware 驱动软件。UHD 分布于:
http://files.ettus.com/binaries/uhd_stable/
版本 3.5.3 在这里:
http://files.ettus.com/binaries/uhd_stable/uhd_003.005.003-release/
当前版本是 3.9.2:
http://files.ettus.com/binaries/uhd_stable/uhd_003.009.002-release/
希望这会有所帮助。我不是 100% 确定你要的是什么。
澄清 - 在按照 pwolframs 说明从源代码安装 UHD v3.9.3 之后,您可以按照 Redhawk 手册附录 B 从源代码构建 Redhawk。UHD v3.5.3 没有与 Redhawk 源代码打包,只有 Redhawk RPM,在从源代码构建 UHD 和 Redhawk 时忽略所有这些 RPM。