diff options
Diffstat (limited to 'sys-fs/udev/files/udev-151-readd-hd-rules.diff')
-rw-r--r-- | sys-fs/udev/files/udev-151-readd-hd-rules.diff | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/sys-fs/udev/files/udev-151-readd-hd-rules.diff b/sys-fs/udev/files/udev-151-readd-hd-rules.diff new file mode 100644 index 0000000..53e99b0 --- /dev/null +++ b/sys-fs/udev/files/udev-151-readd-hd-rules.diff @@ -0,0 +1,53 @@ +diff --git a/extras/cdrom_id/60-cdrom_id.rules b/extras/cdrom_id/60-cdrom_id.rules +index 132a680..a3e8e3c 100644 +--- a/extras/cdrom_id/60-cdrom_id.rules ++++ b/extras/cdrom_id/60-cdrom_id.rules +@@ -2,4 +2,4 @@ + + # import optical drive properties + ACTION=="add|change", SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", \ +- KERNEL=="sr[0-9]*|xvd*", IMPORT{program}="cdrom_id --export $tempnode" ++ KERNEL=="sr[0-9]*|hd[a-z]|pcd[0-9]|xvd*", IMPORT{program}="cdrom_id --export $tempnode" +diff --git a/rules/rules.d/50-udev-default.rules b/rules/rules.d/50-udev-default.rules +index f8556d1..ba07079 100644 +--- a/rules/rules.d/50-udev-default.rules ++++ b/rules/rules.d/50-udev-default.rules +@@ -77,9 +77,12 @@ SUBSYSTEM=="block", GROUP="disk" + + # floppy + SUBSYSTEM=="block", KERNEL=="fd[0-9]", GROUP="floppy" ++SUBSYSTEM=="block", 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=="hd*", SUBSYSTEMS=="ide", ATTRS{media}=="floppy", OPTIONS+="all_partitions" + + # cdrom + SUBSYSTEM=="block", KERNEL=="sr[0-9]*", SYMLINK+="scd%n", GROUP="cdrom" ++SUBSYSTEM=="block", KERNEL=="hd*", SUBSYSTEMS=="ide", ATTRS{media}=="cdrom", GROUP="cdrom" + SUBSYSTEM=="scsi_generic", SUBSYSTEMS=="scsi", ATTRS{type}=="4|5", GROUP="cdrom" + KERNEL=="pktcdvd[0-9]*", GROUP="cdrom" + KERNEL=="pktcdvd", GROUP="cdrom" +diff --git a/rules/rules.d/60-persistent-storage.rules b/rules/rules.d/60-persistent-storage.rules +index 89041a9..6f12a9a 100644 +--- a/rules/rules.d/60-persistent-storage.rules ++++ b/rules/rules.d/60-persistent-storage.rules +@@ -12,12 +12,21 @@ SUBSYSTEM!="block", GOTO="persistent_storage_end" + # skip rules for inappropriate block devices + KERNEL=="fd*|mtd*|nbd*|gnbd*|btibm*|dm-*|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", SUBSYSTEMS=="ide", ATTRS{media}=="disk|floppy", GOTO="persistent_storage_end" ++KERNEL=="hd*[0-9]", ATTRS{removable}=="1", GOTO="persistent_storage_end" ++ + # ignore partitions that span the entire disk + TEST=="whole_disk", GOTO="persistent_storage_end" + + # for partitions import parent information + ENV{DEVTYPE}=="partition", IMPORT{parent}="ID_*" + ++# by-id (hardware serial number) ++KERNEL=="hd*[!0-9]", IMPORT{program}="ata_id --export $tempnode" ++KERNEL=="hd*[!0-9]", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/ata-$env{ID_SERIAL}" ++KERNEL=="hd*[0-9]", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/ata-$env{ID_SERIAL}-part%n" ++ + # USB devices use their own serial number + KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="usb", IMPORT{program}="usb_id --export %p" + # ATA devices with their own "ata" kernel subsystem |