Debería agregar un dispositivo USB / controlador periférico a la computadora, en lugar del controlador host USB con el que suelen venir.
Algo así: 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ía 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 que estén utilizando, a menos que esté usando una placa de desarrollo o computadora de a bordo con GPIO expuesto y otros puertos como 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 host o controlador de dispositivo. Por ejemplo, el Raspberry Pi mencionado anteriormente tiene un Controlador On-the-Go, pero en todos los modelos, excepto el Pi Zero, que se vuelve a conectar a un puerto host o un concentrador USB a bordo 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 útiles de dispositivos USB del núcleo ("dispositivo 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 (existen 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 forma predeterminada, por lo que simplemente puede 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 (que permite aparecerá como múltiples tipos de dispositivos USB en una sola conexión. El Pi Zero puede usarlos , pero no lo hace de manera predeterminada. Para Windows u otros sistemas operativos, probablemente tenga que escribir ese controlador de dispositivo usted mismo.
Entonces, teóricamente, puedes hacerlo. Puede derribar su PC de escritorio, tratar de 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 interno I2C o SPI, 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 gadget, 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 elusivo adaptador con un dispositivo o puerto OTG que se conecta a un puerto USB (en teoría, eso podría hacerse con un microcontrolador como Arduino conectado a un par de circuitos integrados de controlador de dispositivo USB), y escribe los controladores para ejecutarlo.
El USB es asimétrico: un lado es un host, el otro lado es un dispositivo periférico. No puede hacer que un dispositivo periférico actúe como host o viceversa. Es posible que un puerto USB pueda actuar como cualquier lado; Esto se llama USB on-the-go y está presente en algunos teléfonos móviles y tabletas. Los puertos son puertos de tipo dispositivo físico, no puertos de tipo host. Nunca he visto una PC con un puerto de dispositivo. Esto requiere electrónica en el controlador, no es suficiente hacer un cable que se ajuste a ambos extremos.
Entonces, no, no podrá convertir una PC en un dispositivo USB.
Si desea usar una computadora como dispositivo de almacenamiento USB, puede usar un teléfono móvil o tableta con una conexión USB en lugar de usar una PC.
fuente
Puede considerar usar uno de los "cables puente USB-USB" especiales, a veces llamados "cables de red USB". Como uno mencionado en estos artículos:
Le permiten transferir archivos entre dos PC. He estado usando este tipo de cables hace más de diez años (en tiempos de Windows XP) y en esos tiempos todos los cables disponibles en el mercado requerían un controlador y software especiales. Le permiten transferir archivos solo a través de un controlador de archivos especial, que se envía junto con los controladores de cable en un disco de instalación y, por lo tanto, no permite que una PC actúe ante otra como un dispositivo externo USB puro.
No estoy seguro, si algo ha cambiado desde entonces y si las nuevas soluciones le permiten solo transferir archivos usando un software especial y, si puede obligar a una PC a actuar como un dispositivo externo a otra PC.
fuente
Como explica Matt Thomson en la respuesta , no es posible hacer que un puerto USB físico de una computadora PC actúe como un dispositivo esclavo USB, ya que falta el controlador esclavo USB.
Eso significa que si tenemos una placa adaptadora que puede proporcionar USB en modo esclavo (como Raspberry Pi Zero), tenemos que conectarlo a su PC host por un canal diferente, como Ethernet por cable. Tengo dos propuestas diferentes sobre qué protocolo podría ejecutar a través de esa conexión Ethernet:
(1) Exponga el puerto USB sobre la red IP.
Use el software para exponer el puerto USB en modo esclavo de Raspberry Pi Zero como un dispositivo USB virtual a su PC. El proyecto USB / IP proporciona esto, mediante un controlador que puede transportar USB a través de redes IP. Aquí hay un ejemplo del uso de USB / IP para proporcionar un dispositivo USB simulado a una computadora, que sería su PC aquí.
Lo que no sé en esta solución propuesta es si el software USB / IP ya puede exponer un puerto esclavo USB a través de una red IP, o solo un puerto host USB de forma normal.
Pero incluso si eso funciona, aún tiene que configurar o adaptar los controladores de dispositivo en su PC de tal manera que (1) acepten la conexión USB / IP entrante como una conexión USB, (2) proporcionen el modo esclavo USB en lugar de Modo host USB, (3) simula un dispositivo de almacenamiento masivo USB al servir los datos desde la ubicación asignada (su
.vdi
archivo).En general, esa es una forma compleja de hacerlo.
(2) Exponga el archivo a través de la red IP.
Esta es una forma mucho más simple de cómo utilizar la conexión Ethernet al Raspberry Pi Zero: en el Raspberry Pi Zero, monte los datos almacenados en su PC a través de un sistema de archivos de red. Estos archivos aparecen lógicamente como parte del sistema de archivos de Pi Zero, y puede servirlos con el controlador de dispositivo USB de Linux para que Raspberry Pi parezca un dispositivo de almacenamiento masivo USB para dispositivos conectados.
fuente