diff options
-rw-r--r-- | etc/udev/udev.rules.gentoo | 2 | ||||
-rw-r--r-- | extras/ide-devfs.sh | 6 | ||||
-rw-r--r-- | namedev.c | 5 |
3 files changed, 9 insertions, 4 deletions
diff --git a/etc/udev/udev.rules.gentoo b/etc/udev/udev.rules.gentoo index 1809232ed0..997acb8a34 100644 --- a/etc/udev/udev.rules.gentoo +++ b/etc/udev/udev.rules.gentoo @@ -19,7 +19,7 @@ BUS="scsi", KERNEL="scd[a-z]", PROGRAM="/etc/udev/scripts/cdsymlinks.sh %k", SYM # devfs-names for ide-devices (uncomment only one) # /dev/ide/.../{disc,cd} and /dev/{cdroms,discs}/* type names -BUS="ide", KERNEL="hd*", PROGRAM="/etc/udev/scripts/ide-devfs.sh %k %b %n", NAME="%k", SYMLINK="%c{1} %c{2}" +BUS="ide", KERNEL="hd*", PROGRAM="/etc/udev/scripts/ide-devfs.sh %k %b %n", NAME="%k", SYMLINK="%c{1} %c{2}", GROUP="%c{3}" # dri devices KERNEL="card*", NAME="dri/card%n" diff --git a/extras/ide-devfs.sh b/extras/ide-devfs.sh index 4f20259480..580a751abe 100644 --- a/extras/ide-devfs.sh +++ b/extras/ide-devfs.sh @@ -36,11 +36,11 @@ get_dev_number() { if [ -z "$3" ] && [ -f /proc/ide/${1}/media ]; then MEDIA=`cat /proc/ide/${1}/media` if [ "${MEDIA}" = "cdrom" ]; then - echo ide/host${HOST}/bus${BUS}/target${TARGET}/lun0/cd cdroms/cdrom`get_dev_number $1 cdrom` + echo ide/host${HOST}/bus${BUS}/target${TARGET}/lun0/cd cdroms/cdrom`get_dev_number $1 cdrom` ${MEDIA} elif [ "${MEDIA}" = "floppy" ]; then - echo ide/host${HOST}/bus${BUS}/target${TARGET}/lun0/disc floppies/floppy`get_dev_number $1 floppy`/disc + echo ide/host${HOST}/bus${BUS}/target${TARGET}/lun0/disc floppies/floppy`get_dev_number $1 floppy`/disc ${MEDIA} elif [ "${MEDIA}" = "disk" ]; then - echo ide/host${HOST}/bus${BUS}/target${TARGET}/lun0/disc discs/disc`get_dev_number $1 disk`/disc + echo ide/host${HOST}/bus${BUS}/target${TARGET}/lun0/disc discs/disc`get_dev_number $1 disk`/disc ${MEDIA} fi else echo ide/host${HOST}/bus${BUS}/target${TARGET}/lun0/part$3 discs/disc`get_dev_number $1 disk`/part$3 @@ -809,6 +809,11 @@ found: udev->partitions = dev->partitions; udev->ignore_remove = dev->ignore_remove; + if (dev->group[0] != '\0') { + strfieldcpy(udev->group, dev->group); + apply_format(udev, udev->group, sizeof(udev->group), class_dev, sysfs_device); + } + /* get permissions given in rule */ set_empty_perms(udev, dev->mode, dev->owner, |