Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
Status
The first post of this thread is a WikiPost and can be edited by anyone with the appropiate permissions. Your edits will be public.
I thought that lilu and whatevergreen are supposed to be before any other kext entry in config or am I wrong?
Yes, order is important. For example, Lilu should be added before other extensions that depend on it.

Plistlib Generator place all components in alphabetical order, is the right/expected config format way. Technically, the order does not matter as long you follow the correct plist syntax, is just cosmetic, so you can find quickly a setting.

Notice how all keys are alphabetically ordered, like into OC documentation?
Code:
<dict>
    <key>ACPI</key>
    <dict>
        <key>Add</key>
        <array/>
        <key>Delete</key>
        <array/>
        <key>Patch</key>
        <array/>
        <key>Quirks</key>
You can move the Quirks above Add, it will work, but will turn your config file into a mess. Your kexts will be loaded properly, no matter the order. So why not do it the right way, which is OC way. That's also one of the advantages of Plistlib Generator, it will always generate a proper config file with no errors.
Please see the OpenCore documentation: "Kernel driver load order follows the item order in the array, thus the dependencies should be written prior to their consumers."
 
I thought that lilu and whatevergreen are supposed to be before any other kext entry in config or am I wrong?
They do not have to be before any other kext but Lilu has to be before any kext that depends on it.

alphabetical order is the right/expected config format way.
Not quite.

Your output will work fine indeed since by a lucky fluke, it does not include any kext depending on Lilu that has a name starting with a letter that would put it above Lilu alphabetically.

I actually pushed for the alphabetical order in OC here: https://github.com/acidanthera/Open...2d6fd2bdf5120e69729ece#commitcomment-44895360

It does not apply to kexts however which have to go in based on dependencies. If AAA.kext depends on CCC.kext, the required order is CCC.kext before AAA.kext.

See excerpt from the manual:

Screen Shot 2021-03-28 at 05.23.57.jpg
 
  • Like
Reactions: eVasilis and TECK
I think they want you to write your own Lua code, they just cover the basics in tutorials. You can definitely do what TotalSpaces does with Hammerspoon, I assure you, but you need to write code, which honestly is not always a solution for people. As I said, if TotalSpaces works for you, then is great. I was simply pointing out a solid alternative. :)
This is the wrong thread to discuss that, but I think you're wrong. its not an altnerative to TotalSpaces...looks very cool for desktop arrangement tasks, etc...I don't see how it could possibly take over mission control the way TotalSpaces does. That's why it requires SIP disabled. Cool tool anyway though. cheers.
 
  • Like
Reactions: TECK
Your output will work fine indeed since by a lucky fluke, it does not include any kext depending on Lilu that has a name starting with a letter that would put it above Lilu alphabetically.
I see, thanks for linking that documentation. It is the only exception to alphabetical order. In my case, WG and NS are Lilu plugins and because I list them after Lilu, everything works properly. Luckily, the plistlib generator respects the kexts order so it will not be an issue. But I'm going to add this into documentation, much appreciated.
 
  • Like
Reactions: Dayo
I will add or if they are deleted "if present"

You have to delete an existing property in the delete section of the device properties before it is modified.
Pushed a change to the docs to make this clearer as the previous state (current as at v0.6.7) was actually wrong.
 
Yes, order is important. For example, Lilu should be added before other extensions that depend on it.


Please see the OpenCore documentation: "Kernel driver load order follows the item order in the array, thus the dependencies should be written prior to their consumers."
@Dayo @cdf I did everything manually, following the instruction of post #1

