【问题标题】:RedHawk building from source --- locate the code installing uhd3.5.3RedHawk 从源代码构建 --- 找到安装 uhd3.5.3 的代码
【发布时间】:2016-03-08 02:25:12
【问题描述】:

我正在尝试从源代码构建 RedHawk 安装并尝试将 uhd3.5.3 替换为用于 USRP_UHD 模块的更高版本的 uhd。我看到了 USRP_UHD 源代码,但找不到 uhd3.5.3 源代码。我猜它可能只是使用“yum install ...”来下载和安装超高清主机代码和支持库。有人知道这段代码在 redhawk_src_2.0 包中的位置吗?或者在 linux 中是否有一种有效的方法可以在 redhawk_src_2.0 包中的所有文件中搜索它?

提前致谢!

【问题讨论】:

    标签: build redhawksdr usrp


    【解决方案1】:

    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% 确定您要的是什么。

    【讨论】:

      【解决方案2】:

      首先,克隆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 版本号,则不必更改,但这也不会造成伤害,并且会传达给使用您更新的设备的任何人要使用的版本。配置时失败通常比构建时错误更有帮助。至于提升版本号,这将取决于。您的 RH 安装是否与 1.41 或 1.46/1.48 相关联?如果它与 1.41 链接,您可以尝试针对 1.46/1.48 重新构建它,或者尝试同时安装 1.41 和 1.46/1.48 并拥有最终链接到这两个版本的 RH 设备。
      • 我可能会尝试针对较新版本的 boost 重新构建框架,并希望向后兼容性允许您成功构建框架。这样,您的设备将链接到框架,该框架链接到 boost 1.46/1.48,以及链接到 uhd,它也链接到 1.46/1.48。另一种选择(两种版本的 boost)听起来不可预测。
      • 我不确定您是否可以使用 RPM 针对指定版本的 boost 进行重建,因为它们是二进制 RPM,而不是源 RPM(这也可能是不可能的,我没有尝试过它)。如果从系统的角度来看,这对您来说是最佳途径,我会寻找另一篇关于重建 rpm 的 SO 帖子。否则,根据 Telly Too 的帖子,我建议深入研究 RH 的源代码安装,这还不错。
      【解决方案3】:

      澄清 - 在按照 pwolframs 说明从源代码安装 UHD v3.9.3 之后,您可以按照 Redhawk 手册附录 B 从源代码构建 Redhawk。 UHD v3.5.3 没有与 Redhawk 源代码打包,只有 Redhawk RPM,在从源代码构建 UHD 和 Redhawk 时忽略所有这些 RPM。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-25
        • 1970-01-01
        • 2017-03-22
        • 2015-06-29
        • 2016-11-02
        相关资源
        最近更新 更多