diff options
Diffstat (limited to 'patches/bin/rescan-scsi-bus')
-rw-r--r-- | patches/bin/rescan-scsi-bus | 119 |
1 files changed, 0 insertions, 119 deletions
diff --git a/patches/bin/rescan-scsi-bus b/patches/bin/rescan-scsi-bus deleted file mode 100644 index f1745bd9..00000000 --- a/patches/bin/rescan-scsi-bus +++ /dev/null @@ -1,119 +0,0 @@ -#!/bin/sh -# Skript to rescan SCSI bus, using the -# scsi add-single-device mechanism -# (w) 98/03/19 Kurt Garloff <kurt@garloff.de> (c) GNU GPL - -# This script is useful for automatically scanning for new -# USB and IEEE1394 devices which will not show up automatically -# if they use a LUN (logical unit number) other than 0. -# To search all LUNS for new devices to enable, run like this: -# -# rescan-scsi-bus -l - -found=0 -rmvd=0 - -# Return hosts. /proc/scsi/HOSTADAPTER/? must exist -findhosts() { - hosts= - for name in /proc/scsi/*/?; do - name=${name#/proc/scsi/} - if test ! $name = scsi ; then - hosts="$hosts ${name#*/}" - echo "Host adapter ${name#*/} (${name%/*}) found." - fi - done -} - -# Test if SCSI device $host $channen $id $lun exists -# Outputs description from /proc/scsi/scsi, returns new -testexist() { - grepstr="scsi$host Channel: 0$channel Id: 0*$id Lun: 0$lun" - new=`cat /proc/scsi/scsi | grep -e "$grepstr"` - if test ! -z "$new" ; then - cat /proc/scsi/scsi | grep -e "$grepstr" - cat /proc/scsi/scsi | grep -A2 -e "$grepstr" | tail -n 2 - fi -} - -# Perform search (scan $host) -dosearch() { - for channel in $channelsearch; do - for id in $idsearch; do - for lun in $lunsearch; do - new= - devnr="$host $channel $id $lun" - echo "Scanning for device $devnr ..." - printf "OLD: " - testexist - if test ! -z "$remove" -a ! -z "$new" ; then - echo "scsi remove-single-device $devnr" > /proc/scsi/scsi - echo "scsi add-single-device $devnr" > /proc/scsi/scsi - printf "\r\x1b[A\x1b[A\x1b[AOLD: " - testexist - if test -z "$new"; then - printf "\rDEL: \r\n\n\n\n" - rmvd=$(($rmvd+1)) - fi - fi - if test -z "$new" ; then - printf "\rNEW: " - echo "scsi add-single-device $devnr" > /proc/scsi/scsi - testexist - if test -z "$new"; then - printf "\r\x1b[A" - else - found=$(($found+1)) - fi - fi - done - done - done -} - - -# main -if test @$1 = @--help -o @$1 = @-h ; then - echo "Usage: rescan-scsi-bus.sh [-l] [-w] [-c] [host [host ...]]" - echo " -l activates scanning for LUNs 0 .. 7 [default: 0]" - echo " -w enables scanning for device IDs 0 .. 15 [def.: 0 .. 7]" - echo " -r enables removing of devices [default: disabled]" - echo " -c enables scanning of channels 0 1 [default: 0]" - echo " If hosts are given, only these are scanned [default: all]" - exit 0 -fi - -# defaults -lunsearch="0" -idsearch="0 1 2 3 4 5 6 7" -channelsearch="0" -remove="" - -# Scan options -opt="$1" -while test ! -z "$opt" -a -z "${opt##-*}"; do - opt=${opt#-} - case "$opt" in - l) lunsearch="0 1 2 3 4 5 6 7" ;; - w) idsearch="0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15" ;; - c) channelsearch="0 1" ;; - r) remove=1 ;; - *) echo "Unknown option -$opt !" ;; - esac - shift - opt="$1" -done - -# Hosts given ? -if test @$1 = @; then - findhosts -else - hosts=$* -fi - -for host in $hosts; do - dosearch -done -echo "$found new device(s) found. " -echo "$rmvd device(s) removed. " - |