2015-10-23 25 views
5

USRPを使用するGNUラジオ番組を実行しようとすると、エラーバックトレースが発生します。 Pythonでは、通常、次のように終わります。私のUSRPをGNU Radioで使用しようとすると、「デバイスが見つかりません----->」というエラーが発生する

self.u = uhd.usrp_source(device_addr=args, stream_args=uhd.stream_args('fc32')) 
    File "/home/marcus/.usrlocal/lib64/python2.7/site-packages/gnuradio/uhd/__init__.py", line 122, in constructor_interceptor 
    return old_constructor(*args) 
    File "/home/marcus/.usrlocal/lib64/python2.7/site-packages/gnuradio/uhd/uhd_swig.py", line 2351, in make 
    return _uhd_swig.usrp_source_make(*args) 
RuntimeError: LookupError: KeyError: No devices found for -----> 

USRPが実行されています。

答えて

10

あなたは常に最初uhd_find_devicesツールを使用して最初の生UHD機能をテストする必要があります

uhd_find_devices 

を、それが起動されているが、それは、あなたのデバイスが見つからない場合は、私の経験では、あなたは、単にの高いチャンスがあるということです

  • あなたは特にない-真新しいUbuntusに、Ettus' own repositoriesからUHDバージョンを使用していない場合は、お使いのUHDは、単にデバイスよりも古いかもしれません:デバイスと通信することができませんそれと話すことはできません。 uhd_find_devicesの最初の出力行には、バージョンに関する情報が含まれます。執筆の時点(2014年10月)、3.9が最新のリリースです。可能であれば、常に最新のリリースを使用してください。
    • B200/B210は、少なくとも3.6.0必要があるが、機能は3.8.4
    • X300/X310で有意に改善必要少なくとも3.7.0
    • B200mini 3.9
    • USRP1/2/B100が必要/ N200/N210は直接サポートされるべきですが、あなたが野生で見つかる最も古いリリースです。あなたがそれらと一緒に使用できるすべてのドーターボードのためにそれほど多くはありません - 言及されているように、最近のバージョンを使用してみてください。 udev rules installed必要はありません:
  • あなたはUSB接続されたデバイスを使用している場合(USRP B200、B210、B200miniは、B100、USRP1)、チャンスはあなたがどちらか Linux上
    • ということです「通常の」ユーザーがUSRPと通信できるようにする。 /etc/udev/rules.d/uhd-usrp.rulesのようなものが含まれているかどうかを確認してください。
    • Windowsの場合:Windows USB drivers installedがない可能性があります。
    • UHDを自分で作成した場合(GNUラジオをbuild-gnuradio.shまたはpybombsでインストールした場合)、USBライブラリがない可能性があります。あなたのUHD cmakeログに "Enabling USB"が含まれていることを確認してください。
    • USB3:一部のUSB3ホストコントローラは標準準拠していないため、接続できません。あなたのUSRPがUSB2ポートに接続されたときに検出された場合(通常は青でない人なら誰でも)、あなたは大丈夫でしょう。
  • あなたは、ネットワークデバイス(1ギガビット/ 10Gビットイーサネット、USRP N200/N210、USRP2とUSRP X300/X310)
    • にしている場合は、ネットワークインタフェースが
      • であることを確認してください1Gビット対応(または適用する場合は10GE)。 "ファストイーサネット"(10/100Mbit)NIC は、USRPを使用してと動作しません。
      • Intel 82579LMネットワークコントローラではありません(PCIeネットワークコントローラICのみが、オペレーティングシステムに通知せずにパケットを落とすことが知られている唯一のコントローラです)。これらのパケットは、USB3-to-Gigabitアダプタではありません。
    • )高速リアルタイムサンプルに適していないコンピュータが同じIPネットワーク上にあることを確認します。デフォルトでは、USRPsは 192.168.10.XXX範囲(工場出荷時の設定で XXX=2)からアドレスを持っている。コンピュータがIPを持っていることを確認してください同じ範囲のアドレスですが、 は同じではありませんアドレス
    • 基本的な通信が正常に行われていることを確認してください(ping <ip address of USRP>)。そうでない場合は、自分のIPアドレスを再確認し、USRPが正しいアドレスに設定されていることを確認してください。あなたのUSRPの現在のIPアドレスを調べるに
      • 、それが適切にwiresharkをインストールするには、多くの場合、最も簡単です(つまり、ネットワークパケットスニファソフトウェアだ)、専用のネットワークインタフェースは、(USRPを電源オフ)に接続する必要があり、上のキャプチャを開始そのインターフェイス、およびUSRPの電源を入れます。
      • アドレスが間違っている場合、あなたはUSRP X300/X310のIPアドレスを再プログラムすることができます:あなたが持っていることを確認してくださいcd <install-path>/lib/uhd/utils ; ./usrp_burn_mb_eeprom --args=<optional device args> --values="ip-addr=192.168.10.3"
    • :アドレスが間違っている場合、あなたはUSRP N200/N210/USRP2のIPアドレスを再プログラムすることができますcd <install-path>/lib/uhd/utils ; ./usrp_burn_mb_eeprom --args=addr=<current IP address> --values="ip-addr0=<new ip address>"
    • をあなたのfirewall configured to permit trafficはUSRPのポート49152から来ています。Linuxでは、次のiptablesコマンドは通常、トリック¹:sudo iptables -A INPUT -p udp --sport 49152 -j ACCEPTを実行します。このファイアウォールに穴を開けることに注意してください。あなたの機関のセキュリティポリシーが適用されるかもしれません。
  • 、あなたのPCに接続しUSRP E100、E110、E310またはE312を使用しようとしている場合:
    • Eシリーズデバイスは、スタンドアロンの組込みLinux SDRデバイスです。彼らは周辺機器としてPCに接続していません。あなたのソフトウェア(該当する場合)をcross-compilerでコンパイルし、ホストPCではなく、自身ののEシリーズデバイスでソフトウェアを実行する必要があります。お使いのPC、USRPとケーブルとデバイスIP設定が正しいかどうかを簡単なテストとして

、²GNU Radio Live DVD現在のダウンロード(方法によって、また、クールな例の大量が含まれている、)、それをブートしますそこにuhd_find_devicesを試してみてください。各ディストリビューションは、ファイアウォール

を管理する方法の独自の考えを持っているよう


は、あなたの走行距離は異なる場合があります¹²可能であれば、トレントファイルを使用してください - アマゾンAWSトラフィックは無料ではありませんGNU Radioプロジェクトのメンテナー。また、TorrentファイルはAWSサーバーをソースとして使用しますが、他のユーザーからのイメージの一部を取得しようとします。コマンド以下

-2

ラン:それは価値がありますように、ラインcontainig device_addr

sudo gedit /usr/lib/python2.7/dist-packages/gnuradio/uhd/uhd_swig.py 

B210を追加します。

Args: 
device_addr : B210 
+0

SWIGを知っていてください** ** swigで生成されたPythonファイルはありません**。また、内部的にUHDを知っていれば、 'device_addr = b210'はUHDによって無視されるので、これが助けになるのは偶然です。 –

+0

さらに、私はこの問題がどのような問題を解決しているのか正確にはわかりませんが、おそらく何か非常に特殊なものでしょう。 –

関連する問題