# Udev rules for Archlinux by Tobias Powalowski <tpowa@archlinux.org> # do not edit this file, it will be overwritten on update # # This ruleset should provide a DevFS-compatible device tree. # # There are a number of modifiers that are allowed to be used in some # of the different fields. They provide the following subsitutions: # # %n the "kernel number" of the device. # For example, 'sda3' has a "kernel number" of '3' # %k the kernel name for the device. # %M the kernel major number for the device # %m the kernel minor number for the device # %b the bus id for the device # %c the string returned by the PROGRAM # %s{filename} the content of a sysfs attribute. # %% the '%' char itself. # # There are a number of modifiers that are allowed to be used in some of the # fields. See the udev man page for a full description of them. # global stuff # ##################################### ###### Hotplug rules - begin # Only additional modules, # which are not detectable, # are loaded here! ##################################### # check if the device has already been claimed by a driver ACTION!="add", GOTO="drivers_end" # SOUND addon modules SUBSYSTEM=="sound", RUN+="/lib/udev/load-modules.sh snd-pcm-oss" SUBSYSTEM=="sound", RUN+="/lib/udev/load-modules.sh snd-seq-oss" #PNP addon modules SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", ATTRS{id}=="PNP0800", RUN+="/lib/udev/load-modules.sh pcspkr" SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", ATTRS{id}=="*PNP0510*", RUN+="/lib/udev/load-modules.sh irtty-sir" SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", ATTRS{id}=="*PNP0511*", RUN+="/lib/udev/load-modules.sh irtty-sir" SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", ATTRS{id}=="PNPb02f", RUN+="/lib/udev/load-modules.sh analog" SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", ATTRS{id}=="PNP0501", RUN+="/lib/udev/load-modules.sh ppp-generic" # PARPORT addon modules SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", ATTRS{id}=="PNP040*", RUN+="/lib/udev/load-modules.sh lp" SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", ATTRS{id}=="PNP040*", RUN+="/lib/udev/load-modules.sh ppdev" # fix ide cdrom detection on old proliant servers SUBSYSTEM=="pci", ENV{MODALIAS}=="pci:v00000E11d00000001sv00000000sd00000000bc06sc02i00", RUN+="/lib/udev/load-modules.sh ide-generic" LABEL="drivers_end" ##################################### ##### Hotplug rules - end ##################################### ##################################### ###### CD/DVD symlinks - begin ##################################### ACTION=="add", SUBSYSTEMS=="ide", KERNEL=="hd[a-z]", IMPORT="cdrom_id --export $tempnode" ACTION=="add", SUBSYSTEMS=="scsi", KERNEL=="sr[0-9]*", IMPORT="cdrom_id --export $tempnode" ACTION=="add", SUBSYSTEMS=="scsi", KERNEL=="scd[a-z]", IMPORT="cdrom_id --export $tempnode" ENV{ID_CDROM}=="?*", SYMLINK+="cd/cdrom-%b" ENV{ID_CDROM_CD_RW}=="?*", SYMLINK+="cd/cdrw-%b" ENV{ID_CDROM_DVD}=="?*", SYMLINK+="cd/dvd-%b" ENV{ID_CDROM_DVD_R}=="?*", SYMLINK+="cd/dvd-%b" ACTION=="add", SUBSYSTEMS=="ide", KERNEL=="hd[a-z]", ATTR{removable}=="1", ATTRS{media}=="cdrom*", RUN+="cdsymlinks.sh" ACTION=="add", SUBSYSTEMS=="scsi", KERNEL=="sr[0-9]*", ATTRS{type}=="5", RUN+="cdsymlinks.sh" ACTION=="add", SUBSYSTEMS=="scsi", KERNEL=="sg[0-9]*", ATTRS{type}=="5", RUN+="cdsymlinks.sh" ACTION=="remove", SUBSYSTEMS=="block", KERNEL=="hd[a-z]", RUN+="cdsymlinks.sh" ACTION=="remove", SUBSYSTEMS=="block", KERNEL=="sr[0-9]*", RUN+="cdsymlinks.sh" ACTION=="remove", SUBSYSTEMS=="block", KERNEL=="sg[0-9]*", RUN+="cdsymlinks.sh" ##################################### ###### CD/DVD symlinks - end ##################################### ##################################### # Additional Archlinux # Permissions and Symlinks - begin ##################################### # fix /dev/root symlink SUBSYSTEM=="block", RUN+="root-link.sh" # permissions for IDE CD devices SUBSYSTEMS=="ide", KERNEL=="hd[a-z]", ATTR{removable}=="1", ATTRS{media}=="cdrom*", GROUP="optical" # permissions for SCSI CD devices SUBSYSTEMS=="scsi", KERNEL=="sr[0-9]*", ATTRS{type}=="5", SYMLINK+="scd%n", GROUP="optical" SUBSYSTEMS=="scsi", KERNEL=="sg[0-9]*", ATTRS{type}=="5", GROUP="optical" # permissions for removable devices like cardreaders or sticks KERNEL=="sd*", ATTRS{scsi_level}=="0", ATTRS{type}=="0", GROUP="storage" # permissions for firewire external drives KERNEL=="sd*", ATTRS{scsi_level}=="5", GROUP="storage" # permissions for usb to scsi external adapters KERNEL=="sd*", ATTRS{scsi_level}=="3", ATTRS{type}=="7", GROUP="storage" # permissions for ide storage like pcmcia card readers ACTION!="add", GOTO="pcmcia_end" SUBSYSTEM!="block", GOTO="pcmcia_end" KERNEL=="hd*[!0-9]", IMPORT{program}="ata_id --export $tempnode" KERNEL=="hd*", IMPORT{parent}=="ID_*" KERNEL=="hd*", ENV{ID_TYPE}=="generic", GROUP="storage" LABEL="pcmcia_end" # permissions for SCSI scanners SUBSYSTEMS=="scsi", KERNEL=="sg[0-9]*", ATTRS{type}=="6", GROUP="scanner" # md block devices KERNEL=="md[0-9]*", NAME="md%n", SYMLINK+="md/%n" # video devices SUBSYSTEM=="video4linux", GROUP="video" ### xorg resets those permissions, adjust your xorg.conf! KERNEL=="nvidia*", GROUP="video" KERNEL=="3dfx*", GROUP="video" # i2c devices KERNEL=="i2c-[0-9]*", NAME="i2c/%n", SYMLINK+="%k" # loop devices KERNEL=="loop[0-9]*", NAME="loop/%n", SYMLINK+="%k" # misc KERNEL=="nvram", NAME="misc/%k", SYMLINK+="%k", GROUP="kmem", MODE="0640" KERNEL=="psaux", NAME="misc/%k", SYMLINK+="%k" KERNEL=="uinput", NAME="misc/%k", SYMLINK+="%k" KERNEL=="sgi_fetchop", MODE="0666" KERNEL=="sonypi", MODE="0666" KERNEL=="inotify", NAME="misc/%k", SYMLINK+="%k", MODE="0666" # sound devices # alsa devices SUBSYSTEM=="sound", GROUP="audio" # oss devices KERNEL=="audio*", NAME="sound/%k", SYMLINK+="%k" KERNEL=="dmmidi*", NAME="sound/%k", SYMLINK+="%k" KERNEL=="admmidi*", NAME="sound/%k", SYMLINK+="%k" KERNEL=="dsp*", NAME="sound/%k", SYMLINK+="%k" KERNEL=="adsp*", NAME="sound/%k", SYMLINK+="%k" KERNEL=="midi*", NAME="sound/%k", SYMLINK+="%k" KERNEL=="amidi*", NAME="sound/%k", SYMLINK+="%k" KERNEL=="mixer*", NAME="sound/%k", SYMLINK+="%k" KERNEL=="sequencer*", NAME="sound/%k", SYMLINK+="%k" # USB devices KERNEL=="hiddev*", NAME="usb/%k" KERNEL=="legousbtower*", NAME="usb/%k", MODE="0666" KERNEL=="dabusb*", NAME="usb/%k" # netlink devices KERNEL=="route", NAME="netlink/%k" KERNEL=="skip", NAME="netlink/%k" KERNEL=="usersock", NAME="netlink/%k" KERNEL=="fwmonitor", NAME="netlink/%k" KERNEL=="tcpdiag", NAME="netlink/%k" KERNEL=="nflog", NAME="netlink/%k" KERNEL=="xfrm", NAME="netlink/%k" KERNEL=="arpd", NAME="netlink/%k" KERNEL=="route6", NAME="netlink/%k" KERNEL=="ip6_fw", NAME="netlink/%k" KERNEL=="dnrtmsg", NAME="netlink/%k" ### ! disabled seems to break device creation ! # KERNEL=="tap*", NAME="netlink/%k" # IEEE1394 (firewire) devices KERNEL=="raw1394", NAME="%k", GROUP="video" # kbd devices KERNEL=="kbd", MODE="0664" ####################################### # Permissions and Symlinks - end #######################################