Resolución de problemas de Rapsberry Pi y RTL-SDR

En ocasiones el RTL-SDR o SDR conectados a un puerto USB de una raspberry Pi dejan de funcionar con errores del tipo:

  • usb_claim_interface -6 
  • Failed to open rtlsdr device #0
Aunque seguía apareciendo en lsusb

lsusb
Bus 001 Device 005: ID 7392:7811 Edimax Technology Co., Ltd EW-7811Un 802.11n Wi
reless Adapter [Realtek RTL8188CUS]   (Este es un adaptador USB WiFi)   
Bus 001 Device 004: ID 0bda:2838 Realtek Semiconductor Corp. RTL2838 DVB-T   
(Este es un adaptador USB SDR, que en este caso es el DEVICE 4 )     
Bus 001 Device 003: ID 0424:ec00 Microchip Technology, Inc. (formerly SMSC) SMSC
9512/9514 Fast Ethernet Adapter      
 (Este es un adaptador interno Ethernet)  
Bus 001 Device 002: ID 0424:9514 Microchip Technology, Inc. (formerly SMSC) SMC9
514 Hub       
(Este es un adaptador interno )   
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub 

Drivers activos

lsmod | grep rtl                                         
rtl8192cu              86016  0
rtl_usb                20480  1 rtl8192cu
rtl8192c_common        65536  1 rtl8192cu
rtlwifi               114688  3 rtl_usb,rtl8192c_common,rtl8192cu
mac80211              802816  3 rtl_usb,rtlwifi,rtl8192cu
cfg80211              761856  2 mac80211,rtlwifi

dvb_usb_rtl2832u no debe aparecer

Las causas más habituales son:

  1. Alimentación insuficiente: el USB SDR consume mucha energía
  2. Carga de  controladores DVB
  3. Procesos en conflicto
  4. Permisos 
  5. Bloqueado a nivel de hardware USB 
  6. Sobrecalentamiento del USB SDR y/o RAspberry Pi
Posibles soluciones particulares

  • Dotar a la raspberry Pi de una fuente de alimentación de mayor capacidad (amperaje) resuelve el problema 1
  • Descargar el controlador DVB resuelve el problema (2)
    • lsmod | grep dvb (Localiza si DVB stá cargado y generando conflictos) 
    • sudo modprobe -r dvb_usb_rtl2832u rtl2832
      • modprobe: FATAL: Module dvb_usb_rtl2832u not found. 
  • Localizar si hay procesos que tienen el USB SDR resuelve el problema (3)
    •  rtl_test -t
      • Found 1 device(s):     
      •  0:  Realtek, RTL2838UHIDIR, SN: 00000001 (Localiza el SDR USB)  
      • Using device 0: Generic RTL2832U OEM      
      •  usb_claim_interface error -6      (Está ocupado por otro proceso)   
      • Failed to open rtlsdr device #0. 
    • sudo fuser -k /dev/bus/usb/* (Lista los procesos)  
    • sudo killall -9 rtl_433 rtl_ais rtl_fm (ejemplo que mata los procesos que causan el problema)  
  •  Mirar los permisos y resolveria problema 4
    • groups
      • pi-star adm dialout cdrom sudo audio video plugdev games users input netdev gpio i2c spi  
  • Unos disipadores en el SDR y un ventilador bajo la rapberry Pi (si no lo lleva incluido) y el SDR pueden solucionar el problema 6   

Posibles soluciones generales

Si no hemos encontrado una causa clara que permita una solución espoecifica podemos probar con soluciones mas generales del tipo "apagar y encender"
  • Desconectar y conectar el USB SDR
  • Cambiar el USB SDR de puerto
  • Reiniciar la Raspberry Pi (sudo reboot) desde la terminal: esto  no reinicia los puertos USB de la Raspberry Pi
  • Apagar fisicamente la Raspberry Pi (Cold Boot): Desconecta el cable de alimentación, espera 30 segundos para que los condensadores se vacíen, y volver a encender. Esto fuerza al controlador USB (dwc_otg) a reiniciarse desde cero.


uhubctl

Hay una solución mas quirurgica que es ejecutar la utilidad uhubctl

  • comprobar que está instalada
    • sudo uhubctl
      • sudo: uhubctl: command not found  (En este caso no lo está)
  • Si no lo está hay que instalrla
    • rpi-rw
    • sudo apt-get update
    • sudo apt-get install uhubctl
      • Si falla
        • sudo apt-get install git libusb-1.0-0-dev build-essential
        • cd ~
        • git clone https://github.com/mvp/uhubctl
        • cd uhubctl
        • make
        • sudo make install
        • sudo uhubctl
          • Current status for hub 1-1 [0424:9514, USB 2.00, 5 ports, ppps]  
          • Port 1: 0503 power highspeed enable connect [0424:ec00]  
          • Port 2: 0503 power highspeed enable connect [0bda:2838 Realtek RTL2838UHIDIR 0 0000001]  (Este es el del SDR)
          • Port 3: 0100 power            
          • Port 4: 0100 power   
          • Port 5: 0503 power highspeed enable connect [7392:7811 Realtek 802.11n WLAN Adapter 00e04c000001]         Current status for hub 1 [1d6b:0002 Linux 5.10.103-v7+ dwc_otg_hcd DWC OTG Controller 3f980000.usb, USB 2.00, 1 ports, ppps]  
          • Port 1: 0503 power highspeed enable connect [0424:9514, USB 2.00, 5 ports, ppps]

  • Ejecutar el apagado y encendido del puerto 2 que es el del SDR 
  • sudo uhubctl -a cycle -l 1-1 -p 2
    • Otra forma de ejecutarlo 
      • sudo uhubctl -l 1-1 -p 2 -a off
      • sleep 5
      • sudo uhubctl -l 1-1 -p 2 -a on 

    ATENCION 

    En algunos modelos como el de Raspberry Pi  (chip SMSC 9514), no existe el apagado de puertos individuales. Aunque le pidas apagar el Port 2, uhubctl apagará toda la regleta USB (puertos 1 al 5).

    ¿Qué significa esto?
    • Al ejecutar el comando, el WiFi (Port 5) se apagará un segundo.
    • Tu sesión SSH se quedará congelada unos 10-20 segundos.
    • El sistema recuperará la conexión automáticamente cuando el WiFi vuelva a levantar.


    Ver también


    Referencias


    Advertencia importante

    Las modificaciones, configuraciones y procedimientos descritos en este sitio pueden implicar riesgos técnicos, legales o de seguridad. El autor no se responsabiliza del mal funcionamiento de los equipos, daños permanentes, pérdida de garantía ni de posibles infracciones legales derivadas del uso de esta información.
    El lector asume plena responsabilidad por cualquier acción que decida realizar basándose en el contenido de este blog.


    © 2026 EA5JTT. Queda prohibida la reproducción total o parcial sin autorización expresa del autor.

    No hay comentarios:

    Publicar un comentario

    Resolución de problemas de Rapsberry Pi y RTL-SDR

    En ocasiones el RTL-SDR o SDR conectados a un puerto USB de una raspberry Pi dejan de funcionar con errores del tipo: usb_claim_interface -6...