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*|btibm*", GOTO="persistent_storage_end"
+KERNEL=="ram*|loop*|fd*|nbd*|gnbd*|md*|btibm*", 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,14 +2,16 @@
 
 ACTION!="add", GOTO="drivers_end"
 
-DRIVER!="?*", ENV{MODALIAS}=="?*", RUN{ignore_error}+="/sbin/modprobe $env{MODALIAS}"
-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=="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"
@@ -36,13 +36,18 @@
 KERNEL=="vtx*|vbi*",		GROUP="video"
 KERNEL=="winradio*",		GROUP="video"
 KERNEL=="vbi0",			SYMLINK+="vbi"
-KERNEL=="radio0",		SYMLINK+="radio"
+KERNEL=="vbi[0-9]*",   NAME="v4l/vbi%n", SYMLINK+="%k"
+KERNEL=="radio0",		SYMLINK+="video"
+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"
+KERNEL=="vtx0", SYMLINK+="vtx"
+KERNEL=="vtx[0-9]*",   NAME="v4l/vtx%n", SYMLINK+="%k"
 
 # graphics
-KERNEL=="agpgart",		MODE="0600", GROUP="video"
-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"
 KERNEL=="pmu",			GROUP="video"
 KERNEL=="nvidia*|nvidiactl*",	GROUP="video"
 SUBSYSTEM=="graphics",		GROUP="video"
@@ -62,19 +73,19 @@
 # block, tapes, block-releated
 SUBSYSTEM=="block", GROUP="disk"
 SUBSYSTEM=="block", KERNEL=="sr[0-9]*", SYMLINK+="scd%n"
-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"