So I am ok:
XML:
<key>Kernel</key>
    <dict>
        <key>Add</key>
        <array>
            <dict>
                <key>Arch</key>
                <string>x86_64</string>
                <key>BundlePath</key>
                <string>Lilu.kext</string>
                <key>Comment</key>
                <string>Patch engine</string>
                <key>Enabled</key>
                <true/>
                <key>ExecutablePath</key>
                <string>Contents/MacOS/Lilu</string>
                <key>MaxKernel</key>
                <string></string>
                <key>MinKernel</key>
                <string></string>
                <key>PlistPath</key>
                <string>Contents/Info.plist</string>
            </dict>
            <dict>
                <key>Arch</key>
                <string>x86_64</string>
                <key>BundlePath</key>
                <string>WhateverGreen.kext</string>
                <key>Comment</key>
                <string>Video patches</string>
                <key>Enabled</key>
                <true/>
                <key>ExecutablePath</key>
                <string>Contents/MacOS/WhateverGreen</string>
                <key>MaxKernel</key>
                <string></string>
                <key>MinKernel</key>
                <string></string>
                <key>PlistPath</key>
                <string>Contents/Info.plist</string>
            </dict>
            <dict>
                <key>Arch</key>
                <string>x86_64</string>
                <key>BundlePath</key>
                <string>AppleMCEReporterDisabler.kext</string>
                <key>Comment</key>
                <string>Disable AppleMCEReporter</string>
                <key>Enabled</key>
                <true/>
                <key>ExecutablePath</key>
                <string></string>
                <key>MaxKernel</key>
                <string></string>
                <key>MinKernel</key>
                <string>19.0.0</string>
                <key>PlistPath</key>
                <string>Contents/Info.plist</string>
            </dict>
            <dict>
                <key>BundlePath</key>
                <string>RadeonBoost.kext</string>
                <key>Comment</key>
                <string></string>
                <key>Enabled</key>
                <true/>
                <key>ExecutablePath</key>
                <string></string>
                <key>MaxKernel</key>
                <string></string>
                <key>MinKernel</key>
                <string></string>
                <key>PlistPath</key>
                <string>Contents/Info.plist</string>
            </dict>
            <dict>
                <key>Arch</key>
                <string>x86_64</string>
                <key>BundlePath</key>
                <string>IO80211Mojave.kext</string>
                <key>Comment</key>
                <string>Broadcom Wifi Patch</string>
                <key>Enabled</key>
                <true/>
                <key>ExecutablePath</key>
                <string>Contents/MacOS/IO80211Mojave</string>
                <key>MaxKernel</key>
                <string></string>
                <key>MinKernel</key>
                <string>19.0.0</string>
                <key>PlistPath</key>
                <string>Contents/Info.plist</string>
            </dict>
            <dict>
                <key>BundlePath</key>
                <string>IO80211Mojave.kext/Contents/PlugIns/AirPortBrcm4331.kext</string>
                <key>Comment</key>
                <string>Broadcom Wifi Patch</string>
                <key>Enabled</key>
                <true/>
                <key>ExecutablePath</key>
                <string>Contents/MacOS/AirPortBrcm4331</string>
                <key>MaxKernel</key>
                <string></string>
                <key>MinKernel</key>
                <string>19.0.0</string>
                <key>PlistPath</key>
                <string>Contents/Info.plist</string>
            </dict>
            <dict>
                <key>Arch</key>
                <string>x86_64</string>
                <key>BundlePath</key>
                <string>USB-Map.kext</string>
                <key>Comment</key>
                <string>USB Map</string>
                <key>Enabled</key>
                <false/>
                <key>ExecutablePath</key>
                <string></string>
                <key>MaxKernel</key>
                <string></string>
                <key>MinKernel</key>
                <string></string>
                <key>PlistPath</key>
                <string>Contents/Info.plist</string>
            </dict>
            <dict>
                <key>Arch</key>
                <string>Any</string>
                <key>BundlePath</key>
                <string>RtWlanU.kext</string>
                <key>Comment</key>
                <string></string>
                <key>Enabled</key>
                <true/>
                <key>ExecutablePath</key>
                <string>Contents/MacOS/RtWlanU</string>
                <key>MaxKernel</key>
                <string></string>
                <key>MinKernel</key>
                <string></string>
                <key>PlistPath</key>
                <string>Contents/Info.plist</string>
            </dict>
            <dict>
                <key>Arch</key>
                <string>Any</string>
                <key>BundlePath</key>
                <string>RtWlanU1827.kext</string>
                <key>Comment</key>
                <string></string>
                <key>Enabled</key>
                <true/>
                <key>ExecutablePath</key>
                <string>Contents/MacOS/RtWlanU1827</string>
                <key>MaxKernel</key>
                <string></string>
                <key>MinKernel</key>
                <string></string>
                <key>PlistPath</key>
                <string>Contents/Info.plist</string>
            </dict>
        </array>
 
Hello everybody,

I need your advice on OpenCore 0.6.7 (Martin Lo's package), a MacPro5.1 and a new installation of macos Mojave (10.14.4).

I use an external SSD (Extended Journaled) boot over the front USB plug from which the installation starts but then aborts with an error.I see a console with an error log that I have saved and attached here and a dialog that offers me to turn off the computer or send the error report to Apple but no Mojave installer.

I tried to find a hint in the error log why it breaks off, but unfortunately I am missing the basics of the knowledge.

I am grateful for every tip that leads me in the right direction.
 

Attachments

  • macos-10.14.4-Install-Error-Log.txt.zip
    25.8 KB · Views: 68
So I am ok:

Looks ok (in terms of structure of the kexts)
In terms of operation, not sure about USB-Map.kext which you perhaps copied from the OCLP (@cdf can advise perhaps).

I use an external SSD (Extended Journaled) boot over the front USB plug from which the installation starts but then aborts with an error.
Have you confirmed you are allowed to install to external disks?
 
Have you confirmed you are allowed to install to external disks?

I made a bootable USB stick with macos 10.14.4 to boot from, then format the external SSD and install the installer there, reboot automatical from there to install macos 10.14.4 but got the error.

What can I do else?
 
Looks ok (in terms of structure of the kexts)
In terms of operation, not sure about USB-Map.kext which you perhaps copied from the OCLP (@cdf can advise perhaps).


Have you confirmed you are allowed to install to external disks?
It wasn't oclp but dortania's page and guide i copied it from. There is a whole section on usb mapping. I haven't check installation on external disks yet!
 
Hello everybody,

I need your advice on OpenCore 0.6.7 (Martin Lo's package), a MacPro5.1 and a new installation of macos Mojave (10.14.4).

I use an external SSD (Extended Journaled) boot over the front USB plug from which the installation starts but then aborts with an error.I see a console with an error log that I have saved and attached here and a dialog that offers me to turn off the computer or send the error report to Apple but no Mojave installer.

I tried to find a hint in the error log why it breaks off, but unfortunately I am missing the basics of the knowledge.

I am grateful for every tip that leads me in the right direction.
Mojave is natively supported.
 
Yes, the rounding should be fixed for the X5690. Just to clarify the rationale for rebooting: CPUFrequency does vary boot by boot, although not enough to affect the rounding in your case.
FYI - and you may already be aware - but hopefully CPUFrequency should not vary any more from boot to boot, on Apple hardware in 0.6.8 upwards, which has code added by PMHeart to read the Apple specified CPU frequency from the Data Hub when that data exists - instead of measuring the frequency, as now, for all systems, whether Apple or not.

That does not replace the requirement for the new rounding fix, which in 0.6.8 as well, but rather addresses this additional, related issue.
 
  • Like
Reactions: Dayo and cdf
Yes but if you watch my signature I use a RX 570 Nitro+ and I have no other graphic card to boot native without OC and press ALT to see the original Apple Bootmanager... 🤪
I installed mojave with am rx 580 pulse, no boot screen. I created a USB installer, I chose it as a start up disk in System Preferences > Startup Disk restarted and after a re3latively long wait I was able to install Mojave. One caveat: bluetooth devices may not initialise so have a wired mouse and keyboard ready.
 
Last edited:
Pushed a change to the docs to make this clearer as the previous state (current as at v0.6.7) was actually wrong.
I'd just like to say that you've done an outstanding job of clarifying the documentation 👏
 
  • Like
Reactions: Dayo
I installed mojave with am rx 580 pulse, no boot screen. I created a USB installer, I chose it as a start up disk in Syeste Preferences > Startup Disk restarted and after a re3latively long wait I was able to install Mojave.

As you can see - I prepared allready the external SSD but macos 10.15.7 (19H524) did NOT show up the bootable volume wich I allready had bootet 3 times with OC 0.6.7 but with the error log instead of showing up the macos Installer Startscreen - and I have no idea why. 😳
 

Attachments

  • StartUpDisc.jpg
    StartUpDisc.jpg
    61.3 KB · Views: 82
  • Terminaloutput.jpg
    Terminaloutput.jpg
    434.3 KB · Views: 62
As you can see - I prepared allready the external SSD but macos 10.15.7 (19H524) did NOT show up the bootable volume wich I allready had bootet 3 times with OC 0.6.7 but with the error log instead of showing up the macos Installer Startscreen - and I have no idea why. 😳
Remove all OS disks. Only the disk you wish to install Mojave on in the Mac. Boot with Option-Command-R at startup to upgrade via internet to the latest macOS that is compatible with your Mac. For you, that is Mojave. When booting with Option-Command-R be very patient. You will have a completely black screen for a long time. No progress indicator for 10-25 minutes or more.
 
Remove all OS disks. Only the disk you wish to install Mojave on in the Mac. Boot with Option-Command-R at startup to upgrade via internet to the latest macOS that is compatible with your Mac. For you, that is Mojave. When booting with Option-Command-R be very patient. You will have a completely black screen for a long time. No progress indicator for 10-25 minutes or more.
?
Classic Mac Pro does not have Internet Recovery.
 
So I am ok:
Only Lilu related plugins are important into Kernel dictionary, to be placed after Lilu. Anything else should be alphabetical, like in all dictionaries. For example, you can safely place AppleMCEReporterDisabler.kext as first key into array, before Lilu.kext.
 
Yes, order is important. For example, Lilu should be added before other extensions that depend on it.
That is valid only for Lilu and dependent plugins, anything can/should be placed in alphabetical order into Kernel and anywhere else.
 
That is valid only for Lilu and dependent plugins, anything can/should be placed in alphabetical order into Kernel and anywhere else.
It is valid in general. If a kext depends on another, the latter goes first. Of course, if a kext doesn't depend on another, then it can go wherever.
 
That is valid only for Lilu and dependent plugins, anything can/should be placed in alphabetical order into Kernel and anywhere else.
Yes, only Lilu and plugins have inter-dependencies in that particular output but users may need more than what is produced there (for WIFI as an example) and be misled by that statement when they try to implement such.

The important thing is dependency which applies to any kexts with inter-dependencies.
See my previous about AAA.kext and CCC.kext.

Hopefully this new change to the docs that spells out that the order can be important for kexts leaves no one in doubt:

Screen Shot 2021-03-29 at 00.30.14.jpg
 
Last edited:
  • Like
Reactions: cdf
The above is why I prefer to have a script that edits the config.plist provided by CDF rather the building one up from scratch.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.