Index: udev/35-helper.rules
===================================================================
--- udev/35-helper.rules	(revision 664631f5f4b502859a0676bb330ea5673f037003)
+++ udev/35-helper.rules	(revision bda8cfb16472df6339669d4ddc173ce0ebaa1b5c)
@@ -37,4 +37,3 @@
 
 # adds floppy devices
-KERNEL=="fd[0-9]*", ACTION=="add", SYSFS{cmos}=="*", RUN+="create_floppy_devices -c -t $sysfs{cmos} -m %M /dev/%k"t
-
+KERNEL=="fd[0-9]*", ACTION=="add", ATTRS{cmos}=="*", RUN+="create_floppy_devices -c -t $sysfs{cmos} -m %M /dev/%k"
Index: udev/40-modprobe.rules
===================================================================
--- udev/40-modprobe.rules	(revision 664631f5f4b502859a0676bb330ea5673f037003)
+++ udev/40-modprobe.rules	(revision bda8cfb16472df6339669d4ddc173ce0ebaa1b5c)
@@ -19,8 +19,8 @@
 
 # scsi
-SUBSYSTEM=="scsi_device",	ACTION=="add", SYSFS{device/type}=="0|7|14", RUN+="/sbin/modprobe sd_mod"
-SUBSYSTEM=="scsi_device",	ACTION=="add", SYSFS{device/type}=="1", SYSFS{device/vendor}=="On[sS]tream", RUN+="/sbin/modprobe osst"
-SUBSYSTEM=="scsi_device",	ACTION=="add", SYSFS{device/type}=="1", RUN+="/sbin/modprobe st"
-SUBSYSTEM=="scsi_device",	ACTION=="add", SYSFS{device/type}=="[45]", RUN+="/sbin/modprobe sr_mod"
+SUBSYSTEM=="scsi_device",	ACTION=="add", ATTRS{type}=="0|7|14", RUN+="/sbin/modprobe sd_mod"
+SUBSYSTEM=="scsi_device",	ACTION=="add", ATTRS{type}=="1", SYSFS{device/vendor}=="On[sS]tream", RUN+="/sbin/modprobe osst"
+SUBSYSTEM=="scsi_device",	ACTION=="add", ATTRS{type}=="1", RUN+="/sbin/modprobe st"
+SUBSYSTEM=="scsi_device",	ACTION=="add", ATTRS{type}=="[45]", RUN+="/sbin/modprobe sr_mod"
 SUBSYSTEM=="scsi_device",	ACTION=="add", RUN+="/sbin/modprobe sg"
 
Index: udev/50-udev.rules
===================================================================
--- udev/50-udev.rules	(revision 664631f5f4b502859a0676bb330ea5673f037003)
+++ udev/50-udev.rules	(revision bda8cfb16472df6339669d4ddc173ce0ebaa1b5c)
@@ -35,5 +35,5 @@
 KERNEL=="hvsi*",		GROUP="uucp"
 KERNEL=="iseries/vtty*",	GROUP="uucp"
-KERNEL=="ttyUSB*", 		SYSFS{product}=="[Pp]alm*Handheld*", SYMLINK+="pilot"
+KERNEL=="ttyUSB*", 		ATTRS{product}=="[Pp]alm*Handheld*", SYMLINK+="pilot"
 
 # video/graphics
Index: udev/60-persistent-disk.rules
===================================================================
--- udev/60-persistent-disk.rules	(revision 664631f5f4b502859a0676bb330ea5673f037003)
+++ udev/60-persistent-disk.rules	(revision bda8cfb16472df6339669d4ddc173ce0ebaa1b5c)
@@ -18,13 +18,16 @@
 # scheme based on "Linux persistent device names", 2004, Hannes Reinecke <hare@suse.de>
 
-ACTION!="add",		GOTO="persistent_end"
-SUBSYSTEM!="block",	GOTO="persistent_end"
+ACTION!="add",		GOTO="persistent_storage_end"
+SUBSYSTEM!="block",	GOTO="persistent_storage_end"
 
 # skip rules for inappropriate block devices
