Linux udev Guide - ryzendew/Linux-Tips-and-Tricks GitHub Wiki
Linux udev Guide
Complete beginner-friendly guide to udev on Linux, covering Arch Linux, CachyOS, and other distributions including device management, udev rules, and hardware configuration.
Table of Contents
Understanding udev
What is udev?
udev manages device nodes in /dev.
Functions:
- Device detection: Detects hardware changes
- Device nodes: Creates device files
- Permissions: Sets device permissions
- Naming: Provides consistent device names
Why it matters:
- Hotplug support: Handles USB devices
- Persistent naming: Consistent device names
- Permissions: Control device access
udev Basics
Check udev
Verify udev:
# Check udev version
udevadm --version
# Check udev service
systemctl status systemd-udevd
List Devices
View devices:
# List all devices
udevadm info --export-db
# List USB devices
lsusb
# List block devices
lsblk
udev Rules
Rule Locations
Rule files:
# System rules
/etc/udev/rules.d/
# User rules (if supported)
~/.config/udev/rules.d/
Rule Syntax
Basic format:
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="1234", ATTR{idProduct}=="5678", MODE="0666"
Components:
- ACTION: add, remove, change
- SUBSYSTEM: usb, block, input
- ATTR: Device attributes
- MODE: File permissions
Creating Rules
Get Device Info
Find device attributes:
# Get device info
udevadm info -a -n /dev/sdb
# Or by path
udevadm info -a -p /sys/class/block/sdb
Create Rule
Write rule:
# Create rule file
sudo vim /etc/udev/rules.d/99-mydevice.rules
Example rule:
# USB device rule
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="1234", ATTR{idProduct}=="5678", MODE="0666", GROUP="users"
Common Examples
USB Device Permissions
Allow USB access:
# USB storage
ACTION=="add", SUBSYSTEM=="block", SUBSYSTEMS=="usb", MODE="0666", GROUP="users"
Persistent Device Names
Create symlink:
# Create symlink for USB device
ACTION=="add", SUBSYSTEM=="block", ATTR{serial}=="ABC123", SYMLINK+="myusb"
Run Script on Device
Execute script:
# Run script when device added
ACTION=="add", SUBSYSTEM=="usb", RUN+="/usr/local/bin/my-script.sh"
Troubleshooting
Rule Not Working
Test rule:
# Test rule
udevadm test /sys/class/block/sdb
# Reload rules
sudo udevadm control --reload-rules
# Trigger rules
sudo udevadm trigger
Check Device Info
Debug device:
# Get device info
udevadm info -a -n /dev/sdb
# Monitor events
udevadm monitor
Summary
This guide covered udev basics, rule creation, and device management for Arch Linux, CachyOS, and other distributions.
Next Steps
- Hardware Detection - Hardware setup
- System Configuration - System setup
- udev Documentation:
man udev
This guide covers Arch Linux, CachyOS, and other Linux distributions. For distribution-specific details, refer to your distribution's documentation.