From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kay Sievers Date: Fri, 26 Dec 2003 01:28:58 +0000 Subject: [udev] ide-devfs.sh update MIME-Version: 1 Content-Type: multipart/mixed; boundary="pf9I7BMVVzbSWLtt" Message-Id: List-Id: To: linux-hotplug@vger.kernel.org --pf9I7BMVVzbSWLtt Content-Type: text/plain; charset=us-ascii Content-Disposition: inline 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 --pf9I7BMVVzbSWLtt Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename="02-ide-devfs.diff" diff -Nru a/extras/ide-devfs.sh b/extras/ide-devfs.sh --- a/extras/ide-devfs.sh Fri Dec 26 01:52:05 2003 +++ b/extras/ide-devfs.sh Fri Dec 26 01:52:05 2003 @@ -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 - --pf9I7BMVVzbSWLtt-- ------------------------------------------------------- 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_id=1278&alloc_id=3371&op=click _______________________________________________ Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net Linux-hotplug-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel