2009-09-16 7 views
3

Je n'étais pas vraiment sûr si c'était le bon site pour poser cette question, mais je l'ai mis ici parce que c'est une sorte de question de programmation et j'ai figuré la foule SO était le plus orienté Linux des trois sites.udev ignore_device ne fonctionnera pas si l'appareil est déjà connecté

De toute façon, j'essaie de trouver un moyen de simuler la déconnexion d'un périphérique d'un aspect logiciel, tout comme si un utilisateur le déconnecte physiquement. Jusqu'à présent, je l'ai fait une règle udev dans /etc/udev/rules.d appelé 10-nano.rules:

SYSFS{idVendor}=="05ac", OPTIONS+="ignore_device" 

Cette règle fonctionne très bien pour ignorer les périphériques, mais seulement après qu'ils ont été déconnectés et reconnectés. Mais ce que je veux faire est d'être capable d'écrire la règle, puis de faire ignorer le périphérique comme s'il était déconnecté. J'ai essayé "udevadm trigger" avec et sans sudo, mais pour une raison quelconque, je ne peux pas appliquer cette règle pendant que l'appareil est connecté. Aucune suggestion? Par ailleurs, je suis en mesure de reconnecter un périphérique qui a été ignoré en supprimant 10-nano.rules, puis en exécutant "sudo udevadm trigger", mais comme indiqué ci-dessus, et non l'inverse. (pour une raison ou une autre, l'heure de mon système et de l'Internet se sont foiré quand j'exécute cette commande)

+0

'ignore_device' est [n'est plus supporté] (https://lwn.net/Articles/364728/) – sphakka

Répondre

1

Avez-vous essayé d'utiliser le module qui contrôle l'appareil? rmmod

Vous pouvez également simuler supprimer des événements avec udevadm test, p.e:

sudo udevadm test --action="remove" <devpath> 

Vous pouvez voir comment les devpaths prennent un regard à udevadm monitor lors de la connexion physique ou la suppression d'un périphérique ou les vérifier dans /sys/<devpath>.

Questions connexes