Faça um computador agir como um dispositivo USB virtual para outros equipamentos

10

Alguns aplicativos simulam uma unidade USB ou CD Rom virtual como se uma unidade USB estivesse conectada ao computador.

Existe alguma configuração ou aplicação que ofereça uma unidade USB virtual, não para o sistema operacional em si, mas para outros equipamentos que aceitam drive USB, através de uma porta USB.

Então eu terei um disco rígido virtual (por exemplo, um arquivo *.vdi ) no computador, que está conectado, através de um soquete USB, como um drive USB a algum outro equipamento (por exemplo, um celular ou um laptop) .

    
por user62511 19.03.2014 / 12:03

4 respostas

9

Você precisaria adicionar um controlador USB Device / Peripheral ao computador, ao contrário do USB Host Controller que eles costumam usar.

Algo parecido com isto: link

Infelizmente, você precisa encontrar uma maneira de conectá-lo à sua placa-mãe. Tecnicamente, isso pode ser feito. Praticamente, você teria que reprojetar a placa-mãe para incluí-la. Você pode ter a sorte de encontrar um barramento SPI ou I2C exposto em algum lugar na sua placa-mãe para permitir que você o adicione, mas eles geralmente são conectados diretamente ao que eles estão sendo usados, a menos que você esteja usando uma placa ou computador de bordo com GPIO exposto e outras portas, como um Raspberry Pi.

A outra opção seria um controlador USB On-the-Go. Placas-mãe projetadas para dispositivos embarcados e portáteis tendem a ter um controlador USB OTG (On-the-go), que pode funcionar como um host ou controlador de dispositivo. Por exemplo, o Raspberry Pi mencionado acima tem um controlador On-the-Go, mas em todos os modelos, exceto o Pi Zero, que é reconectado a uma porta host ou a um hub USB embutido, negando o uso da funcionalidade do dispositivo USB. O BeagleBone Black tem uma porta OTG.

Isso não é tudo - uma vez que você tem o hardware, você também precisa do software. O Linux possui alguns drivers úteis de Gadgets USB para o kernel ("gadget USB" é outro termo para periféricos / dispositivos USB), como g_serial e g_ethernet que permitem que você conecte seu dispositivo a outro computador e fique visível como um dispositivo serial ou ethernet-over-USB (há outros para expor um dispositivo como armazenamento em massa, que permitem usar um arquivo como um bloco dispositivo e expor o computador como um dispositivo de armazenamento em massa). O BeagleBone Black tende a ter isso habilitado por padrão, então você pode simplesmente conectá-lo ao seu PC via USB e vê-lo como um dispositivo de rede - e eu acredito que ele também aparece como um dispositivo de armazenamento em massa usando um driver composto para aparecer como vários tipos de dispositivos USB em uma única conexão.) The Pi Zero pode usar estes , mas não por padrão. Para o Windows ou outros sistemas operacionais, você provavelmente teria que escrever o driver de dispositivo por conta própria.

Então, teoricamente, você pode fazer isso. Você pode derrubar seu PC desktop, tentar encontrar um barramento compatível não utilizado na placa-mãe em algum lugar (provavelmente alguns pinos não usados em um IC controlador), ou uma maneira de estender um barramento interno I2C ou SPI, ou algo que você pode rasgar e substituir e soldar um chip OTG USB ou controlador de dispositivo nele. Então você pode instalar o Linux e usar um driver de gadget, ou escrever o seu próprio para outro sistema operacional. Praticamente, a menos que você seja um engenheiro eletrônico de alto nível, você não será capaz de fazê-lo. Pelo menos, não até que alguém saia com esse adaptador indescritível com um dispositivo ou porta OTG que se conecta a uma porta USB (teoricamente, isso poderia ser feito com um microcontrolador como um Arduino conectado a um par de ICs de controlador de dispositivo USB), e grava os drivers para executá-lo.

    
por 14.05.2016 / 16:54
5

USB é dissimétrico: um lado é um host, o outro lado é um dispositivo periférico. Você não pode fazer um dispositivo periférico agir como um host ou vice-versa. É possível que uma porta USB possa atuar como um dos lados; Isso é chamado de USB on-the-go e está presente em alguns celulares e tablets. As portas são fisicamente portas do tipo dispositivo, não portas do tipo host. Eu nunca vi um PC com uma porta de dispositivo. Isso requer eletrônicos no controlador, não é suficiente fazer um cabo que se encaixa nas duas extremidades.

Então não, você não poderá transformar um PC em um dispositivo USB.

Se você quiser usar um computador como dispositivo de armazenamento USB, poderá usar um celular ou tablet com uma conexão USB em vez de usar um PC.

    
por 20.03.2014 / 02:47
1

Você pode considerar o uso de um dos "cabos em ponte USB-USB" especiais, às vezes chamados de "cabos de rede USB". Como um mencionado nestes artigos:

Eles permitem que você transfira arquivos entre dois computadores. Eu tenho usado esse tipo de cabos há mais de dez anos (em tempos de Windows XP) e, nessa época, todos esses cabos disponíveis no mercado exigiam um driver e um software especiais. Eles permitem que você transfira arquivos somente por meio de um gerenciador de arquivos especial, que é enviado junto com os drivers de cabo em um disco de instalação e, portanto, não permite que um PC atue como outro dispositivo externo USB puro.

Não tenho certeza, se alguma coisa mudou desde então e se novas soluções permitirem que você apenas transfira arquivos usando um software especial e - se você puder forçar um PC a agir como um dispositivo externo para outro PC.

    
por 10.03.2015 / 10:24
1

Como explicado na resposta de Matt Thomson , não é propriamente possível fazer uma porta USB física de um computador PC agir como um dispositivo escravo USB, como o controlador escravo USB está faltando.

Isso significa que se tivermos uma placa adaptadora que possa fornecer USB no modo escravo (como o Raspberry Pi Zero), temos que conectá-la ao seu PC host por um canal diferente, como a Ethernet com fio. Eu tenho duas propostas diferentes que protocolo você poderia executar sobre essa conexão Ethernet:

(1) Exponha a porta USB pela rede IP.

use o software para expor a porta do modo escravo USB do Raspberry Pi Zero como um dispositivo USB virtual ao seu PC. O projeto USB / IP oferece isso, por meio de um driver que pode transportar redes USB sobre IP. Aqui é um exemplo do uso de USB / IP para fornecer um dispositivo USB simulado a um computador - o que seria seu PC aqui.

O que eu não sei nesta solução proposta é se o software USB / IP já é capaz de expor uma porta USB escrava por rede IP, ou apenas uma porta host USB como normal.

Mas mesmo que isso funcione, você ainda precisa configurar os drivers para o modo slave USB no seu PC para que ele funcione como um dispositivo de armazenamento em massa e sirva os dados do local atribuído ( .vdi file). Então, é uma maneira complexa de fazer isso.

(2) Exponha o arquivo pela rede IP.

Esta é uma maneira muito mais simples de como utilizar a conexão Ethernet para o Raspberry Pi Zero: basta montar os dados armazenados em seu PC através de um sistema de arquivos de rede de algum tipo. Esses arquivos aparecem logicamente como parte do sistema de arquivos do Pi Zero, e você pode servi-los com o driver de dispositivo USB do Linux que faz com que o Raspberry Pi pareça um dispositivo de armazenamento em massa para dispositivos conectados.

    
por 31.10.2017 / 01:08

Tags