1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
|
diff -Nur rules.d/60-persistent-storage.rules rules.d.arch/60-persistent-storage.rules
--- rules.d/60-persistent-storage.rules 2008-09-12 15:59:57.000000000 +0200
+++ rules.d.arch/60-persistent-storage.rules 2008-09-12 16:00:50.000000000 +0200
@@ -10,7 +10,7 @@
SUBSYSTEM!="block", GOTO="persistent_storage_end"
# skip rules for inappropriate block devices
-KERNEL=="ram*|loop*|fd*|nbd*|gnbd*|dm-*|md*", GOTO="persistent_storage_end"
+KERNEL=="ram*|loop*|fd*|nbd*|gnbd*|md*", GOTO="persistent_storage_end"
# never access non-cdrom removable ide devices, the drivers are causing event loops on open()
KERNEL=="hd*[!0-9]", ATTR{removable}=="1", DRIVERS=="ide-cs|ide-floppy", GOTO="persistent_storage_end"
diff -Nur rules.d/80-drivers.rules rules.d.arch/80-drivers.rules
--- rules.d/80-drivers.rules 2008-09-12 15:59:57.000000000 +0200
+++ rules.d.arch/80-drivers.rules 2008-09-12 16:01:56.000000000 +0200
@@ -2,16 +2,17 @@
ACTION!="add", GOTO="drivers_end"
-DRIVER!="?*", ENV{MODALIAS}=="?*", RUN{ignore_error}+="/sbin/modprobe $env{MODALIAS}"
-SUBSYSTEM=="pnp", DRIVER!="?*", ENV{MODALIAS}!="?*", \
- RUN{ignore_error}+="/bin/sh -c '/sbin/modprobe -a $$(while read id; do echo pnp:d$$id; done < /sys$devpath/id)'"
-SUBSYSTEM=="tifm", RUN+="/sbin/modprobe --all tifm_sd tifm_ms"
-SUBSYSTEM=="memstick", RUN+="/sbin/modprobe --all ms_block mspro_block"
-SUBSYSTEM=="mmc", RUN+="/sbin/modprobe mmc_block"
-SUBSYSTEM=="i2o", RUN+="/sbin/modprobe i2o_block"
-SUBSYSTEM=="ide", ATTR{media}=="tape", RUN+="/sbin/modprobe ide-scsi"
-SUBSYSTEM=="scsi", ENV{DEVTYPE}=="scsi_device", TEST!="[module/sg]", RUN+="/sbin/modprobe sg"
-SUBSYSTEM=="module", KERNEL=="parport_pc", RUN+="/sbin/modprobe ppdev"
+DRIVER!="?*", ENV{MODALIAS}=="?*", RUN{ignore_error}+="/lib/udev/load-modules.sh $env{MODALIAS}"
+SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", DRIVER!="?*", RUN{ignore_error}+="/bin/sh -c 'while read id; do /lib/udev/load-modules.sh pnp:d$$id; /lib/udev/load-modules.sh pnp:c$$id ; done < /sys$devpath/id'"
+SUBSYSTEM=="tifm", RUN+="/lib/udev/load-modules.sh tifm_sd"
+SUBSYSTEM=="tifm", RUN+="/lib/udev/load-modules.sh tifm_ms"
+SUBSYSTEM=="memstick", RUN+="/lib/udev/load-modules.sh ms_block"
+SUBSYSTEM=="memstick", RUN+="/lib/udev/load-modules.sh mspro_block"
+SUBSYSTEM=="mmc", RUN+="/lib/udev/load-modules.sh mmc_block"
+SUBSYSTEM=="i2o", RUN+="/lib/udev/load-modules.sh i2o_block"
+SUBSYSTEM=="ide", ATTR{media}=="tape", RUN+="/lib/udev/load-modules.sh ide-scsi"
+SUBSYSTEM=="scsi", ENV{DEVTYPE}=="scsi_device", TEST!="[module/sg]", RUN+="/lib/udev/load-modules.sh sg"
+SUBSYSTEM=="module", KERNEL=="parport_pc", RUN+="/lib/udev/load-modules.sh ppdev"
LABEL="drivers_end"
diff -Nur rules.d/50-udev-default.rules rules.d.arch/50-udev-default.rules
--- rules.d/50-udev-default.rules 2008-09-12 15:59:57.000000000 +0200
+++ rules.d.arch/50-udev-default.rules 2008-09-12 16:00:50.000000000 +0200
@@ -4,12 +4,17 @@
KERNEL=="tty[pqrstuvwxyzabcdef][0123456789abcdef]", GROUP="tty", MODE="0660", OPTIONS+="last_rule"
KERNEL=="ptmx", GROUP="tty", MODE="0666", OPTIONS+="last_rule"
KERNEL=="tty", GROUP="tty", MODE="0666", OPTIONS+="last_rule"
-KERNEL=="tty[0-9]*", GROUP="tty", MODE="0620", OPTIONS+="last_rule"
-KERNEL=="vcs|vcs[0-9]*|vcsa|vcsa[0-9]*", GROUP="tty", OPTIONS+="last_rule"
+KERNEL=="tty[0-9]*", GROUP="tty", MODE="0620", NAME="vc/%n", SYMLINK+="%k" OPTIONS+="last_rule"
+KERNEL=="vcs", GROUP="tty", NAME="vcc/0", OPTIONS+="last_rule"
+KERNEL=="vcs[0-9]*", GROUP="tty", NAME="vcc/%n", OPTIONS+="last_rule"
+KERNEL=="vcsa", GROUP="tty", NAME="vcc/a0", OPTIONS+="last_rule"
+KERNEL=="vcsa[0-9]*", GROUP="tty", NAME="vcc/a%n", OPTIONS+="last_rule"
KERNEL=="console", MODE="0600", OPTIONS+="last_rule"
# serial
KERNEL=="tty[A-Z]*|pppox*|ircomm*|noz*", GROUP="uucp"
+KERNEL=="ttyS[0-9]*", NAME="tts/%n", SYMLINK+="ttyS%n"
+KERNEL=="ttyUSB[0-9]*", NAME="tts/USB%n", SYMLINK+="%k"
KERNEL=="ppp", MODE="0600", OPTIONS+="ignore_remove"
KERNEL=="mwave", NAME="modems/mwave", GROUP="uucp"
KERNEL=="hvc*|hvsi*", GROUP="uucp"
@@ -21,6 +26,7 @@
KERNEL=="mem|kmem|port|nvram", GROUP="kmem", MODE="0640"
KERNEL=="ram0", SYMLINK+="ramdisk"
KERNEL=="ram1", SYMLINK+="ram"
+KERNEL=="ram[0-9]*", NAME="rd/%n", SYMLINK+="%k"
# input
KERNEL=="mouse*|mice|event*", NAME="input/%k", MODE="0640"
@@ -29,20 +35,25 @@
# video4linux
KERNEL=="vbi0", SYMLINK+="vbi"
+KERNEL=="vbi[0-9]*", NAME="v4l/vbi%n", SYMLINK+="%k", GROUP="video"
KERNEL=="radio0", SYMLINK+="radio"
+KERNEL=="radio[0-9]*", NAME="v4l/radio%n", SYMLINK+="radio%n", GROUP="video"
KERNEL=="video0", SYMLINK+="video"
+KERNEL=="video[0-9]*", NAME="v4l/video%n", SYMLINK+="%k", GROUP="video"
+KERNEL=="vtx0", SYMLINK+="vtx"
+KERNEL=="vtx[0-9]*", NAME="v4l/vtx%n", SYMLINK+="%k", GROUP="video"
# graphics
-KERNEL=="agpgart", MODE="0600"
-KERNEL=="card[0-9]*", NAME="dri/%k", MODE="0666"
-KERNEL=="fb0", SYMLINK+="fb"
+KERNEL=="agpgart", NAME="misc/%k", SYMLINK+="%k", GROUP="video", MODE="0600"
+KERNEL=="card[0-9]*", NAME="dri/%k", GROUP="video", MODE="0666"
+KERNEL=="fb[0-9]*", NAME="fb/%n", SYMLINK+="%k", GROUP="video"
# DVB video
-SUBSYSTEM=="dvb", PROGRAM="/bin/sh -c 'K=%k; K=$${K#dvb}; printf dvb/adapter%%i/%%s $${K%%%%.*} $${K#*.}'", NAME="%c"
+SUBSYSTEM=="dvb", PROGRAM="/bin/sh -c 'K=%k; K=$${K#dvb}; printf dvb/adapter%%i/%%s $${K%%%%.*} $${K#*.}'", NAME="%c", GROUP="video"
# Firewire
-KERNEL=="dv1394*", SYMLINK+="dv1394/%n"
-KERNEL=="video1394*", NAME="video1394/%n"
+KERNEL=="dv1394*", SYMLINK+="dv1394/%n", GROUP="video"
+KERNEL=="video1394*", NAME="video1394/%n", GROUP="video"
# firmware class requests
SUBSYSTEM=="firmware", ACTION=="add", RUN+="firmware.sh"
@@ -62,19 +73,19 @@
SUBSYSTEM=="block", KERNEL=="sr[0-9]*", SYMLINK+="scd%n"
SUBSYSTEM=="scsi", KERNEL=="[0-9]*:[0-9]*", ACTION=="add", ATTR{type}=="0|7|14", ATTR{timeout}="60"
SUBSYSTEM=="scsi", KERNEL=="[0-9]*:[0-9]*", ACTION=="add", ATTR{type}=="1", ATTR{timeout}="900"
-KERNEL=="hd*", SUBSYSTEMS=="ide", ATTRS{media}=="floppy", OPTIONS+="all_partitions"
+KERNEL=="hd*", SUBSYSTEMS=="ide", ATTRS{media}=="floppy", OPTIONS+="all_partitions", GROUP="floppy"
KERNEL=="fd[0-9]", GROUP="floppy"
-KERNEL=="fd[0-9]", ACTION=="add", ATTRS{cmos}=="?*", RUN+="create_floppy_devices -c -t $attr{cmos} -m %M -M 0640 -G floppy $root/%k"
+KERNEL=="fd[0-9]", ACTION=="add", ATTRS{cmos}=="?*", RUN+="create_floppy_devices -c -t $attr{cmos} -m %M -M 0660 -G floppy $root/%k"
KERNEL=="sch[0-9]*", GROUP="disk"
-KERNEL=="sg[0-9]*", ATTRS{type}!="3|6", GROUP="disk", MODE="0640"
+KERNEL=="sg[0-9]*", ATTRS{type}!="3|6", GROUP="disk", MODE="0660"
KERNEL=="ht[0-9]*|nht[0-9]*", GROUP="disk"
KERNEL=="pg[0-9]*", GROUP="disk"
KERNEL=="pt[0-9]*|npt[0-9]*", GROUP="disk"
KERNEL=="qft[0-9]*|nqft[0-9]*|zqft[0-9]*|nzqft[0-9]*|rawqft[0-9]*|nrawqft[0-9]*", GROUP="disk"
KERNEL=="rawctl", NAME="raw/%k", GROUP="disk"
SUBSYSTEM=="raw", KERNEL=="raw[0-9]*", NAME="raw/%k", GROUP="disk"
-KERNEL=="pktcdvd[0-9]*", NAME="pktcdvd/%k"
-KERNEL=="pktcdvd", NAME="pktcdvd/control"
+KERNEL=="pktcdvd[0-9]*", NAME="pktcdvd/%k", GROUP="optical", MODE="0660"
+KERNEL=="pktcdvd", NAME="pktcdvd/control", GROUP="optical", MODE="0660"
KERNEL=="qft0", SYMLINK+="ftape"
SUBSYSTEM=="bsg", NAME="bsg/%k"
SUBSYSTEM=="aoe", NAME="etherd/%k", GROUP="disk"
@@ -83,13 +94,13 @@
KERNEL=="tun", NAME="net/%k", MODE="0666", OPTIONS+="ignore_remove"
# CPU
-KERNEL=="cpu[0-9]*", NAME="cpu/%n/cpuid"
-KERNEL=="msr[0-9]*", NAME="cpu/%n/msr"
+KERNEL=="cpu[0-9]*", NAME="cpu/%n/cpuid", SYMLINK="%k"
+KERNEL=="msr[0-9]*", NAME="cpu/%n/msr", SYMLINK="%k"
KERNEL=="microcode", NAME="cpu/microcode", MODE="0600"
# miscellaneous
KERNEL=="fuse", MODE="0666"
-KERNEL=="rtc|rtc0", MODE="0644"
+KERNEL=="rtc|rtc0", NAME="misc/%k", SYMLINK+="%k", GROUP="audio", MODE="0664"
KERNEL=="rtc0", SYMLINK+="rtc"
KERNEL=="auer[0-9]*", NAME="usb/%k"
KERNEL=="hw_random", NAME="hwrng", SYMLINK+="%k"
|