If you’re thinking of purchasing a PERC H740p, or have already got one and want to use it within a Linux environment, there are a few things you should be aware of:
- Compatibility issues – support for these cards was added in kernel 4.11.
- As of writing only 4GB of DRAM & NV Cache is addressable (even though the card is listed as and shipped with 8GB). Dell are due to launch firmware post launch which will enable the remaining 4GB.
Using with Kernel’s older than 4.11
If you attempt to install an OS which does not have kernel 4.11 or newer, then you may well find that the disks are not detected during the install process. This is what happened while trying to install Debian 9.3 (kernel 4.9). It is possible to compile the driver supplied by Dell and load it in during the install process.
- Get the driver source from the Dell website. Select SUSE from the OS list and SAS RAID as the category. The file you want is the Unified Driver, the filename will look similar to this: UnifiedDriver7.700.52.00SLES12.tar.gz.
-
The driver needs compiling on exactly the same version kernel as it will eventually be used on. It is fine to use VM for this. On your VM install the appropriate kernel headers:
apt-get install linux-headers-$(uname -r)
- Compile the driver, the resultant megaraid_sas.ko file is the driver file you will need. Note, this driver file is required during the install process.
- Install Debian using the graphical installer. It is entirely possible to use the non graphical installer, just use the appropriate key combinations to switch between the installer and console.
-
After the network setup stage, hit Ctrl + Alt + F2 to switch to a console. You will copy the compiled driver into the install filesystem, this will enable the installer to detect the underlying disks. I was able to create a Floppy disk img, which was mounted using iDrac – you can choose whichever method suits you to make the driver file available to the installer.
cp megaraid_sas.ko /lib/modules/$(uname -r)/kernel/drivers/scsi/megaraid/
-
Load the module and then press Ctrl + Alt + F5 to return the installer process.
modprobe megaraid_sas
-
Disks should now be successfully detected. At the last stage of install (before rebooting), the driver needs copying into the initramfs:
cp /lib/modules/$(uname -r)/kernel/drivers/scsi/megaraid/megaraid_sas.ko /target/lib/modules/$(uname -r)/kernel/drivers/scsi/megaraid/ chroot /target echo megaraid_sas >> /etc/initramfs-tools/modules update-initramfs -u exit
- Complete install and reboot.
Last word...
There is probably a much simpler way to accomplish the above, this is what worked in my situation. Additionally I would probably not do this on a system going into Production – through testing and benchmarking with a known setup is recommended.
It should be noted that if you upgrade the kernel after install, you will need to recompile the driver against the new kernel version and load it into the OS prior to rebooting. If you have rebooted and you find yourself at an initramfs shell, grab yourself a live CD and copy in the megaraid driver into the new kernel. Make sure to update initramfs after copying in the driver and before rebooting.