Hi all,
I've recently gotten hold of a Dell PowerEdge R720 with a PERC H710P Mini controller. Wanting to try out ZFS I had hoped to make the individual drives available to the host (as JBOD/passthrough drives) but sadly the Dell firmware does not support JBOD for this controller. Other cards based on the same LSI 2208 "Thunderbolt" controller do, so after reading a number of posts about people who had talked about flashing alternate firmware on the card (but none that I could see who had tried), I thought I would give it a go.
Unfortunately, none of the official LSI firmwares seem to work. They flash successfully but the card boots up with a firmware failure and no drives are seen. I haven't tried firmwares from other manufacturers, but the purpose of this post is to explain how to recover from a failed flash, in case anyone else wants to give it a go with other firmwares.
So, to recover the H710 you will need:
1. A bootable USB stick with the LSI MegaRAID recovery image on it.
The instructions for making the bootable USB under Linux didn't work for me, so I had to manually create a bootable USB with SYSLinux and copy across all the configs and programs. Make sure you get this to work before starting! Since rebooting the R720 is quite slow, you can test it out locally with QEMU first:
If it boots (and you can run the MegaRAID commands and just get errors about no controllers found) then you're good to go.
They have a bootable ISO as well which would've been a lot easier, but this didn't work for me because they don't load any CD drivers, so there's no drive letter with the firmware on it after you've booted so that was completely useless.
2. A copy of the latest Dell firmware for the PERC.
I downloaded mine from the Dell support site. Put in your service tag and change the category to "SAS RAID". In my case, the download was called "Dell PERC H710P Mini Monolithic Adapter firmware release 21.3.5-0002". The .exe download can be extracted under Linux with "unzip", and contains a file called FW8148PM.rom. This is the file you will need. Make sure it's accessible from the USB stick.
3. Patience. If the wrong firmware is flashed, the system will take about 30 mins to boot, and will appear stuck on 'initializing firmware'. Just give it time and it will boot eventually. With the wrong firmware loaded, none of the usual tools will be able to see the card. Only the LSI recovery mode tool will recognise and be able to reflash it.
In order to do the recovery for the H710P, you'll need to boot the USB, go into the MegaRAID menu and then boot the recovery image.
In my case the USB drive was drive C, adjust as needed. Once booted, you can:
Note that although the command here is "megacli", it's actually megarec.exe that has been renamed for some reason.
The LSI ROM does flash:
But during boot it still says there was a FW failure. Linux dmesg says this:
Flashing the Dell image works fine though and gets everything back to normal:
After restoring the Dell FW, I didn't even lose my RAID config. But looks like I'll have to be content with two RAID0 virtual disks, each with only one physical disk, instead of true JBOD mode.
If anyone else decides to have a go with firmwares from other manufacturers, please let me know! (Also if you're reasonably certain of one that might work, let me know why and where it is and I might give it a go. I'd be more eager except it's such a time consuming process, having to wait 30 mins for the server to boot!)
I've recently gotten hold of a Dell PowerEdge R720 with a PERC H710P Mini controller. Wanting to try out ZFS I had hoped to make the individual drives available to the host (as JBOD/passthrough drives) but sadly the Dell firmware does not support JBOD for this controller. Other cards based on the same LSI 2208 "Thunderbolt" controller do, so after reading a number of posts about people who had talked about flashing alternate firmware on the card (but none that I could see who had tried), I thought I would give it a go.
Unfortunately, none of the official LSI firmwares seem to work. They flash successfully but the card boots up with a firmware failure and no drives are seen. I haven't tried firmwares from other manufacturers, but the purpose of this post is to explain how to recover from a failed flash, in case anyone else wants to give it a go with other firmwares.
So, to recover the H710 you will need:
1. A bootable USB stick with the LSI MegaRAID recovery image on it.
The instructions for making the bootable USB under Linux didn't work for me, so I had to manually create a bootable USB with SYSLinux and copy across all the configs and programs. Make sure you get this to work before starting! Since rebooting the R720 is quite slow, you can test it out locally with QEMU first:
Code:
qemu-system-x86_64 -hda /dev/sdx
They have a bootable ISO as well which would've been a lot easier, but this didn't work for me because they don't load any CD drivers, so there's no drive letter with the firmware on it after you've booted so that was completely useless.
2. A copy of the latest Dell firmware for the PERC.
I downloaded mine from the Dell support site. Put in your service tag and change the category to "SAS RAID". In my case, the download was called "Dell PERC H710P Mini Monolithic Adapter firmware release 21.3.5-0002". The .exe download can be extracted under Linux with "unzip", and contains a file called FW8148PM.rom. This is the file you will need. Make sure it's accessible from the USB stick.
3. Patience. If the wrong firmware is flashed, the system will take about 30 mins to boot, and will appear stuck on 'initializing firmware'. Just give it time and it will boot eventually. With the wrong firmware loaded, none of the usual tools will be able to see the card. Only the LSI recovery mode tool will recognise and be able to reflash it.
In order to do the recovery for the H710P, you'll need to boot the USB, go into the MegaRAID menu and then boot the recovery image.
In my case the USB drive was drive C, adjust as needed. Once booted, you can:
Code:
set path=a:\;a:\fdos;a:\fdos\bin # Needed to avoid "DOS4GW not found" error
c:
cd\boot\lsi\fw\recover
# Try the LSI ROM (this flashes but doesn't work)
megacli -m0flash 0 ..\9286\mr2208fw.rom
# Go back to the Dell ROM
megacli -m0flash 0 \fw8148pm.rom
The LSI ROM does flash:
But during boot it still says there was a FW failure. Linux dmesg says this:
Code:
megaraid_sas 0000:02:00.0: Waiting for FW to come to ready state
megaraid_sas 0000:02:00.0: FW in FAULT state!!
megaraid_sas 0000:02:00.0: FW restarted successfully from megasas_init_fw!
megaraid_sas 0000:02:00.0: Waiting for FW to come to ready state
megaraid_sas 0000:02:00.0: FW in FAULT state!!
megaraid_sas 0000:02:00.0: Failed from megasas_init_fw 5583
After restoring the Dell FW, I didn't even lose my RAID config. But looks like I'll have to be content with two RAID0 virtual disks, each with only one physical disk, instead of true JBOD mode.
If anyone else decides to have a go with firmwares from other manufacturers, please let me know! (Also if you're reasonably certain of one that might work, let me know why and where it is and I might give it a go. I'd be more eager except it's such a time consuming process, having to wait 30 mins for the server to boot!)