修改UHD源码后如何使其与GNU Radio正常适配运行
GNU Radio适配自定义修改版UHD操作步骤
1. 清理旧版本残留
先卸载系统中预装的UHD、GNU Radio相关包,避免多版本冲突:
- Debian/Ubuntu系系统执行:
apt remove --purge uhd* gnuradio* - Fedora/CentOS系系统执行:
dnf remove uhd* gnuradio*
清理手动安装的残留文件,避免cmake优先识别旧版本:
rm -rf /usr/local/lib/*uhd* /usr/local/include/uhd* /usr/local/share/uhd rm -rf /usr/local/lib/*gnuradio* /usr/local/include/gnuradio* /usr/local/share/gnuradio
2. 编译安装自定义修改版UHD
进入你修改完成的UHD源码目录,编译时统一指定安装前缀为/usr/local,方便后续GNU Radio识别:
cd <你的UHD源码路径>/host mkdir build && cd build cmake -DCMAKE_INSTALL_PREFIX=/usr/local .. make -j$(nproc) make install ldconfig
安装完成后执行uhd_config_info --version,确认输出版本和你修改后的版本一致,确认UHD安装正常。
3. 配置UHD环境变量
将UHD的库路径、模块路径加到系统全局环境变量中,避免程序运行时找不到依赖:
编辑用户目录下的.bashrc(使用zsh则编辑.zshrc),添加以下两行:
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH export UHD_MODULE_PATH=/usr/local/lib/uhd/modules
保存后执行source ~/.bashrc使配置生效。
4. 源码编译GNU Radio关联自定义UHD
进入GNU Radio源码目录,编译时指定和UHD相同的安装前缀,cmake会自动扫描路径下的UHD库:
cd <你的GNU Radio源码路径> mkdir build && cd build cmake -DCMAKE_INSTALL_PREFIX=/usr/local ..
cmake执行完成后,务必检查输出日志中gr-uhd模块的状态,需要显示为Enabled,且关联的UHD版本为你刚才安装的自定义版本。如果扫描不到UHD,可手动指定UHD的cmake路径:cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DUHD_DIR=/usr/local/lib/cmake/uhd ..
确认配置无误后执行编译安装:
make -j$(nproc) make install ldconfig
5. 验证适配结果
- 执行
gnuradio-config-info --enabled-components,确认输出中包含gr-uhd项 - 启动
gnuradio-companion,拖入UHD源/ sink模块搭建简单流图并运行,无UHD版本不匹配、设备识别失败等报错即为适配成功
内容的提问来源于stack exchange,提问作者Mobi Zaman
相关产品推荐
相关产品推荐

