Jump to content
tonyx86

Mojave on Dell Latitude E6410

113 posts in this topic

Recommended Posts

Posted (edited)

After reviewing IORegistryExplorer, I noticed that the portType of the Internal USB Port 5 on hub EHC1 is wrong.  It is portType =  0 which is an external USB port instead of portType = 2 which is an internal USB port.  I never knew that the HUB1 and HUB2 definitions in Rehabman's SSDT-UIAC-All.dsl applied to the USB ports on the EHCx hubs.  By including the definition of HUB1 in my custom SSDT-UIAC.dsl and setting the portType of HP15 to 2, I was able to change the Bluetooth USB port type from external to internal.

 

This does not appear to have had any affect on sleep, but may be important to prevent instant wake when sleep is finally working.

 

This change is not yet reflected in the files that are attached to Post #1 in this thread.  I have attached my new custom SSDT-UIAC.dsl to this post.

 

EDIT: I uploaded a newer SSDT-UIAC.dsl that includes the UsbConnector values for each EHC1 USB port.

SSDT-UIAC.zip

Edited by tonyx86
Attached custom SSDT-UIAC.dsl

Share this post


Link to post
Share on other sites
Advertisement
Posted (edited)

@Dr. Monkey I have been experimenting with different OS identification equivalents to "Darwin" and believe that my laptop runs coolest (indicating lower power consumption) when I emulate "Linux" for _OSI("Darwin").  Do you know enough about editing your DSDT, so that your laptop is emulating "Linux" when running macOS?  I haven't worked on an XOSI SSDT to override _OSI (still learning about it), so you would need to manually edit your DSDT to patch Methods IINI()  and OSID().  I'm curious to know if you see a temp difference.  I compared Linux and Win7.

 

The screen shot I snapped in an earlier post (showing CPU core idle temps in the 40s) was when my DSDT emulated "Linux" for "Darwin."  When I emulate Win7, my CPU core idle temps are in the 50s.

Edited by tonyx86

Share this post


Link to post
Share on other sites

Off topic: @tonyx86 I was running OSX and Windows at the same SSD on my Latitude E series when it had Sierra.

But now, with Mojave, I unified the partition for error proof in the install process.

Theres something new with this OSX or I can simply split one drive, restore OSX at the partition 1 and install Windows in another?

Thanks again.

Share this post


Link to post
Share on other sites
Posted (edited)

@vbmota I am not sure how to dual-boot Windows and MacOS on the same disk while preserving MacOS ability to perform updates.  I have a replacement drive caddy that lets me install a second SSD in the DVD slot.  I press F12 at boot to select the drive that I want to boot from.  This allows me to have Windows on one drive and CLOVER/MacOS on the other.  Note that my MacOS partition is formatted APFS and I dual-boot Mojave 10.14.5 and High Sierra 10.13.6 from the same SSD (each MacOS in its own APFS container).

 

When you ran OSX and Windows on the same SSD, were you booting legacy or UEFI?  Was your SSD partitioned MBR or GPT?

Edited by tonyx86

Share this post


Link to post
Share on other sites
7 minutes ago, tonyx86 said:

@vbmota I am not sure how to dual-boot Windows and MacOS on the same disk while preserving MacOS ability to perform updates.  I have a replacement drive caddy that lets me install a second SSD in the DVD slot.  I press F12 at boot to select the drive that I want to boot from.  This allows me to have Windows on one drive and CLOVER/MacOS on the other.  Note that my MacOS partition is formatted APFS and I dual-boot Mojave 10.14.5 and High Sierra 10.13.6 from the same SSD (each MacOS in its own APFS container).

 

When you ran OSX and Windows on the same SSD, were you booting legacy or UEFI?  Was your SSD partitioned MBR or GPT?

 

Legacy, I tried multiple times to made Clover boot through UEFI but with no success.

Partitioned with MBR GUI map.

 

Share this post


Link to post
Share on other sites
Posted (edited)
17 hours ago, vbmota said:

 

Legacy, I tried multiple times to made Clover boot through UEFI but with no success.

Partitioned with MBR GUI map.

 

I tried running MacOS from a disk partitioned MBR but it wouldn't perform OS updates.  I never spent time trying to figure out how to get the MacOS updates to work with MBR, since I just changed the MacOS disk to GPT and used separate disks for Windows and MacOS.  I know it's possible - I just never did it.

Edited by tonyx86

Share this post


Link to post
Share on other sites

I finally got around to testing the display port (using display port > HDMI adapter).  Works perfectly.  Updated Post #1 to reflect this new info.

Share this post


Link to post
Share on other sites
Posted (edited)

After reading Intel's Series 5 Chipset spec (page 537) and a bit of trial and error, I think I discovered the memory-mapped location of the SLP_TYP (sleep type) register for power resources on the Latitude E6410.  The 3-bit SLP_TYP read/write register determines the sleep state to assume after SLP_EN (sleep enable) is set.  If I am correct, you can access SLP_TYP in your DSDT by modifying the OperationRegion already defined for SLPE (SLP_EN) in your DSDT as follows:

 

    OperationRegion (PMRS, SystemIO, 0x0430, One)
    Field (PMRS, ByteAcc, NoLock, Preserve)
    {
            ,   4,
        SLPE,   1,
        SLPT,   3
    }

SLPE is a 1-bit register that is enabled when set to ZERO, so I assumed that SLPT follows the same "negative logic" and that 111b in the Intel spec (the value of SLP_TYP for State S5) is actually a value of 000b in the SLP_TYP register.  I guessed the memory-mapped location of the SLP_TYP by assuming it to be bit-wise adjacent to SLP_EN as described in the Intel spec on page 537. I experimented with both locations on either side of the SLP_EN bit and believe my OperationRegion above is correct.  To confirm this, I set SLPT to 000b (ZERO) and my system shuts down normally.  Changing SLPT to other values disrupts normal shutdown.  When I get time, I will experiment with different values for SLPT to see if setting this can help the laptop assume Sleep State S3.

 

I invite others to experiment and report findings here.

 

EDIT: Here's a good article that explains the OperationRegion construct in DSDT: https://lwn.net/Articles/367630/

Edited by tonyx86

Share this post


Link to post
Share on other sites

Just upgraded my Dell Latitude E6410 to Mojave 10.14.6 (from 10.14.5).  Everything works perfectly.  Upgrade process was simple:

  • Backup!
  • Apply 10.14.6 update from AppStore
  • Before rebooting into 10.14.6, boot from DosDude-patched Mojave Installer USB and apply Legacy Graphics Patch

Share this post


Link to post
Share on other sites

I Have Latitude E6410 (i5-520m,Graphics NVS 3100M, Wi-Fi: Broadcom  BCM94352).

Successfully Installed Mojave Thanks To This Topic

(I Used The Attached dsdt and config.blist files)

But After I Installed DosDude-patch And start and login to osx, everything is fine but after one minutes or less screen start to gose black as it going to sleep and i have to move the mouse to get it back and when i reboot with nv-disable=1 the screen work normally but no graphic work ,then i tried to patch my original dsdt the nvidia works but the system become slow ,

second problem is wifi card i know it compatible with hackintosh and i get it to work but it switched off automatically and couldn't get it on again

 

Any Suggestion what to do

 

CLOVER.zip

Share this post


Link to post
Share on other sites

