From: Phil Turmel <philip@turmel.org>
To: John Robinson <john.robinson@anonymous.org.uk>
Cc: linux-raid@vger.kernel.org
Subject: Re: Determining which spindle is out of order
Date: Sun, 07 Nov 2010 09:43:57 -0500 [thread overview]
Message-ID: <4CD6BB2D.5020202@turmel.org> (raw)
In-Reply-To: <4CD6ACED.9030808@anonymous.org.uk>
On 11/07/2010 08:43 AM, John Robinson wrote:
> On 07/11/2010 13:21, Phil Turmel wrote:
>> On 11/07/2010 07:53 AM, John Robinson wrote:
>>> On 06/11/2010 16:02, Phil Turmel wrote:
>>>> On 11/06/2010 11:46 AM, John Robinson wrote:
>>> [...]
>>>>> Now I need to find udevadm I guess. It must have been introduced since the udev version that comes with RHEL/CentOS 5, which is udev-095-14.21.el5_5.1. rpmfind.net suggests it's only been in since version 118 or so. Never mind :-)
>>>>
>>>> Heh. Anyone know the equivalent command in earlier versions of udev?
>>>
>>> I think it's `udevinfo` instead of `udevadm info` - the comment in the ChangeLog for udev-117 is "udevadm: merge all udev tools into a single binary". But it doesn't work terribly well:
>>>
>>> [root@beast describe_scsi]# udevinfo -q all -p /devices/pci0000\:00/0000\:00\:1f.2/
>>> no record for '/devices/pci0000:00/0000:00:1f.2/' in database
>>>
>>> That's unfortunate. But it does know about that device if asked differently:
>>>
>>> [root@beast describe_scsi]# udevinfo -a -p /devices/pci0000\:00/0000\:00\:1f.2/
>>
>> Hmmm. Can you try both of the above without the trailing slash?
>
> Just the same output, however I ask the question:
>
> [root@beast ~]# udevinfo -q all -p /devices/pci0000\:00/0000\:00\:1f.2
> no record for '/devices/pci0000:00/0000:00:1f.2' in database
> [root@beast ~]# udevinfo -q all -p /devices/pci0000:00/0000:00:1f.2
> no record for '/devices/pci0000:00/0000:00:1f.2' in database
> [root@beast ~]# udevinfo -q all -p /sys/devices/pci0000:00/0000:00:1f.2
> no record for '/devices/pci0000:00/0000:00:1f.2' in database
> [root@beast ~]#
>
> And all with "-a" instead of "-q all" produce the output I posted before.
The modern udevadm gives me that with --attribute-walk. It's purpose is to report
the conditions one might want to use in an udev rule. It doesn't provide the human
descriptions I'm looking for.
> Please don't feel you have to turn this into a project, though.
Too late. Here's a version that doesn't use udevadm at all...
#! /bin/bash
#
# Examine specific system host devices to identify the drives attached
#
function describe_controller () {
local device driver modprefix serial slotname
driver="`readlink -f \"$1/driver\"`"
driver="`basename $driver`"
modprefix="`cut -d: -f1 <\"$1/modalias\"`"
echo "Controller device @ ${1##/sys/devices/} [$driver]"
if [[ "$modprefix" == "pci" ]] ; then
slotname="`basename \"$1\"`"
echo -n " `lspci -s $slotname |cut -d\ -f2-`"
return
fi
if [[ "$modprefix" == "usb" ]] ; then
if [[ -f "$1/busnum" ]] ; then
device="`cat \"$1/busnum\"`:`cat \"$1/devnum\"`"
serial="`cat \"$1/serial\"`"
else
device="`cat \"$1/../busnum\"`:`cat \"$1/../devnum\"`"
serial="`cat \"$1/../serial\"`"
fi
echo " `lsusb -s $device` {SN: $serial}"
return
fi
echo -e " `cat \"$1/modalias\"`"
}
function describe_device () {
targ=${1%/block/*}
vnd="`cat $targ/vendor`"
mdl=`cat $targ/model`
rdev=`readlink -f "$1"`
if [[ -d $rdev ]] ; then
bdev="`basename $rdev`"
sn="`sginfo -s /dev/$bdev | \
sed -rn -e \"/Serial Number/{s%^.+' *(.+) *'.*\\\$%\\\\1%;p;q}\"`" &>/dev/null
if [[ -n "$sn" ]] ; then
echo -e " $bhost: `echo /dev/$bdev $vnd $mdl {SN: $sn}`"
else
echo -e " $bhost: `echo /dev/$bdev $vnd $mdl`"
fi
else
echo -e " $bhost: Unknown $rdev"
fi
}
function check_host () {
local found=0
local pController=
while read shost ; do
host=`dirname "$shost"`
controller=`dirname "$host"`
bhost=`basename "$host"`
if [[ "$controller" != "$pController" ]] ; then
pController="$controller"
describe_controller "$controller"
fi
for dev in $host/target*/*/block/* ; do
if [[ "${dev: -1}" == '*' ]] ; then
echo -e " $bhost: [Empty]"
else
describe_device "$dev"
fi
done
done
}
find /sys/devices/ -name scsi_host |check_host
next prev parent reply other threads:[~2010-11-07 14:43 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-11-03 14:13 Determining which spindle is out of order Nat Makarevitch
2010-11-03 14:38 ` Roman Mamedov
2010-11-03 15:17 ` Graham Mitchell
2010-11-03 16:05 ` Roman Mamedov
2010-11-03 19:00 ` Jon Hardcastle
2010-11-03 14:43 ` John Robinson
2010-11-03 14:45 ` Tim Small
2010-11-03 15:59 ` Jon Hardcastle
2010-11-03 17:17 ` Bill Davidsen
2010-11-03 20:03 ` Tim Small
2010-11-03 15:29 ` Mikael Abrahamsson
2010-11-03 21:54 ` Phil Turmel
2010-11-03 22:26 ` Roman Mamedov
2010-11-04 9:29 ` Tom Carlson
2010-11-06 10:22 ` Leslie Rhorer
2010-11-06 15:12 ` Phil Turmel
[not found] ` <4CD57867.4010207@anonymous.org.uk>
2010-11-06 16:02 ` Phil Turmel
2010-11-06 16:11 ` Mathias Burén
2010-11-06 16:45 ` Jan Ceuleers
2010-11-06 19:39 ` Phil Turmel
2010-11-06 20:16 ` Leslie Rhorer
2010-11-06 20:23 ` Mr. James W. Laferriere
2010-11-07 7:51 ` Jan Ceuleers
2010-11-07 12:53 ` John Robinson
2010-11-07 13:21 ` Phil Turmel
2010-11-07 13:43 ` John Robinson
2010-11-07 14:43 ` Phil Turmel [this message]
2010-11-07 15:04 ` Mathias Burén
2010-11-07 15:19 ` John Robinson
2010-11-07 18:39 ` Phil Turmel
2010-11-07 20:46 ` Leslie Rhorer
2010-11-07 21:22 ` John Robinson
2010-11-08 18:59 ` John Robinson
2010-11-07 21:24 ` Andreas Dröscher
2010-11-08 21:05 ` Mr. James W. Laferriere
2010-11-07 20:52 ` Roman Mamedov
2010-11-09 14:40 ` Phil Turmel
2010-11-06 19:58 ` Leslie Rhorer
2010-11-06 21:17 ` John Robinson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4CD6BB2D.5020202@turmel.org \
--to=philip@turmel.org \
--cc=john.robinson@anonymous.org.uk \
--cc=linux-raid@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.