Detectar mudança no estado do dispositivo usb

3

Problema: Como posso detectar quando o gadget está ou não conectado a um host do gadget em si?

Background: O módulo de kernel g_mass_storage do Linux pode ser usado para fornecer um dispositivo de armazenamento em massa através de uma porta USB OTG. Eu gostaria de usar isso para permitir a transferência de arquivos através de um USB para um dispositivo rodando Linux e este módulo.

Infelizmente, isso não é diretamente suportado pelo meu módulo, tendo acesso ao cliente e ao host. O armazenamento pode ser escasso na melhor das hipóteses. Mas eu poderia evitar isso controlando a máquina Linux (cliente USB) de modo que é apenas leituras de gravações do armazenamento quando o host USB não está conectado.

Uma solução muito ingênua seria analisar a saída dmesg . Isso pelo menos me diz claramente quando está conectado, mas não quando é removido.

Minha pesquisa mostra que, em algum lugar em /sys/ , há um sinalizador de status de gadget, veja esta cadeia , mas não tenho certeza de onde.

Indo ao contrário, conectando o gadget em uma máquina Linux, sei que posso usar udev , mas udev monitor parece não dizer nada sobre o estado do gadget no gadget em si.

    
por tahsmith 10.05.2017 / 11:39

0 respostas