在Ubuntu14.04下安常规方式安装(不是手工编译,而是通过apt-get方式安装)HackRF。HackRF不能工作,使用hackrf_info检查返回如下错误:
hackrf_open() failed: HACKRF_ERROR_LIBUSB (-1000)
一般是这样安装才产生了本文要解决的问题:
sudo add-apt-repository ppa:gqrx/releases
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install gqrx gnuradio gr-osmosdr hackrf
如果在树莓派上安装gqrx要改为gqrx-sdr,另外不要试着在树莓派上编译gnuradio.因为源码不支持,非要编译就看你的水平了。就算要编译在树莓派上使用的版本,官方也是推荐交叉编译。参考
#sudo apt-get install scim-tables-zh
经过检查我发现是因为HackRF新固件和以前的老驱动已经不兼容了。所以在某些情况下出现上述问题。我曾经更新所有libusb库(sudo apt-get install libusb*)结果无效。
最后靠重新编译hackrf来解决问题。结果就OK了。
编译hackrf需要一大堆 的库支持所以更确保依赖的库都装了:
sudo apt-get -y install build-essential cmake git-core autoconf automake libtool g++ python-dev swig pkg-config libfftw3-dev libboost1.54-all-dev libcppunit-dev libgsl0-dev libusb-dev sdcc libsdl1.2-dev python-wxgtk2.8 python-numpy python-cheetah python-lxml doxygen python-qt4 python-qwt5-qt4 libxi-dev libqt4-opengl-dev libqwt5-qt4-dev libfontconfig1-dev libxrender-dev libusb-1.0
注意这个:libboost1.54-all-dev,此前有文章写的是libboost1.53-all-dev,但不知道 为什么1.53已经没了可能就是被1.54取代了吧。不过再进一步,未来大家看到这个文章了,这个库可能又增加版本了。所以如果这个库装不上。请检查一下是不是这个库又有新版本了。
环境准备好后执行如下命令如果git和cmake也没有装的话。请继续apt-get
git clone –progress http://github.com/mossmann/hackrf.git
cd hackrf/host
mkdir build
cd build
cmake ../ -DINSTALL_UDEV_RULES=ON
make
sudo make install
sudo ldconfig
执行完以上命令hackrf的工具会装在/usr/local/bin但有时放在这里gnuradio会找不到它们。怎么办呢。
sudo cp /usr/local/bin/* /usr/bin
不解释