Si acceder a dispositivos USB desde su sistema operativo invitado Xen se convierte en un verdadero desafío para usted, nuestra guía de transferencia USB Xen lo ayudará a resolver este problema. En este artículo, encontrará descripciones simples de las formas más comunes de redirigir los periféricos USB a la máquina virtual Xen.
Xen es un hipervisor multiplataforma que admite una gran cantidad de funciones avanzadas y se usa ampliamente tanto en computadoras de grado de consumo como en servidores de datos empresariales.
El hipervisor Xen funciona directamente en el hardware del sistema. Lo que hace es agregar una capa de virtualización entre el hardware del sistema y las máquinas virtuales, convirtiendo el hardware del sistema en un grupo de recursos informáticos lógicos que el hipervisor puede asignar dinámicamente a cualquier sistema operativo invitado. Los sistemas operativos que se ejecutan en máquinas virtuales interactúan con los recursos virtuales como si fueran recursos físicos.
Una de las características principales del hipervisor Xen es la compatibilidad con la paravirtualización, un modo especial del núcleo del sistema operativo. A diferencia de la emulación de un entorno aislado separado y un conjunto de hardware para cada máquina, dicho modo le permite lograr un rendimiento mucho mejor.
Con eso, el modo de paravirtualización tiene sus limitaciones: las operaciones privilegiadas están prohibidas, la imposibilidad de cambiar del modo de 32 bits a 64 bits y viceversa "sobre la marcha", la virtualización de hardware del procesador no es compatible. Sin embargo, ninguno de estos factores puede afectar significativamente el rendimiento y la usabilidad del sistema.
Basado en la tecnología de paso a través de USB, la aplicación permite redirigir los dispositivos USB a través de la red (Ethernet, WAN, Internet) haciéndolos accesibles desde un sistema operativo invitado. La solución de software está disponible para los sistemas operativos Windows, Linux y Mac y admite conexiones multiplataforma.
Una vez conectado, el dispositivo aparecerá en el Administrador de dispositivos de su sistema operativo invitado como si estuviera conectado físicamente a la máquina virtual.
A pesar de sus muchas ventajas, la solución Xen todavía tiene un gran inconveniente. Como cualquier hipervisor bare metal, Xen tiene problemas para redirigir los puertos USB a un sistema operativo host. Al mismo tiempo, existen algunas formas de obtener acceso a un dispositivo USB desde un dominio invitado de Xen. El método anterior describe cómo hacer esto con la ayuda de un software de paso a través de USB Xenserver, pero hablemos también de algunos métodos "nativos" para acceder a USB desde Xen.
Con mayor frecuencia, los dispositivos USB se especifican por su dirección de bus (bus.device) o su etiqueta de dispositivo (vendorid: deviceid).
Puede enumerar los dispositivos USB en el sistema mediante el comando lsusb:
Bus 001 Device 003: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub
Bus 003 Device 002: ID f617:0905
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 004: ID 0424:2640 Standard Microsystems Corp. USB 2.0 Hub
Bus 001 Device 005: ID 0424:4060 Standard Microsystems Corp. Ultra Fast Media Reader
Bus 001 Device 006: ID 046d:c016 Logitech, Inc. Optical Wheel Mouse
Por ejemplo, si necesita redirigir el mouse Logitech, puede especificar 046d: c016 o 1.6.
Por lo general, los dispositivos host individuales se reenvían a un sistema operativo invitado a través de un controlador de dispositivo USB emulado o PVUSB.
1. El primer método implica que el modelo de dispositivo (qemu) presenta un controlador USB emulado al huésped. Después de eso, el proceso del modelo de dispositivo toma el control del dispositivo desde el dominio 0 y transmite los comandos USB entre el sistema operativo invitado y el dispositivo USB host.
Este método solo se puede usar con dominios HVM y no está disponible para dominios que se ejecutan con dominios de código auxiliar de modelo de dispositivo.
En cuanto a Xen 4.6, xl solo admite el USB emulado, desde el archivo de configuración.
Puede habilitar el concentrador USB emulado utilizando usb=1 . Luego, deberá especificar los dispositivos en la lista de dispositivos en el archivo de configuración junto con otros dispositivos emulados utilizando host: USBID . Por ejemplo:
usb=1
usbdevice=['tablet','host:1.6','host:0424:460']
USB 1.1 es el controlador USB predeterminado creado por qemu. Para algunos dispositivos, sin embargo, esto no es suficiente. En tal caso, comenzando con 4.6, puede usar usbversion para especificar también la versión del controlador USB. Sin embargo, actualmente esto no es compatible con usbdevice y, por lo tanto, solo es eficiente junto con la redirección USB de especias. Esta opción no está disponible para qemu-tradicional.
2. El segundo método, PVUSB, utiliza una interfaz front-end / back-end paravirtualizada, similar a la red Xen PV tradicional y los protocolos de disco.
Para poder utilizar PVUSB, necesita usbfront en su sistema operativo invitado y usbback en dom0 o backend usb en qemu (o su dominio de controlador USB).
La compatibilidad con PVUSB en xl/libxl (tanto para el dispositivo PVUSB del archivo de configuración como para la conexión y desconexión del dispositivo PVUSB) está disponible desde Xen 4.7. Ahora funciona con USB 1.1 y USB 2.0.
Esto es lo que debe hacer para pasar a través de dispositivos USB host al huésped con PVUSB:
usbctrl=['type=qusb,version=2,ports=4', 'type=qusb,version=1, ports=4', ]
usbdev=['hostbus=2, hostaddr=1, controller=0,port=1', ]
Además, puede especificar solo usbdev, por ejemplo:
usbdev=['hostbus=2, hostaddr=1, ]
For instance:
#xl usbctrl-attach test_vm version=1 ports=8
Otra forma popular de obtener acceso a un dispositivo USB desde un dominio invitado Xen es una solución de terceros dedicada que funciona a través de la red. En este caso, necesitará un servidor USB (hardware o software) y un cliente USB (software). Este último es en realidad un controlador especial para el sistema operativo. Ahora, echemos un vistazo más de cerca a esta forma simple y eficiente de obtener soporte de transferencia Xen USB en su máquina virtual.