Udev

From wikinotes

Replaces linux devfs beginning with linux kernel-2.6
Responsible for managing the /dev virtual filesystem, populating it with nodes representing devices and files.

udev was built to respond to hotplug type events, like a USB device that was just plugged in.


Documentation

man udev https://man.archlinux.org/man/core/systemd/udev.7.en
man udev.conf https://man.archlinux.org/man/core/systemd/udev.conf.5.en

Tutorials

debian wiki https://wiki.debian.org/udev
arch wiki https://wiki.archlinux.org/index.php/Udev
ubuntu-forums: choose device for /dev/video0 https://askubuntu.com/questions/715333/assign-webcam-to-a-specific-dev-video
arch-forums: choose device for /dev/video0 https://bbs.archlinux.org/viewtopic.php?id=162228
arch-wiki: webcam setup https://wiki.archlinux.org/title/Webcam_setup

Locations

/etc/udev/udev.conf config
/etc/udev/rules.d/*.rules user udev rules (priority over all other rules)
/usr/lib/udev/rules.d/*.rules

/usr/local/lib/udev/rules.d/*.rules

distro udev rules
/run/udev/rules.d/*.rules volatile runtime rules

Usage

journalctl -u systemd-udevd.service                  # see udevd logs
# list info about a device and it's parent devices
udevadm info \
    --name=/dev/${DEVICE} \
    --attribute-walk
# confirm rule assigned correct device (without reloading rules)
udevadm test $(udevadm info -q path -n /dev/video0)

# reload rules
udevadm control --reload-rules

Notes

udev rule basics
udev rule syntax