Jump to content

Driver for LSI MegaRAID SAS family


dukzcry
 Share

402 posts in this topic

Recommended Posts

  • 2 weeks later...

Dukzcry, thank you for your efforts to develop the driver. I tried to load it, got a message about firmware fault, upgraded the firmware and fell into more serious troubles. I am not giving any details here because I have a more basic question. I've been trying to make OSX to boot from PowerEdge 1950 gen II directly from a PERC5/i SAS hdd. Is it possible at all? As far as I know the said Dell has no (u)efi. In similar situation to boot it from Linux I would need to have the driver inside the kernel. Is it the same for OSX (seems it should be)?

Link to comment
Share on other sites

Dukzcry, thank you for your efforts to develop the driver. I tried to load it, got a message about firmware fault, upgraded the firmware and fell into more serious troubles. I am not giving any details here because I have a more basic question. I've been trying to make OSX to boot from PowerEdge 1950 gen II directly from a PERC5/i SAS hdd. Is it possible at all? As far as I know the said Dell has no (u)efi. In similar situation to boot it from Linux I would need to have the driver inside the kernel. Is it the same for OSX (seems it should be)?

 

Hmm, that's strange. Both E and I versions of PERC 5 cards with either LSI or Dell firmware worked for people, and I still use PERC 5/E w LSI 7.0.1-0083.

Yes, it's possible if not that "firmware fault" issue. Whether BIOS or EFI is not matter, even if your server had EFI with a driver for your RAID card, this would only mean a support for your card in EFI environment, while OS X still need it's own.

For OS X it's almost the same, os will autoload the SASMegaRAID.kext (kernel extension, or kernel module in terms of linux) RAID driver before the stage of looking for a root device. For this the kext should be in kernel cache (you may run this utility once after the driver installment, just for sure it's in). Plus with Yosemite (preferably with Mavericks too) you need to use 'kext-dev-mode=1' boot option.

Link to comment
Share on other sites

Thanks dukzcry for your response. I simply and apparently wrongly assumed efi could provide sort of translation layer but if not, I agree. For the earlier problem it was like this:
I was trying to install 10.10 booting from the Niresh'es 10.10 distribution usb img. I booted with the argument you suggested (kext-dev-mode=1 – as far as I can see it is enabled in this distribution by default) copying the kext to /System/Library/Extensions. I tried two kexts mentioned in this thread, one of MRSTIMPy and the other of yours (full debug, output below). Both failed with the message indicating a firmware problem:

Nov 15 02:45:38 localhost kernel[0]: [SASMegaRAID] InitializeController
Nov 15 02:45:38 localhost kernel[0]: [SASMegaRAID] [Helper] Region starting at 0xfc320000
Nov 15 02:45:38 localhost kernel[0]: [SASMegaRAID] Memory mapped at virtual address 0x93205000, length 8192
Nov 15 02:45:38 localhost kernel[0]: [SASMegaRAID] Attach
Nov 15 02:45:38 localhost kernel[0]: [SASMegaRAID] Transition_Firmware
Nov 15 02:45:38 localhost kernel[0]: [SASMegaRAID] Firmware state: 0xf0000000
Nov 15 02:45:38 localhost kernel[0]: [SASMegaRAID] Waiting for firmware to become ready
Nov 15 02:45:38 localhost kernel[0]: [SASMegaRAID] Firmware fault
Nov 15 02:45:38 localhost kernel[0]: [SASMegaRAID] Can't attach device
Nov 15 02:45:38 localhost kernel[0]: [SASMegaRAID] IOService->free

The controller has two SAS hdds attached. It booted (still does it after fw upgrades) with no issue both Linux and Win7.
Package 5.1.1.-0040
FW ver. 1.03.10-216
Bios ver. MT28
CtrlR ver. 1.04-107A
Boot blk ver. R.2.3.12
 
This firmware was upgraded to
Package 5.2.2.-0072
FW ver. 1.03.50-0461
Bios ver. MT28-9
CtrlR ver. 1.04-019A
Boot blk ver. R.2.3.12

The PE1950 main bios was upgraded to 1.10 2.20 from 1.4.x (IIRC because I was stupid enough not to write it down).

Now, after upgrading the booting (usb thumbdrive) ends up for both .9 and .10 with the same kernel panic: "can't perform kext scan" but here goes some observations:
- it is not instant, it clearly reads the /System/Library/Extension (at least for .10) so it looks like after a kext gets injected something gets *beep*
- .9 boots well to the installation screen if:
    i) it boots from optical usb drive
    ii) (sometimes, I can't figure out the pattern) it boots well from the thumbdrive but an optical drive with .9 has to be present (in this case the OD blinks maybe 2 times only during the whole installation process)
As I am very novice to OS X not sure if the following is valid, but it seems to me something interferes with the USB thumbdrive/(er) during the boot time so in some point the file system on the drive is not present/mounted any longer. Could this be the case of “Can't perform kext scan”?

I guess now I will try to do it all more proper way not using the ready distributions but through the guidelines found on this website.

Link to comment
Share on other sites

agatek,

 

Could you detach all your sas drives from the controller, will you still have a firmware fault after that?

 

I will do it but I need some time to learn how as the earlier option (10.10) does not work any longer after the FW upgrade.

Link to comment
Share on other sites

I will do it but I need some time to learn how as the earlier option (10.10) does not work any longer after the FW upgrade.

 

You could try to go with optical 10.9, to save your time at this point. After installer is loaded, you can open Terminal and load my kext directly right on this stage by issuing kextutil -v /path/to/SASMegaRAID.kext. It can be lied for example on usb stick. If it's a non-hfs+ formatted usb drive, then you'll need to do cp -r /Volumes/usbstickname/SASMegaRAID.kext /some/writable/path/probably//tmp; chown -R root:wheel /some/writable/path/probably//tmp/SASMegaRAID.kext; kextutil -v /some/writable/path/probably//tmp/SASMegaRAID.kext

 

P.S.: If you'll need to upgrade your os to the 10.10, then it could be easily done after installing clover or bareboot bootloader. After that you'll just need to download appstore os image, next you run install from there and all should go fine, without any need for usb sticks or other media.

Link to comment
Share on other sites

  • 2 weeks later...

Sorry for my much delayed response. Hectic period and nothing goes as planned.

I don't have kextutil on any of the bootable distribution I manage to boot. Only kextload that fails with the message that I should use kextutil. I can hardly comprehend this booting chaos. Now I can boot Hackintosh Yosemite from BD (that I burnt from iso supposingly for a VM) but only if I boot it from a Niresh 10.8.5 thumbdrive distro.

It tried to follow: http://www.insanelymac.com/forum/topic/298521-easy-yosemite-1010-final-usb-installer-updated-10162014/ but it does not boot at all from such prepared thumbdrive,

 

PE1950 has one SATA port. I am going to hook up a sata hdd to it and see if I can install some bootable OSX on it. This should give me more freedom to play around with your SAS kext.

Link to comment
Share on other sites

Reporting success (as of the SAS driver).

  1. I activated the SATA port and hooked up a sata 2.5" hdd.
  2. Installed 10.8.5 from Niresh distro (this is the only one I managed to install so far. Niresh 10.9 panics, Hackintosh 10.10 installs but after rebooting it just hangs forever - still working on it). To boot it I needed the 10.8.5. installation thumbdrive (with Clover) and after it is loaded I have to execute efi boot to the SATA drive that brings you back (failing?) to the Clover boot screen again and only after this it boots as it should from the non-efi oprion.
  3. When I had it up and running I just installed (installer application) the duckzcry's release package and it did the job perfectly - all SAS drives become visible.
  4. Under Linux (sorry, feel more comfortable) I partitioned the SAS drive for the SATA 10.8.5 partition to fit (same size etc), and transferred it by simple dd if/of.
  5. I run grub installer under Linux to update the bootloader on the SAS bootable drive.
  6. Booted as per normal via grub menu with the exception that it stopped recognizing the video card (? - I have it at fixed 640x480 now with no options to chose and no specific card info under the system-information respective screen). Another thing I don't get, when I booted it from the SATA drive OS X recognized 3.02GB RAM only (4GB physical, ATI ES1000 16MB allocated). Booting it from SAS it recognized 4GB.

Besides the graphics, the ethernet cards are not yet working.

 

(Dell PowerEdge 1950II, 2x Quad Core E5345@ 2.33GHz, 4GB, 2x SAS 2.5" on iPERC5. More details in my earlier posts in this thread.)

  • Like 1
Link to comment
Share on other sites

After I tried different things with my LSI 8708EM2 and your driver I am stuck so I decided to poste here.

I recently switched to 10.9.5 and Clover on a new Harddrive. Windows 7 is on seperate MBR-HD and older Chameleon OSX installs are on a third HD.

 

I set up Raid 5 in Web Bios and initialize a virtual drive there. Partition HFS+ in Mavericks. After reboot Raid is still there. After booting to an older OSX installation and then rebooting to Mavericks and/or Windows the Raid does not show up in Finder or in System Information / Parallel SCSI anymore but is still there in terminal mfiutil:

 

mfi0 Adapter:
    Product Name: MegaRAID SAS 8708EM2
   Serial Number: P0xxxxxxxx
        Firmware: 11.0.1-0048
     RAID Levels: JBOD, RAID0, RAID1, RAID5, RAID6, RAID10, RAID50
  Battery Backup: not present
           NVRAM: 32K
  Onboard Memory: 128M
  Minimum Stripe: 8K
  Maximum Stripe: 1M

mfi0 Volumes:
  Id     Size    Level   Stripe  State   Cache   Name
 mfid0 ( 2791G) RAID-5      64K OPTIMAL Disabled <hallo1>

mfi0 Configuration: 1 arrays, 1 volumes, 0 spares
    array 0 of 4 drives:
        drive 34 (  932G) ONLINE <Hitachi HDS72101 A3MA serial=JP2921Hxxxxxxx> SATA
        drive 35 (  932G) ONLINE <Hitachi HDS72101 A3MA serial=JP2940Hxxxxxxx> SATA
        drive 36 (  932G) ONLINE <Hitachi HDS72101 A3MA serial=JP6960Hxxxxxxx> SATA
        drive 37 (  932G) ONLINE <Hitachi HDS72101 A3EA serial=JP6921Hxxxxxxx> SATA
    volume mfid0 (2791G) RAID-5 64K OPTIMAL <hallo1> spans:
        array 0

mfiutil show events -c info boot
43345 (boot + 3s/CTRL/info) - Firmware initialization started (PCI ID 0060/1000/1013/1000)
43346 (boot + 3s/CTRL/info) - Firmware version 1.40.342-1650
43347 (boot + 3s/CTRL/info) - Board Revision
43348 (boot + 17s/DRIVE/info) - Inserted: PD 22(e0xff/s34)
43349 (boot + 17s/DRIVE/info) - Inserted: PD 22(e0xff/s34) Info: enclPd=ffff, scsiType=0, portMap=00, sasAddr=707e895893bfffb3,0000000000000000
43350 (boot + 17s/DRIVE/info) - Inserted: PD 23(e0xff/s35)
43351 (boot + 17s/DRIVE/info) - Inserted: PD 23(e0xff/s35) Info: enclPd=ffff, scsiType=0, portMap=01, sasAddr=7087875b99bddfad,0000000000000000
43352 (boot + 17s/DRIVE/info) - Inserted: PD 24(e0xff/s36)
43353 (boot + 17s/DRIVE/info) - Inserted: PD 24(e0xff/s36) Info: enclPd=ffff, scsiType=0, portMap=02, sasAddr=708786328ae3fcbc,0000000000000000
43354 (boot + 17s/DRIVE/info) - Inserted: PD 25(e0xff/s37)
43355 (boot + 17s/DRIVE/info) - Inserted: PD 25(e0xff/s37) Info: enclPd=ffff, scsiType=0, portMap=03, sasAddr=70718739a0d6eab8,0000000000000000
mfiutil: Failed to fetch events: Input/output error

 

All this info is displayed in terminal while the raid is not vissible to the finder/diskutility/system information.

Any idea what I can try to make the raid show up again in finder?
 

Link to comment
Share on other sites

I reconfigured the Virtual Disk as Raid 0 but still no luck. Disk Utility detects the device on first boot. After a reboot the drive is gone and the controller is not recogniced under System Information/Parallel SCSI. But is still there in the bootsequence and mfiutil.No matter whether I use clover or Chameleon. I am about to give up.

Link to comment
Share on other sites

glow9, it's a strange issue, never heard of anything similar. Maybe it's something wrong with your setup. The only option of this kext that can affect controller visibility is in the FAQ:

Q: The driver loads but my device doesn't show up in profiler. What should i do?
A: ...
If it's not a case, try inverting "PreferMSI" key value. It's under "Settings" dictionary in kext's plist.

upd: Good, so it's that not very common case, when message signaled interrupts doesn't work well for some setup.

 

jasonhill1981,

Hi! No it's not supported. However, an ancient 3ware controllers (8000 series) are supported by this project: https://github.com/repos-holder/osx-3ware Though i can't recommend to use any of them.

Link to comment
Share on other sites

  • 1 month later...

hello there 

 

I have a M1015 (SAS2008 based, LSI 9240 8i equivalent) , PCI ID 0x1000 , 0x0073

first tested with old Bios (20.10.1-0126_SAS_2008_FW_Image_APP2.130.374-2023)

then with latest LSI Bios (20.13.1-0208_SAS_2008_FW_Image_APP_2.130.404-3836) 

 

tested with PreferMSI set to true and false

 

running Yosemite 10.10.2 on a hackintosh , booting via Clover (tested both UEFI and Legacy)

 

I am getting this console output with the Debug Kext:

 

kernel[0]: [sASMegaRAID] InitializeController
kernel[0]: [sASMegaRAID] [Helper] Region starting at 0xf7d60000
kernel[0]: [sASMegaRAID] Memory mapped at virtual address 0xf1af0000, length 8192
kernel[0]: [sASMegaRAID] Attach
kernel[0]: [sASMegaRAID] Transition_Firmware
kernel[0]: [sASMegaRAID] Firmware state: 0xb0000000
kernel[0]: [sASMegaRAID] [Helper] Looks like MSI interrupts are supported
kernel[0]: [sASMegaRAID] [Helper] MSI IR line: 1
kernel[0]: [sASMegaRAID] DMA: 64-bit, max commands: 31, max SGE count: 33
kernel[0]: [sASMegaRAID] Initccb
kernel[0]: [sASMegaRAID] Initialize_Firmware
kernel[0]: [sASMegaRAID] MRAID_Poll
kernel[0]: [sASMegaRAID] Unable to init firmware
kernel[0]: [sASMegaRAID] Can't attach device
kernel[0]: [sASMegaRAID] IOService->free
 
 
controller doesn't appears on Parallel SCSI 
on windows works OK
 
any ideas on how to make this work?
 
thanks
Link to comment
Share on other sites

Thanks for the reply

 

I believe I have MegaRAID firmware, since the device id is 0x1000 , 0x0073, and on boot I can enter Control-H to get to the raid configuration interface where I can create virtual disks

 

on linux the module megarais_sas is loaded, reporting this device : LSI Logic MegaRAID SAS 2008 [Falcon] [1000:0073]

 

on Windows the device detected is LSI MegaRAID SAS Controller

 

I flash this boards using the MegaCli command line, so I asume I am using a MegaRAID firmware

 

I could try to crossflash to 9211 IR , like some others on this topic, but I think the PCI id changes to 0x1000 , 0x0072 and I dont know if this driver would work either

 

is there a specific firmware version I can download that is know to work with this boards ? 

 

is there anything else I could try ?

 

thanks again

Link to comment
Share on other sites

  • 4 weeks later...

I just stumbled upon this thread. What a great piece of software dukzcry! This thread really made me tinker about a RAID controller for my system.

The built in Intel RST does not seem to work, since Yosemite does not recognise it as a RAID but just as separate drives.

I was wondering if using a RAID card is the only option, or did I miss some settings for Intel's RST?

If a RAID card is the only option, which one would you guys recommend? The OP mentioned the Dell PERC 5/i, but are there newer or better alternatives on the market?

Thanks anyway!

 

EDIT: I just saw the supported hardware list in the readme. However, I still wonder about RST and about the experience with different cards.

Link to comment
Share on other sites

As I understand it, the Matrix RAID / RST / etc is still just a software RAID, although they're speculating with it by putting some RAID management functions into the motherboard BIOS. Here's an explanative info on it: https://wiki.archlinux.org/index.php/Installing_with_Fake_RAID

I've never seen kexts made with support for such solutions. So my opinion is that you either need a RAID card or you use OS X software RAID, see http://www.macbreaker.com/2012/12/hackintosh-raid-0-mountain-lion.html for example. The last option will make your RAID-converted OS X volumes inaccessible for other operating systems, for sure.

 

As for the card, I think 9260 and it's rebadges are still most used. 8708EM2 was mentioned as working lately. If you don't want to wait suggestions from other people, you could look through the thread and pick something that got a positive report here.

Link to comment
Share on other sites

As I understand it, the Matrix RAID / RST / etc is still just a software RAID, although they're speculating with it by putting some RAID management functions into the motherboard BIOS. Here's an explanative info on it: https://wiki.archlinux.org/index.php/Installing_with_Fake_RAID

I've never seen kexts made with support for such solutions. So my opinion is that you either need a RAID card or you use OS X software RAID, see http://www.macbreaker.com/2012/12/hackintosh-raid-0-mountain-lion.html for example. The last option will make your RAID-converted OS X volumes inaccessible for other operating systems, for sure.

 

As for the card, I think 9260 and it's rebadges are still most used. 8708EM2 was mentioned as working lately. If you don't want to wait suggestions from other people, you could look through the thread and pick something that got a positive report here.

 

Thank you for your reply dukzcry.

 

I am asking all of this because I want to use a RAID card for a special scenario and I hope someone could test this, or knows if this is possible. What I want to accomplish is roughly the following:

I want to run Ubuntu, which has full control over the RAID array, in a virtual machine (preferably Parallels) on OSX and act as a server. This virtual server will then share the data on the array.

I hope someone can help me figure out if something like this is possible. If you have another kind of setup which can do the same, please let me know :)

 

Thanks anyway!

Link to comment
Share on other sites

ElStuiterbal, yes this is possible with hardware RAID card and Parallels.

 

Though if you need a management over that array from the VM guest system, and not OS X you'll need a computer with working VT-D under OS X and a VM software supporting PCI(E) devices passthrough. This is a way too complicated and this is also means that all arrays on that controller will go to the VM.

 

 

Another way is where you find a VM software that could pass logical volume (like software RAID volume, not the underneath physical disks) to the ubuntu in it. Looks like Parallels can't do it such way.

In final, I don't know how http://www.softraid.com/ solution works comparing to builtin OS X software RAID, but if it hides actual physical disks from OS X, than it will work even for Parallels.

In these two options RAID array management is in the hands of OS X.

Link to comment
Share on other sites

 Share

×
×
  • Create New...