[Linux-Biella] [SOLVED] regola udev per remove di device usb
PaulTT
ptt a bilug.it
Mar 27 Mar 2018 16:46:52 CEST
ve lo mando visto che ci ho litigato per un po', e ho trovato la
soluzione.....
posto di sapere il codice del vendor e il codice del device, li
chiameremo rispettivamente 1111 e 2222
io mi ero gia' fatto una regola di questo tipo, giusto per avviarmi un
processo solo quando inzicco un device del vendor 1111:
SUBSYSTEM=="usb", ACTION=="add", ATTRS{idVendor}=="1111", RUN="/bin/sh
-c '/usr/local/bin/mioscriptchefacosefighe'"
volendo si puo' filtrare anche il device, a me bastava il vendor:
SUBSYSTEM=="usb", ACTION=="add", ATTRS{idVendor}=="1111",
ATTRS{idProduct}=="2222", RUN="/bin/sh -c
'/usr/local/bin/mioscriptchefacosefighe'"
in teoria, _IN_TEORIA_, dovrebbe bastare fare il contrario per l'azione
'remove', in pratica non e' vero, ho risolto alla fine in questo modo:
SUBSYSTEM=="usb", ACTION=="remove", ENV{PRODUCT}=="1111/2222/1234",
RUN="/bin/sh -c '/usr/bin/killall mioscriptchefacosefighe'"
sostanzialmente, invece di usare ATTRS{idVendor}, uso la variabile di
ambiente completa degli id del device
per scoprire il percorso completo, e' sufficiente lanciar sto comando:
udevadm monitor --environment --udev
che inziccando o strappando i device dalla usb, esce delle cose, tra le
quali, tutte le variabili che il demone di udev vede.....
utlizzando qualcosa di univoco da quell'output si puo' intercettare
l'evento che serve, io ho ho intercettato direttamente la variabile di
ambiante
PRODUCT=1111/2222/1234
che corrisponde al mio device
sul mio sistema, per quel device, staccandolo, infatti, non escon le
variabili complete ATTRS{idVendor} di cui sopra
#ciaone #enjoy #udevrules :D:D:D:D:D
--
Mettitelo bene in testa.
La speranza č una cosa pericolosa.
La speranza puņ far impazzire un uomo.
Maggiori informazioni sulla lista
Linux