Hi
@dragonme , thanks very much for the post
1. Card is in IT mode, no RAID. Though I am considering maybe making a 2 x SSD RAID-0 in future. But currently not.
2. That's true
Though the 'update' I was talking about was not the initial hack you talk about (removing mfg check), but rather a much simpler change that enabled it to work on Sierra and High Sierra. The version produced back in 2016 would kernel panic in 10.12 and 10.13, and a user on InsanelyMac forum called despeinao produced the fix that enabled them to work again. But yes, all of this is a hack and completely unauthorised from Astek's perspective
3. Not RAID so not this
4. Yes I have booted off internal SATA with a data drive on the LSI, and this does work. I did have a small glitch with it, whereby when I slept/woke and then later shut down, my PC automatically started up again. An issue I've had many times before, related to ACPI on the Hackintosh, but gone since I got the right ACPI settings.
But it doesn't always happen with the LSI in place, and anyway this is a much less important issue. So for the purposes of this discussion, yes sleep/wake with an LSI data drive does work and so the Astek drivers are enabled for power management in principle.
I have looked into the kexts and established that the
AstekFusion2Family.kext does reference power management in its strings:
Code:
$ strings AstekFusion2Adapter.kext/Contents/MacOS/AstekFusion2Adapter AstekFusion2Family.kext/Contents/MacOS/AstekFusion2Family | grep -i -e power -e sleep
%s [%p] registerPowerDriver status = %x
initializePowerManagement
%s [%p] Power management called: Power State -> %d
setPowerState
I'm no expert in macOS kernel/drivers (or kernel/drivers on any system!) and wouldn't know where to begin in a hex editor changing anything - and I suspected that given power management does work in the non-boot case, but not in the boot case, that it would be a bigger change. Not just a case of flipping a flag to say 'do power management' or anything like that.
However increasing timeouts does sound like something that could work in theory, and in
AstekFusion2Adapter.kext/Contents/Info.plist there are two timeout keys:
Code:
<key>Read Time Out Duration</key>
<integer>30000</integer>
<key>SpinDown</key>
<true/>
<key>Write Time Out Duration</key>
<integer>30000</integer>
It certainly couldn't hurt to increase the Read Time Out. And turn off SpinDown..
There's also a CLI tool called
fusion_client which has an option for disabling spin down:
Code:
$ ./fusion_client --help
./fusion_client: illegal option -- -
Usage: fusion_client -a MPI2_type [-d -r -s]
<MPI2_type> is 1 - Diagnostic 2 - Astek 3 - OWC
-n adapter index number
-d dump diagnostic trace/snapshot buffer
-r reset IOC
-p arg - pause on fault [0-disable, 1-enable]
-l arg - validate license string for adapter
-c type number pageaddress - show config page
-e arg - enable spin down [0 -disable, 1-enable]
-j - eject all target devices, and quiesce the IOC manager
-f file flash firmware image
-z options - erase selected flahs regions
-w 0/wwid - set card wwid (0-use wwid at boot time)
I think I will try those changes. I kind of get into the mindset that it was going to take a binary change to the driver, after I investigated a SASMegaRaid driver for macOS (I think ported from FreeBSD) that had clearly undergone source code changes between its 'no sleep' and 'sleep' versions.
But of course sleep
does work in principle with these drivers.. so a simple tweak might be all that's needed to get it to work in the boot case.
Thanks a lot dragonme, that's got me thinking again. I will test this in a minute.