GNU Radio缺失Osmocom模块,编译安装失败求助
- 跟随HackRF开发者的YouTube教程使用GNU Radio时,发现Osmocom及WX模块已不存在
- 尝试从源码编译gr-osmosdr时,遇到CMake错误:
CMake Error at /usr/lib/cmake/pybind11/pybind11Tools.cmake:165 (add_library):
Target "osmosdr_python" links to target "sndfile::sndfile" but the target
was not found. Perhaps a find_package() call is missing for an IMPORTED
target, or an ALIAS target is missing?
Call Stack (most recent call first):
/usr/lib/x86_64-linux-gnu/cmake/gnuradio/GrPybind.cmake:261 (pybind11_add_module)
python/bindings/CMakeLists.txt:28 (GR_PYBIND_MAKE_OOT)CMake Error at lib/CMakeLists.txt:51 (add_library):
Target "gnuradio-osmosdr" links to target "sndfile::sndfile" but the target
was not found. Perhaps a find_package() call is missing for an IMPORTED
target, or an ALIAS target is missing?
- 寻求Osmocom的替代方案,提到Soapy HackRF源功能较基础,不理解GNU Radio为何移除常用功能
一、先修复gr-osmosdr编译错误
这个CMake错误是缺少libsndfile的开发依赖包,直接安装对应系统的包即可:
- Debian/Ubuntu系:
sudo apt install libsndfile1-dev - Fedora/RHEL系:
sudo dnf install libsndfile-devel
安装完成后,重新执行cmake、make、make install流程,即可解决该依赖问题。
二、Osmocom模块的替代方案与版本说明
- 官方替代路径
- 若使用GNU Radio 3.10+版本,Osmocom模块的功能已拆分整合:
- HackRF接入可使用SoapySDR模块配合Soapy HackRF驱动,基础功能足以完成多数收发任务,复杂功能可通过组合GNU Radio其他信号处理模块实现
- 原Osmocom模块中的通用SDR功能,部分迁移到了
gr-soapy模块中
- 若使用GNU Radio 3.10+版本,Osmocom模块的功能已拆分整合:
- 匹配教程环境的方案
若需要完全对齐教程内容,可安装GNU Radio 3.8版本,该版本仍保留Osmocom和WX模块,多数Linux发行版软件源或pybombs工具都支持安装指定版本。 - 模块移除的逻辑说明
GNU Radio的模块迭代是为了架构更清晰:将硬件驱动拆分到专门的适配模块(如SoapySDR生态),核心模块专注于信号处理,利于长期维护和扩展,并非随意移除功能,只是进行了功能迁移与重构。
内容的提问来源于stack exchange,提问作者Eddiea6987

