¿Tienes un dispositivo USB conectado a una computadora en otra habitación y quieres usarlo desde la comodidad de tu oficina?
Una opción es usar escritorio remoto, pero puede ser lento e incómodo. Afortunadamente, en Linux casi todo es posible si sabes cómo hacerlo.
En este artículo, te mostraré cómo compartir un dispositivo USB a través de la red.
Las herramientas ️
Para lograrlo, usaremos un programa llamado usbip. Sin embargo, no es tan simple como instalarlo y listo.
Se necesitan ciertos módulos del kernel y un daemon (usbipd) en la máquina que compartirá los dispositivos USB (servidor).
En Ubuntu, usbip viene en el paquete linux-tools-common así que puedes intentar instalarlo con:
sudo apt-get install linux-tools-common
Quizás, debas compilarlo manualmente porque uso un kernel personalizado (xanmod).
Módulos necesarios:
- En el servidor (la computadora con los dispositivos USB):
usbip_coreusbip_hostusbipd(el daemon)
- En el cliente (la computadora que accederá al USB):
vhci_hcdusbip(herramienta de control)
Si tienes un Raspberry Pi, la instalación es más sencilla:
sudo apt install usbip hwdata usbutils
Configuración inicial ⚙️
1️⃣ Cargar los módulos en ambas máquinas
Ejecuta estos comandos en el servidor:
sudo modprobe -a usbip_core usbip_host
Y en el cliente:
sudo modprobe -a vhci_hcd
Para que estos módulos se carguen automáticamente al arrancar el sistema, agrégales a /etc/modules-load.d.
2️⃣ Iniciar el daemon en el servidor
Ejecuta este comando en la máquina que compartirá los dispositivos:
sudo usbipd -D
Puedes configurarlo para que se inicie automáticamente con systemd o rc.local.
3️⃣ Buscar dispositivos USB disponibles
En el servidor, usa este comando para listar los dispositivos USB disponibles:
sudo usbip list -l
Esto mostrará un listado de dispositivos USB con sus bus ID, por ejemplo:
- busid 4-3.1 (0781:5575)
SanDisk Corp. : Cruzer Glide (0781:5575)
Para compartirlo, usa el siguiente comando, reemplazando 4-3.1 por el bus ID de tu dispositivo:
sudo usbip bind -b 4-3.1
4️⃣ Conectar el USB en el cliente
Desde la máquina cliente, verifica los dispositivos disponibles en el servidor (reemplaza 192.168.1.2 con la IP del servidor):
sudo usbip list -r 192.168.1.2
Si ves el dispositivo listado, puedes conectarlo con:
sudo usbip attach -r 192.168.1.2 -b 4-3.1
Ahora, en la computadora cliente, el USB aparecerá como si estuviera conectado físicamente. ¡Misión cumplida!
Ejemplo práctico: Compartir una memoria USB
En el servidor:
1️⃣ Lista los dispositivos
bash
sudo usbip list -l
2️⃣ Encuentra el ID
Debes encontrar el ID del dispositivo (por ejemplo, 5-2.1.2.3) y compártelo:
sudo usbip bind -b 5-2.1.2.3
En el cliente:
1️⃣ Lista los dispositivos exportados por el servidor:
sudo usbip list -r 192.168.1.2
2️⃣ Conéctalo
sudo usbip attach -r 192.168.1.2 -b 5-2.1.2.3
3️⃣ Monta la unidad USB
sudo mount /dev/sdb3 /mnt
4️⃣ Usa el dispositivo como cualquier otro USB
Cuando termines, desmonta y desconéctalo:
sudo umount /mnt
sudo usbip detach -p 00 # El número de puerto lo obtienes con 'usbip port'
Y en el servidor, libera el dispositivo:
sudo usbip unbind -b 5-2.1.2.3
Clientes USB en Windows ️
Existen clientes USBIP para Windows pero requieren activar el modo de prueba y pueden ser inestables. Existen dos versiones disponibles, pero no las he llegado a probar.
Conclusión
Con usbip puedes acceder a dispositivos USB en otra computadora como si estuvieran conectados físicamente. Esto es útil para compartir discos duros, impresoras, dongles de seguridad y más.
Aunque el proceso de configuración puede ser algo técnico, una vez funcionando, es bastante práctico.
¡Prueba este método y haznos saber cómo te fue!
Descubre más desde CIBERED
Suscríbete y recibe las últimas entradas en tu correo electrónico.