I'm seeing some regressions in the various management tools for Adaptec AAC cards on FreeBSD 7.0-RC1 amd64. I'm trying to use both the 32-bit FreeBSD aaccli binary from the sysutils/aaccli port, and also the 64-bit FreeBSD arcconf from the sysutils/arcconf port (v5.20.17414). The card is an Adaptec 2120S single-channel U320 SCSI. I realize that is an ancient version of aaccli, but as the aac_linux module isn't present on amd64, I can't use the 32-bit Linux aaccli as I used to when this machine ran i386. Command lines are: aaccli 'open aac0: container list' arcconf getconfig 1 On RELENG_7 dated 2007-12-01 (BETA3), both work fine. On RELENG_7 dated 2007-12-15 (BETA4), aaccli fails with the following error; arcconf continues to work fine: Command Error: <The miniport device driver is too old to work with the current AFAAPI.DLL.> On RELENG_7_0 dated 2007-12-22 (RC1), aaccli continues to fail as above AND now also arcconf hangs forever after printing its (correct) output; I have to hit ^C to get a prompt back. I don't really care which one works as long as I can make a Nagios plugin out of it. I could put a nasty hack into my plugin to kill the arcconf process after it gets all its output, but a) ew yuck, and b) this may be a kernel bug... Semi-related question: I plan on replacing this SCSI RAID setup with a SAS RAID setup soonish -- anyone tried 3Ware's SAS card yet? It does appear to be supported in the RELENG_7_0 twa driver... and I'm pretty happy with their SATA cards...
On Jan 2, 2008, at 3:54 AM, Mike Andrews wrote:> Command Error: <The miniport device driver is too old to work with > the current AFAAPI.DLL.>In my experience, this was caused by the firmware rev of the adaptec card. Basically, the combination of FreeBSD, amd64, and Adaptec RAID cards is a bad thing for production systems, and IMO should be avoided. Anyone looking to buy two or three "slightly used" Adaptec 2230SLP RAID cards? :-)
On Wed, Jan 02, 2008 at 03:54:50AM -0500, Mike Andrews wrote:> On RELENG_7 dated 2007-12-15 (BETA4), aaccli fails with the following > error; arcconf continues to work fine: > > Command Error: <The miniport device driver is too old to work with the > current AFAAPI.DLL.>I suspect Adaptec has a firmware bug relating to the RequestAdapterInfo and RequestSupplementAdapterInfo commands. The driver family support brought in the latter, while the former has always been there. It appears that RequestAdapterInfo returns all zeros if it's called after RequestSupplementAdapterInfo or something. The hack patch below forces reasonable values into the aac_revision struct if it's zeroed, and it restores aaccli usage for me. If you have time I'd be interested in finding out if you can continue using aaccli with this patch added. -Ed Index: aac.c ==================================================================RCS file: /usr/cvs/src/sys/dev/aac/aac.c,v retrieving revision 1.109.2.15 diff -p -u -r1.109.2.15 aac.c --- aac.c 31 Mar 2008 20:03:31 -0000 1.109.2.15 +++ aac.c 1 Apr 2008 15:17:18 -0000 @@ -2792,6 +2792,13 @@ aac_describe_controller(struct aac_softc /* save the kernel revision structure for later use */ info = (struct aac_adapter_info *)&fib->data[0]; sc->aac_revision = info->KernelRevision; + if (sc->aac_revision.buildNumber == 0) { + device_printf(sc->aac_dev, "aac_revision hack\n"); + sc->aac_revision.external.comp.major = 5; + sc->aac_revision.external.comp.minor = 2; + sc->aac_revision.external.comp.dash = 0; + sc->aac_revision.buildNumber = 12814; + } if (bootverbose) {