Solución:
Siempre debe probar primero la funcionalidad UHD sin procesar con el uhd_find_devices
herramienta primero:
uhd_find_devices
Si no encuentra su dispositivo, aunque está arrancado, mi experiencia es que tiene una alta probabilidad de que simplemente no pueda comunicarse con el dispositivo:
- Si no está usando un Versión UHD de los propios repositorios de Ettus, especialmente en Ubuntus no nuevos, es posible que su UHD simplemente sea más antiguo que el dispositivo y no pueda hablar con él. La primera línea de salida de
uhd_find_devices
contendrá información sobre la versión. En el momento de redactar este artículo (octubre de 2014), 3.9 es la última versión. Si es posible, utilice siempre la última versión.- B200 / B210 necesita al menos 3.6.0, pero la funcionalidad mejoró significativamente con 3.8.4
- X300 / X310 necesita al menos 3.7.0
- B200mini necesita 3.9
- USRP1 / 2 / B100 / N200 / N210 debería ser compatible directamente con las versiones más antiguas que encontrará en la naturaleza. No tanto para todas las placas hijas que puede usar con ellas; como se mencionó, intente usar una versión reciente.
- Si está usando un USB dispositivo conectado (USRP B200, B210, B200mini, B100, USRP1), es probable que usted
- en Linux: no tiene instaladas las reglas de udev necesarias para permitir que los usuarios “normales” se comuniquen con los USRP; comprobar si
/etc/udev/rules.d/
contiene algo comouhd-usrp.rules
. - en Windows: es posible que no tenga instalados los controladores USB de Windows.
- si ha construido UHD usted mismo (también, si instaló GNU Radio a través de
build-gnuradio.sh
opybombs
), es posible que falten bibliotecas USB. Asegúrese de que sus registros de UHD cmake contengan “Habilitación de USB”. - USB3: algunos controladores de host USB3 no cumplen con los estándares y no se puede lograr la conectividad. Si se detecta su USRP cuando se conecta a un puerto USB2 (cualquiera que no sea azul, por lo general), debería estar bien.
- en Linux: no tiene instaladas las reglas de udev necesarias para permitir que los usuarios “normales” se comuniquen con los USRP; comprobar si
- Si estás en un en red dispositivo (USRP X300 / X310 con Ethernet de 1Gbit / 10Gbit, USRP N200 / N210, USRP2)
- asegúrese de que su interfaz de red esté
- Capacidad de 1 Gbit (o 10 GE, si corresponde); NIC “Fast Ethernet” (10/100 Mbit) No funcionan con los USRP.
- No es el controlador de red Intel 82579LM (el único controlador de red PCIe IC conocido que ocasionalmente descarta paquetes sin decirle al sistema operativo
- no es un adaptador USB3 a Gigabit (estos tienden a realizar un reordenamiento interesante en los paquetes, lo que los hace inadecuados para muestras en tiempo real de alta velocidad)
- asegúrese de que su computadora esté en la misma red IP. Por defecto, los USRP tienen direcciones del
192.168.10.XXX
distancia (XXX=2
en la configuración de fábrica). Asegúrese de que su computadora tenga una dirección IP del mismo rango, pero no es el mísmo Dirección. - asegúrese de que la comunicación básica funcione (por
ping <ip address of USRP>
). De lo contrario, vuelva a verificar su propia dirección IP e intente asegurarse de que el USRP esté configurado en la dirección correcta.- Para averiguar la dirección IP actual de su USRP, a menudo es más fácil instalarlo correctamente
wireshark
(que es un software rastreador de paquetes de red), tenga una interfaz de red dedicada que se conecte al (USRP apagado), inicie la captura en esa interfaz y encienda el USRP. - Si la dirección es incorrecta, puede reprogramar la dirección IP del USRP X300 / X310:
cd <install-path>/lib/uhd/utils ; ./usrp_burn_mb_eeprom --args=addr=<current IP address> --values="ip-addr0=<new ip address>"
- Si la dirección es incorrecta, puede reprogramar la dirección IP del USRP N200 / N210 / USRP2:
cd <install-path>/lib/uhd/utils ; ./usrp_burn_mb_eeprom --args=<optional device args> --values="ip-addr=192.168.10.3"
- Para averiguar la dirección IP actual de su USRP, a menudo es más fácil instalarlo correctamente
- asegúrese de tener su firewall configurado para permitir el tráfico proveniente del puerto 49152 de USRP. En Linux, lo siguiente
iptables
el comando normalmente hace el truco¹:sudo iptables -A INPUT -p udp --sport 49152 -j ACCEPT
. Note que esto lo hace Haz un agujero en tu firewall. Es posible que se apliquen las políticas de seguridad de su institución.
- asegúrese de que su interfaz de red esté
- Si está intentando utilizar un USRP E100, E110, E310 o E312 conectado a su PC:
- Los dispositivos de la serie E son dispositivos SDR de Linux integrados independientes; no se conectan a una PC como periférico. Tendrá que compilar su software (si corresponde) con un compilador cruzado y ejecutar el software en el dispositivo de la serie E sí mismo, no en su PC host.
Como prueba rápida de si su PC, USRP y el cableado y la configuración de IP del dispositivo son correctos, descargue el GNU Radio Live DVD² actual (que, por cierto, también contiene una gran cantidad de ejemplos interesantes), inicie e intente uhd_find_devices
allí.
¹ su kilometraje puede variar, ya que cada distribución tiene su propia idea de cómo administrar el firewall
² Utilice los archivos torrent, si es posible: el tráfico de Amazon AWS no es gratuito para los mantenedores del proyecto GNU Radio. El archivo torrent también usa los servidores de AWS como fuente, pero intenta obtener una parte de la imagen de otros usuarios.