Hacer que una computadora actúe como un dispositivo USB virtual para otros equipos

Pregunta:

Algunas aplicaciones simulan una unidad USB o CD Rom virtual como si una unidad USB estuviera conectada a la computadora.

¿Existe alguna configuración o aplicación que proporcione una unidad USB virtual, no para el sistema operativo en sí, sino para otros equipos que aceptan unidad USB, a través de un puerto USB?

Así que tendré un disco duro virtual (por ejemplo, un archivo *.vdi ) en la computadora, que está conectado, a través de una toma USB, como una unidad USB a algún otro equipo (por ejemplo, un teléfono celular o una computadora portátil).

Respuesta:

Editar: Si bien esta respuesta era correcta en ese momento (con algunas raras excepciones), desde entonces ha habido más desarrollos. Ahora tenemos USB-C, por ejemplo, que admite los modos de dispositivo y host. Muchos dispositivos, especialmente los SBC, vienen con USB-C y un controlador que puede ejecutarse en ambos modos. El problema principal sigue siendo principalmente en el lado de la PC con Windows, donde faltan controladores de modo de dispositivo USB-C con el sistema operativo. Linux, sin embargo, incluye USB-C controladores en modo dispositivo (también conocidos como controladores de USB "Gadget" -. A pesar de que puede que tenga que compilar un kernel personalizado si no han sido incluidos en la distribución)

Debería agregar un dispositivo USB / controlador periférico a la computadora, a diferencia del controlador de host USB con el que suelen venir.

Algo como esto: https://www.maximintegrated.com/en/products/interface/controllers-expanders/MAX3420E.html

Desafortunadamente, tendrías que encontrar una manera de conectarlo a tu placa base. Técnicamente, se puede hacer. Prácticamente, tendrías que rediseñar la placa base para incluirla. Es posible que tenga la suerte de encontrar un bus SPI o I2C expuesto en algún lugar de su placa base para permitirle agregarlo, pero generalmente están conectados directamente a lo que sea para lo que se estén utilizando, a menos que esté usando una placa de desarrollo o un solo- computadora de a bordo con GPIO expuesto y otros puertos como una Raspberry Pi.

La otra opción sería un controlador USB On-the-Go. Las placas base diseñadas para dispositivos integrados y portátiles tienden a tener un controlador USB OTG (On-the-go), que puede funcionar como un controlador de host o de dispositivo. Por ejemplo, la Raspberry Pi antes mencionada tiene un controlador On-the-Go, pero en todos los modelos, excepto en el Pi Zero, se vuelve a cablear a un puerto host o un concentrador USB integrado que niega el uso de la funcionalidad del dispositivo USB. El BeagleBone Black tiene un puerto OTG.

Sin embargo, eso no es todo: una vez que tenga el hardware, también necesitará el software. Linux tiene algunos controladores de gadget USB de kernel útiles ("gadget USB" es otro término para periférico / dispositivo USB) como g_serial y g_ethernet que le permiten conectar su dispositivo a otra computadora y ser visible como un dispositivo serial o ethernet sobre USB (hay otros para exponer un dispositivo como almacenamiento masivo, que le permiten usar un archivo como dispositivo de bloque y exponer la computadora como un dispositivo de almacenamiento masivo). El BeagleBone Black tiende a venir con esto habilitado de manera predeterminada, por lo que puede simplemente conectarlo a su PC a través de USB y verlo como un dispositivo en red, y creo que también aparece como un dispositivo de almacenamiento masivo mediante el uso de un controlador compuesto (lo que permite para que aparezca como varios tipos de dispositivos USB en una sola conexión). El Pi Zero puede usarlos , pero no lo hace de forma predeterminada. Para Windows u otros sistemas operativos, probablemente tendrá que escribir ese controlador de dispositivo usted mismo.

Entonces, teóricamente, puedes hacerlo. Puede derribar su PC de escritorio, intentar encontrar un bus compatible no utilizado en la placa base en algún lugar (probablemente algunos pines no utilizados en un controlador IC), o una forma de extender un bus I2C o SPI interno, o algo que pueda arrancar y reemplace y suelde un chip USB OTG o controlador de dispositivo en él. Luego, puede instalar Linux y usar un controlador de dispositivo, o escribir el suyo propio para otro sistema operativo. Prácticamente, a menos que sea un ingeniero electrónico de primer nivel, no podrá hacerlo. Al menos, no hasta que alguien salga con ese adaptador escurridizo con un dispositivo o puerto OTG que se conecta a un puerto USB (teóricamente, eso se podría hacer con un microcontrolador como Arduino conectado a un par de circuitos integrados de controlador de dispositivo USB), y escribe los controladores para ejecutarlo.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım