Jump to content

Driver for LSI MegaRAID SAS family


dukzcry
 Share

402 posts in this topic

Recommended Posts

An update....

 

 

My IBM m5014 broke down.

 

Fortunately i had the chance to aquire an original LSI 9260-8i with BBU and 512Mb. (i have some for sale also)

I also replaced my slow and unsupported WD30ERZRX with Hitachi 4TB drives

 

All should work well, but at this point (i haven't tested and analyzed all yet) it seems that if the read/write speeds get too high, OS X will fail.

It will become unresponsive... as in... no drive activity/awareness anymore, rendering it useless.

 

So far;

  • I de-activated disk cache, but it still happens.
  • I recreated the array/changed properties. This helps when doing a migration from a flashed IBM to a original LSI. Apparently there are some small differences. Just change some attributes and change them back later to get it going correctly....

 

How could i best determine whether this is driver related? OS related? HDD related? (Which it absolutely shouldn't be!)

 

Yes, there is a possibility of controller stuck if too much commands are going thru it. There is a hack in a code which i keep disabled, since it hasn't proven its usefulness yet. You'll find a build with this hack applied in attach. Lemme know whether it changes anything.

In second, you may use Full Debug kext and stick to a system.log jrnl too see at which point it stalls. But it's better to move out a boot drive from your card to reduce console messages flood.

SASMegaRAID.kext.zip

Link to comment
Share on other sites

Yes, there is a possibility of controller stuck if too much commands are going thru it. There is a hack in a code which i keep disabled, since it hasn't proven its usefulness yet. You'll find a build with this hack applied in attach. Lemme know whether it changes anything.

In second, you may use Full Debug kext and stick to a system.log jrnl too see at which point it stalls. But it's better to move out a boot drive from your card to reduce console messages flood.

Thanks!

 

But... i think that there's another problem....hardware based. Probably my motherboard.

BTW; I was wondering. Shouldn't the driver of the LSI / 3WARE http://www.lsi.com/products/raid-controllers/pages/3ware-sas-9750-8i.aspx#tab/tab2 be more or less compatible with the 9260, since it's also a SAS2108 based card, and one of the few OS X compatible ones (by vendor support).

Link to comment
Share on other sites

 

BTW; I was wondering. Shouldn't the driver of the LSI / 3WARE http://www.lsi.com/products/raid-controllers/pages/3ware-sas-9750-8i.aspx#tab/tab2 be more or less compatible with the 9260, since it's also a SAS2108 based card, and one of the few OS X compatible ones (by vendor support).

 

No way.

 

 

I have an LSI 9750-4i - I've read here that this driver isn't compatible because the firmware isn't, even though this family of cards uses the same processor.

...

I tried using the 9750-4i4e driver which is supposedly compatible through 10.8, having read it was broken in 10.8.3, but no dice. All drivers recognize an unformatted array but will not allow me to partition.

 

More: http://www.insanelymac.com/forum/topic/285197-driver-for-lsi-megaraid-sas-family/page-7?do=findComment&comment=1985458

Link to comment
Share on other sites

Yes, when LSI acquired 3ware they dropped all support for Macs. That said my 9750-4i works through 10.8.2 with the manufacturer's kexts.

 

 

@drowsyhaze; That really sucks!

Thanks for your feedback, hope you get a good replacement soon. I would recommend the 9260 off course :-)

Link to comment
Share on other sites

  • 1 month later...

Hi. First thanks for the MegaRaid SAS kext. Now I can use my fujitsu d2616 (SAS2108) in OSX Mavericks 10.9.1!!

I have only a little problem. Now OSX can't sleep, the monitor goes off, but the computer remains enabled.

¿Anyone know a workaround?

 

Thanks.

 

 

I'm sorry, but i was forced to add a hack to this driver which prevents the system from going to sleep. The reason is that i'm getting data corruption of boot volume and/or kernel panic on either wakeup or next boot after sleep->wakeup was made, when i'm booting OS from the drive attached to a controller (if i'm booting from a drive not handled by this driver, everything is ok). I've tried to fix this, but nothing helped so far.

I'll send you kexts with this hack disabled via PM, if you mind to check, maybe you got another experience... But, as a disclaimer, you'll need to disconnect all volumes with valuable data, and move your OS X boot drive to an internal controller.

 

P.S.: Note that round a minute should pass after the wakeup before you'll can access your drives.

 

Hey there, first of all BIG thanks for the great work! Finally I can use my perc 5 with RAID 5  :)

Installed it and everything works great, but I have the same sleep issue :/

 

Hope this is not too fast forward, but could you send me the kext with the disabled hack as well?

That would help me out a lot!

 

Thanks in advance,

Michael

Link to comment
Share on other sites

Hi Duckzcry -

 

Purchased Perc H310 (LSI SAS 9211) raid card. I installed the card, was able to create raid set and initialize.

Booted to maverick load screen bar moved to 90% then error occurred error attached below.  Looks like you fixed the error by rebuilding a new kext file but I don't seem to be able to locate the file. Please help.

 

 

 

 

post-1325715-0-54221500-1396201512_thumb.jpg

Link to comment
Share on other sites

Hi Duckzcry...I am new to raid controllers and even more so getting them to function in OS X... I have read the dell h310 mentioned; could you summarize for me what the final verdict is on using this card with your driver? Is this a good idea or not? I read a previous poster said that the hard drives need to be virtual disks in order to access them... I do not now what this means...could you link me to where I can read about what this is, in the context of your discussion here about them? Any advice from your experience on how to set this up/understand this application would be most appreciated. Sorry for bing such a newb...gotta start somewhere I guess..

Sorry should have added the following information:

 

Mc pro 1,1 (2006)

Flashed to 64 bit EFI

OSX mavericks

 

The controller, if not already known, is LSISAS2008

 

Thanks!

Link to comment
Share on other sites

Hi Duckzcry...I am new to raid controllers and even more so getting them to function in OS X... I have read the dell h310 mentioned; could you summarize for me what the final verdict is on using this card with your driver? Is this a good idea or not? I read a previous poster said that the hard drives need to be virtual disks in order to access them... I do not now what this means...could you link me to where I can read about what this is, in the context of your discussion here about them? Any advice from your experience on how to set this up/understand this application would be most appreciated. Sorry for bing such a newb...gotta start somewhere I guess..

Sorry should have added the following information:

 

Mc pro 1,1 (2006)

Flashed to 64 bit EFI

OSX mavericks

 

The controller, if not already known, is LSISAS2008

 

Thanks!

 

I was not not able to put the time into working on these cards, but I think there may be a firmware issue that I ran into. RAID-5 was a no-go, but non-parity RAIDs like 10 worked, so it may depend on your use-case.

 

The driver (like those on any other OS as well) only presents the "virtual" devices that the card creates. This is just LSI's term for creating a RAID array. All RAID cards will do the same thing. Once you install the card and the driver go into the BIOS for the card and create a RAID array/virtual disk and it should present that volume to the OS for formatting.

 

Definitely interested to hear if you get the H310 working with RAID-5. As I said I think it will require trying some different firmware levels, which in turn, will require a DOS bootable volume with the Dell firmware on it.

  • Like 1
Link to comment
Share on other sites

Hi Duckzcry...I am new to raid controllers and even more so getting them to function in OS X... I have read the dell h310 mentioned; could you summarize for me what the final verdict is on using this card with your driver? Is this a good idea or not?

Sorry, but i don't track this. Justroach expressed his experience, and you may wait what other h310 owners will say.

 

As for VDs, right, these just RAID arrays represented as single (virtual) disks to the system, and any true hardware RAID card do this indeed. But the LSISAS2008 controllers additionally got the "physical disks" mode, which just does the device passthrough. It behaves the same as if you would connect your drives to any non-RAID disk controller. Official LSI drivers should support it, but my doesn't, as i haven't time, will and hardware to work on this.

This mode is useful mainly for two purposes: 1) you want to connect the devices, which can't be RAIDed, like CD-ROM; 2) you want to use your hardware RAID controller as plain disk controller, this is common for peoples using software level RAIDs (like ZFS RAID-Z) and want to eliminate an additional overhead.

 

Sorry should have added the following information:

 

Mc pro 1,1 (2006)

Flashed to 64 bit EFI

OSX mavericks

Please let us know how this kext will go on your real Mac Pro if you will use any of supported controller. No one of Mac Pro owners camp reported yet :( Thought the most interesting is the test on MacPro3,1 and upper (w native EFI64). 

Link to comment
Share on other sites

hey there, thanks again for sending the kexts with sleep enabled! now I finally got the time to do some testing.

 

When I use the original kexts from the download section of page 1 (without sleep), everything works fine. Boots up fine and fast, the RAID5 is displayed as external device, it's fully usable and fast :) but, as said no sleep:

 

 

04.04.14 14:19:09,000 bootlog[0] BOOT_TIME 1396613949 0

04.04.14 14:19:12,000 kernel[0] AID] Command queued
04.04.14 14:19:12,000 kernel[0] [sASMegaRAID] interruptHandler: pcq vaddr 0xffffff80e76f5000
04.04.14 14:19:12,000 kernel[0] [sASMegaRAID] pi: 0x19 ci: 0x18
04.04.14 14:19:12,000 kernel[0] [sASMegaRAID] ccb: 0
04.04.14 14:19:12,000 kernel[0] [sASMegaRAID] mraid_cmd_done
04.04.14 14:19:12,000 kernel[0] [sASMegaRAID] ProcessParallelTask: Opcode 0x12, Target 0
04.04.14 14:19:12,000 kernel[0] [sASMegaRAID] LogicalDiskCmd
04.04.14 14:19:12,000 kernel[0] [sASMegaRAID] CreateSGL
04.04.14 14:19:12,000 kernel[0] [sASMegaRAID] Paddr[0]: 0xe71300
04.04.14 14:19:12,000 kernel[0] [sASMegaRAID] genIOVMSegments: nseg 1
04.04.14 14:19:12,000 kernel[0] [sASMegaRAID] frame_size: 60, extra_frames: 0
04.04.14 14:19:12,000 kernel[0] [sASMegaRAID] Started processing
04.04.14 14:19:12,000 kernel[0] [sASMegaRAID] Command queued
04.04.14 14:19:12,000 kernel[0] [sASMegaRAID] interruptHandler: pcq vaddr 0xffffff80e76f5000
04.04.14 14:19:12,000 kernel[0] [sASMegaRAID] pi: 0x1a ci: 0x19
04.04.14 14:19:12,000 kernel[0] [sASMegaRAID] ccb: 0
04.04.14 14:19:12,000 kernel[0] [sASMegaRAID] mraid_cmd_done
...
...

 

Tried to find out what keeps it from sleeping, only line i found with sleep in it:

 

04.04.14 14:20:41,059 WindowServer[91] handle_will_sleep_auth_and_shield_windows: no lock state data

 

 

 

When I use the kext with sleep enabled, it boots up fine but the kext won't load, and the RAID is not recognized - obviously sleep works then ;)

 

 

04.04.14 14:22:11,000 kernel[0] kxld[com.apple.driver.SASMegaRAID]: The super class vtable '__ZTV33IOSCSIParallelInterfaceController' for vtable '__ZTV11SASMegaRAID' is out of date. Make sure your kext has been built against the correct headers.
04.04.14 14:22:11,000 kernel[0] kxld[com.apple.driver.SASMegaRAID]: The super class vtable '__ZTV33IOSCSIParallelInterfaceController' for vtable '__ZTV11SASMegaRAID' is out of date. Make sure your kext has been built against the correct headers.
04.04.14 14:22:11,000 kernel[0] Can't load kext com.apple.driver.SASMegaRAID - link failed.
04.04.14 14:22:11,000 kernel[0] Failed to load executable for kext com.apple.driver.SASMegaRAID.
04.04.14 14:22:11,000 kernel[0] Kext com.apple.driver.SASMegaRAID failed to load (0xdc008016).
04.04.14 14:22:11,000 kernel[0] Failed to load kext com.apple.driver.SASMegaRAID (error 0xdc008016).
04.04.14 14:22:11,000 kernel[0] Couldn't alloc class "SASMegaRAID"
04.04.14 14:22:11,000 kernel[0] rooting via boot-uuid from /chosen: 040D06C4-6BA5-39D3-875D-0999A5BC3D07
04.04.14 14:22:11,000 kernel[0] Waiting on <dict ID="0"><key>IOProviderClass</key><string ID="1">IOResources</string><key>IOResourceMatch</key><string ID="2">boot-uuid-media</string></dict>
 

 

...

 

04.04.14 14:22:13,049 com.apple.kextd[12] Failed to load /System/Library/Extensions/SASMegaRAID.kext - (libkern/kext) link error.

04.04.14 14:22:13,052 com.apple.kextd[12] Load com.apple.driver.SASMegaRAID failed; removing personalities from kernel.
04.04.14 14:22:13,000 kernel[0] kxld[com.apple.driver.SASMegaRAID]: The super class vtable '__ZTV33IOSCSIParallelInterfaceController' for vtable '__ZTV11SASMegaRAID' is out of date. Make sure your kext has been built against the correct headers.
04.04.14 14:22:13,000 kernel[0] kxld[com.apple.driver.SASMegaRAID]: The super class vtable '__ZTV33IOSCSIParallelInterfaceController' for vtable '__ZTV11SASMegaRAID' is out of date. Make sure your kext has been built against the correct headers.
04.04.14 14:22:13,000 kernel[0] Can't load kext com.apple.driver.SASMegaRAID - link failed.
04.04.14 14:22:13,000 kernel[0] Failed to load executable for kext com.apple.driver.SASMegaRAID.
04.04.14 14:22:13,000 kernel[0] Kext com.apple.driver.SASMegaRAID failed to load (0xdc008016).
04.04.14 14:22:13,000 kernel[0] Failed to load kext com.apple.driver.SASMegaRAID (error 0xdc008016).

 

I tried to fiddle around with the info.plists from both kexts, tried to change the values in the kext with sleep and tried to use the plist from the original with the kext w_sleep - obviously that didn't do it ;)

 

Also I used a range of kext utilities (Kext Utility, Kext Wizard, or terminal use) no difference, so that shouldn't be the problem.

 

What could be the problem? Or which value would I need to change in the no sleep kext to get it to sleeping?

somehow, I got no good ideas :(

 

Anyways I really appreciate your work! Hope we'll find the answer to this issue :)

 

btw: my rigg:

 

Board: GA-Z68MX-UDH3

Controller: Dell Perc 5/i without BBU - FW: 7.0.1-0083

Disk attached to perc: 4x 1TB Samsung

Running ML 10.8.5. with everything working

Boot Drive attached to board AHCI

 

 

Hope this helps?

Thanks again and greetings ;)

Link to comment
Share on other sites

Tried to find out what keeps it from sleeping, only line i found with sleep in it:

Adding kIOPMPreventIdleSleep | kIOPMPreventSystemSleep to the IOPMPowerState's capabilityFlags is what prevents the sleep. This is actually a hack, since these flags are marked for not to be used by third-party kexts, and you don't even see this kext listed when issuing 'pmset -g assertions', but it thankfully works. I'm forced to keep it in base until boot volume poisoning will be fixed by any chance.

 

 

What could be the problem?

Well, the error states of build issue, so i doubt the kext copy you have could be fixed. But really, you don't need a separate build anymore. Just replace the plist in an original working kext you have with this one: http://www.osx86.net/files/getdownload/7581-sasmegaraidkext/ Here, set AllowSleep key to 'true' value, but don't touch other settings from DangerZone ;)

Link to comment
Share on other sites

Hi dukzcry and the rest,

 

- Would an LSI (probably rebranded Intel) 9265-8i work?

- I couldn't build mfiutil. I get an error:

In file included from mfiutil.c:38:
./mfiutil.h:38:10: fatal error: 'sys/linker_set.h' file not found
#include <sys/linker_set.h>

Is there a binary available?

 

 

It would be interesting to check if CacheCade and Fastpath work too (I might do it if I succeed in building my system).

 

Thanks

 

 

Ignore that for mfiutil. It is in the Installer in Release.zip downloaded from osx86.net  :poster_oops:

Edited by gorg
Link to comment
Share on other sites

 

 

- Would an LSI (probably rebranded Intel) 9265-8i work?

 

 

I see it's based on a LSISAS2208 (aka Thunderbolt), so unfortunately no (see https://github.com/druga/osx-goodies/blob/master/raid/README.mkd)

 

dZihan,

 

No, but i've just followed my guide to you for the test, and got sleep working. So there's something wrong on your side.

That's what i did:

- Done an install from package Release.zip http://www.osx86.net/files/download/304-sasmegaraidkext/

- Tested, no sleep

- Got plist from Unsafe settings unlocked.zip http://www.osx86.net/files/download/304-sasmegaraidkext/, changed AllowSleep preference from 'false' to 'true' and overwritten kext's Info.plist by it, run kext utility, rebooted

- Tested, tied to console (opened a terminal and issued 'tail -f /var/log/system.log | grep SAS' command), sleep works! Waked up the machine, waited a bit, a console message 'Resumed after sleep' appeared. Used a volume on the controller a bit for the test, done reboot, repeated this step. All OK!

Link to comment
Share on other sites

hmmm, obviously something is wrong with my setup then... tried again yesterday but still no sleep, regardless of using ML or Mavericks - so I guess it's back to SW RAID or my search for card compatible with my board goes on :)

Maybe some BIOS settings are set wrong or the Gigabyte Board just doesn't support the Perc in a right manner.

 

Are there (besides Highpoint) actually cards that work natively under OS X? I remember 3ware cards working, but they (LSI) stopped support for OS X?

 

Thanks for the great support nevertheless!!  :yes:

Link to comment
Share on other sites

I have a 9240-8i that I was planning to flash to 9211-8i in IT mode. I gather that this would not work in OS X at all? If I use IR mode and this driver, can I still have the drives pass through completely to OS X? I want to use them in a ZFS array so that's why it's important. Sorry if it's a stupid question – just getting started with this stuff and I'm still waiting for cables and some other equipment, otherwise I would just have tried it myself :) Thanks!

Link to comment
Share on other sites

dZihan,

 

Can't help you with that. But there a lot of topics on this theme on a forum, you just need to search.

As for 3ware, yep, they're legacy now.

 

jsahlen,

 

I think that no. You can pass them only as virtual devices with this kext.

Yes i talked a bit on ZFS volume manager upper in the discussion; that the usage of it's software RAID is the main reason for using of a passthrough mode. Though why go a complicated way? Could you just use an internal controller or take an officially supported one? It's even doesn't need to be a hardware RAID controller...

Link to comment
Share on other sites

dZihan,

 

Can't help you with that. But there a lot of topics on this theme on a forum, you just need to search.

As for 3ware, yep, they're legacy now.

 

jsahlen,

 

I think that no. You can pass them only as virtual devices with this kext.

Yes i talked a bit on ZFS volume manager upper in the discussion; that the usage of it's software RAID is the main reason for using of a passthrough mode. Though why go a complicated way? Could you just use an internal controller or take an officially supported one? It's even doesn't need to be a hardware RAID controller...

The reason for this card is I don't have enough internal ports + already had the card. Maybe I'll have to look into switching to a different OS for this machine though – it's only used as a NAS/HTPC anyway. Thanks for the quick reply!

Link to comment
Share on other sites

  • 2 weeks later...
 Share

×
×
  • Create New...