-KERNEL=="ram*|loop*|fd*|nbd*",	GOTO="persistent_end"
+KERNEL=="ram*|loop*|fd*|nbd*",	GOTO="persistent_storage_end"
+
+# Set Permissions on CDOM
+BUS=="ide",     DRIVER=="ide-cdrom", ATTRS{removable}=="1", GROUP="cdrom", MODE="660"
 
 # never access removable ide devices, the drivers are causing event loops on open()
-BUS=="ide",     DRIVER=="ide-cdrom", SYSFS{removable}=="1", GROUP="cdrom", MODE="660"
-BUS=="ide",	DRIVER!="ide-cdrom", SYSFS{removable}=="1", GOTO="persistent_end"
+KERNEL=="hd*[!0-9]", ATTRS{removable}=="1", DRIVERS=="ide-cs|ide-floppy", GOTO="persistent_storage_end"
+KERNEL=="hd*[0-9]", ATTRS{../removable}=="1", GOTO="persistent_storage_end"
 
 # by-id (hardware serial number)
@@ -33,5 +36,5 @@
 KERNEL=="hd*[0-9]",	IMPORT{parent}=="ID_*", SYMLINK+="disk/by-id/ata-$env{ID_MODEL}_$env{ID_SERIAL}-part%n"
 
-KERNEL=="sd*[!0-9]|sr*",		SYSFS{ieee1394_id}=="*", ENV{ID_SERIAL}="$sysfs{ieee1394_id}", ENV{ID_BUS}="ieee1394"
+KERNEL=="sd*[!0-9]|sr*",		ATTRS{ieee1394_id}=="*", ENV{ID_SERIAL}="$attr{ieee1394_id}", ENV{ID_BUS}="ieee1394"
 KERNEL=="sd*[!0-9]|sr*",		ENV{ID_SERIAL}=="", IMPORT{program}="usb_id -x"
 KERNEL=="sd*[!0-9]|sr*",		ENV{ID_SERIAL}=="", IMPORT{program}="scsi_id -g -x -s %p -d $tempnode"
@@ -46,10 +49,10 @@
 # by-path (shortest physical path)
 KERNEL=="*[!0-9]|sr*",	ENV{ID_TYPE}=="?*", IMPORT{program}="path_id %p", SYMLINK+="disk/by-path/$env{ID_PATH}"
-KERNEL=="sr*",		GOTO="persistent_end"
+KERNEL=="sr*",		GOTO="persistent_storage_end"
 KERNEL=="*[0-9]",	IMPORT{parent}=="ID_*"
 KERNEL=="*[0-9]",	ENV{ID_PATH}=="?*", SYMLINK+="disk/by-path/$env{ID_PATH}-part%n"
 
 # by-label/by-uuid (filesystem properties)
-KERNEL=="*[!0-9]",		SYSFS{removable}=="1", GOTO="persistent_end"
+KERNEL=="*[!0-9]",		ATTRS{removable}=="1", GOTO="persistent_storage_end"
 IMPORT{program}="vol_id --export $tempnode"
 ENV{ID_FS_UUID}=="?*",		SYMLINK+="disk/by-uuid/$env{ID_FS_UUID}"
@@ -63,3 +66,3 @@
 KERNEL=="dm-[0-9]*",	ACTION=="add", PROGRAM="/sbin/dmsetup info -c --noopencount --noheadings -o name -j %M -m %m", SYMLINK+="disk/by-name/%c"
 
-LABEL="persistent_end"
+LABEL="persistent_storage_end"
Index: udev/61-persistent-input.rules
===================================================================
--- udev/61-persistent-input.rules	(revision 664631f5f4b502859a0676bb330ea5673f037003)
+++ udev/61-persistent-input.rules	(revision bda8cfb16472df6339669d4ddc173ce0ebaa1b5c)
@@ -21,6 +21,15 @@
 # usb devices
 BUS=="usb", IMPORT{program}="usb_id -x"
