Cómo comprobar y optimizar los puertos USB en Linux

Última actualización: 21/10/2026
Autor: Isaac
  • Uso de comandos terminal para detectar el hardware y diferenciar la velocidad entre USB 2.0 y 3.0.
  • Procedimientos para solucionar errores de montaje de discos y reconocimiento de particiones.
  • Ajustes en la configuración del sistema para evitar la suspensión automática de los puertos.

Primer plano de los puertos laterales de un ordenador portátil, destacando el puerto USB con el logotipo SuperSpeed (SS) para identificar USB 3.0.

A veces nos ocurre que conectamos un dispositivo USB en nuestro PC con Linux y, sencillamente, no pasa absolutamente nada. Ya sea que estemos intentando montar un disco duro externo, conectar un ratón que se ha quedado dormido o configurar un DAS para ampliar el almacenamiento de nuestro servidor, encontrarse con que el sistema no reacciona puede ser un verdadero quebradero de cabeza.

Lo cierto es que Linux es muy potente para gestionar el hardware, pero a menudo la información no es evidente a simple vista. No es lo mismo que el puerto esté roto a que el sistema operativo haya decidido poner el dispositivo en modo suspensión o que estemos usando un puerto USB 2.0 cuando nuestro disco soporta USB 3.0, limitando así la velocidad de transferencia a niveles desesperantes.

Cómo saber si el sistema detecta tu dispositivo USB

Detalle profesional de los puertos USB-C y Thunderbolt en el lateral de un ordenador portátil moderno.

Antes de entrar en pánico y pensar que el puerto ha muerto, lo primero es comprobar si el kernel de Linux ve el hardware. Para ello, la herramienta estrella es el comando lsusb. Al ejecutarlo en la terminal, obtendrás un listado detallado de todos los buses y dispositivos conectados.

Un truco muy útil para no liarse es ejecutar el comando una vez sin nada conectado y luego repetir la acción tras insertar el periférico; la diferencia entre ambas listas te dirá exactamente qué dispositivo ha sido reconocido. Verás líneas que incluyen el ID del fabricante y el ID del producto (separados por dos puntos), datos que resultan fundamentales si queremos investigar más a fondo la velocidad o la ruta del dispositivo.

Identificar la velocidad real de la conexión (USB 2.0 vs 3.0)

Hub USB conectado a un ordenador portátil, ilustrando la expansión de puertos para periféricos.

Es muy común que tengamos puertos de distintas generaciones en la misma máquina y no sepamos cuál es cuál. Si notas que tus transferencias de archivos son lentas (por ejemplo, rondando los 35-43 MBps), es probable que estés operando bajo el protocolo USB 2.0 en lugar del 3.0.

  Descubre cómo sacarle el máximo partido a Termux en Android

Para salir de dudas en distribuciones como Debian, puedes seguir este proceso técnico: primero, localiza el ID del fabricante con el comando lsusb. Después, utiliza el comando find /sys/devices/ -name idVendor -print -exec cat {} \\; | grep -B 1 [TU_ID] para hallar la ruta exacta del dispositivo en el sistema. Una vez tengas esa ruta, sustituye la palabra idVendor por speed y lee el archivo con el comando cat. Si el resultado es 480, estás en USB 2.0; si ves un 5000, ¡enhorabuena!, estás aprovechando la velocidad del USB 3.0.

Solución de problemas: ¿Por qué no monta mi memoria USB?

Vista técnica y detallada de un hub USB con múltiples puertos tipo A, ideal para representar hardware de conectividad.

Si el dispositivo aparece en el listado pero no puedes acceder a sus archivos, el problema puede estar en el sistema de archivos o la partición. En estos casos, ejecutar sudo blkid es la mejor opción para ver si el sistema reconoce el formato (como EXT-4, NTFS o FAT32) y obtener el identificador único UUID.

Si el sistema no monta la unidad automáticamente, puedes intentar hacerlo a mano creando un punto de montaje con sudo mkdir /media/externaldisk y vinculando el dispositivo manualmente. Si ni siquiera el comando lsusb muestra el hardware, prueba a cambiar de puerto físico o a probar el dispositivo en otro ordenador para descartar que el periférico haya pasado a mejor vida.

Combatir el problema de la suspensión automática en Linux

Hub USB-C de diseño minimalista sobre una superficie oscura, representando la tecnología de conexión actual.

En algunas distros, como Ubuntu, existe una función llamada autosuspend que puede hacer que los puertos USB dejen de alimentar el dispositivo para ahorrar energía, provocando desconexiones aleatorias. Para comprobar si esto está activo, puedes leer el parámetro con cat /sys/module/usbcore/parameters/autosuspend.

Si el valor devuelto es 2, significa que la suspensión está activa. Para desactivarla permanentemente, debes editar el archivo de configuración del cargador de arranque mediante sudo nano /etc/default/grub y añadir el parámetro usbcore.autosuspend=-1 dentro de la línea GRUB_CMDLINE_LINUX_DEFAULT. No olvides ejecutar sudo update-grub y reiniciar el equipo para que los cambios surtan efecto.

  Cómo detectar eventos USB en Linux y crear acciones automáticas

Localizar el dispositivo en el árbol de archivos /dev

Para los usuarios más avanzados que necesitan saber exactamente en qué archivo de dispositivo se encuentra su hardware (por ejemplo, para configurar una cámara o un adaptador serie), es vital entender la relación entre el Bus de lsusb y el directorio /dev. Aunque lsusb nos da la posición lógica, el sistema asigna nombres como /dev/sda1 para almacenamientos o rutas específicas para otros periféricos.

Si tienes dudas sobre dónde ha quedado asignado tu hardware, recuerda que el uso de herramientas de monitoreo en tiempo real como dmesg puede mostrarte el momento exacto en que el sistema asigna el nodo de dispositivo al insertar el cable.

Dominar el uso de lsusb, la revisión de los archivos en /sys/devices y la configuración del GRUB permite diagnosticar desde fallos de alimentación hasta cuellos de botella en la velocidad de transferencia, asegurando que cualquier periférico funcione al máximo de su capacidad en cualquier entorno Linux.