udev ignore_device não vai funcionar se o dispositivo já conectado
Pergunta
Eu não estava realmente certo se este era o local certo para colocar esta pergunta, mas eu colocá-lo aqui uma vez que esta é uma espécie de questão de programação e eu percebi a multidão SO foi o mais Linux orientada dos três locais .
De qualquer forma, estou tentando descobrir uma maneira de simular desconectar um dispositivo a partir de um aspecto de software, como se um usuário desconectou-lo fisicamente. Até agora eu fiz uma regra udev em /etc/udev/rules.d chamado 10-nano.rules:
SYSFS{idVendor}=="05ac", OPTIONS+="ignore_device"
Esta regra funciona bem para ignorar dispositivos, mas só depois de terem sido desconectado e reconectado. Mas o que eu quero fazer é ser capaz de escrever a regra, e depois ter o dispositivo ignorado como se estivesse desligada. Eu tentei "gatilho udevadm" com e sem sudo, mas por alguma razão eu não posso aplicar esta regra quando o dispositivo está conectado. Alguma sugestão?
A propósito, eu sou capaz de voltar a ligar um dispositivo que tem sido ignorado, removendo 10-nano.rules, e depois executar "gatilho sudo udevadm", mas, como disse acima, não o contrário. (Por alguma razão o meu tempo sistema e internet ficar confuso quando eu executar esse comando embora)
Solução
Você já tentou rmmod
o módulo que controla o dispositivo?
Você também pode eventos remove simulados com udevadm test
, P.E:
sudo udevadm test --action="remove" <devpath>
Você pode ver como as devpaths estão tendo um olhar para udevadm monitor
quando fisicamente conectar ou remover um dispositivo, ou vê-los em /sys/<devpath>
.