1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- #! /bin/sh
- # aoe-version - display versions of AoE-related software
- # Copyright 2009, CORAID, Inc., and licensed under GPL v.2.
- aoetools=30
- # modinfo doesn't always work correctly when there is a file
- # in the current working directory called "aoe", but it's
- # not hard to change the current working directory.
- for wd in . / /sys /var/run /usr /proc /etc /home; do
- a=`{ cd "$wd" 2> /dev/null && test ! -r aoe && echo yes; } || echo no`
- if test "$a" = "yes"; then
- cd "$wd"
- break
- fi
- done
- # The aoe module isn't guaranteed to be in the location below,
- # but if we only try to use it when each of the directories
- # above was not usable, we shouldn't use the hard-coded location
- # often.
- aoe=aoe
- if test -r ./aoe; then
- aoe="/lib/modules/`uname -r`/kernel/drivers/block/aoe/aoe.ko"
- fi
- # standalone aoe drivers have a module parameter "version"
- installed="`modinfo \"$aoe\" 2>/dev/null | awk '/srcversion/ {next} /^parm:.*version:aoe module/ {print $NF; exit 0}'`"
- if test -z "$installed"; then
- # Recent kernels have a "version" of their own, so
- # they didn't want our module parameter, so we look
- # for that, too, in case user is using kernel.org driver.
- installed="`modinfo \"$aoe\" 2>/dev/null | awk '/^version:/ {print $NF; exit 0}'`"
- fi
- if test "$?" != "0" || test -z "$installed"; then
- installed="(unknown)"
- fi
- if test -d /sys/module/aoe; then
- running="`find /sys/module/aoe -name version | xargs cat`"
- if test "$?" != "0"; then
- running="(unknown)"
- fi
- else
- running="(none)"
- fi
- while read val desc; do
- printf "%22s:\t%s\n" "$desc" "$val"
- done <<EOF
- $aoetools aoetools
- $installed installed aoe driver
- $running running aoe driver
- EOF
|