[systemd-devel] [EXT] Re: [systemd‑devel] Run "ipmitool power cycle" after lib/systemd/system‑shutdown scripts

Adam Nielsen a.nielsen at shikadi.net
Fri Feb 11 14:20:21 UTC 2022


> > I recently reflashed a Dell H710 onboard SAS controller, to disable
> > the RAID firmware and convert it into IT mode
> 
> I think the real reason is that some RAID controllers "back up" the
> disk configuration in NVRAM, so if you want to reconfigure the disks
> completely, you'd probably have to erase the logical disks first,
> then upgrade the firmware, and then recreate the configuration.

In this case the device doesn't officially support the functionality,
so it involves cross-flashing firmware from another vendor onto the
Dell card (which only works because they all come from the same OEM).
For whatever reason, after you erase the flash you have to also
disconnect the battery otherwise the new firmware won't reflash
correctly.

There is no logical disk configuration once it's in IT mode because at
that point it's just a "dumb controller".  Any SATA or SAS disk you
plug in appears immediately as /dev/sda etc. just like it does when you
hot plug a USB stick.

Once the OS has direct access to the disks it means you can make use of
the more advanced software RAID features provided by the OS (or use
filesystems like btrfs or ZFS that work across multiple disks) rather
than be limited to whatever RAID functionality the controller firmware
provides.

> > Most of the Dell BIOS updates I've performed (outside of Linux, by
> > booting from a USB stick) have automatically power cycled the server
> > when they are done, so even they don't just do a hardware reset.  
> 
> Why don't you upgrade firmware using the built-in IDRAC?

The only servers I've done it on have been too old to support it via
the DRAC.  But I didn't use a physical USB stick, I uploaded a disk
image to the DRAC and made it appear as a USB flash drive, then used
the remote console to boot it and start the process going, so I suppose
technically it was a firmware upgrade via the DRAC, just probably not
what you meant :)

For anyone else reading this and curious how it works, the DRAC is a
small computer that runs Linux, located physically inside the server
with its own Ethernet connection.  It uses the Linux gadget[1] facility
to implement various USB devices in software, such as a keyboard, mouse
and USB storage devices.  The server thinks these are real devices
plugged into its USB ports, but actually they are just programs running
on the DRAC.  You can upload disk images and the DRAC uses the gadget
driver to make it look like a USB flash drive has been plugged in, and
when you use VNC to connect to the DRAC to view what's on the server's
monitor, your keystrokes are sent out via the keyboard gadget driver so
the OS running on the server sees keystroke events coming in on what it
thinks is a real USB keyboard.

It's a great use case for the Linux gadget driver, which otherwise
isn't terribly well known.

Cheers,
Adam.

[1] https://www.kernel.org/doc/html/latest/usb/gadget_configfs.html


More information about the systemd-devel mailing list