-BUS=="usb", SYSFS{bInterfaceClass}=="03", SYSFS{bInterfaceProtocol}=="01", ENV{ID_CLASS}="kbd"
-BUS=="usb", SYSFS{bInterfaceClass}=="03", SYSFS{bInterfaceProtocol}=="02", ENV{ID_CLASS}="mouse"
+BUS=="usb", ATTRS{bInterfaceClass}=="03", ATTRS{bInterfaceProtocol}=="01", ENV{ID_CLASS}="kbd"
+BUS=="usb", ATTRS{bInterfaceClass}=="03", ATTRS{bInterfaceProtocol}=="02", ENV{ID_CLASS}="mouse"
+
+# other devices
+DRIVERS=="pcspkr", ENV{ID_CLASS}="spkr"
+DRIVERS=="atkbd", ENV{ID_CLASS}="kbd"
+DRIVERS=="psmouse", ENV{ID_CLASS}="mouse"
+ATTRS{name}=="*dvb*|*DVB*|* IR *", ENV{ID_CLASS}="ir"
+ATTRS{modalias}=="input:*-*a[068],*|input:*-*a*,[68],*m*", ATTRS{modalias}!="input:*-*k*14A,*r*", ENV{ID_CLASS}="joystick"
+
+ENV{ID_SERIAL}=="", ENV{ID_SERIAL}="noserial"
 
 # by-id links
Index: udev/70-device-mapper.rules
===================================================================
--- udev/70-device-mapper.rules	(revision bda8cfb16472df6339669d4ddc173ce0ebaa1b5c)
+++ udev/70-device-mapper.rules	(revision bda8cfb16472df6339669d4ddc173ce0ebaa1b5c)
@@ -0,0 +1,34 @@
+########################################################################
+#
+# Description : 70-device-mapper.rules
+#
+# Authors     : Based on Open Suse Udev Rules
+#               kay.sievers@suse.de
+#
+# Adapted to  : Jim Gifford
+# LFS
+#
+# Version     : 00.01
+#
+# Notes       :
+#
+########################################################################
+
+# device mapper links hook into "online" event, when the dm table
+# is available, while some table types must be ignored
+
+KERNEL=="device-mapper", SYMLINK+="mapper/control"
+
+KERNEL=="dm-*", ACTION=="add|change", GOTO="device_mapper_do"
+GOTO="device_mapper_end"
+
+LABEL="device_mapper_do"
+PROGRAM!="/sbin/dmsetup status -j %M -m %m", GOTO="device_mapper_end"
+RESULT=="|*snapshot*|*error*", GOTO="device_mapper_end"
+
+IMPORT{program}="vol_id --export $tempnode"
+ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{ID_FS_UUID}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID}"
+ENV{ID_FS_USAGE}=="filesystem|other", ENV{ID_FS_LABEL_SAFE}=="?*", SYMLINK+="disk/by-label/$env{ID_FS_LABEL_SAFE}"
+
+LABEL="device_mapper_end"
+
Index: udev/Makefile
===================================================================
--- udev/Makefile	(revision 664631f5f4b502859a0676bb330ea5673f037003)
+++ udev/Makefile	(revision bda8cfb16472df6339669d4ddc173ce0ebaa1b5c)
@@ -83,4 +83,5 @@
 	@echo "---------------------------------------------------------------------------------------"
 	@echo "make install			install udev rules package and helper scripts"
+	@echo "make install-device-mapper	install device-mapper rules"
 	@echo "make install-netboot		install udev rules package for netboot"
 	@echo "make install-network		install network helper package"
@@ -95,4 +96,9 @@
 	install -m 644 contrib/common/udev_helper ${DESTDIR}/etc/sysconfig/udev_helper
 	
+install-device-mapper:
+	install -d ${DESTDIR}/lib/udev
+	install -d ${DESTDIR}/etc/rc.d/init.d
+	install -m ${RULESMODE} 70-device-mapper.rules ${DESTDIR}/etc/udev/rules.d/70-device-mapper.rules
+
 install-network: install-helper-functions install-network-update
 	install -d ${DESTDIR}/etc/udev/rules.d/
