Skip to contentSkip to conversation

ide-devfs.sh update

udev Applied Kay Sievers 2 participants 2 messages Dec 26, 2003 – Dec 30, 2003

lore
Share & tools
lore
#0 lore raw

Attached is a patch for ide-devfs.sh,
The script is merged with the one from Martin Schlemmer, and cleaned up by him, to create both types of symlinks with one single rule:

CALLOUT, BUS="ide", PROGRAM="/etc/udev/ide-devfs.sh %k %b %n", ID="hd*", NAME="%1c", SYMLINK="%2c %3c"

Please chmod it executable in bk.

thanks,
Kay

/udev/

|-- cdroms
|   `-- cdrom0 -> ../hdc
|-- discs
|   |-- disc0
|   |   |-- disc -> ../../hda
|   |   |-- part1 -> ../../hda1
|   |   |-- part2 -> ../../hda2
|   |   `-- part4 -> ../../hda4
|   |-- disc1
|   |   |-- disc -> ../../hdb
|   |   `-- part1 -> ../../hdb1
|   `-- disc2
|       |-- disc -> ../../hde
|       `-- part1 -> ../../hde1
|-- hda
|-- hda1
|-- hda2
|-- hda4
|-- hdb
|-- hdb1
|-- hdc
|-- hde
|-- hde1
`-- ide
    |-- host0
    |   |-- bus0
    |   |   |-- target0
    |   |   |   `-- lun0
    |   |   |       |-- disc -> ../../../../../hda
    |   |   |       |-- part1 -> ../../../../../hda1
    |   |   |       |-- part2 -> ../../../../../hda2
    |   |   |       `-- part4 -> ../../../../../hda4
    |   |   `-- target1
    |   |       `-- lun0
    |   |           |-- disc -> ../../../../../hdb
    |   |           `-- part1 -> ../../../../../hdb1
    |   `-- bus1
    |       `-- target0
    |           `-- lun0
    |               `-- cd -> ../../../../../hdc
    `-- host2
        `-- bus0
            `-- target0
                `-- lun0
                    |-- disc -> ../../../../../hde
                    `-- part1 -> ../../../../../hde1
extras/ide-devfs.sh +32 -12
diff -Nru a/extras/ide-devfs.sh b/extras/ide-devfs.sh
@@ -2,26 +2,46 @@
 
 # udev CALLOUT script
 # return devfs-names for ide-devices
-# CALLOUT, BUS="ide", PROGRAM="/etc/udev/ide-devfs.sh %k %b %n", ID="hd*", NAME="%1c", SYMLINK="%2c"
+# CALLOUT, BUS="ide", PROGRAM="/etc/udev/ide-devfs.sh %k %b %n", ID="hd*", NAME="%1c", SYMLINK="%2c %3c"
 
-HOST=${2%\.[0-9]}
-TARGET=${2#[0-9]\.}
+HOST="${2%\.[0-9]}"
+TARGET="${2#[0-9]\.}"
 
-if [ -z ${HOST#[13579]} ]; then
-	HOST=`expr $HOST - 1`
+if [ -z "${HOST#[13579]}" ]; then
+	HOST=`expr ${HOST} - 1`
 	BUS="1"
 else
 	BUS="0"
 fi
 
+get_dev_number() {
+	local x=
+	local num=0
+	local MEDIA=
+	local DRIVE="${1%[0-9]*}"
+
+	for x in /proc/ide/*/media; do
+		if [ -e "${x}" ]; then
+			MEDIA=`cat ${x}`
+			if [ "${MEDIA}" = "$2" ]; then
+				num=`expr ${num} + 1`
+			fi
+			if [ "${x}" = "/proc/ide/${DRIVE}/media" ]; then
+				break
+			fi
+		fi
+	done
+	
+	echo `expr ${num} - 1`
+}
+
 if [ -z "$3" ]; then
-	MEDIA=`cat /proc/ide/$1/media`
-	if [ "$MEDIA" = "cdrom" ]; then
-		echo $1 ide/host$HOST/bus$BUS/target$TARGET/lun0/cd
-	elif [ "$MEDIA" = "disk" ]; then
-		echo $1 ide/host$HOST/bus$BUS/target$TARGET/lun0/disc
+	MEDIA=`cat /proc/ide/${1}/media`
+	if [ "${MEDIA}" = "cdrom" ]; then
+		echo ${1} ide/host${HOST}/bus${BUS}/target${TARGET}/lun0/cd cdroms/cdrom`get_dev_number $1 cdrom`
+	elif [ "${MEDIA}" = "disk" ]; then
+		echo $1 ide/host${HOST}/bus${BUS}/target${TARGET}/lun0/disc discs/disc`get_dev_number $1 disk`/disc
 	fi
 else
-	echo $1 ide/host$HOST/bus$BUS/target$TARGET/lun0/part$3
+	echo $1 ide/host${HOST}/bus${BUS}/target${TARGET}/lun0/part$3 discs/disc`get_dev_number $1 disk`/part$3
 fi
-
Applied
#1 lore raw
Quoted 6 lines · Kay Sievers

Attached is a patch for ide-devfs.sh,
The script is merged with the one from Martin Schlemmer, and cleaned up by him, to create both types of symlinks with one single rule:

CALLOUT, BUS="ide", PROGRAM="/etc/udev/ide-devfs.sh %k %b %n", ID="hd*", NAME="%1c", SYMLINK="%2c %3c"

Applied.

Quoted 1 line

Please chmod it executable in bk.

Done, thanks.

greg k-h

-------------------------------------------------------
This SF.net email is sponsored by: IBM Linux Tutorials. Become an expert in LINUX or just sharpen your skills. Sign up for IBM's Free Linux Tutorials. Learn everything from the bash shell to sys admin. Click now! http://ads.osdn.com/?ad_id78&alloc_id371&op=click
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel