Opencore-Vanilla-Desktop-Guide icon indicating copy to clipboard operation
Opencore-Vanilla-Desktop-Guide copied to clipboard

More bugs...

Open vit9696 opened this issue 5 years ago • 58 comments

I have just run through Ivy section, and that's what I found:

  1. Renaming ACPI devices is dangerous, and you just stepped on the rake. Using Count = 1 will only replace the first occurrence of the value, effectively breaking most of ACPI tables. This will make Windows unbootable at the very least, and may cause severe issues on macOS as well. Basically this advice is not only wrong, but it violates the recommendations from OpenCore configuration manual:

    In the majority of the cases ACPI patches are not useful and harmful:
    • Avoid renaming devices with ACPI patches. This may fail or perform improper renaming of unrelated devices
    (e.g. EC and EC0), be unnecessary, or even fail to rename devices in select tables. For ACPI consistency it is much
    safer to rename devices at I/O Registry level, as done by WhateverGreen.
    

    The "correct" approach is not to rename anything as it is cosmetics with the only exception of IMEI, IGPU, HDEF, and HDAU, which are handled by WhateverGreen and AppleALC. This will produce much less problems with all operating systems.

  2. can interfere with Firmware so avoid when possible this comment for DisableIOMapping is wrong. On the contrary it does not interfere with the firmware. Should better say use this when you need VT-d support in other operating systems.

  3. not needed for AHCI or NVMe SSDs. It depends. AHCI usually need it, so best to check Trim Status in About Mac → Details → SATA/SAS (check English locale for macOS to be sure with the names).

  4. Needed for seeing your availble drives. Better to reword it show OpenCore UI when booting. Setting to NO will boot the default option. This option is a hack until "Opt" button support is implemented.

  5. ScanPolicy This allow you I suppose it should be 0 allows you. Honestly, it will be better to properly document Security section. Perhaps in a separate chapter, as it is not the best idea for a "quick" setup.

  6. dart=0 does not function with System Integrity Protection enabled, so it is kind of useless. -xcpm is no longer relevant on 10.12 or newer.

  7. Forcibly rewrites NVRAM variables, not needed for us as sudo nvram is prefered but useful for those edge cases Clarify that: Note that Add will not overwrite values already present in NVRAM.

  8. when newer versions are available from OpenCore that's garbage. It just updates, and no version comparison happens.

  9. Forces .efi drivers, change to NO for faster. Should be Automatically connects added UEFI drivers. This is slightly faster, but not all drivers connect themselves. E.g. certain file system drivers may not load.

  10. ConsoleControl set to YES is needed on most APTIO firmwares, otherwise you may see text output during booting instead of nice Apple logo.

  11. SanitiseClearScreen is really needed on select AMD GPUs on Z370.

  12. RequestBootVarRouting is recommended to be enabled on all systems for correct update installation, Startup Disk control panel functioning, etc.

vit9696 avatar Jul 11 '19 06:07 vit9696

@vit9696

  1. Completely missed that I had Count 1 but that doesn't change the fact that it's still incorrect on my part. You say that we shouldn't be renaming devices via ACPI so would you prefer I add that you should make an SSDT based off of these instead?: https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-EHCx_OFF.dsl https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-EC-USBX.dsl#L34-L49

  2. Fixed

  3. Fixed

  4. Fixed(though this will need to be updated when OPT is integrated)

  5. Will work on a dedicated chapter for this

  6. Will add note on dart=0 and removed -xcpm

  7. Clarified

  8. Fixed

  9. Fixed

  10. Fixed

  11. Do you happen to know what graphics cores this affects and whether other 300 series chipsets are included? Or if it’s GPU/brand specific

  12. Fixed

Only thing that needs to be updated are images, add chapter on Security Section and the sample config.plists

khronokernel avatar Jul 12 '19 00:07 khronokernel

@khronokernel

  1. Pretty much. In some (very) rare cases renaming might make sense e.g. Sandy Bridge EHC USB devices, which could not work in USB 3.0 only mode, and conflict with operating system configuration. But in general it is either not needed, or better solutions to actual problems can be found, just like that SSDT you pointed to.

  2. Rechecked. Known bugged configurations include Gigabyte Z170x-UD5 TH with Sapphire Nitro+ RX64 or Radeon Vega FE, Gigabyte Z370-HD3 ASUS GTX 780. All with 4K screens. Most likely the bug is specific to APTIO V.

Sample config.plists is probably a bad idea as config.plist change a lot. But the rest makes some sense. Will ping you when I found more flaws…

vit9696 avatar Jul 12 '19 07:07 vit9696

Second pass:

Current issues section is probably mislabeled. An issue is something that needs to be resolved, but we do not plan to make changes here. Kext ordering is a design decision, Z97 and NVMe are unrelated to OC. Last two are mostly fixed by now. This probably wants to be named Highlights or Things to Keep in Mind.

Regarding mountEFI, is it not easier to just use diskutil from Terminal? It is really just diskutil list and then sudo diskutil mount /dev/disk0s1, where 0s1 is the ESP partition as seen in first command output.

MacOS Journaled → HFS+ macOS Journaled is more clear

drivers → Drivers, kexts → Kexts, TOOLS → Tools case matters for vaulting. Also makes sense to fix Sample.plist, although it matters little.

usb map the way it is presented is a bad idea. This kext, UsbInjectAll, reimplements builtin macOS functionality without proper current tuning. It is much cleaner to just describe your ports in a single plist-only kext, which will not waste runtime memory and such. A good idea to add there is CPU PM SSDT (we have it in Docs) and EHC switch off.

Every time clover configurator is mentioned, god decapitates a kitty, please do not.

Never ever put files unused for booting (like create_vault.sh or Docs) to EFI/OC. They may get vaulted. Tools must contain efi files (and their dependencies) only.

s/This section allows us to dynamically rename parts of the DSDT via OpenCore. Since we're not running a real mac, and macOS is pretty particular with how things are named but the maojority of the time these patches are only cosmetic and can be more damadging that useful./This section allows us to dynamically modify parts of the ACPI (DSDT, SSDT, etc.) via OpenCore. macOS usually does not care much about ACPI, so in the majority of the cases you need to do nothing here./

For NormalizeHeaders replace irrelevant for macOS Mojave 10.14 and higher with only relevant for macOS High Sierra 10.13.

Attempt to heuristically relocate ACPI memory regions, not needed unless custom DSDT is used.

Workaround for OEM Windows logo not drawing on systems with BGRT tables.

We also add 2 more properties, which are usually unnecessary, as this can be configured in BIOS

this is where you would add USB port… just remove, it is builtin in Quirks.

ExternalDiskIcons makes USB disks internal sometimes, and today is not really needed. For NVMe on Z87 and below you just add built-in property via DeviceProperties.

UIScale 10 is most likely wrong, should be 02 I believe.

UpdateSMBIOSMode add: Use Custom on Dell laptops requiring CustomSMBIOSGuid quirk.

ConnectDrivers, Disabling the quirk makes booting slightly faster

Typos:

  • s/that can called/that can be called/
  • parts in braces need a space in front of the opening brace (like this), similarly to metric suffixes 5 MB, 1 GHz, etc)
  • s/yours requires/it requires/
  • s/GFXutil/gfxutil/
  • s/look like 0xDDCCBBAA/look like DDCCBBAA/
  • many dots are missing in the end of sentences
  • s/glean/clean/
  • s/EFI_GLOBAL_VARIABLE_G/EFI_GLOBAL_VARIABLE_GUID/

vit9696 avatar Jul 15 '19 12:07 vit9696

@Vit9696

Current issues section is probably mislabeled. An issue is something that needs to be resolved, but we do not plan to make changes here. Kext ordering is a design decision, Z97 and NVMe are unrelated to OC. Last two are mostly fixed by now. This probably wants to be named Highlights or Things to Keep in Mind.

Switched to “Things to note about OpenCore”

Regarding mountEFI, is it not easier to just use diskutil from Terminal? It is really just diskutil list and then sudo diskutil mount /dev/disk0s1, where 0s1 is the ESP partition as seen in first command output.

Personal preference, users on the r/hackintosh subreddit show that anywhere you can remove terminal commands can alleviate a lot of accidental issues. (Also I just realized I have “either mountEFI or Clover Configurator.”, will remove Clover Configurator)

MacOS Journaled → HFS+ macOS Journaled is more clear

Reason I have it as “macOS Journaled with GUID partition map” is because that’s what the Disk utility screen shows. Swapping to “HFS+ macOS Journaled” I feel could confuse more users but I'll add a note

drivers → Drivers, kexts → Kexts, TOOLS → Tools case matters for vaulting. Also makes sense to fix Sample.plist, although it matters little.

Fixed, also already removed mention of sample config.plist

usb map the way it is presented is a bad idea. This kext, UsbInjectAll, reimplements builtin macOS functionality without proper current tuning. It is much cleaner to just describe your ports in a single plist-only kext, which will not waste runtime memory and such. A good idea to add there is CPU PM SSDT (we have it in Docs) and EHC switch off.

So how I'm misinterpreting this: You want me to explain more why a USB map is prefered over UsbInjectAll, correct? If so I have fixed this

Every time clover configurator is mentioned, god decapitates a kitty, please do not.

Most if not all mentions should be removed

Never ever put files unused for booting (like create_vault.sh or Docs) to EFI/OC. They may get vaulted. Tools must contain efi files (and their dependencies) only.

Fixed

s/This section allows us to dynamically rename parts of the DSDT via OpenCore. Since we're not running a real mac, and macOS is pretty particular with how things are named but the maojority of the time these patches are only cosmetic and can be more damadging that useful./This section allows us to dynamically modify parts of the ACPI (DSDT, SSDT, etc.) via OpenCore. macOS usually does not care much about ACPI, so in the majority of the cases you need to do nothing here./

Fixed

For NormalizeHeaders replace irrelevant for macOS Mojave 10.14 and higher with only relevant for macOS High Sierra 10.13.

Fixed

Attempt to heuristically relocate ACPI memory regions, not needed unless custom DSDT is used.

Fixed

this is where you would add USB port… just remove, it is builtin in Quirks.

My main concern is that generally every new version of macOS requires a new port limit patch wich users may prefer to use over a USB map. Unless how OpenCore implements the port limit patch will always work even on newer versions of macOS, I will add a note that the quirk is the prefered option

We also add 2 more properties, which are usually unnecessary, as this can be configured in BIOS

Fixed

ExternalDiskIcons makes USB disks internal sometimes, and today is not really needed. For NVMe on Z87 and below you just add built-in property via DeviceProperties.

Fixed

UIScale 10 is most likely wrong, should be 02 I believe.

Fixed

UpdateSMBIOSMode add: Use Custom on Dell laptops requiring CustomSMBIOSGuid quirk.

Fixed

ConnectDrivers, Disabling the quirk makes booting slightly faster

Fixed

s/that can called/that can be called/

Fixed

s/GFXutil/gfxutil/

Fixed

s/look like 0xDDCCBBAA/look like DDCCBBAA/

Fixed

many dots are missing in the end of sentences

Thats how I construct the paragraphs, just personal preference but the inconsistency is likely your issue. Will go through and try to address this issue

s/glean/clean/

Glean means to collect/extract

s/EFI_GLOBAL_VARIABLE_G/EFI_GLOBAL_VARIABLE_GUID/

Fixed

khronokernel avatar Jul 15 '19 18:07 khronokernel

@vit9696 I've also added a section on emulated NVRAM if you want to check to see any issues

khronokernel avatar Jul 15 '19 20:07 khronokernel

Thanks, the changes are mostly satisfying, making one more pass.

— s/Order of kexts matter/Order of kexts matters/

— s/example ca be/example can be/

— Please note that UEFI drivers are not supported with OpenCore! This makes no sense to me. What does it mean?

— base EFI folder photo has TOOLS instead of Tools, and this error remains on many photos/lines

— NVRAM guide needs logout hook installation, check the readme.

Ping me when all the issues are addressed as the guide is a bit messed up at the moment.

vit9696 avatar Jul 17 '19 06:07 vit9696

@vit9696

s/Order of kexts matter/Order of kexts matters/

Personally don’t see an issue

s/example ca be/example can be/

Fixed

Please note that UEFI drivers are not supported with OpenCore!

Incorrect wording on my part, meant to be “UEFI drivers from Clover are not supported with OpenCore!(ie: EmuVariableUEFI-64)” The information was found in this comment but checking the DOCS again shows no actual mention of this. Instead seems more as best practice to grab from source instead of using Clover's drivers so unsure if my new wording is even correct. A better way to say this would be "UEFI drivers are not recommended to be used with OpenCore!" but would like clarification if it even matters

base EFI folder photo has TOOLS instead of Tools, and this error remains on many photos/lines

There was only 1 photo I could find which was under “Creating a USB” base EFI. And there was only 1 mention of TOOLS which has been fixed. If you do see anywhere else I will gladly fix

NVRAM guide needs logout hook installation, check the readme.

Fixed but slight issue on my end with interpretation. Do you still need to run the LogoutHook.command separately or can you just run sudo defaults write com.apple.loginwindow LogoutHook /location/LogoutHook/LogoutHook.command and it adds the nvram.plist automatically when you power down?

khronokernel avatar Jul 17 '19 22:07 khronokernel

UEFI drivers and UEFI drivers from Clover are completely different things. UEFI drivers is a general term, and OpenCore.efi or AppleUiSupport.efi are UEFI drivers (surprise). We do nit recommend the use of Clover UEFI drivers due to various incompatibilities, but it has nothing to do with what you wrote.

You just run sudo defaults write com.apple.loginwindow LogoutHook /location/LogoutHook/LogoutHook.command and it adds the nvram.plist automatically when you power down. This, yes.

vit9696 avatar Jul 25 '19 09:07 vit9696

Hi @khronokernel Great work, thx! regard to verbose.md (hiding verbose), is some cases if we set to YES verbose show correctly. If we set to NO some part of verbose are hidden. In this case I show this 2019-08-11 10 45 28 nothing more... and after i see login windows Regard to Spoof.md why not add whatevergreen boot argument like at "-wegnoegpu" or with properties "disable-external-gpu"? Thx in advance

Gengik84 avatar Aug 11 '19 09:08 Gengik84

@khronokernel I think emulated NVRAM part wants:

  • DisableVariableWrite to be mentioned
  • to not support native NVRAM be replaced with to have incompatible native NVRAM with macOS

vit9696 avatar Aug 11 '19 12:08 vit9696

@vit9696 Thank you for catching the DisableVariableWrite, had added that already elsewhere but forgotten to in emulated NVRAM.

@Gengik84

why not add whatevergreen boot argument like at "-wegnoegpu" or with properties "disable-external-gpu"?

Main reason was that most users who are already using this boot flag shouldn't need to be told to use it for OpenCore as well, but the more I think about it I feel it would make sense to add it. Especially if this guide becomes the defacto for new users(but at that point a lot more info would need to be added but that's a talk for another day). So appreciate the suggestion, will be added to the guide shortly

regard to verbose.md (hiding verbose), is some cases if we set to YES verbose show correctly. If we set to NO some part of verbose are hidden.

I do apologize but slightly confused on wording, are you saying that even when setting ConsoleControl and ProvideConsoleGop to True still provides you with verbose?

khronokernel avatar Aug 12 '19 00:08 khronokernel

I do apologize but slightly confused on wording, are you saying that even when setting ConsoleControl and ProvideConsoleGop to True still provides you with verbose?

with FwRuntimeServices : ProvideConsoleGop = yes ConsoleControl = yes Yes, I have verbose

Gengik84 avatar Aug 12 '19 06:08 Gengik84

@khronokernel, @Gengik84 is right that this is obviously not enough for most systems. I would strongly suggest you to read the documentation, particularly you need to play closest attention to ConsoleBehaviourOs, ConsoleBehaviourUi, IgnoreTextInGraphics, and SanitiseClearScreen. Documentation for the first one even contains the list of values to try on different firmwares.

vit9696 avatar Aug 12 '19 07:08 vit9696

@vit9696 Thx :) I'm referring only to guide, in particular to

Wanting a more clean booting experience with macOS without all that verbose text while booting? Well you need a couple things: ConsoleControl set to True ProvideConsoleGop set to True

without all that verbose

For all case, this is not right I think it is better to specify, as you suggested, so as to avoid misunderstandings and make the guide even better Thx again for your work and support It's really appreciated

Gengik84 avatar Aug 12 '19 07:08 Gengik84

@Gengik84 Sorry for the late response, forgot to message saying it's been updated. If there's any other issues, feel free to send it my way

khronokernel avatar Aug 15 '19 16:08 khronokernel

@khronokernel Hi, dont worry :) i see incorrect DevicePath for audio device in skylake/kabylake/coffelake.md because _ADR for HDAS/HDEF is 0x001F0003 and Path = PciRoot(0x0)/Pci(0x1f,0x3) PciRoot(0x0)/Pci(0x1b,0x0) is for previous series

Gengik84 avatar Aug 15 '19 17:08 Gengik84

@Gengik84

incorrect DevicePath for audio device

Oh wow, nice catch on that one. Completely flew over me, will update shortly but images will be a bit longer

khronokernel avatar Aug 15 '19 17:08 khronokernel

@khronokernel Thx for your work

will update shortly but images will be a bit longer

Maybe an image for default config.plist is enough, you can inform, explaining to change path because:

_ADR for HDAS/HDEF is 0x001F0003 and Path = PciRoot(0x0)/Pci(0x1f,0x3) PciRoot(0x0)/Pci(0x1b,0x0) is for previous series

Gengik84 avatar Aug 15 '19 17:08 Gengik84

@khronokernel This isn't a bug, but I couldn't find the right place to let you know...

You and others are really doing a good job with this.

It is really valuable to those like me that are new to OpenCore. The things you people are doing is really amazing.

Dennis

DWomack avatar Nov 06 '19 23:11 DWomack

Hi, @khronokernel, none of these are needed in OC, as quirks implement all the functionality.

vit9696 avatar Jan 12 '20 22:01 vit9696

@vit9696 Thank you for that, they're meant to be removed once I clean up a bit more of the guide, I noticed the additional info added for AppleXcpmExtraMsrs and the Emulate section. That was my reason for not adding X79/X99/etc to the guide when I added Skylake-X, so holding off on them for now until I correct it. Thank you for the heads up though, appreciated.

~~I actually did have a question regarding IncreasePciBarSize, what is the main use for this and how would you know when to use it? The "misconfigured or broken firmware" part leaves me a bit lost and checking your commit in OcSupportPkg for addition comments didn't lead me far.~~ Did a bit more research, I see what you mean by the part about "misconfigured or broken firmware" though still would like to know what the error generally looks like, just a kernel panic on IOPCIFamily or a stall somewhere?

khronokernel avatar Jan 13 '20 02:01 khronokernel

@khronokernel I believe on most firmwares it should be resolvable through Above 4G encoding or alike, but on X99 it may be broken regardless. As for the error, it is usually a kernel panic.

vit9696 avatar Jan 13 '20 09:01 vit9696

Ah, also, we got several reports on your other guide.

For SSDs I am not positive what is wrong with Samsung 970 series. I own both 970 Pro and 970 EVO Plus (yes, it does require a firmware update) and they are quite stable. For any non-apple NVMe SSD you are recommended to use 07151129's NVMeFix, as it reduces heat and energy consumption. For Intel SSDs, I own both 520 and 530, and they work properly. There was a bug with APFS trim, but it is fixed in some 10.14 release.

For CPUs Catalina still has support for dual-socket chipsets, and there is no change with it. However, there is a bug with AppleIntelMCEReporter driver, which apparently is still being resolved. Currently there is a plist-only kext workaround for it.

vit9696 avatar Jan 13 '20 12:01 vit9696

I really appreciate the work you are doing with the Guide. I consult it several times a week.

I don’t know if this mod can be done or maybe it is a part of the gitbook framework.

At the bottom of each page there is:

"Last updated xxxx days ago”

If you could also have that at the top of the page it would help. No need to scroll down to check when the last changes were done.

Thanks for listening.

Dennis

DWomack avatar Jan 13 '20 12:01 DWomack

@vit9696 Has been corrected with proper info, thank you

@DWomack Yeah that's gitbook's framework and I can't seem to change the location, but instead I can manually add it to the page at the top under the title. So for every time the specific page has been updated, just update the "last edited" part. Is that what you were thinking or having the "last edited" always be the most recent of all pages?

khronokernel avatar Jan 13 '20 20:01 khronokernel

I would like to see when each page was last updated. If it is a lot more work, don’t worry about it. I’ll put my button on happy.

Again, thank you for making the guide.

Dennis

Sent from my iPhone

On Jan 13, 2020, at 3:45 PM, Mykola Grymalyuk [email protected] wrote:

 @vit9696 Has been corrected with proper info, thank you

@DWomack Yeah that's gitbook's framework and I can't seem to change the location, but instead I can manually add it to the page at the top under the title. So for every time the specific page has been updated, just update the "last edited" part. Is that what you were thinking or having the "last edited" always be the most recent of all pages?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.

DWomack avatar Jan 13 '20 21:01 DWomack

This is probably a gitbook framework issue, but when I look at the pages on an iPhone with latest iOS, I see:

Last updated -3 or such.

Dennis

Sent from my iPhone

On Jan 13, 2020, at 4:11 PM, Dennis Womack [email protected] wrote:

I would like to see when each page was last updated. If it is a lot more work, don’t worry about it. I’ll put my button on happy.

Again, thank you for making the guide.

Dennis

Sent from my iPhone

On Jan 13, 2020, at 3:45 PM, Mykola Grymalyuk [email protected] wrote:

 @vit9696 Has been corrected with proper info, thank you

@DWomack Yeah that's gitbook's framework and I can't seem to change the location, but instead I can manually add it to the page at the top under the title. So for every time the specific page has been updated, just update the "last edited" part. Is that what you were thinking or having the "last edited" always be the most recent of all pages?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.

DWomack avatar Jan 13 '20 21:01 DWomack

Hi, newbie here!

Could you please specify in your guide what's the recommended value for "WriteFlash" in legacy BIOS computers (using emulated nvram)?

Kind regards.

filamento avatar Feb 29 '20 17:02 filamento

@khronokernel as an experiment we may want to start recommending trying to setup Apple GuC firmware on Kaby Lake and newer. See https://github.com/acidanthera/bugtracker/issues/748#issuecomment-601472727. We need some stats on how many machines this works, and whether PAVP enabling/Shiki disabling also works. We will update WhateverGreen guides accordingly soon as well.

Easiest to diagnose GuC is by checking IGPU frequencies in Intel PowerGadget or by checking boot log to contain Apple Scheduler reference, like this:

kernel: (AppleIntelKBLGraphics) [IGPU] Graphics Firmware Version: 2.14.0.0
kernel: (AppleIntelKBLGraphics) [IGPU] Graphics Firmware Version: 2.14.0.0
kernel: (AppleIntelKBLGraphics) [IGPU] Graphics accelerator is using scheduler: Apple Firmware
kernel: (AppleIntelKBLGraphics) [IGPU] Graphics accelerator is using scheduler: Apple Firmware

vit9696 avatar Mar 23 '20 04:03 vit9696

@vit9696 Sounds good to me, my idea is to have DRM stuff on a separate page and setup an issues tab in the guide for users to report in(I'm sure you don't want random people to be flooding the bug tracker). I can also add the recommendation of igfxfw=2 and such into the Kaby and coffee sections of the guide.

I do have some questions:

  • Is there a specific reason it's only Kaby Lake and newer? My guess would be that the HD 630 and UHD 630 basically the same though curious if there's more to it
  • Best ways to test DRM playback?
    • AppleTV+
    • iTunes/AppleTV movies
    • Netflix in Safari?(As you mentioned in the other thread, Chrome doesn't use hardware but I believe Safari does though)
    • Hulu/AmazonPrime?(Same idea as Netflix)
  • What are some good prerequisites?
    • Hardware acceleration
    • Hardware decoding

Thanks for any pointers you can give.

Also kinda related but not really, have you heard much about Sidecar support on iGPU-less systems? 10.15.0 or .1 broke support partially(iMac19,x boardID was fine) but now it's outright broken. Not really that important but curious if you've heard much or have some tips

khronokernel avatar Mar 23 '20 21:03 khronokernel