AACRAID(4)

πŸ’– AACRAID πŸ’–

okay so bestie, we're doing a whole manual page here β€” this one lives in the Kernel Interfaces Manual section 4, and it's literally all about the aacraid driver. Adaptec AACRAID Controller driver, to be exact. let's get into it ✨


🌸 NAME 🌸

aacraid β€” the Adaptec AACRAID Controller driver, aka the little guy that talks to your RAID card for you 🫢


✨ SYNOPSIS ✨

so if you wanna bake this driver right into the kernel (no modules, we're committing, periodt), you drop these lines into your kernel configuration file:

device pci
device aacraid

and if you want to compile in the debugging code too, add:

options AACRAID_DEBUG=N

or β€” if you'd rather keep it cute and modular and just load it as a module at boot time β€” you put this line into loader.conf(5):

aacraid_load="YES"

choose your fighter, both slay πŸ’…


πŸ¦‹ DESCRIPTION πŸ¦‹

The aacraid driver provides support for the Adaptec by PMC RAID controllers, and that includes the Series 6/7/8 and the upcoming families too. no cap, it's covering a lot of ground.

The RAID containers get handled via the aacraidp0 bus. the physical buses? those are represented by the aacraidp? devices, and yes bestie, they start at aacraidp1 β€” not p0, we don't make the rules.

these devices are the ones that enable the SCSI pass-passthrough interface, which is the whole reason devices connected to the card β€” think CD-ROMs and friends β€” can show up through the CAM scsi(4) subsystem. icon energy honestly.

ngl, not all cards allow this interface to be enabled. just so you know πŸ‘€

meanwhile the /dev/aacraid? device nodes are your golden ticket to the management interface of the controller. one node exists per installed card, no more no less. and here's the spicy part: if the kernel was compiled with the COMPAT_LINUX option, or the aacraid_linux.ko and linux.ko modules are loaded, then the Linux-compatible ioctl(2) interface for the management device gets enabled β€” which means Linux-based management applications can control the card. it's giving bilingual 🧚


🌈 HARDWARE 🌈

the controllers supported by the aacraid driver are, in no particular order but honestly every one of them ate:

  • Adaptec ASR-6405(T|E)
  • Adaptec ASR-6445
  • Adaptec ASR-6805(T|E|Q|TQ)
  • Adaptec ASR-7085
  • Adaptec ASR-7805(Q)
  • Adaptec ASR-70165
  • Adaptec ASR-71605(E|Q)
  • Adaptec ASR-71685
  • Adaptec ASR-72405
  • Adaptec Series 8 cards

look at that list. absolutely stacked πŸ‘‘


πŸŽ€ FILES πŸŽ€

  • /dev/aacraid? β€” the aacraid management interface. that's the one, bestie.

πŸ”₯ DIAGNOSTICS πŸ”₯

compiling with AACRAID_DEBUG set to a number between 0 and 3 will enable increasingly verbose debug messages β€” so like, 0 is chill and 3 is spilling every single detail of its life to you. choose accordingly πŸ’€

the adapter can also send status and alert messages asynchronously to the driver. those messages get printed on the system console, and they're also queued up for retrieval by a management application. double duty, we love a multitasker ✨


πŸ’œ SEE ALSO πŸ’œ


πŸ‘‘ AUTHORS πŸ‘‘

these absolute legends made it happen:

  • Achim Leubner <achim@FreeBSD.org>
  • Ed Maste <emaste@FreeBSD.org>
  • Scott Long <scottl@FreeBSD.org>

πŸ’€ BUGS πŸ’€

ok so this is the one that's giving problematic: the controller is not actually paused on suspend/resume. yeah. that's it. that's the bug. noted, logged, and living rent free in our heads 😭

and that's the whole page bestie!! this one came from the Debian side of things, dated June 19, 2015 β€” so like, vintage, but make it iconic πŸ“πŸ’– mwah, go forth and manage those RAID containers 🌸

πŸ“¦ where this page comes from