Eu executo Linux embarcado em uma plataforma semelhante a zedboard. Preciso criar regras do udev para vários dispositivos que serão conectados a ele.
Eu tenho gadgetfs e configfs no kernel e os construí como módulos. Se eu carregar os módulos, posso usar um dispositivo USB apropriado, como Ethernet sobre USB para um laptop ou qualquer outra coisa.
O problema começa quando eu quero oferecer suporte a hot plugging e, portanto, preciso usar regras do udev. Então eu executei o udevadm monitor, mas ele não mostra nenhum kernel ou gatilhos do udev quando qualquer dispositivo USB está conectado. Se eu carregar um módulo, posso ver os gatilhos do kernel/udev para o dispositivo USB enquanto o módulo é carregado.
Este é um comportamento normal? Eu pensei que o kernel deveria relatar que um USB está conectado através de um gatilho, quer eu tivesse um módulo que pudesse suportá-lo ou não. Drivers USB regulares também estão integrados ao kernel, mas parecem não funcionar, e é por isso que passei a usar gadgetfs e configfs.
Alguém sabe por que meu udev não mostra eventos de gatilho sem um módulo de gadget carregado? Não posso automatizar a conexão a quente se não conseguir ver os eventos de acionamento quando um USB estiver conectado.
Meu controlador USB é chipidea e eu o uso no modo OTG.