2007-08-10 14:36:59 +04:00
# do not edit this file, it will be overwritten on update
2009-09-09 20:18:17 +04:00
SUBSYSTEM=="block", SYMLINK{unique}+="block/%M:%m"
SUBSYSTEM!="block", SYMLINK{unique}+="char/%M:%m"
2008-10-07 02:18:55 +04:00
2008-12-22 18:15:37 +03:00
KERNEL=="pty[pqrstuvwxyzabcdef][0123456789abcdef]", GROUP="tty", MODE="0660"
KERNEL=="tty[pqrstuvwxyzabcdef][0123456789abcdef]", GROUP="tty", MODE="0660"
KERNEL=="ptmx", GROUP="tty", MODE="0666"
KERNEL=="tty", GROUP="tty", MODE="0666"
KERNEL=="tty[0-9]*", GROUP="tty", MODE="0620"
2009-05-03 16:44:23 +04:00
KERNEL=="vcs|vcs[0-9]*|vcsa|vcsa[0-9]*", GROUP="tty"
2007-08-10 14:36:59 +04:00
# serial
2009-04-28 13:24:25 +04:00
KERNEL=="tty[A-Z]*[0-9]|pppox[0-9]*|ircomm[0-9]*|noz[0-9]*|rfcomm[0-9]*", GROUP="dialout"
2009-09-16 22:08:50 +04:00
KERNEL=="mwave", GROUP="dialout"
2009-01-04 19:01:47 +03:00
KERNEL=="hvc*|hvsi*", GROUP="dialout"
2007-08-10 14:36:59 +04:00
2010-01-21 16:15:04 +03:00
# virtio serial / console ports
2010-03-22 12:59:46 +03:00
KERNEL=="vport*", ATTR{name}=="?*", SYMLINK+="virtio-ports/$attr{name}"
2010-01-21 16:15:04 +03:00
2007-08-10 14:36:59 +04:00
# mem
2007-08-25 16:07:02 +04:00
KERNEL=="null|zero|full|random|urandom", MODE="0666"
2008-08-11 12:34:18 +04:00
KERNEL=="mem|kmem|port|nvram", GROUP="kmem", MODE="0640"
2007-08-10 14:36:59 +04:00
# input
2009-09-16 22:08:50 +04:00
KERNEL=="mouse*|mice|event*", MODE="0640"
KERNEL=="ts[0-9]*|uinput", MODE="0640"
KERNEL=="js[0-9]*", MODE="0644"
2007-08-10 14:36:59 +04:00
# video4linux
2008-11-19 23:47:07 +03:00
SUBSYSTEM=="video4linux", GROUP="video"
KERNEL=="vttuner*", GROUP="video"
KERNEL=="vtx*|vbi*", GROUP="video"
KERNEL=="winradio*", GROUP="video"
2007-08-10 14:36:59 +04:00
# graphics
2010-05-20 19:09:04 +04:00
KERNEL=="agpgart", GROUP="video"
2008-11-19 23:47:07 +03:00
KERNEL=="pmu", GROUP="video"
KERNEL=="nvidia*|nvidiactl*", GROUP="video"
SUBSYSTEM=="graphics", GROUP="video"
2009-01-15 19:06:14 +03:00
SUBSYSTEM=="drm", GROUP="video"
2007-08-10 14:36:59 +04:00
2009-09-16 22:08:50 +04:00
# sound
SUBSYSTEM=="sound", GROUP="audio"
KERNEL=="mixer0", SYMLINK+="mixer"
2009-01-04 00:30:05 +03:00
# DVB (video)
2009-09-16 22:08:50 +04:00
SUBSYSTEM=="dvb", GROUP="video"
2007-08-10 14:36:59 +04:00
rules: set group ownership of new firewire driver device files
The newer firewire-core driver exposes per-device character device files,
called /dev/fw[0-9]*, in contrast to the older raw1394, video1394, dv1394
drivers which created one global file or per-controller files.
This allows to set ownership, permissions, or/ and access control lists
for each device file based on device type markers obtained from sysfs.
The "units" attribute which is used for this purpose has become available
in Linux 2.6.31(-rc1) by commit 0210b66dd88a2a1e451901b00378a2068b6ccb35.
The added rules match identifiers of
- IIDC devices:
industrial cameras and some webcams,
- AV/C devices:
camcorders, set-top boxes, TV sets, audio devices, and similar
devices.
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
2009-07-01 23:41:43 +04:00
# FireWire (firewire-core driver: IIDC devices, AV/C devices)
SUBSYSTEM=="firewire", ATTR{units}=="*0x00a02d:0x00010*", GROUP="video"
2010-07-11 14:32:12 +04:00
SUBSYSTEM=="firewire", ATTR{units}=="*0x00b09d:0x00010*", GROUP="video"
rules: set group ownership of new firewire driver device files
The newer firewire-core driver exposes per-device character device files,
called /dev/fw[0-9]*, in contrast to the older raw1394, video1394, dv1394
drivers which created one global file or per-controller files.
This allows to set ownership, permissions, or/ and access control lists
for each device file based on device type markers obtained from sysfs.
The "units" attribute which is used for this purpose has become available
in Linux 2.6.31(-rc1) by commit 0210b66dd88a2a1e451901b00378a2068b6ccb35.
The added rules match identifiers of
- IIDC devices:
industrial cameras and some webcams,
- AV/C devices:
camcorders, set-top boxes, TV sets, audio devices, and similar
devices.
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
2009-07-01 23:41:43 +04:00
SUBSYSTEM=="firewire", ATTR{units}=="*0x00a02d:0x010001*", GROUP="video"
2010-07-11 14:32:12 +04:00
SUBSYSTEM=="firewire", ATTR{units}=="*0x00a02d:0x014001*", GROUP="video"
2007-08-10 14:36:59 +04:00
# libusb device nodes
2009-09-16 22:08:50 +04:00
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", MODE="0664"
2007-08-10 14:36:59 +04:00
# printer
KERNEL=="parport[0-9]*", GROUP="lp"
SUBSYSTEM=="printer", KERNEL=="lp*", GROUP="lp"
2008-12-21 15:01:40 +03:00
SUBSYSTEM=="ppdev", GROUP="lp"
2009-09-16 22:08:50 +04:00
SUBSYSTEM=="usb", KERNEL=="lp*", SYMLINK+="usb%k", GROUP="lp"
2008-12-21 15:17:37 +03:00
KERNEL=="lp[0-9]*", GROUP="lp"
2007-08-10 14:36:59 +04:00
KERNEL=="irlpt[0-9]*", GROUP="lp"
2009-09-04 19:12:28 +04:00
# hplip and cups 1.4+ use raw USB devices, so permissions should be similar to
# the ones from the old usblp kernel module
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{ID_USB_INTERFACES}=="", IMPORT{program}="usb_id --export %p"
2010-06-17 15:19:50 +04:00
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{ID_USB_INTERFACES}=="*:0701*:", GROUP="lp", MODE="0664"
2007-08-10 14:36:59 +04:00
2009-01-05 14:34:55 +03:00
# block
SUBSYSTEM=="block", GROUP="disk"
2009-01-03 18:25:15 +03:00
# floppy
2009-12-15 18:17:12 +03:00
SUBSYSTEM=="block", KERNEL=="fd[0-9]", GROUP="floppy"
2009-01-03 18:25:15 +03:00
# cdrom
2009-01-03 17:50:17 +03:00
SUBSYSTEM=="block", KERNEL=="sr[0-9]*", SYMLINK+="scd%n", GROUP="cdrom"
2009-05-22 18:44:53 +04:00
SUBSYSTEM=="scsi_generic", SUBSYSTEMS=="scsi", ATTRS{type}=="4|5", GROUP="cdrom"
2009-09-16 22:08:50 +04:00
KERNEL=="pktcdvd[0-9]*", GROUP="cdrom"
KERNEL=="pktcdvd", GROUP="cdrom"
2009-01-03 18:25:15 +03:00
# tape
KERNEL=="ht[0-9]*|nht[0-9]*", GROUP="tape"
KERNEL=="pt[0-9]*|npt[0-9]*|pht[0-9]*", GROUP="tape"
2009-05-22 18:44:53 +04:00
SUBSYSTEM=="scsi_generic|scsi_tape", SUBSYSTEMS=="scsi", ATTRS{type}=="1|8", GROUP="tape"
2009-01-03 18:25:15 +03:00
2009-08-08 17:29:38 +04:00
# block-related
2009-01-05 14:34:55 +03:00
KERNEL=="sch[0-9]*", GROUP="disk"
2009-05-22 18:44:53 +04:00
SUBSYSTEM=="scsi_generic", SUBSYSTEMS=="scsi", ATTRS{type}=="0", GROUP="disk"
2009-01-05 14:34:55 +03:00
KERNEL=="pg[0-9]*", GROUP="disk"
2007-08-10 14:36:59 +04:00
KERNEL=="qft[0-9]*|nqft[0-9]*|zqft[0-9]*|nzqft[0-9]*|rawqft[0-9]*|nrawqft[0-9]*", GROUP="disk"
2009-09-16 22:08:50 +04:00
KERNEL=="rawctl", GROUP="disk"
SUBSYSTEM=="raw", KERNEL=="raw[0-9]*", GROUP="disk"
SUBSYSTEM=="aoe", GROUP="disk", MODE="0220"
2008-12-09 06:18:21 +03:00
SUBSYSTEM=="aoe", KERNEL=="err", MODE="0440"
2007-08-10 14:36:59 +04:00
# network
2010-05-20 19:09:04 +04:00
KERNEL=="tun", MODE="0666", OPTIONS+="static_node=net/tun"
2009-08-16 23:07:39 +04:00
KERNEL=="rfkill", MODE="0644"
2007-08-10 14:36:59 +04:00
# CPU
2009-09-16 22:08:50 +04:00
KERNEL=="cpu[0-9]*", MODE="0444"
2007-08-10 14:36:59 +04:00
2010-05-25 17:10:21 +04:00
KERNEL=="fuse", MODE="0666", OPTIONS+="static_node=fuse" \
RUN+="/bin/mount -t fusectl fusectl /sys/fs/fuse/connections"
2008-12-21 15:48:55 +03:00
SUBSYSTEM=="rtc", DRIVERS=="rtc_cmos", SYMLINK+="rtc"
2007-08-10 14:36:59 +04:00
KERNEL=="mmtimer", MODE="0644"
KERNEL=="rflash[0-9]*", MODE="0400"
KERNEL=="rrom[0-9]*", MODE="0400"