执行uhd_fft GNU Radio脚本时,为什么会出现以下错误消息:
/opt/gnuradio-3.7.1git/bin$ uhd_fft
linux; GNU C++ version 4.6.3; Boost_104601; UHD_003.005.003-123-g1c391767
Traceback (most recent call last):
File "/opt/gnuradio-3.7.1git/bin/uhd_fft", line 341, in <module>
main ()
File "/opt/gnuradio-3.7.1git/bin/uhd_fft", line 337, in main
app = stdgui2.stdapp(app_top_block, "UHD FFT", nstatus=1)
File "/opt/gnuradio-3.7.1git/lib/python2.7/dist-packages/gnuradio/wxgui/stdgui2.py", line 38, in __init__
wx.App.__init__ (self, redirect=False)
File "/usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode/wx/_core.py", line 7981, in __init__
self._BootstrapApp()
File "/usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode/wx/_core.py", line 7555, in _BootstrapApp
return _core_.PyApp__BootstrapApp(*args, **kwargs)
File "/opt/gnuradio-3.7.1git/lib/python2.7/dist-packages/gnuradio/wxgui/stdgui2.py", line 42, in OnInit
self._max_noutput_items)
File "/opt/gnuradio-3.7.1git/lib/python2.7/dist-packages/gnuradio/wxgui/stdgui2.py", line 64, in __init__
self.panel = stdpanel (self, self, top_block_maker, max_nouts)
File "/opt/gnuradio-3.7.1git/lib/python2.7/dist-packages/gnuradio/wxgui/stdgui2.py", line 86, in __init__
self.top_block = top_block_maker (frame, self, vbox, sys.argv)
File "/opt/gnuradio-3.7.1git/bin/uhd_fft", line 91, in __init__
otw_format=options.wire_format, args=options.stream_args))
File "/opt/gnuradio-3.7.1git/lib/python2.7/dist-packages/gnuradio/uhd/__init__.py", line 121, in constructor_interceptor
return old_constructor(*args)
File "/opt/gnuradio-3.7.1git/lib/python2.7/dist-packages/gnuradio/uhd/uhd_swig.py", line 1700, in make
return _uhd_swig.usrp_source_make(*args)
RuntimeError: LookupError: KeyError: No devices found for ----->
Empty Device Address
我正在使用BladeRF hardware并关注these instructions。
我已经完成了此处列出的建议,但UHD_FFT似乎仍然无法找到BladeRF,即使
ls -lrt /dev | grep blade
crw------- 1 root root 180, 0 Aug 11 14:04 bladerf0
为什么UHD_FFT找不到我的设备,即使linux知道它的存在?
答案 0 :(得分:0)
看起来您的BladeRF只能由root用户访问。为了解决这个问题,请制作一个udev规则文件(我知道你之前写过的文章,你做过类似的事情,但是和我一样)。这将允许您的常规用户帐户访问它。您可以通过输入以下内容从shell开始:
$ sudo nano /etc/udev/rules.d/15-bladerf
这应该创建一个新文件并打开nano编辑器。在这里,您将放置以下内容:
SUBSYSTEM=="usb", SYSFS{idVendor}=="1d50", SYSFS{idProduct}=="6066", MODE="0666"
然后,执行以下命令重置udev规则服务:
$ sudo /etc/init.d/udev restart
注意:此命令适用于任何基于Debian的操作系统(Debian,Ubuntu,Linux Mint,...)
CREDIT:在这里找到了udev规则http://pastebin.com/Mgb90L1x