I'm running FreeBSD 7.2, with Seagate Cheetah (Model ST####) drives.
We are having some problems with the SCSI drives on these machines. Our vendor says that updating the firmware on the drives may fix the problems, and a firmware update did seem to fix some SCSI problems on another FreeBSD host.
How can I view the firmware version of these drives? I tried some tips from nixCraft, but nothing has worked so far. In dmesg, I see the Make and Model, but no firmware revision.
In Linux, this information is often in /var/log/dmesg (Although /var/log/dmesg is sometimes out of date), or I often find this information with something like sudo lshw -class disk
, lshal
or dmidecode
.
Update: Wed May 26 12:00:09 PDT 2010
Well, turns out I was wrong. Or a little misled. 'dmesg' will show the firmware version, provided that the files at /var/log/dmesg.today and /var/log/dmesg.yesterday haven't been clobbered by the log rotation. I also didn't recognize that '0003' stood for the firmware revision.
# grep -i seagate /var/log/*
/var/log/dmesg.today:da2: <SEAGATE ST3300655LC 0003> Fixed Direct Access SCSI-3 device
/var/log/dmesg.today:da3: <SEAGATE ST3300655LC 0003> Fixed Direct Access SCSI-3 device
The fields listed here are <"Make" "Model" "Firmware">.
Much like on Linux this data may be in your
dmesg
output (depending on your disk controller: a hardware RAID controller may not pass the firmware data through for an array).If it's not you can install
dmidecode
from ports (sysutils/dmidecode) - that should get you what you need.ipmitool
is also an option, but probably less likely to get you the data you're looking for.If you're using a hardware RAID controller your controller firmware will probably tell you what firmware the drives are running, but flashing the drives would be a different can of worms...