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.
Tags usb kernel-modules usb-device