Udev

Commands

Monitoring events

udevadm monitor -k -u -p

Reloading rules

udevadm control --reload

Manually force to trigger rules

udevadm trigger

USB

Use lsblk to get the usb name

lsblk

You will get something similar to this.

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 223.6G  0 disk
├─sda1   8:1    0   200M  0 part /boot
...
sdb      8:16   0  59.6G  0 disk
├─sdb1   8:17   0   651M  0 part
└─sdb2   8:18   0    64M  0 part

My usb device name is the first partition of my second disk i.e. sdb1

You access your drives via /dev

Then use blkid to get the usb uuid

sudo blkid /dev/device_name

Output:

/dev/sdb1: BLOCK_SIZE="2048" UUID="2020-03-01-09-32-57-00" LABEL="ARCH_202003" TYPE="iso9660" PTUUID="3372b9d9" PTTYPE="dos" PARTUUID="3372b9d9-01"

Udev monitor

Execute

udevadm monitor --udev

then plug the usb and wait to see informations.

/devices/pci0000:00/0000:00:1d.7/usb1/1-5/1-5:1.0
udevadm info --path=/your/device/path --attribute-walk
...
ATTR{idVendor} 5567
ATTR{idProduct} 0781
...

Rule

/etc/udev/rules.d/

CD 95-usb-backup.rules

KERNEL=="sd*", ACTION=="add", ATTR{serial}=="1", \
    RUN+="/home/eevos/.scripts/system-usb-udev.sh --update"
KERNEL=="sd*", ACTION=="remove", \
    RUN+="/home/eevos/.scripts/system-usb-udev.sh --update"

USB disk 95-usb-backup.rules

KERNEL=="sd*", ACTION=="add", ATTR{serial}=="1", \
    RUN+="/home/eevos/.scripts/system-usb-udev.sh --update"
KERNEL=="sd*", ACTION=="remove", \
    RUN+="/home/eevos/.scripts/system-usb-udev.sh --update"

SDC Cards 95-sd-pictures.rules

KERNEL=="sd*", ACTION=="add", ATTR{removable}=="1", \
    RUN+="/home/eevos/.scripts/system-usb-udev.sh --update"
KERNEL=="sd*", ACTION=="remove", \
    RUN+="/home/eevos/.scripts/system-usb-udev.sh --update"

Execute what you want

notify⁻send "USB xxx Plugged in"

Reload udev rules

udevadm control --reload

References