# /etc/udev/rules.d/25-lfs.rules: Rule definitions for LFS. # Create the /dev/cdrom symlink. BUS=="ide", KERNEL=="*[!0-9]", PROGRAM="/bin/cat /proc/ide/%k/media", RESULT="cdrom", NAME="%k", SYMLINK+="cdrom" # Core kernel devices KERNEL=="ptmx", GROUP="tty", MODE="0666" KERNEL=="random", MODE="0444" KERNEL=="urandom", MODE="0444" KERNEL=="kmem", GROUP="kmem", MODE="0640" KERNEL=="mem", GROUP="kmem", MODE="0640" KERNEL=="port", GROUP="kmem", MODE="0640" KERNEL=="null", MODE="0666" KERNEL=="zero", MODE="0666" KERNEL=="full", MODE="0666" KERNEL=="aio", MODE="0444" KERNEL=="kmsg", MODE="0600" KERNEL=="rtc", MODE="0666" # Comms devices KERNEL=="ttyS[0-9]*", GROUP="dialout" KERNEL=="ttyUSB[0-9]*", GROUP="dialout" KERNEL=="rfcomm[0-9]*", GROUP="dialout" KERNEL=="tty[BCDEFHILMPRSTUVWX][0-9]*", GROUP="dialout" KERNEL=="ttyS[ACIR][0-9]*", GROUP="dialout" KERNEL=="ttyUSB[0-9]*", GROUP="dialout" KERNEL=="ttyACM[0-9]*", GROUP="dialout" KERNEL=="ippp[0-9]*", GROUP="dialout" KERNEL=="isdn[0-9]*", GROUP="dialout" KERNEL=="isdnctrl[0-9]*", GROUP="dialout" KERNEL=="capi", NAME="capi20", SYMLINK="isdn/capi20" KERNEL=="capi*", NAME="capi/%n", GROUP="dialout" KERNEL=="dcbri[0-9]*", GROUP="dialout" KERNEL=="ircomm[0-9]*", GROUP="dialout" # TTY's KERNEL=="tty", GROUP="tty", MODE="0666" KERNEL=="tty[0-9]*", GROUP="tty", MODE="0666" KERNEL=="vcs*", MODE="0600" KERNEL=="console", GROUP="tty", MODE="0622" # ALSA devices go in their own subdirectory KERNEL=="controlC[0-9]*", NAME="snd/%k", GROUP="audio" KERNEL=="hw[CD0-9]*", NAME="snd/%k", GROUP="audio" KERNEL=="pcm[CD0-9cp]*", NAME="snd/%k", GROUP="audio" KERNEL=="midiC[D0-9]*", NAME="snd/%k", GROUP="audio" KERNEL=="timer", NAME="snd/%k", GROUP="audio" KERNEL=="seq", NAME="snd/%k", GROUP="audio" # Sound devices KERNEL=="admmidi*", GROUP="audio" KERNEL=="adsp*", GROUP="audio" KERNEL=="aload*", GROUP="audio" KERNEL=="amidi*", GROUP="audio" KERNEL=="amixer*", GROUP="audio" KERNEL=="audio*", GROUP="audio" KERNEL=="dmfm*", GROUP="audio" KERNEL=="dmmidi*", GROUP="audio" KERNEL=="dsp*", GROUP="audio" KERNEL=="midi*", GROUP="audio" KERNEL=="mixer*", GROUP="audio" KERNEL=="music", GROUP="audio" KERNEL=="sequencer*", GROUP="audio" # Printing devices KERNEL=="lp[0-9]*", GROUP="lp" KERNEL=="parport[0-9]*", GROUP="lp" KERNEL=="irlpt[0-9]*", GROUP="lp" # Input devices go in their own subdirectory KERNEL=="mice", NAME="input/%k", MODE="0644", SYMLINK="mouse" KERNEL=="mouse*", NAME="input/%k", MODE="0644" KERNEL=="event*", NAME="input/%k", MODE="0644" KERNEL=="js*", NAME="input/%k", MODE="0644" KERNEL=="ts*", NAME="input/%k", MODE="0644" KERNEL=="psaux", MODE="0644" KERNEL=="js", MODE="0644" KERNEL=="djs", MODE="0644" # USB devices go in their own subdirectory KERNEL=="hiddev*", NAME="usb/%k" KERNEL=="auer*", NAME="usb/%k" KERNEL=="legousbtower*", NAME="usb/%k" KERNEL=="dabusb*", NAME="usb/%k" BUS=="usb", KERNEL=="lp[0-9]*", NAME="usb/%k", GROUP="lp" # DRI devices are managed by the X server, so prevent udev from creating them KERNEL=="card*", NAME="" # Video devices KERNEL=="fb[0-9]*", GROUP="video", MODE="0620" KERNEL=="agpgart", GROUP="video" KERNEL=="nvidia[0-9]*", GROUP="video" KERNEL=="nvidiactl", GROUP="video" KERNEL=="video[0-9]*", GROUP="video" KERNEL=="radio[0-9]*", GROUP="video" KERNEL=="vbi[0-9]*", GROUP="video" KERNEL=="vtx[0-9]*", GROUP="video" # Storage/memory devices KERNEL=="fd[0-9]*", GROUP="floppy" KERNEL=="ram[0-9]*", GROUP="disk" KERNEL=="raw[0-9]*", NAME="raw/%k", GROUP="disk" KERNEL=="hd*", GROUP="disk" KERNEL=="sd[a-z]", GROUP="disk" KERNEL=="sd[a-z][0-9]*", GROUP="disk" KERNEL=="sd[a-i][a-z]", GROUP="disk" KERNEL=="sd[a-i][a-z][0-9]*", GROUP="disk" KERNEL=="s[grt][0-9]*", GROUP="disk" KERNEL=="scd[0-9]*", GROUP="cdrom" KERNEL=="dasd[0-9]*", GROUP="disk" KERNEL=="loop[0-9]*", GROUP="disk" KERNEL=="md[0-9]*", GROUP="disk" # dmsetup and lvm2 related programs create devicemapper devices so we prevent # udev from creating them KERNEL=="dm-*", NAME="" KERNEL=="ht[0-9]*", GROUP="tape" KERNEL=="nht[0-9]*", GROUP="tape" KERNEL=="pt[0-9]*", GROUP="tape" KERNEL=="npt[0-9]*", GROUP="tape" KERNEL=="st[0-9]*", GROUP="tape" KERNEL=="nst[0-9]*", GROUP="tape" # Network devices KERNEL=="tun", NAME="net/%k" # Generic rule to allow hotplugging of devices with modular drivers ACTION=="add", ENV{MODALIAS}=="?*", RUN+="/sbin/modprobe $env{MODALIAS}" # SCSI devices require different modules, dependent on their SYSFS{type}. All # of them require 'sg' though. # # module name sysfs types # sd 0 (TYPE_DISK), 7 (TYPE_MOD), 14 (TYPE_MOD) # sr 4 (TYPE_WORM), 5 (TYPE_ROM) # st/osst 1 (TYPE_TAPE) ACTION=="add", SUBSYSTEM="scsi" , SYSFS{type}=="0|7|14", \ RUN+="/bin/sh -c 'echo 60 > /sys$$DEVPATH/timeout'" ACTION=="add", SUBSYSTEM="scsi" , SYSFS{type}=="1", \ RUN+="/bin/sh -c 'echo 900 > /sys$$DEVPATH/timeout'" SUBSYSTEM=="scsi_device", ACTION=="add", SYSFS{type}=="0|7|14", \ RUN+="/sbin/modprobe sd_mod" SUBSYSTEM=="scsi_device", ACTION=="add", SYSFS{type}=="1", \ RUN+="/sbin/modprobe st" SUBSYSTEM=="scsi_device", ACTION=="add", SYSFS{type}=="[45]", \ RUN+="/sbin/modprobe sr_mod" SUBSYSTEM=="scsi_device", ACTION=="add", RUN+="/sbin/modprobe sg" # Load firmware for devices that need it ACTION=="add", SUBSYSTEM=="firmware", RUN+="/lib/udev/firmware_helper"