usb 1-1.3: device descriptor read/64 -varios errores USB Raspberry

Si estás leyendo esto es porque has encontrado el error usb 1-1.3: device descriptor read/64 en el log de tu Raspberry Pi.

 

Encontramos el error cuando nos percatamos de que nuestra Raspberry tiene problemas de estabilidad, y comprobamos que o la Raspberry pierde la conexión SSH, o en algunos reinicios programados, se queda colgada o el SSH colgado.
 


Se trata de una Raspberry Pi que ejecuta Motion y funciona como cámara de seguridad, y tiene un dispositivo USB conectado al puerto USB, para guardar en él los videos que se capturan cada vez que se detecta movimiento.
 


Total, que cuando nos damos cuenta de que la Raspberry está “out“, la reiniciamos y nos conectamos por SSH, para comenzar a revisar los logs del sistema.

 

–> Lo primero que revisamos es el log de /var/log/syslog

grep error /var/log/syslog

 

y encontramos mensajes tan preocupantes como estos:

May 24 12:02:12 Rasp1 kernel: [ 123.938036] usb 1-1.3: device descriptor read/64, error -110
May 24 12:02:27 Rasp1 kernel: [ 139.298243] usb 1-1.3: device descriptor read/64, error -110
May 24 12:02:38 Rasp1 kernel: [ 150.058349] usb 1-1.3: device not accepting address 7, error -110
May 24 12:02:49 Rasp1 kernel: [ 160.698445] usb 1-1.3: device not accepting address 8, error -110
May 24 17:00:06 Rasp1 btuart[341]: Can't get port settings: Input/output error
May 24 17:00:06 Rasp1 btuart[341]: Can't initialize device: Input/output error
May 24 20:00:06 Rasp1 btuart[349]: Can't get port settings: Input/output error
May 24 20:00:06 Rasp1 btuart[349]: Can't initialize device: Input/output error
May 24 23:00:06 Rasp1 btuart[320]: Can't get port settings: Input/output error
May 24 23:00:06 Rasp1 btuart[320]: Can't initialize device: Input/output error
May 24 21:00:48 Rasp1 kernel: [ 40.341231] usb 1-1.3: device descriptor read/64, error -110
May 24 21:01:03 Rasp1 kernel: [ 55.701223] usb 1-1.3: device descriptor read/64, error -110
May 24 21:01:09 Rasp1 kernel: [ 61.061220] usb 1-1.3: device descriptor read/64, error -110
May 24 21:01:24 Rasp1 kernel: [ 76.417663] usb 1-1.3: device descriptor read/64, error -110
May 24 21:01:35 Rasp1 kernel: [ 87.174806] usb 1-1.3: device not accepting address 4, error -110
May 24 21:01:46 Rasp1 kernel: [ 97.813432] usb 1-1.3: device not accepting address 4, error -110
May 24 21:01:46 Rasp1 kernel: [ 97.853538] blk_update_request: I/O error, dev sda, sector 0

 

device descriptor read 64 error
 

 
También investigamos el log del kernel, y vemos de nuevo los mismos errores, y algún error relacionado más:

May 24 12:02:38 Rasp1 kernel: [ 150.058349] usb 1-1.3: device not accepting address 7, error -110
May 24 12:02:49 Rasp1 kernel: [ 160.698445] usb 1-1.3: device not accepting address 8, error -110
May 24 21:00:48 Rasp1 kernel: [ 40.341231] usb 1-1.3: device descriptor read/64, error -110
May 24 21:01:03 Rasp1 kernel: [ 55.701223] usb 1-1.3: device descriptor read/64, error -110
May 24 21:01:09 Rasp1 kernel: [ 61.061220] usb 1-1.3: device descriptor read/64, error -110
May 24 21:01:24 Rasp1 kernel: [ 76.417663] usb 1-1.3: device descriptor read/64, error -110
May 24 21:01:35 Rasp1 kernel: [ 87.174806] usb 1-1.3: device not accepting address 4, error -110
May 24 21:01:46 Rasp1 kernel: [ 97.813432] usb 1-1.3: device not accepting address 4, error -110
May 24 21:01:46 Rasp1 kernel: [ 97.853538] blk_update_request: I/O error, dev sda, sector 0
May 24 21:01:46 Rasp1 kernel: [ 97.853548] Buffer I/O error on dev sda, logical block 0, async page read

 

 

Vaya vaya, va a ser que tenemos un problema relacionado con nuestro dispositivo USB, o incluso con el puerto USB de la Raspberry.
 

También podríamos revisar el log del inicio del sistema con dmesg:
 

dmesg -T

 

 
El error usb 1 1.3 device descriptor read 64 error 110 es bastante claro, el error 110 es debido a una alimentación insuficiente del pendrive USB.

 

Ya hace tiempo hablamos de problemas de alimentación de los puertos USB de la Raspberry Pi, ya que los puertos USB y la tarjeta Ethernet de la Raspberry comparten el mismo chip, y el mismo bus, y por tanto se genera un cuello de botella en la Raspberry Pi en algunos casos.

 

Soluciones al error “usb 1-1.3: device descriptor read 64

 
Googleando un poco acerca de los mensajes de error recibidos en los logs de la Raspberry, encontramos varias respuestas:
 
–> que tengamos problemas con el límite de alimentación de los puertos USB de la Raspberry Pi.

 

En este caso recurrimos a la solución ya comentada, y es añadir la siguiente configuración en el fichero /boot/config.txt de nuestra Raspberry Pi, para forzar un poco la alimentación en los puertos USB:

1
max_usb_current=1

 

 

–> Los dispositivos USB conectados tienen problemas intermitentes.
 

Comprobamos que nuestros dispositivos USB se encuentran conectados en la Raspberry:

1
2
3
4
5
root@Rasp1:/home/pi# lsusb -t
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc_otg/1p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/5p, 480M
|__ Port 1: Dev 3, If 0, Class=Vendor Specific Class, Driver=smsc95xx, 480M
|__ Port 5: Dev 5, If 0, Class=Mass Storage, Driver=usb-storage, 480M

 

lsusb - ver dispositivos USB Raspberry

 

  • La primera opción y más evidente es cambiar el transformador de alimentación de la Raspberry por uno más potente.

 

  • Intentaremos reducir la resolución de las cámaras de seguridad, que además son dispositivos que realizan streaming, emisión de video constante, através de la red, y pueden llegar a saturar la red local, o la salida al exterior. Reduciendo la resolución disminuiremos la corrupción.

 

  • Opción algo drástica: Ante dispositivos que de otra manera se niegan a funcionar, cambiamos la velocidad del bus USB para que funcione como USB 1.1 (12 Mbps);

 


para ello añadimos lo siguiente en el fichero /boot/cmdline.txt

1
dwc_otg.speed=1

 

Tenemos que tener en cuenta que con esta opción, la velocidad de Ethernet será extremadamente lenta.