O que acontece quando os dispositivos são criados e como eu emulo o comportamento?

2

A razão pela qual faço a pergunta é porque gostaria de emular um dispositivo ou criar um dispositivo (especificamente um dispositivo usb) no disco sem conectar o dispositivo físico.

O que eu gostaria é criar um dispositivo de tal forma que ele apareça na saída lsusb .

O que tentei até agora é criar um arquivo com dd e usar losetup para conectar o arquivo criado com um dispositivo de loop (/ dev / loop *). No entanto, isso não cria uma mensagem no dmesg .

Editar:

Como solicitado, aqui estão mais informações sobre o meu dilema. Eu comprei um pendrive há algum tempo com um instrutor de idiomas que limitou sua execução (.exe) ao pendrive. Como o vinho não transfere os dados do dispositivo USB para o exe, fui forçado a usá-lo em uma VM. Como eu uso o bastão em uma VM, achei que poderia imitá-lo no meu host e ficar completamente virtual - sem necessidade de usar o usb-stick físico.

    
por UncleJack 05.10.2011 / 23:48

1 resposta

2

O que você está procurando seria chamado de dispositivo USB virtual. Eu não acho que o kernel padrão contenha algo assim.

Algumas máquinas virtuais podem emular dispositivos USB para o convidado (em vez de retransmitir dados para um dispositivo USB de hardware conectado ao host). Por exemplo, o KVM pode emular dispositivos de armazenamento USB e de interface humana.

O framework gadget é uma maneira de os dispositivos Linux funcionarem como periféricos USB (o USB é altamente assimétrico: dispositivos e hosts fazem coisas diferentes). Há também um driver usbnet para retransmitir conexões USB via Ethernet; você poderia usar isso e escrever um programa que fala sobre o protocolo Ethernet.

O uso desses métodos indiretos não será necessariamente mais fácil do que implementar seu próprio driver USB. Se você optar por seguir esse caminho, Drivers de dispositivo do Linux (3ª ed.) é o livro para leia.

O que você está perguntando provavelmente não será fácil. Se você explicar qual é o problema subjacente, alguém pode sugerir uma solução melhor.

    
por Gilles 06.10.2011 / 01:16