[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