@hazem3ly At first glance, your DSDT looks like it's missing patches.  Did you first follow duduclx's link at the beginning of Post #1 in this thread and then follow my recommendations in Post #1?  I looked for  NVidia patches and PNLF as my first two searches and didn't find either. I would recommend that you read Post #1 of this thread very carefully and then check back here with what I suspect will be a working system.

Share this post


Link to post
Share on other sites
Posted (edited)

I Forget To apply Patches in dudclx's link ,but i applied it now and then the problem of screen gone black not resolved so i tried to apply every patch individual and i found that what make the problem is in this code 

    Scope (_SB)
    {
        Device (PNLF)
        {
            Name (_ADR, Zero)  // _ADR: Address
            Name (_HID, EisaId ("APP0002"))  // _HID: Hardware ID
            Name (_CID, "backlight")  // _CID: Compatible ID
            Name (_UID, 0x0A)  // _UID: Unique ID
            Name (_STA, 0x0B)  // _STA: Status
        }
    }

and when removed it the screen works fine .

the current problems is 

   the osx not fully shutdown(i've to long press power button)

   brightness not work (the slider now not apper in preference )

   the wifi card at os start is working but after small amount of time it switched off and never turned on again until restart

 

i have attached clover file CLOVER.zip

Edited by hazem3ly

Share this post


Link to post
Share on other sites
Posted (edited)

I noticed items in your config.plist that look different to me, but I didn't make a thorough comparison.  What specifically are the differences between your config.plist and the one I posted?  Also, is your BIOS A17?

 

I would recommend removing all but the 'other' folder in the CLOVER/kext folder.  Looking at just the 'other' folder, how did you decide which kexts to put in your CLOVER/kext/other folder (some that I don't recognize)?

Edited by tonyx86

Share this post


Link to post
Share on other sites

Hello,

I need to patch my LPCB._DSM.Name, but I cannot find that method in my DSDT. I also get a lot of errors when compiling. I fixed them, but I don’t think I did it correctly, because I cannot boot using the output DSDT. 

 

I have an i7 820qm in my E6410, so it won’t boot using your files. I’ve managed to install Mojave, and it works, but without speedstep. I’ve tried the common methods for fixing this, but they don’t work well.

 

I even got my internal nec renesas usb 3.0 card working, which I didn’t think would be possible on Mojave. The kext is called mXHCD if someone is interested in trying. If you have the expressCard model it’s cheap and easy... mine is the PC-Card variant. I changed the device id in the plist, because my device id didn’t match. 

 

I’m stuck with the DSDT patching and would really like some help... maybe post an asl of it your patched file?

 

Regards

Malu

 

Share this post


Link to post
Share on other sites

Did anyone properly setup UsbInjectAll? Currently I have many ports listed that aren’t real ports... maybe that can affect sleep?

 

Malu

Share this post


Link to post
Share on other sites
Posted (edited)

@Malu The IOName patch is in the DSDT that I attached to Post #1 in this thread.  Search for it and apply the same to your DSDT.  My latest custom SSDT-UIAC (for USBInjectAll.kext) is attached to one of my posts earlier in this thread.  You'll find it as either the first post on Page 3 of this thread or about 14 posts ago.

 

I7-820QM eh?  Very cool.  Do you also run with 16GB RAM?  I read about it and decided against it when I saw that no one had speedstep working.  You could try to create an SSDT for your CPU using ssdtPRGen.  I'm not going to be much help with that, because I couldn't get it to work for custom Gen 1 CPUs.  There is an L3426 (Lynnfield, Xeon) CPU in the ssdtPRGen examples that should be a close match and a good starting point for you.  That's about all I can offer for your CPU.

 

 

Edited by tonyx86

Share this post


Link to post
Share on other sites

@tonyx86 Thanks for your quick reply. I disassembled your DSDT to have a look... it's very different from mine, and luckily the errors I needed help with are not present. I have errors for some address ranges that I cannot really fix by changing syntax... the actual values are not accepted. I'll try to insert your values to see what happens, it will probably crash the machine though.

 

I'll try your SSDT-UIAC. I probably need to modify a bit, because having a 820QM is messing with a lot of things. For example I have a strange name for one USB controller.

 

I've tried ssdtPRGen but that doesn't work well. Clocks are lower and I think it gave me stability issues. I'll try again with your proposal. I put a startup find/replace in Clover for the AppleALC plist. This makes AppleALC load, but will only give me turbo for 4 cores. It's not that bad aside from single core performance.

I want to test your method to see if it makes a difference, it probably won't if there are no more ID matchings aside from AppleALC. Maybe there are no 4 core drivers available from Apple for this PCH ID. I don't know enough about Gen 1 speedstep and turbo... yet. For the Core2Duo the voltage and frequency was set by software. Gen 1 took the voltage setting out I know. Maybe the frequency is still set in a similar way. In that case the driver must decide how many cores to use for a certain load, and then set those values correctly.

 

Yes, I installed the 820QM just to see if it worked. They don't cost a lot nowadays... I might try the 940XM when they become a little cheaper. ;) My machine has some custom cooling($3 laptop cooler and back cover removed from E6410), so heat is not an issue. Current from VRMs might be. There can also be Bios issues... 

I tried 16GB ram before, but windows didn't like it. Dell Bios memory check works well on it though. I don't know if it is possible to get 16GB working well on this computer?

 

What I've been spending time on is getting 4K30hz and 2K60hz working from display port. It works in windows 10, but the pixel clock patch for macOS doesn't work for this GPU. Have you any experience in patching graphics drivers? I have 2K40hz working now, so its not too bad. It's connected to a 60" 4K TV, and I use magic- trackpad2/keyboard2 for controlling it. It's perfect for some living room browsing.

 

My E6410 is already working well enough now though, but somehow I cannot stop hacking.... It will replace an old MacBook Pro late 2008 as media server. Key was getting USB 3 working for connecting my DAS. I connected USB card to WWAN slot.

 

Thanks for your help!

Share this post


Link to post
Share on other sites
Posted (edited)

If you run Mojave, don't waste too much time with USBInjectAll. Use headkaze's Hackintool to generate your USBPorts kexts (basically a kext with an Info.plist that properly defines all the detected USB ports) + associated SSDTs.

 

Afaik, Pike R Alpha's generator script is of no use for 1st gen Intel Core CPUs, it's for CPUs starting at 2nd gen (Sandy Bridge) up to Kaby Lake, after which Pike stopped updating the tool since it became somehow obsolete and superseded by Clover (and he went out of the Hackintosh scene). Still very useful for Sandy Bridge + Ivy Bridge platforms though...

 

1st gen Intel Core CPUs only require:

  1. to generate C States and P States through Clover (or Chameleon/Enoch if applicable)
  2. no need to drop any SSDT
  3. a FakeSMC kext tuned to the selected SMBIOS may be useful too (though that may be obsolete now with today's Clover)
Edited by Hervé

Share this post


Link to post
Share on other sites
7 hours ago, Malu said:

I've tried ssdtPRGen but that doesn't work well. Clocks are lower and I think it gave me stability issues. I'll try again with your proposal. I put a startup find/replace in Clover for the AppleALC plist. This makes AppleALC load, but will only give me turbo for 4 cores. It's not that bad aside from single core performance.

If you can post a quick how-to on ssdtPRGen with the specific command line that you used, I have another system where I could try it and report back.

 

7 hours ago, Malu said:

Have you any experience in patching graphics drivers? I have 2K40hz working now, so its not too bad. It's connected to a 60" 4K TV, and I use magic- trackpad2/keyboard2 for controlling it. It's perfect for some living room browsing.

 

My E6410 is already working well enough now though, but somehow I cannot stop hacking.... It will replace an old MacBook Pro late 2008 as media server. Key was getting USB 3 working for connecting my DAS. I connected USB card to WWAN slot.

I don't have experience with patching graphics drivers - sorry I won't be any help there.  Sounds like you're really pushing the envelope with the E6410.  My only remaining issue at this point is sleep.  I tinker with it and continue to learn. Please continue to share your progress and any lessons you've learned.  Thanks! 

Share this post


Link to post
Share on other sites
Posted (edited)
33 minutes ago, Hervé said:

If you run Mojave, don't waste too much time with USBInjectAll. Use headkaze's Hackintool to generate your USBPorts kexts (basically a kext with an Info.plist that properly defines all the detected USB ports) + associated SSDTs.

 

Afaik, Pike R Alpha's generator script is of no use for 1st gen Intel Core CPUs, it's for CPUs starting at 2nd gen (Sandy Bridge) up to Kaby Lake, after which Pike stopped updating the tool since it became somehow obsolete and superseded by Clover (and he went out of the Hackintosh scene). Still very useful for Sandy Bridge + Ivy Bridge platforms though...

 

1st gen Intel Core CPUs only require:

  1. to generate C States and P States through Clover (or Chameleon/Enoch if applicable)
  2. no need to drop any SSDT
  3. a FakeSMC kext tuned to the selected SMBIOS may be useful too (though that may be obsolete now with today's Clover)

 

I've had good experience with USBInjectAll and Mojave, but my systems are all old, so I can't speak to systems newer than 1st Gen / Series 5.  

 

In my experience (again, older systems), Series 5 Chipset / Lynnfield, Clarkedale, Arrandale, Nehalem does much better without Generate C / Generate P states as long as the correct MacModel is selected (MacBookPro 6,2 in this case) and the correct IONameMatch is injected in LPCB._DSM ("3b09" in this case).  Adding CLOVER CPU options (like Generate C / Generate P States) limits the peak multiplier and reduces the number of P-States. I have similar experience with a Series 5 Chipset / Xeon X3450 (Using MacModel MacPro5,1 with IOName "3b09").

Edited by tonyx86

Share this post


Link to post
Share on other sites

It's alive!!

Turbo is now working on my E6410 I7-820QM. I guess AppleLPC was not the only kext/driver to match pci8086,3b07.

 

I had problems getting a DSDT that wouldn't crash the machine during boot. I followed some guides I found that included a step to disassemble DSDT and additional files together, before using MaciASL.

That doesn't work for me. Only good thing to come out of that was that I could disassemble tonyx86's DSDT(it won't open in MaciASL otherwise).

 

I used tonyx86's DSDT to find correct address values for my "corrupt DSDT". Still wouldn't boot. Then I just opened system DSDT and corrected it, and machine booted! Then I added the _DSM method from tonyx86's DSDT and speedster/turbo just works.

 

I got speedster and turbo to work a bit by renaming match id pci8086,3b07 to pci8086,3b09, in AppleLPC plist.

What doesn't work is C-states. If macOS cannot set C-states correctly, the CPU can only turbo on 4 cores. Turbo is automatically handled by the CPU, but if all cores are active, it won't help much for single thread performance.

 

I used this command to check if C-states were correctly set:

sudo powermetrics --show-process-energy

Powermetrics is complaining about not getting backlight node and SMC values, but C-states are working now.

 

I'll try to finish up by fixing USB assignments and some other minor issues... then have a look at the sleep issue.

 

Hervé's proposed solution for USB sounds interesting...

 

Thanks for your support guys!

Share this post


Link to post
Share on other sites

Are you using the expected patched DSDT? Because it contains a _DSM Method to inject LPCB id 8086:3b09, though I'll admit declaring compatibility would have been better:

            Device (LPCB)
            {
                Name (_ADR, 0x001F0000)  // _ADR: Address
                [...]
                [...]
                [...]
                Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
                {
                    If (LEqual (Arg2, Zero))
                    {
                        Return (Buffer (One)
                        {
                             0x03                                           
                        })
                    }
                    Return (Package (0x04)    // simple Return (Package () {"compatible", "pci8086,3b09"}) could do
                    {
                        "name", 
                        "pci8086,3b09", 
                        "device-id", 
                        Buffer (0x04)
                        {
                             0x09, 0x3B, 0x00, 0x00
                        }
                    })
                }
            }

 

Share this post


Link to post
Share on other sites

@Hervé That DSDT doesn't work when I have the I7-820QM installed. It works well with the 620M though. I put that method in a DSDT I pulled when I had the 820QM installed.

 

I'm currently testing the system with working power management... it seems a side effect is slow ethernet speed.

Before power management it would transfer around 70MB/s, now around 10MB/s. If I open a browser and scroll continuously, the speed goes up to 60MB/s.

 

It might not be related to the power management, I'm still investigating... I hope I can find a fix

Share this post


Link to post
Share on other sites
Posted (edited)

@Malu - could you post your DSDT?  What OS are you emulating in your DSDT (Linux, Win7...)?  My E6410 seems to work best when emulating Linux.

 

Attached is my current DSDT.aml.  I haven't attached it to the first post of this thread, because it's still a work in progress.  Differences between this attached DSDT and the one in Post #1 include:

  • Removed PNLF (I'm content with adjusting brightness with the keys and the DSDT does not need to be patched for this)
  • Added Mutex Release (WMIX) at end of Method (WSVP) and Method (WVCU)
  • Fixed Dell bug in Method (GNOT) (replaced LOr with LAnd)
  • Removed duduclx "Intel Ready" patch for Intel HD Graphics (not necessary with NVidia 3100m)
  • Hard-coded ACOS and OSYS variables to emulate Linux (eliminated method OSID)
  • Changed IFs to ELSEIFs to eliminate unnecessary code execution in ECW and ECR1 methods
  • Added EC cases for all EC registers in Method ECW
  • Partially restored code execution conditional on OSYS in Device (HPET)::Method (_STA)
  • Other minor changes 

 

My laptop currently runs perfectly with the exception of non-working sleep.

DSDT.zip

Edited by tonyx86
Changed ECR to ECR1 (typo)

Share this post


Link to post
Share on other sites

@tonyx86 I haven't done anything with my DSDT yet, aside from pasting the method in Hervé's post. I'm actually running without patched DSDT now, as I didn't like how the power manager made the computer unresponsive.

 

Ethernet speed around 1MB/s if laptop is completely idle doesn't work for a server. Without patched DSDT it manages close to 100MB/s now, up from 70MB/s I had previously without patched DSDT. Probably because I rebooted the server that I copy files from,  that has been online for years. Power consumption is at 30W idle which is ok, as it's always plugged in.

 

OS emulation? I just started hacking DSDT's, so I don't even know what that is. What difference do you see between those options?

 

I experience random freezing/crashing, but logs are not updated, so I have no idea where to start looking. It mostly happens at night when the machine is idle. It also freezes in Firefox on a page with live stock charts. That very same page won't even load in Safari.

 

It seems you soon have a completely rewritten DSDT for macOS... I'll have a look at it.

I would like to get access to the PLL controller, or be able to set the frequency via DSDT. I've heard that Dell doesn't connect the PLL chip to the common SMBus, so its probably not possible.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By fusion71au
      Clover r5050 ISO compiled with GCC and minimal config.plist compatible for use in VMWare Workstation.
       
      Tested with unlocked Workstation 15 running OSX 10.9 -->10.15 guest in Windows X64 host.
       
      Installation
      1. Download and unzip "EFI_Clover_r5050 for VMware.zip". Mount Clover-v2.5k-5050-X64.iso by double clicking on it.
      2. Mount your VM's EFI System Partition eg in terminal
      sudo diskutil mount disk0s1   3. Copy EFI folder from step 1 into the EFI partition
      4. Shutdown the VM, add bios.bootDelay = "3000" to your VM's vmx file
      5. Reboot your VM, press <F2> to access the VMware Boot Manager and add CLOVERX64.efi to the boot menu.
       
      Substitute your own unique and valid MLB and ROM variables in the /EFI/CLOVER/config.plist (Rt Variables section) to activate iMessage/Facetime on your VM.
    • By headkaze
      Framebuffer patching in Mojave
      Binary patching framebuffers using KextsToPatch in Clover is no longer a viable method in Mojave for Skylake and above. Now you need to use Lilu + WhateverGreen.
       
      Not just for Mojave
      This method of framebuffer patching is not only required for Mojave we recommend it for all previous and future releases of macOS.
       
      Coffee Lake Users
      Please note that the new WhateverGreen will not work with fake Kaby Lake platform-id's. You will need to have either macOS 10.14 Beta 4 (18A336e) or macOS High Sierra 10.13.6 (17G2112). The latter is a special build only available to MacBookPro15,1 or MacBookPro15,2 board id's. You can create a macOS High Sierra 10.13.6 (17G2112) installer by running installinstallmacos.py. (Update: vit9696 added back ability to fake Kaby Lake platform-id's)
       
      Lilu + WhateverGreen
      WhateverGreen is going to replace all the other video patching plugins for Lilu (it currently has merged WhateverGreen, IntelGraphicsFixup, NvidiaGraphicsFixup, Shiki and CoreDisplayFixup). Others will likely follow (such as AppleALC, HibernationFixup and IntelGraphicsDVMTFixup). This is aiming to be the all-in-one solution for video.
       
      Preliminary
      1. Remove:
      - FakePCIID_Intel_HD_Graphics
      - IntelGraphicsFixup
      - NvidiaGraphicsFixup
      - CoreDisplayFixup
      - Shiki
      2. Turn off all graphics injections in Clover:
      - config.plist/Graphics/Inject/ATI=NO
      - config.plist/Graphics/Inject/Intel=NO
      - config.plist/Graphics/Inject/NVidia=NO
      - config.plist/Graphics/ig-platform-id=
      - config.plist/Devices/FakeID/IntelGFX=

      3. Disable DSDT Clover fixes:
      - AddHDMI
      - FixDisplay
      - FixIntelGfx
      - AddIMEI
      4. Disable UseIntelHDMI
      5. Remove boot argument: -disablegfxfirmware
      6. Remove any IGPU and HDMI entries from:
      - config.plist/Devices/Arbitrary
      - config.plist/Devices/Properties
      - config.plist/Devices/AddProperties
      7. Remove any IGPU and HDMI related SSDT and DSDT from:
      - CLOVER/ACPI/patched
      8. Renaming GFX0 -> IGPU
      - WhateverGreen will do this automatically (see caveat below)
      - Be aware that WhateverGreen does not rename all instances of GFX0 -> IGPU but should be okay in most cases
      - You may need to include Clover GFX0 -> IGPU rename for other kexts or ACPI patching that require it
       
      Compile Lilu + WhateverGreen
      Download WhateverGreen. Make sure you place the debug version of Lilu into the root of WhateverGreen before you compile. Install Lilu and WhateverGreen kext's into the usual place. Compile WhateverGreen as debug if you want to view debug output.
       
      Having trouble compiling?
      If you're having trouble compiling you can download the official release binaries or download my (unsupported) build_lilu.sh shell script and run it in a folder to download and build Lilu + WhateverGreen using Xcode automatically. I recommend you try the debug versions first (place them into Clover's EFI/Clover/kexts/Other folder).
       
      Get the device path of your IGPU:
      Download and use the gfxutil tool like so:
      $ ./gfxutil IGPU = PciRoot(0x0)/Pci(0x2,0x0) ig-platform-id
      For the AAPL,ig-platform-id (AAPL,snb-platform-id for Sandy Bridge) entry Clover requires this value to be in Data format so you need to reverse the bytes. So if you want your platform-id to be 0x3EA50009 first reverse the bytes (0900A53E) then use Xcode's plist editor to add the values to Clover's config.plist.

       
      What ig-platform-id should I use for my system?
      You should choose one that is the closest match to your system. I recommend you do some research on this before choosing one. See post #2 for available options. More info can be found here.
       
      You can determine the generation of your CPU by the first digit after the hyphen.
      Examples:
      - Intel(R) Core(TM) i5-2760QM (Gen 2)
      - Intel(R) Core(TM) i7-5257U CPU @ 2.70GHz (Gen 5)
      - Intel(R) Core(TM) m3-6Y30 (Gen 6)
      - Intel(R) Core(TM) i5-8350U (Gen 8)
       
      Spoofing Intel CPU Gen
      If you need to spoof a different Intel CPU generation you can use the lilucpu=N boot flag. The N refers to the following Intel generations:
      4    SandyBridge 5    IvyBridge 6    Haswell 7    Broadwell 8    Skylake 9    KabyLake 10   CoffeeLake To spoof a CPU you will need to set a valid device-id in your GPU entry in Devices/Properties for the appropriate Intel generation.
       
      Eg. Spoofing Skylake (lilucpu=8 boot flag with device-id=0x16190000), Kaby Lake (lilucpu=9 boot flag with device-id=0x12590000).
       
      Here are some recommended frames:
       
      Gen 2: Sandy Bridge (Intel HD Graphics 2000/3000)
      - S/L/E/AppleIntelSNBGraphicsFB.kext
      - Support started with OS X 10.7.x and ended with macOS 10.13.6
      - Metal support is not available
      - device-id: 0x0102 0x0106 0x010A 0x0112 0x0116 0x0122 0x0126
      - AAPL,snb-platform-id (desktop): 0x00030010 (default)
      - AAPL,snb-platform-id (laptop): 0x00010000 (default)
       
      Gen 3: Ivy Bridge (Intel HD Graphics 2500/4000)
      - S/L/E/AppleIntelFramebufferCapri.kext
      - Support started with OS X 10.8.x
      - device-id: 0x0152 0x0156 0x0162 0x0166
      - AAPL,ig-platform-id (desktop): 0x0166000A (default), 0x01620005
      - AAPL,ig-platform-id (laptop): 0x01660003 (default), 0x01660009, 0x01660004
       
      Gen 4: Haswell (Intel HD Graphics 4200-5200)
      - S/L/E/AppleIntelFramebufferAzul.kext
      - Support started with OS X 10.9.x
      - device-id: 0x0D26 0x0A26 0x0A2E 0x0D22 0x0412
      - AAPL,ig-platform-id (desktop): 0x0D220003 (default)
      - AAPL,ig-platform-id (laptop): 0x0A160000 (default), 0x0A260005 (recommended)
       
      Gen 5: Broadwell (Intel HD Graphics 5300-6300)
      - S/L/E/AppleIntelBDWGraphicsFramebuffer.kext
      - Support started with OS X 10.10.2
      - device-id: 0x0BD1 0x0BD2 0x0BD3 0x1606 0x160E 0x1616 0x161E 0x1626 0x1622 0x1612 0x162B
      - AAPL,ig-platform-id (desktop): 0x16220007 (default)
      - AAPL,ig-platform-id (laptop): 0x16260006 (default)
       
      Gen 6: Skylake (Intel HD Graphics 510-580)
      - S/L/E/AppleIntelSKLGraphicsFramebuffer.kext
      - Support started with OS X 10.11.4
      - device-id: 0x1916 0x191E 0x1926 0x1927 0x1912 0x1932 0x1902 0x1917 0x193B 0x191B
      - AAPL,ig-platform-id (desktop): 0x19120000 (default)
      - AAPL,ig-platform-id (laptop): 0x19160000 (default)
       
      Gen 7: Kaby Lake (Intel HD Graphics 610-650)
      - S/L/E/AppleIntelKBLGraphicsFramebuffer.kext
      - Support started with macOS 10.12.6
      - device-id: 0x5912 0x5916 0x591B 0x591C 0x591E 0x5926 0x5927 0x5923 0x87C0
      - AAPL,ig-platform-id (desktop): 0x59160000 (default)
      - AAPL,ig-platform-id (laptop): 0x591B0000 (default)
       
      Gen 8: Coffee Lake (Intel UHD Graphics 630)
      - S/L/E/AppleIntelCFLGraphicsFramebuffer.kext
      - Support started with macOS 10.13.6 (17G2112) / 10.14 beta 4 (18A336e)
      - device-id: 0x3E9B 0x3EA5 0x3EA6 0x3E92 0x3E91 0x3E98
      - AAPL,ig-platform-id (desktop): 0x3EA50000 (default), 0x3E9B0007 (recommended)
      - AAPL,ig-platform-id (laptop): 0x3EA50009 (default)
       
      Framebuffer Patching
      WhateverGreen does most of the work automatically for you and in most cases you do not need any extra Framebuffer Patching. At the minimum though you should choose an ig-platform-id suitable for your system and place it in config.plist/Devices/Properties like this:

      Here are some reasons why you might need extra Framebuffer Patching:
      - Setting DVMT for those who can't set it above 32 MB in BIOS (framebuffer-stolenmem / framebuffer-fbmem)
      - Setting higher VRAM for 4K users who experience graphical glitches (framebuffer-unifiedmem)
      - Disabling eGPU (disable-external-gpu)
      - Enable pixel clock patch for 4K support (enable-hdmi20)
      - Disabling connectors to enable sleep (framebuffer-pipecount / framebuffer-portcount / framebuffer-conX-type=-1)
      - Removing CNConnectorAlwaysConnected flag for eDP laptop screens on < 10.13.6 (framebuffer-con0-flags=0x00000090)
      - Changing connector types to match your systems ports (framebuffer-conX-type)
       
      Framebuffer Patching Types
      We have three different types of patches:
       
      1. Arbitrary (Recommended)
      framebuffer-patch-enable (required to enable below) framebuffer-framebufferid (optional; defaults to current platform-id) (all below are optional) framebuffer-mobile framebuffer-pipecount framebuffer-portcount framebuffer-memorycount framebuffer-stolenmem framebuffer-fbmem framebuffer-unifiedmem framebuffer-cursormem (Haswell only) framebuffer-camellia framebuffer-flags framebuffer-conX-enable (required to enable below) framebuffer-conX-index framebuffer-conX-busid framebuffer-conX-pipe framebuffer-conX-type framebuffer-conX-flags 2. All Data
      framebuffer-conX-enable (required to enable below) framebuffer-conX-alldata 3. Find / Replace
      framebuffer-patchX-enable (required to enable below) framebuffer-patchX-framebufferid (optional; defaults to current platform-id) framebuffer-patchX-find framebuffer-patchX-replace framebuffer-patchX-count (optional; defaults to 1) You should place your patches in config.plist/Devices/Properties in Clover config.plist.
       
      Here are some example patches:
      - 32MB BIOS, 19MB stolen (framebuffer) 9MB fbmem (cursor) 2048MB unifiedmem (vram)

       
      - Pipe / Port Count 3 to 2
      - Connector 1 DP to HDMI
      - Connector 2 Disable

       
      Here is an example of the All Data method:

       
      Here is an example of the Find / Replace method:

       
      Framebuffer Dumps
      There are two ways to dump your framebuffer data (both require WhateverGreen + Lilu debug versions):
       
      1. Using -igfxdump boot flag to dump IGPU framebuffer kext to /AppleIntelFramebuffer_X_Y (root of your boot drive)
       
      There are several ways of reading this dump:
      - Using 010 Editor along with the IntelFramebuffer.bt template
      - Using Hackintool File->Open menu
       
      2. Using -igfxfbdump boot flag to dump native and patched framebuffer table to ioreg at IOService:/IOResources/WhateverGreen
       
      There are several ways of reading this dump:
      - Using dump_platformlist.sh shell script
      - Using Hackintool File->Import->IOReg Dump menu
       
      3. Using Hackintool Framebuffer->macOS 10.14 menu
       
      Adjusting the brightness on a laptop
      1. Method 1
      Enable Clover DSDT fix AddPNLF. Enable SetIntelBacklight and SetIntelMaxBacklight. A specific value is not necessary - it will be automatically injected according to the processor installed.
      2. Method 2
      Use this ACPI table: SSDT-PNLF.dsl SSDT-PNLF.aml
      Do not use both methods at the same time!
       
      Digital Audio (HDMI / DVI / DP)
      To enable digital audio it is necessary to set the necessary properties and, usually, patch the connectors.
      To enable audio in general and HDMI in particular use WEG along with AppleALC.kext.
      On 10.10.5 and above, WEG automatically changes the connector-type of DP (00040000) to HDMI (00080000) if no custom patches are used.
      The actual connection may be of any type (HDMI / DVI / DP), but for the digital audio to function the connector-type must explicitly be HDMI.
       
      VGA support
      In most cases with Intel Skylake and newer it works by default.
      For Ivy Bridge and possibly other generations there are the options to patch your connectors with the following:
      06020000 02000000 30000000 // Option 1
      06020000 01000000 30000000 // Option 2
      On OS X 10.8.2 and newer it is impossible to have VGA on Ivy Bridge systems.
      Hot-plugging VGA usually does not work.
      In case this doesn't help - there are no other known solutions at this time.
       
      EDID
      EDID is usually correctly identified, so no actions are required. In rare cases, EDID needs to be injected manually.
      An EDID dump can be obtained, for example, with Linux. The correct EDID must be put into *AAPL00,override-no-connect* property for IGPU, where the second 0 stands for the display number.
      In some cases the EDID dump may be incompatible with macOS and leads to distortions. For some EDID in such cases you can use this script, which corrects a provided EDID and saves it to your desktop.
       
      HDMI in UHD resolution with 60 fps
      Add the enable-hdmi20 property to IGPU, otherwise you will get a black screen. Or instead of this property use the boot-arg -cdfon
       
      Disablng a discrete graphics card
      Add the disable-external-gpu property to IGPU. Or instead of this property, use the boot-arg -wegnoegpu
       
      Fix the invalid maximum link rate issue on some laptops (Dell XPS 15 9570, etc.)
      Add the enable-dpcd-max-link-rate-fix property to IGPU, otherwise a kernel panic would happen due to a division-by-zero. Or instead of this property, use the boot-arg -igfxmlr.
      You could also manually specify a maximum link rate value via the dpcd-max-link-rate for the builtin display.
      Typically use 0x14 for 4K display and 0x0A for 1080p display. All possible values are 0x06 (RBR), 0x0A (HBR), 0x14 (HBR2) and 0x1E (HBR3). If an invalid value is specified, the default value 0x14 will be used instead. If this property is not specified, same as above.  
      Fix the infinite loop on establishing Intel HDMI connections with a higher pixel clock rate on Skylake, Kaby Lake and Coffee Lake platforms
      Add the enable-hdmi-dividers-fix property to IGPU or use the -igfxhdmidivs boot argument instead to fix the infinite loop when the graphics driver tries to establish a HDMI connection with a higher pixel clock rate, for example connecting to a 2K/4K display with HDMI 1.4, otherwise the system just hangs (and your builtin laptop display remains black) when you plug in the HDMI cable.  
      1. General Notes
      For those who want to have "limited" 2K/4K experience (i.e. 2K@59Hz or 4K@30Hz) with their HDMI 1.4 port, you might find this fix helpful. For those who have a laptop or PC with HDMI 2.0 routed to IGPU and have HDMI output issues, please note that this fix is now succeeded by the LSPCON driver solution, and it is still recommended to enable the LSPCON driver support to have full HDMI 2.0 experience.  
      (You might still need this fix temporarily to figure out the connector index of your HDMI port. See the LSPCON section below.)
      LSPCON driver support to enable DisplayPort to HDMI 2.0 output on IGPU
      1. Brief Introduction
      Recent laptops (Kaby Lake/Coffee Lake-based) are typically equipped with a HDMI 2.0 port. This port could be either routed to IGPU or DGPU, and you can have a confirmation on Windows 10. Intel (U)HD Graphics, however, does not provide native HDMI 2.0 output, so in order to solve this issue OEMs add an additional hardware named LSPCON on the motherboard to convert DisplayPort into HDMI 2.0.
      LSPCON works in either Level Shifter (LS) or Protocol Converter (PCON) mode. When the adapter works in LS mode, it is capable of producing HDMI 1.4 signals from DisplayPort, while in PCON mode, it could provide HDMI 2.0 output. Some onboard LSPCON adapters (e.g. the one on Dell XPS 15 9570) have been configured in the firmware to work in LS mode by default, resulting a black screen on handling HDMI 2.0 connections.
      Starting from version 1.3.0, WhateverGreen now provides driver support for the onboard LSPCON by automatically configuring the adapter to run in PCON mode on new HDMI connections, and hence solves the black screen issue on some platforms.
       
      2. Before you start
      LSPCON driver is only applicable for laptops and PCs with HDMI 2.0 routed to IGPU. LSPCON driver is necessary for all newer platforms unless the new IGPU starts to provide native HDMI 2.0 output. Supported Intel Platform: Skylake, Kaby Lake, Coffee Lake and later.
      Skylake Case: Intel NUC Skull Canyon; Iris Pro 580 + HDMI 2.0 with Parade PS175 LSPCON.
      Coffee Lake Case: Some laptops, e.g. Dell XPS 15 9570, are equipped with HDMI 2.0 and Parade PS175 LSPCON. If you have confirmed that your HDMI 2.0 is routed to IGPU and is working properly right now, you don't need to enable this driver, because your onboard LSPCON might already be configured in the firmware to work in PCON mode.
      3. Instructions
      Dump your kernel log and you should also be able to see something simillar to lines below.
       
      // When you insert the HDMI 2.0 cable igfx @ (DBG) SC:     GetDPCDInfo() DInfo: [FB0] called with controller at 0xffffff81a8680000 and framebuffer at 0xffffff81a868c000. igfx @ (DBG) SC:     GetDPCDInfo() DInfo: [FB0] No LSPCON chip associated with this framebuffer. igfx @ (DBG) SC:     GetDPCDInfo() DInfo: [FB0] Will call the original method. igfx @ (DBG) SC:     GetDPCDInfo() DInfo: [FB0] Returns 0x0. igfx @ (DBG) SC:     GetDPCDInfo() DInfo: [FB2] called with controller at 0xffffff81a8680000 and framebuffer at 0xffffff81a869a000. igfx @ (DBG) SC:   LSPCON::probe() DInfo: [FB2] Found the LSPCON adapter: Parade PS1750. igfx @ (DBG) SC:   LSPCON::probe() DInfo: [FB2] The current adapter mode is Level Shifter (DP++ to HDMI 1.4). igfx @ (DBG) SC:     GetDPCDInfo() DInfo: [FB2] LSPCON driver has detected the onboard chip successfully. igfx @ (DBG) SC:     GetDPCDInfo() DInfo: [FB2] LSPCON driver has been initialized successfully. igfx @ (DBG) SC: LSPCON::getMode() DInfo: [FB2] The current mode value is 0x00. igfx @ (DBG) SC: LSPCON::getMode() DInfo: [FB2] The current mode value is 0x00. igfx @ (DBG) SC: LSPCON::getMode() DInfo: [FB2] The current mode value is 0x00. igfx @ (DBG) SC: LSPCON::getMode() DInfo: [FB2] The current mode value is 0x01. igfx @ (DBG) SC: LSPCON::setMode() DInfo: [FB2] The new mode is now effective. igfx @ (DBG) SC:     GetDPCDInfo() DInfo: [FB2] The adapter is running in preferred mode [Protocol Converter (DP++ to HDMI 2.0)]. igfx @ (DBG) SC:     GetDPCDInfo() DInfo: [FB2] Will call the original method. igfx @ (DBG) SC:     GetDPCDInfo() DInfo: [FB2] Returns 0x0. // When you remove the HDMI 2.0 cable igfx @ (DBG) SC:     GetDPCDInfo() DInfo: [FB0] called with controller at 0xffffff81a8680000 and framebuffer at 0xffffff81a868c000. igfx @ (DBG) SC:     GetDPCDInfo() DInfo: [FB0] No LSPCON chip associated with this framebuffer. igfx @ (DBG) SC:     GetDPCDInfo() DInfo: [FB0] Will call the original method. igfx @ (DBG) SC:     GetDPCDInfo() DInfo: [FB0] Returns 0x0. igfx @ (DBG) SC:     GetDPCDInfo() DInfo: [FB2] called with controller at 0xffffff81a8680000 and framebuffer at 0xffffff81a869a000. igfx @ (DBG) SC:     GetDPCDInfo() DInfo: [FB2] LSPCON driver (at 0xffffff802ba3afe0) has already been initialized for this framebuffer. igfx @ (DBG) SC: LSPCON::setModeIfNecessary() DInfo: [FB2] The adapter is already running in Protocol Converter (DP++ to HDMI 2.0) mode. No need to update. igfx @ (DBG) SC: LSPCON::wakeUpNativeAUX() DInfo: [FB2] The native AUX channel is up. DPCD Rev = 0x12. igfx @ (DBG) SC:     GetDPCDInfo() DInfo: [FB2] Will call the original method. igfx @ (DBG) SC:     GetDPCDInfo() DInfo: [FB2] Returns 0x0. Additionally, you can find these properties injected by the driver under the corresponding framebuffer.
      (Only available in DEBUG version)
       
      fw-framebuffer-has-lspcon indicates whether the onboard LSPCON adapter exists or not.
      fw-framebuffer-preferred-lspcon-mode indicates the preferred adapter mode. 1 is PCON, and 0 is LS.
       
      Debug Output
      To get debug output from Lilu use the -liludbgall liludump=60 boot flags. You will need to compile Lilu and WhateverGreen as debug for both of these flags to work. Log files should be located at /var/log/Lilu_*.
       
      To view debug paste the following into Terminal (weglog.txt will output to your home directory):
      log show --predicate 'process == "kernel" AND (eventMessage CONTAINS "WhateverGreen" OR eventMessage CONTAINS "Lilu")' --style syslog --source --last boot >weglog.txt Getting Help

      To help the users of this forum diagnose issues with your configuration please generate a Lilu debug log and then run gen_debug.sh to generate a folder of debug files you can attach to a forum post requesting help.

      Credits
      - vit9696 and lvs1974 for WhateverGreen (Full Credits) and Lilu (Full Credits)
      - Andrey1970 for his guide on applelife.ru
      - RehabMan for all data patching method, ioreg framebuffer dump and other contributions
       


    • By arsradu
      Hi guys,
       
      So, this little tutorial is meant to help people fix a new issue with Mojave: opening jpg files (looks like it happens with larger files, not so much with smaller ones) using Quick Look (on spacebar key pressed) or Preview app, using the dedicated GPUs.
      The issue is that, when trying to open jpg files (for some reason, it doesn't occur with pngs), the pop-up window would remain in an endless loop. And from that point forward, any other app trying to open the same file will either become unresponsive (in the case of the Preview app) or just stay in endless loop (in case of Quick Look)
       
      As a workaround, in case the tutorial below doesn't work for you, you can use Grab (built-in app in MacOS) to open said files.
       
      This issue DOES NOT occur using the iGPU. So...if you're comfortable using the iGPU, just switch to that and you should be good to go. You don't need this tutorial.
       
      This tutorial is based on @Cyberdevs' research and testing on this topic (especially useful if you're using an RX series AMD video card), and my own very limited time testing this on my rig. I just thought it would be useful to create a new thread for it so that people can discuss this particular issue here.

       
      With that being said, I'll just move on to the actual tutorial.
       
      New (probably better) method.
       
      Switch your SMBIOS in Clover config in regards to the dedicated GPU you're using, instead of the CPU. Take a look here and choose the corresponding SMBIOS closest to your hardware.
      Yeah, that's it.
       
      In case you lose CPU PM with this method, there are multiple ways to fix that, and they do not make the object of this thread.  It worked perfectly fine for me though and I didn't need to change anything else.
       
      Alternatively, you can also try one of the MacPro SMBIOSes, such as MacPro5,1 or MacPro6,1. It was tested multiple times and it showed good results. 
      Keep in mind that choosing these will most likely not show you an iGPU in System Report, since those machines generally (probably all of them) use Xeon CPUs with no iGPUs either.
       
      /!\NOTE: There have been reports saying that using this method (switching SMBIOS to a MacPro one) with newer versions of MacOS may cause iTunes to crash.
      So...keep that in mind and better try some of the other methods mentioned here.
       
      A simple Lilu plugin
       
      Thanks to vulgo for the plugin and @Matgen84 for sharing and testing it, we now have yet another possible solution to this issue. It's a Lilu plugin (which means that it requires Lilu.kext in order to work) it's called NoVPAJpeg, and it can be downloaded from here.
      You use it as a regular kext, alongside Lilu. I prefer (and recommend) using it within the EFI folder, in Clover/kexts/Other. But if you want to use it in S/L/E, that should work just fine.
       
      More info can be found in this post here.
       
      UPDATE:
       
      According to Vulgo, NoVPAJpeg.kext is now deprecated.
      In case its functionality is needed, use WhateverGreen.kext and add the following boot arguments:
      shikigva=32 shiki-id=Mac-7BA5B2D9E42DDD94 In case you wanna try alternative medicine  ...
       
      The main thing we need to do is actually very simple: we need to enable the iGPU (integrated GPU) by default, in BIOS, while actually being connected to the dedicated GPU.
       
      For ATI GPUs (curtesy of @Cyberdevs' post here).
       
      The discreet GPU should be set as primary in BIOS and your displays should be connected to your discreet GPU
      The iGD/iGPU/iGFX must be enabled in BIOS/UEFI as the secondary GPU.
       
      I removed the DSDT Reconfigured the config.plist to and removed some flags which weren't needed because of the DSDT added the InjectATI + Ornioco Framebuffer (I removed the Orinoco framebuffer because of some weird glitches but it might be useful for other AMD GPUs if you inject the correct framebuffer according to your GPU. No need to inject anything for nVidia GPUs unless your GPU needs it) Added the InjectIntel + ig-platform-id for my intel HD530 (for intel HD 530 I use the 0x19120001 ig-platform-id)  
      Steps 5 to 7 might not be necessary I just did them anyway, if anyone succeeded to get quicklook working without those steps let me know so I can exclude those steps.

           Also confirmed to work with AMD R9 270X on a SandyBridge rig (without an iGPU) using WhateverGreen + Lilu kexts, which also helped to solve the transparency issue along with the Quick Look problem, it also resolved the buggy Screen Capture (Command+Shift+5) issue as well. 
       
          Also, do:
      nvram cleanup kextcache & prelinked kernel rebuild reboot  More info on that here.
       
       
      For NVIDIA GPUs (tested on my old MSi GTX 650)
       
      This is what I needed for my NVIDIA GPU and the MSI motherboard in the signature (*since then, I upgraded my GPU to my current RX 580). Your milage may vary, depending on your hardware. But, the idea should be the same regardless.
       
         For MSi motherboads (check out my motherboard details in the signature)
       
      Set your BIOS to use PEG (dedicated GPU) so you can boot.
      Since you're reading this, chances are that you're already connected to the dedicated GPU and the BIOS is set to PEG. So just go into BIOS and see if you're using the iGPU or the dedicated (PEG) graphics device by default.
      If you're already using this, skip to Step 3 (the part AFTER Reboot). Reboot (I think you don't necessarily need to boot into the OS...but you do need to reboot at least until Clover UI) Reboot back into BIOS and set it from PEG to IGD (integrated graphics) WITHOUT removing the cable. Save Reboot again.  
         The result should be that the OS is tricked into thinking you're booting with the IGPU when in fact you're using the dedicated GPU.
       
         For Gigabyte motherboards
       
         Set:
      Peripherals -> Initial Display Output -> iGFX Chipset -> Internal Graphics -> Enabled
           DVMT Pre-Allocation -> default 64M.
           DVMT Total Gfx Mem -> default 256M Save Reboot  
         You should do this with the cable connected to the dedicated GPU.
       
      You will also need to patch the iGPU from Clover config.
      1. Graphics -> Inject Intel (UNCHECK Inject Nvidia or ATI if it's checked).
      2. ig-platform-id (in my case for Intel HD 4600 Desktop) it was: 0x0d220003
       
      And use IntelGraphicsFixup.kext (now included into WhateverGreen.kext) in Clover/kexts/Other. In my particular case, without the kext, I would get freezes in Safari.
       
      Another way to activate the iGPU while having the dGPU set as primary is by going into BIOS/SAG/Graphics Configuration/iGPU and setting Multi-Monitor to [Enabled], all the rest remains on [Auto], and set Inject/Intel to [True] in Clover config.*.
       
      Thanks to @gjw for the tip.
       
      *Motherboard dependent. But the multi-monitor option might be the same regardless of manufacturer.
       
       
      This might be a bug with Mojave and it could be fixed by Apple in the future. but in the meantime, feel free to use this if it helps you fix the issue.
       
      For HP motherboards (including laptops), so far no solution, unless the BIOS somehow allows to switch from dGPU to iGPU and vice-versa.
       
      Cheers!
    • By MaLd0n
      ---TUTORIAL---

      https://olarila.com/forum/viewtopic.php?f=50&t=8685
       
      --Original Post--
       
      https://olarila.com/forum/viewtopic.php?f=97&t=11237
       
      --Bios/UEFI Settings--
       
      *Update bios/uefi to F7+*
      1- Go to M.I.T./Advanced Frequency Settings tab
       
      Extreme Memory Profile (X.M.P.) - Profile 1
       
      2- Go to BIOS tab
       
      CSM Support - Disabled
       
      3- Go to Peripherals/Thunderbolt(TM) Configuration tab
       
      Security Level - No Security
      Thunderbolt USB Support - Enabled
      GPIO3 Force Pwr - Enabled
       
      4- Go to Chipset tab
       
      Internal Graphics - Enable
       
      ---CLOVER FOLDER---
      *Use this folder with FULL DSDT PATCHED
      EFI CLOVER Z390 DESIGNARE.zip
       
      ---OPENCORE FOLDER---
      *Use this folder with FULL DSDT PATCHED
      EFI OPENCORE Z390 DESIGNARE.zip
       
      ---DSDT patch requests is here---
       
      https://olarila.com/forum/viewtopic.php?f=19&t=1131
       
      ---HARDWARE---
       
      --MOBO

      GIGABYTE Z390 DESIGNARE
      -Link
      https://www.amazon.com/Z390-DESIGNARE-Gigabyte-Thunderbolt-Motherboard/dp/B07K8RJZRG/ref=sr_1_1?keywords=Z390+DESIGNARE&qid=1565492390&s=electronics&sr=1-1

      --PROCESSOR

      Intel Core i9-9900K
      -Link
      https://www.amazon.com/Intel-i9-9900K-Desktop-Processor-Unlocked/dp/B005404P9I/ref=sr_1_1_sspa?keywords=Intel+Core+i9-9900K&qid=1553358099&s=gateway&sr=8-1-spons&psc=1

      --COOLER

      CORSAIR H100i RGB PLATINUM AIO Liquid CPU Cooler
      -Link
      https://www.amazon.com/CORSAIR-H100i-PLATINUM-Liquid-Cooler/dp/B07JWB5BSN/ref=sr_1_4?keywords=WATER+COOLER+CPU&qid=1565492509&s=gateway&sr=8-4

      --MEMORY

      Corsair CMW32GX4M2C3200C16 Vengeance RGB PRO 32GB (2x16GB) DDR4 3200 (PC4-25600)
      -Link
      https://www.amazon.com/Corsair-CMW32GX4M2C3200C16-Vengeance-PC4-25600-Desktop/dp/B07GTG2T7L/ref=sr_1_15?keywords=memory+ddr4+32&qid=1553358238&s=gateway&sr=8-15

      --GPU

      MSI RX Vega 64 AIR Boost 8G OC
      -Link
      https://www.amazon.com/MSI-RX-64-AIR-8G/dp/B07DH7S1X1/ref=sr_1_2?keywords=vega+64+gigabyte&qid=1565492819&s=electronics&sr=1-2

      --SSD

      Samsung 970 EVO 1TB SSD (MZ-V7E1T0BW) NVMe M.2 V-NAND
      -Link
      https://www.amazon.com/Samsung-970-EVO-1TB-MZ-V7E1T0BW/dp/B07BN217QG/ref=sr_1_1?keywords=s+samsung+970+evo+1tb&qid=1565493002&s=electronics&sr=1-1

      --POWER SUPPLY

      EVGA Supernova 1000 P2 80+ Platinum, 1000W ECO Mode Fully Modular 
      -Link
      https://www.amazon.com/EVGA-Supernova-Platinum-Crossfire-220-P2-1000-XR/dp/B00EKJQM5E/ref=sr_1_3?keywords=power+supply+1000w&qid=1565493196&s=gateway&sr=8-3

      --WIRELESS

      TP-Link Archer T9E
      -Link
      https://www.amazon.com/TP-Link-Archer-T9E-Beamforming-Technology/dp/B00TQEX7AQ/ref=sr_1_1?keywords=TP-Link+Archer+T9E&qid=1553358397&s=gateway&sr=8-1

      --CASE

      Thermaltake Core P5 Tempered Glass Black Edition ATX Open Frame Panoramic Viewing
      -Link
      https://www.amazon.com/Thermaltake-Tempered-Panoramic-Certified-CA-1E7-00M1WN-03/dp/B01N4IGVSC/ref=sr_1_2?keywords=Thermaltake+Core+P5&qid=1565493567&s=gateway&sr=8-2

      --DSDT Patches--
      -FIX ACPI ERRORS -FIX OEM SSDTs to AVOID ERRORS AND WARNINGS -REMOVE UNUSED SCOPES / DEVICES -HIGH PRECISION EVENT TIMER -SATA -DMAC -REMOVE PROBLEMATIC AND UNUSED DEVICES -FIX K.P in REBOOT -SLPB -DARWIN / WINDOWS 2015 -XHCI -PLUGIN TYPE -HDAS to HDEF -HDEF -REAL TIME CLOCK -ARTC -IRQs -SBUS -BUS1 -MCHC -ALS0 -SHUTDOWN -LAN -FWHD -USBX -PMCR -PPMC -XSPI -CNVW -GMM -IMEI -EC -PNLF -ARPT -GFX0 -NVME -DTGP -ACQUIRE MUT0 0XFFFF -MUTEX MUT0 0x00 -EXTERNAL REFERENCES -UNKNOWNOBJ -HDMI / HDAU -FULL RENAMED DEVICES ---SCREENSHOTs---




















      -Credits and thanks to the old and new people in the community who developed patches, kexts and bootloaders!
      Thanks to KGP for SSDT Thunderbolt
      Slice, Kabyl, usr-sse2, jadran, Blackosx, dmazar, STLVNUB, pcj, apianti, JrCs, pene, FrodoKenny, skoczy, ycr.ru, Oscar09, xsmile, SoThOr, RehabMan, Download-Fritz, Zenit432, cecekpawon, Intel, Apple, Oracle, Chameleon Team, crazybirdy, Mieze, Mirone, Oldnapalm, netkas, Elconiglio, artut-pt, ErmaC, Pavo, Toleda, Master Chief and family, bcc9, The King, PMheart, Sherlocks, Micky1979, vit9696, vandroiy2013, Voodoo Team, Pike R. Alpha, lvs1974, Austere.J, CVad, Sampath007, onemanosx, erroruser, Jenny David, Olarila Facebook Community, Hackintosh Facebook Community and many others!
      We're all here to have fun and learn from each other!
×