【仅python2可用,python3安装会出现各种难以解决的问题】
Osh调制信号数据集(https://github.com/radioML/dataset),是调制信号处理方向, 大家非常认可的一个数据集,非常适合机器学习 + 深度学习实验. 为了生成该数据集, 踩了无数坑, 大概花了3天时间,终于把整个代码跑通了,能自己生成数据集了。特地记录,以防后续踩坑。
安装pybombs
直接sudo pip install gnuradio 或者使用源码安装gnuradio时都会有很多bug,不是Linux发烧友尽量不要尝试-->反正最后都会失败的。最最最好的有效的方式是使用pybombs安装。
pybombs是封装好的自动化程序,会自动下载源码包然后编译安装,过程中会自己下载依赖包,比自己下载源码编译安装省事很多。官网https://github.com/gnuradio/pybombs
安装pip和pybombs
sudo apt-get install python-pip
pip install --upgrade pip
pip install git+https://github.com/gnuradio/pybombs.git
获取安装库
pybombs recipes add gr-recipes git+https://github.com/gnuradio/gr-recipes.git
pybombs recipes add gr-etcetera git+https://github.com/gnuradio/gr-etcetera.git
安装到/usr/local目录,安装目录下会有.pybombs目录,配置文件保存在用户目录的.pybombs文件夹
pybombs prefix init /usr/local -a myprefix -R gnuradio-default
默认会安装很多组件,如果安装到中途断了,再用上面的命令无法执行怎么办?
可以删掉/usr/local下的.pybombs,然后整个重新安装,提示配置文件直接覆盖就行,如果只是个别组件导致的中断,可以先用pybombs卸载该组件,再重新安装,比如安装rtl-sdr出错:
pybombs remove rtl-sdr
pybombs install rtl-sdr
安装完成后检查组件,再加上一些没有自动安装的组件:
pybombs install osmo-sdr rtl-sdr gnuradio dump1090 hackrf bladeRF airspy gr-iqbal libosmo-dsp gr-osmosdr gqrx
GNSS-SDR在Ubuntu 16.04直接安装可能会出错,因为安装glog和gflags时候可能会因autoconf版本较高而导致编译错误,所以用pybombs将几个依赖包先装上再安装gnss-sdr即可:
pybombs install armadillo gflags glog gnutls
pybombs install gnss-sdr
安装完成后,执行环境变量脚本,然后执行gnuradio-companion就能打开界面,gnuradio-config-info可以查看版本修改配置:
cd /usr/local
. ./setup_env.sh
gnuradio-config-info -v
gnuradio-companion
这样,gnuradio算是成功安装了,只是需要的时间有点长,网速实在是太慢了。
现在就可以运行代码了吗?too young,还有更多的问题呢。
其中,解决时间最长的就是mapper和mediatools的问题,这俩兄弟库,是必须使用pybombs安装的特有的调制信号生成库。
两个库的安装命令分别是:
pybombs install gr-mediatools
pybombs install gr-mapper
最后,需要更新链接:
sudo ldconfig
至此,调制信号能正确生成,真是不容易。并且,如果python安装了mapper库的话,需要将其卸载。另外,如果还报错,一般就是缺少了python中的简单库,直接用pip install就行。
最后强调一下, 仅在Python 2中安装成功, Python3中尝试多次,均失败(有部分库不支持python3,但又是gnuradio安装的必须库),当然可以修改这些库,但太耗时--TODO.