Eu respondi uma pergunta semelhante com um exemplo há um tempo atrás:
Executando o script quando ele detecta E / S
Use este comando,
udevadm monitor --property
Insira o USB e verifique uma propriedade que é comum aos dispositivos que você deseja usar, por exemplo:
ID_TYPE=disk
ID_USB_DRIVER=usb-storage
Em seguida, crie sua regra
sudo gedit /etc/udev/rules.d/96-myusb.rules
com esses valores em
ACTION=="add", SUBSYSTEM=="usb",ENV{ID_TYPE}=="disk", ENV{ID_USB_DRIVER}=="usb-storage",RUN+="/usr/local/bin/myusb-add.sh"
ACTION=="remove", SUBSYSTEM=="usb",ENV{ID_TYPE}=="disk",ENV{ID_USB_DRIVER}=="usb-storage",RUN+="/usr/local/bin/myusb-remove.sh"
O arquivo de regras afetará apenas os dispositivos que correspondem ao ENV{ID_TYPE}
e ENV{ID_USB_DRIVER}
. Isso não afetará nenhum outro dispositivo. Se você quiser restringir o restante dos dispositivos, talvez seja possível criar uma regra que corresponda ao restante dos dispositivos e não faça nada no RUN
.
Se você quiser executar a ação somente quando um determinado dispositivo USB estiver conectado a uma porta USB específica, tente adicionar ENV {DEVPATH}="yourUSBPATH" ao arquivo de regras. Substitua yourUSBPATH pelo caminho que udevadm monitor --property
informa quando você conecta o dispositivo à porta que deseja usar. Eu não testei isso, mas acho que é uma abordagem lógica.