diff --git a/404.html b/404.html index 6777032..426a4a5 100644 --- a/404.html +++ b/404.html @@ -4,19 +4,20 @@ Getting Started With ACPI - + - - + + + -
GitHub - (opens new window)

# Supporting the guides

Note: This is a community run guide which is not officially endorsed by Acidanthera. Please do not bug Acidanthera with issues about this guide.

Want to help support the guide? Well there's some ways you can help!

Note: For those wanting to contribute financially, we seriously appreciate it but we're a non-profit organization. We do this to teach, not to make money. If you have some money left over we highly recommend donating it to a charity. Crohn's and Colitis Canada(opens new window) is one we recommend if you have none on mind.

# Contributing via Issues

Contributing via Issues is pretty simple but there are some rules:

You can find the issues tab here: Getting Started With ACPI Issues(opens new window)

# Contributing via PRs

Some guidelines when contributing via PRs:

# How to Contribute

Best way to test your commits and make sure they are formatted correctly is downloading nodejs and yarn then getting the VuePress and markdownlint-cli (opens new window) tools. When you run yarn dev, it will set up a local webserver which you can connect to view the changes you made. markdownlint * will throw any errors at you about formatting as well, and markdownlint -f * will attempt to fix these.

# Tips

Some tools that make contributing a bit easier:

- + diff --git a/Desktops/desktop-disable.html b/Desktops/desktop-disable.html index eaf77fd..564eb78 100644 --- a/Desktops/desktop-disable.html +++ b/Desktops/desktop-disable.html @@ -4,48 +4,49 @@ Disabling desktops unsupported GPUs(SSDT-GPU-DISABLE) | Getting Started With ACPI - + - - + + +
GitHub - (opens new window)

# Disabling desktops unsupported GPUs(SSDT-GPU-DISABLE)

So this is mainly needed for GPUs that are not supported in macOS, mainly this will be Nvidia users who wish to pair an AMD GPU for macOS use. While WhateverGreen does support the boot-arg -wegnoegpu, this only works when running on iGPU so for the rest of us we'll need to make an SSDT.

So to disable a specific GPU, we need to find a couple things:

# Finding the ACPI Path of the GPU

To find the PCI path of a GPU is fairly simple, best way to find it is running Windows:

Credit to 1Revenger1 for the image

The second "ACPI" is what we care about:

ACPI(_SB_)#ACPI(PC02)#ACPI(BR2A)#ACPI(PEGP)#PCI(0000)#PCI(0000)
 

Now converting this to an ACPI path is quite simple, remove the #ACPI and #PCI(0000):

`_SB_.PC02.BR2A.PEGP
-

And voila! We've found our ACPI path, now that we have everything we're ready to get cooking

# Making the SSDT

To start grab our SSDT-GPU-DISABLE(opens new window) and open it up. Here there's a couple things to change:

External (_SB_.PCI0.PEG0.PEGP, DeviceObj)
+

And voila! We've found our ACPI path, now that we have everything we're ready to get cooking

# Making the SSDT

To start grab our SSDT-GPU-DISABLE (opens new window) and open it up. Here there's a couple things to change:

External (_SB_.PCI0.PEG0.PEGP, DeviceObj)
 Method (_SB.PCI0.PEG0.PEGP._DSM, 4, NotSerialized)
 

For our example, we'll change all mentions of :

Hint: If your ACPI path is a bit shorter than the example, this is fine. Just make sure the ACPI paths are correct to your device, some users may also need to adapt _SB_ to their path

# Now you're ready to compile the SSDT!

- + diff --git a/Desktops/desktop-ec.html b/Desktops/desktop-ec.html index f7c2e12..ad8445f 100644 --- a/Desktops/desktop-ec.html +++ b/Desktops/desktop-ec.html @@ -4,45 +4,46 @@ Fixing Embedded Controller (Desktop) | Getting Started With ACPI - + - - + + +
GitHub - (opens new window)

# Fixing Embedded Controller (Desktop)

# You'll want to go to SSDT-EC under the Universal tab for the new SSDT-EC page

+ diff --git a/Laptops/backlight-methods/manual.html b/Laptops/backlight-methods/manual.html index 0d596b4..38dd3bc 100644 --- a/Laptops/backlight-methods/manual.html +++ b/Laptops/backlight-methods/manual.html @@ -4,46 +4,47 @@ Fixing Backlight: Manual | Getting Started With ACPI - + - - + + +
GitHub - (opens new window)

# Fixing Backlight: Manual

# Finding the ACPI path

For this guide, we're gonna assume Windows is already on this laptop, as otherwise creating this SSDT is a bit more difficult.

Now open DeviceManager, and head to the following:

Device Manager -> Display Adapters -> Properties -> Details > BIOS device name
+
  • Note some GPU ACPI pathing may be hiding under "BIOS device name"

Credit to 1Revenger1 for the image

From the above example, we can see our display is hooked up to PCI0.GFX0

# Edits to the sample SSDT

Now that we have our ACPI path, lets grab our SSDT and get to work:

By default, this uses PCI0.GFX0 for the pathing. you'll want to rename accordingly. For this example, we'll assume your pathing is PCI0.GPU0:

Before:

External (_SB_.PCI0.GFX0, DeviceObj) <- Rename this
 
 Scope (_SB.PCI0.GFX0) <- Rename this
 
@@ -62,6 +63,6 @@ Device(_SB.PCI0.GPU0.PNLF) <- Renamed
       
       ⟶
     

- + diff --git a/Laptops/backlight-methods/prebuilt.html b/Laptops/backlight-methods/prebuilt.html index eca7e41..b772588 100644 --- a/Laptops/backlight-methods/prebuilt.html +++ b/Laptops/backlight-methods/prebuilt.html @@ -4,45 +4,46 @@ Fixing Backlight: Prebuilt | Getting Started With ACPI - + - - + + +

# Fixing Backlight: Prebuilt

By far the easiest method, all you need to do is download the following file:

Main things to note with this method:

  • Assumes GPU pathing, works great for 99% of devices but if you're having issues controlling backlight this may be something to look at
  • Doesn't really teach you anything
    • For most, this doesn't matter. But to some knowing what makes your hackintosh tick is part of the journey
Last Updated: 5/31/2020, 5:58:30 AM
- + diff --git a/Laptops/backlight.html b/Laptops/backlight.html index fb27787..77b202a 100644 --- a/Laptops/backlight.html +++ b/Laptops/backlight.html @@ -4,45 +4,46 @@ Fixing Backlight (SSDT-PNLF) | Getting Started With ACPI - + - - + + +

# Fixing Backlight (SSDT-PNLF)

# What this SSDT does

The purpose of this SSDT is to create a PNLF device for macOS to play with, specifically one with a hardware ID of APP0002. Luckily WhateverGreen will handle the rest of the work for us.

# Methods to make this SSDT

For the backlight fix, there are 2 methods you can choose from:

Last Updated: 5/31/2020, 5:54:37 AM
- + diff --git a/Laptops/laptop-disable.html b/Laptops/laptop-disable.html index 758e864..55fc42c 100644 --- a/Laptops/laptop-disable.html +++ b/Laptops/laptop-disable.html @@ -4,48 +4,49 @@ Disabling laptop dGPUs (SSDT-dGPU-Off/NoHybGfx) | Getting Started With ACPI - + - - + + +

# Disabling laptop dGPUs (SSDT-dGPU-Off/NoHybGfx)

So with laptops, we can hide the dGPU from macOS with the little boot-arg called -wegnoegpu from WhateverGreen. But one small problem, the dGPU is still pulling power draining your battery slowly. We'll be going over 2 methods for disabling the dGPU in a laptop:

Note that this is not needed for install, but recommended for post-install

# Optimus Method

How this works is that we call the .off method found on Optimus GPUs, this is the expected way to power off a GPU but some may find their dGPU will power back up later on. Mainly seen in Lenovo's, the Optimus method should work for most users:

To start, grab SSDT-dGPU-Off.dsl (opens new window)

Next we need to get on Windows, and head to the following:

Device Manager -> Display Adapters -> dGPU -> Properties -> Details > BIOS device name
 
  • Note some GPUs may be hiding under "BIOS device name"

This should provided you with an ACPI path for your dGPU, most commonly:

  • Nvidia dGPU: \_SB.PCI0.PEG0.PEGP
  • AMD dGPU: \_SB.PCI0.PEGP.DGFX

Credit to 1Revenger1 for the image

Now with that, we'll need to change the ACPI path in the SSDT. Main sections:

External(_SB.PCI0.PEG0.PEGP._OFF, MethodObj)
 
If (CondRefOf(\_SB.PCI0.PEG0.PEGP._OFF)) { \_SB.PCI0.PEG0.PEGP._OFF() }
-

Once adapted to your config, head to the compile section

# Bumblebee Method

With some machines, the simple .off call won't keep the card off properly, that's where the Bumblebee method comes in. This SSDT will actually send the dGPU into D3 state being the lowest power state a device can support. Credit to Mameo for the original adaptation.

To start, grab SSDT-NoHybGfx.dsl(opens new window)

Next we need to get on Windows, and head to the following:

Device Manager -> Display Adapters -> dGPU -> Properties -> Details > BIOS device name
+

Once adapted to your config, head to the compile section

# Bumblebee Method

With some machines, the simple .off call won't keep the card off properly, that's where the Bumblebee method comes in. This SSDT will actually send the dGPU into D3 state being the lowest power state a device can support. Credit to Mameo for the original adaptation.

To start, grab SSDT-NoHybGfx.dsl (opens new window)

Next we need to get on Windows, and head to the following:

Device Manager -> Display Adapters -> dGPU -> Properties -> Details > BIOS device name
 

This should provided you with an ACPI path for your dGPU, most commonly:

  • Nvidia dGPU: \_SB.PCI0.PEG0.PEGP
  • AMD dGPU: \_SB.PCI0.PEGP.DGFX

Now with that, we'll need to change the ACPI path in the SSDT. Main sections:

External (_SB_.PCI0.PEG0.PEGP._DSM, MethodObj)    // dGPU ACPI Path
 External (_SB_.PCI0.PEG0.PEGP._PS3, MethodObj)    // dGPU ACPI Path
 
If ((CondRefOf (\_SB.PCI0.PEG0.PEGP._DSM) && CondRefOf (\_SB.PCI0.PEG0.PEGP._PS3)))
@@ -62,6 +63,6 @@ External (_SB_.PCI0.PEG0.PEGP._PS3, MethodObj)    // dGPU ACPI Path
       
       ⟶
     

- + diff --git a/Laptops/laptop-ec.html b/Laptops/laptop-ec.html index fc797ae..85c7cb6 100644 --- a/Laptops/laptop-ec.html +++ b/Laptops/laptop-ec.html @@ -4,45 +4,46 @@ Fixing Embedded Controller (Laptop) | Getting Started With ACPI - + - - + + +

# Fixing Embedded Controller (Laptop)

# You'll want to go to SSDT-EC under the Universal tab for the new SSDT-EC page

Last Updated: 5/31/2020, 5:54:37 AM
+ diff --git a/Laptops/trackpad-methods/manual.html b/Laptops/trackpad-methods/manual.html index 651eb27..3add877 100644 --- a/Laptops/trackpad-methods/manual.html +++ b/Laptops/trackpad-methods/manual.html @@ -4,45 +4,46 @@ Fixing Trackpads: Manual | Getting Started With ACPI - + - - + + +

# Fixing Trackpads: Manual

# Finding the ACPI path

Finding the ACPI pathing is quite easy actually, first open your decompiled DSDT you got from Dumping the DSDT and Decompiling and Compiling with either maciASL(if in macOS) or any other text editor if in Windows or Linux(VSCode has an ACPI extension (opens new window) that can also help).

Next search for Device (GPI0). Should give you a result similar to this:

What we care about from this is the _STA method:

Method (_STA, 0, NotSerialized)
 {
     If ((GPHD == One))
     {
@@ -51,7 +52,7 @@
 
     Return (0x0F)
 }
-

What we want is for this to always return 0x0F when booting macOS, so we want to make an SSDT that will return GPHD == Zero in macOS.

NOTE that you may have the other way around where GPHD needs to be set as One to return 0x0F. And your device name may also be different, don't throw random SSDTs in thinking it'll work

Here's some more examples:

With this example, we can see that we need both SBRG and GPEN to return One. If only one is present, it'll create some issues so in our SSDT we'll want to have both of them return One:

# Edits to the sample SSDT

Now that we have our ACPI path, lets grab our SSDT and get to work:

From the second example, we'll want to set both GPEN and SBRG to One to allow it to operate in macOS:

Before:

If (_OSI ("Darwin"))
+

What we want is for this to always return 0x0F when booting macOS, so we want to make an SSDT that will return GPHD == Zero in macOS.

NOTE that you may have the other way around where GPHD needs to be set as One to return 0x0F. And your device name may also be different, don't throw random SSDTs in thinking it'll work

Here's some more examples:

With this example, we can see that we need both SBRG and GPEN to return One. If only one is present, it'll create some issues so in our SSDT we'll want to have both of them return One:

# Edits to the sample SSDT

Now that we have our ACPI path, lets grab our SSDT and get to work:

From the second example, we'll want to set both GPEN and SBRG to One to allow it to operate in macOS:

Before:

If (_OSI ("Darwin"))
 {
     GPEN = One <- Proper variables
 }
@@ -69,6 +70,6 @@
       
       ⟶
     

- + diff --git a/Laptops/trackpad-methods/prebuilt.html b/Laptops/trackpad-methods/prebuilt.html index af9c3ab..b6e0210 100644 --- a/Laptops/trackpad-methods/prebuilt.html +++ b/Laptops/trackpad-methods/prebuilt.html @@ -4,45 +4,46 @@ Fixing Trackpads: Prebuilt | Getting Started With ACPI - + - - + + +

# Fixing Trackpads: Prebuilt

This is a one-size fits all solution where we basically trick our hardware into thinking it's booting Windows. The problem with this method is that it's common to break Windows booting so avoid unless troubleshooting.

Comment String Change _OSI to XOSI
Enabled Boolean YES
Count Number 0
Limit Number 0
Find Data 5f4f5349
Replace Data 584f5349
Last Updated: 5/31/2020, 5:54:37 AM
- + diff --git a/Laptops/trackpad.html b/Laptops/trackpad.html index 3eeef1d..4dfbb2d 100644 --- a/Laptops/trackpad.html +++ b/Laptops/trackpad.html @@ -4,45 +4,46 @@ Fixing Trackpads (SSDT-GPI0/XOSI) | Getting Started With ACPI - + - - + + +

# Fixing Trackpads (SSDT-GPI0/XOSI)

# What this SSDT does

This SSDT is used to force enable our GPI0 for VoodooI2C to connect onto.

With most modern laptop DSDTs, there's a variable called GPEN or GPHD which are used for setting the status of the GPI0 device. For us, we want to enable the device.

# Methods to make this SSDT

For the trackpad fix, there are 2 methods you can choose from:

Last Updated: 5/31/2020, 5:54:37 AM
- + diff --git a/Manual/compile.html b/Manual/compile.html index 72054f5..e792d87 100644 --- a/Manual/compile.html +++ b/Manual/compile.html @@ -4,47 +4,48 @@ Compiling and decompiling ACPI Tables | Getting Started With ACPI - + - - + + +

# Compiling and decompiling ACPI Tables

See Troubleshooting if you have dumping/compiling errors

# macOS

So compiling DSDTs and SSDTs are quite easy with macOS, all you need is MaciASL (opens new window). To compile, just File -> SaveAs -> ACPI Machine Language Binary(.AML), decompiling is just opening the file in MaciASL.

For those who prefer the command line, grab iasl-stable (opens new window) and run the following:

path/to/iasl path/to/DSDT.aml
+
  • If compiled .aml file is provided, a decompiled .dsl file will be given and vice versa.

# Windows

Compiling and decompiling on windows is fairly simple though, you will need iasl.exe (opens new window) and Command Prompt:

path/to/iasl.exe path/to/DSDT.aml
+

  • If compiled .aml file is provided, a decompiled .dsl file will be given and vice versa.

# Linux

Compiling and decompiling with Linux is just as simple, you will need a copy of iasl. You can get it here (iasl (opens new window)) or through the iasl package in your package manager. iasl can be used as such:

path/to/iasl path/to/DSDT.aml
 
  • If compiled .aml file is provided, a decompiled .dsl file will be given and vice versa.
Last Updated: 8/1/2020, 3:39:32 PM
- + diff --git a/Manual/dump.html b/Manual/dump.html index dfe54ec..611a277 100644 --- a/Manual/dump.html +++ b/Manual/dump.html @@ -4,50 +4,51 @@ Getting a copy of our DSDT | Getting Started With ACPI - + - - + + +

# Getting a copy of our DSDT

So to start, we'll need to get a copy of your DSDT from your firmware. The easiest way is grabbing the DSDT.aml SSDTTime dumped for us earlier but here are some other options:

# From Windows

  • SSDTTime (opens new window)

    • Supports both Windows and Linux for DSDT dumping
    • 7. Dump DSDT - Automatically dump the system DSDT
  • acpidump.exe (opens new window)

    • In command prompt run path/to/acpidump.exe -b -n DSDT -z, this will dump your DSDT as a .dat file. Rename this to DSDT.aml
  • Do note that all ACPI patches from clover/OpenCore will be applied to the DSDT with the above 2 methods

# From Linux

  • SSDTTime (opens new window)
    • Supports both Windows and Linux for DSDT dumping
    • 4. Dump DSDT - Automatically dump the system DSDT
  • Do note that all ACPI patches from clover/OpenCore will be applied to the DSDT with the above method

# From Clover

For those with Clover installed previously, this is a simple way to get your ACPI tables:

  • F4 in Clover Boot menu +
    • DSDT can be found in EFI/CLOVER/ACPI/origin, the folder must exist before dumping

# From OpenCore

With OpenCore, we have 2 options:

# SysReport Quirk

With OpenCore 0.5.9, we have a new quirk called SysReport which will actually dump our DSDT automatically when hitting the boot screen. The main issues are:

  • You already need a bootable OpenCore USB to get this dump
  • This also requires a DEBUG version of 0.5.9

For the latter, you just need to replace the following files with DEBUG version (opens new window):

  • EFI/BOOT/
    • BOOTx64.efi
  • EFI/OC/Bootstrap/
    • Bootstrap.efi
  • EFI/OC/Drivers/
    • OpenRuntime.efi
  • EFI/OC/ -
    • OpenCore.efi

For the former, you can actually skip the ACPI section, return to the OpenCore guide(opens new window) and finish making the USB. Once booted to the picker, you can shut off the PC and check your USB:

And voila! You have a DSDT! Now you can continue on with making SSDTs

# UEFI Shell

For this, we'll want ti grab acpidump.efi(opens new window) and add this to EFI/OC/Tools and in your config under Misc -> Tools with the argument: -b -n DSDT -z and select this option in OpenCore's picker.

If OpenCore is having issues running acpidump.efi from the boot picker, you can call it from the shell with OpenShell(opens new window) (reminder to add to both EFI/OC/Tools and in your config under Misc -> Tools ):

shell> fs0: // replace with proper drive
+
  • OpenCore.efi

For the former, you can actually skip the ACPI section, return to the OpenCore guide (opens new window) and finish making the USB. Once booted to the picker, you can shut off the PC and check your USB:

And voila! You have a DSDT! Now you can continue on with making SSDTs

# UEFI Shell

For this, we'll want ti grab acpidump.efi (opens new window) and add this to EFI/OC/Tools and in your config under Misc -> Tools with the argument: -b -n DSDT -z and select this option in OpenCore's picker.

If OpenCore is having issues running acpidump.efi from the boot picker, you can call it from the shell with OpenShell (opens new window)(reminder to add to both EFI/OC/Tools and in your config under Misc -> Tools ):

shell> fs0: // replace with proper drive
 fs0:\> dir  // to verify this is the right directory
    Directory of fs0:\
    01/01/01 3:30p EFI
@@ -62,6 +63,6 @@ fs0:\EFI\OC\Tools> acpidump.efi -b -n DSDT -z
       
       ⟶
     

- + diff --git a/SUMMARY.html b/SUMMARY.html index a84e5c6..4fa431a 100644 --- a/SUMMARY.html +++ b/SUMMARY.html @@ -4,45 +4,46 @@ Table of contents | Getting Started With ACPI - + - - + + +
Last Updated: 6/18/2020, 1:02:44 AM
+ diff --git a/Universal/awac-methods/manual-hedt.html b/Universal/awac-methods/manual-hedt.html new file mode 100644 index 0000000..2d1ae11 --- /dev/null +++ b/Universal/awac-methods/manual-hedt.html @@ -0,0 +1,88 @@ + + + + + + Fixing System Clocks on HEDT: Manual | Getting Started With ACPI + + + + + + + + + + + +

# Fixing System Clocks on HEDT: Manual

# Seeing if you need SSDT-RTC0-RANGE

To start, first open your decompiled DSDT you got from Dumping the DSDT and Decompiling and Compiling with either maciASL(if in macOS) or any other text editor if in Windows or Linux(VSCode has an ACPI extension (opens new window) that can also help).

Now search for PNP0B00 and look at the _CRS entry within it:

And from the above example, we see we have 2 banks of RTC memory:

  • Bank 1: starts at 0x70 and is length 0x2
  • Bank 2: starts at 0x74 and is length 0x4

Now the problem is that the OEM forgot to mat sections 0x72 and 0x73. Because of this, macOS may halt while booting(prominently in Big Sur)

And finally, verify if it has an _STA method as well. This will be used shortly

# Finding the ACPI path

Finding the ACPI pathing is quite easy actually, first open your decompiled DSDT you got from Dumping the DSDT and Decompiling and Compiling with either maciASL(if in macOS) or any other text editor if in Windows or Linux(VSCode has an ACPI extension (opens new window) that can also help).

To start, search for the following:

  • Finding the RTC name: +
    • Search PNP0B00
  • Finding the LowPinCount path: +
    • Search Name (_ADR, 0x001F0000)
  • Finding the PCI path: +
    • Search PNP0A08 (If multiple show up, use the first one)

You should get something like the following show up:

RTC Pathing LPC Pathing PCI Pathing

From the above, we can see we have RTC, LPC0 and PCI0. Now we can head to the next stage

# Edits to the sample SSDT

Now that we have our ACPI path, lets grab our SSDT and get to work:

By default, this uses PC00.LPC0.RTC for the pathing. you'll want to rename accordingly.

Following the example from above, we'll be renaming it to PCI0.LPC0.RTC:

Before:

External (_SB_.PC00.LPC0, DeviceObj) <- Rename this
+
+External (_SB_.PC00.LPC0.RTC_, DeviceObj) <- Rename this
+
+Scope (_SB.PC00.LPC0) <- Rename this
+

Following the example pathing we found, the SSDT should look something like this:

After:

External (_SB_.PCI0.LPC0, DeviceObj) <- Renamed
+
+Scope (_SB.PCI0.LPC0.RTC) <- Renamed
+
+Scope (_SB.PCI0.LPC0) <- Renamed
+
+
+		/* <- Remove if your RTC device didn't have an _STA
+		Scope (RTC)
+        {
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                If (_OSI ("Darwin"))
+                {
+                    Return (Zero)
+                }
+                Else
+                {
+                    Return (0x0F)
+                }
+            }
+        }
+		*/ <- Remove if your RTC device didn't have an _STA
+

# Compiling the SSDT

With the SSDT done, you're now ready to compile the SSDT!

# Wrapping up

Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:

Last Updated: 10/16/2020, 9:07:15 PM
+ + + diff --git a/Universal/awac-methods/manual.html b/Universal/awac-methods/manual.html index 5a405fe..6fedb04 100644 --- a/Universal/awac-methods/manual.html +++ b/Universal/awac-methods/manual.html @@ -4,75 +4,64 @@ Fixing System Clocks: Manual | Getting Started With ACPI - + - - + + +

# Fixing System Clocks: Manual

# Determining which SSDT you need

  • Note: X99 and X299 see here

Finding which SSDT you need is quite easy actually, first open your decompiled DSDT you got from Dumping the DSDT and Decompiling and Compiling with either maciASL(if in macOS) or any other text editor if in Windows or Linux(VSCode has an ACPI extension (opens new window) that can also help).

Next search for ACPI000E. You should get something similar:

The above tells us a few things:

  • We in fact do have an AWAC clock
    • If nothing shows up, you don't need to do anything for AWAC or RTC
  • It can be easily disabled with STAS(if not, you can skip to here: RTC0 Method) -
    • _STA is the device status, with Zero meaning it won't show up

But to double check, next search for PNP0B00:

And looks at that, we can in fact disable our AWAC and enable the RTC! If not skip to here: RTC0 Method

Now it's as simple as grabbing SSDT-AWAC.dsl(opens new window) and compile, no changes needed You can also use the below SSDT to the same effect:

# _INI Edge Cases

Mainly seen on X299 refresh boards, there's already a Scope (_SB) { Method (_INI... in your DSDT. This means our SSDT-AWAC will conflict with the one found in our DSDT. For these situations, you'll want to remove Method (_INI, 0, NotSerialized) {} from the SSDT. You'll be left this this in the end:

DefinitionBlock ("", "SSDT", 2, "DRTNIA", "AWAC", 0x00000000)
-{
-    External (STAS, IntObj)
-
-    Scope (_SB)
-    {
-        If (_OSI ("Darwin"))
-        {
-            STAS = One
-        }
-    }
-}
-

# RTC0 Method

This method is for those who either don't have a PNP0B00 device to re-enable or have no easy way(via STAS variable).

# Finding the ACPI path

Assuming you've gotten your DSDT already opened from earlier, search for the following:

  • Finding the LowPinCount path: +
    • _STA is the device status, with Zero meaning it won't show up

But to double check, next search for PNP0B00:

And looks at that, we can in fact disable our AWAC and enable the RTC! If not skip to here: RTC0 Method

Now it's as simple as grabbing SSDT-AWAC.dsl (opens new window) and compile, no changes needed You can also use the below SSDT to the same effect:

# RTC0 Method

This method is for those who either don't have a PNP0B00 device to re-enable or have no easy way(via STAS variable).

# Finding the ACPI path

Assuming you've gotten your DSDT already opened from earlier, search for the following:

  • Finding the LowPinCount path:
    • Search Name (_ADR, 0x001F0000)
  • Finding the PCI path: -
    • Search PNP0A08 (If multiple show up, use the first one)

You should get something like the following show up:

LPC Pathing PCI Pathing

From the above, we can see we have both PCI0 and LPC. Now we can head to the next stage

# Edits to the sample SSDT

Now that we have our ACPI path, lets grab our SSDT and get to work:

By default, this uses PCI0.LPCB for the pathing. you'll want to rename accordingly.

Following the example from above, we'll be renaming it to PCI0.LPC:

Before:

External (_SB_.PCI0.LPCB, DeviceObj) <- Rename this
+
  • Search PNP0A08 (If multiple show up, use the first one)

You should get something like the following show up:

LPC Pathing PCI Pathing

From the above, we can see we have both PCI0 and LPC. Now we can head to the next stage

# Edits to the sample SSDT

Now that we have our ACPI path, lets grab our SSDT and get to work:

By default, this uses PCI0.LPCB for the pathing. you'll want to rename accordingly.

Following the example from above, we'll be renaming it to PCI0.LPC:

Before:

External (_SB_.PCI0.LPCB, DeviceObj) <- Rename this
 
 Scope (_SB.PCI0.LPCB) <- Rename this
 

Following the example pathing we found, the SSDT should look something like this:

After:

External (_SB_.PCI0.LPC, DeviceObj) <- Renamed
 
 Scope (_SB.PCI0.LPC) <- Renamed
-

# Compiling the SSDT

With the SSDT done, you're now ready to compile the SSDT!

# Wrapping up

Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:

Last Updated: 7/17/2020, 8:46:53 PM

# Compiling the SSDT

With the SSDT done, you're now ready to compile the SSDT!

# Wrapping up

Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:

Last Updated: 10/16/2020, 9:07:15 PM
- + diff --git a/Universal/awac-methods/prebuilt.html b/Universal/awac-methods/prebuilt.html index f7095a3..66f144e 100644 --- a/Universal/awac-methods/prebuilt.html +++ b/Universal/awac-methods/prebuilt.html @@ -4,46 +4,47 @@ Fixing System Clocks: Prebuilt | Getting Started With ACPI - + - - + + +

# Fixing System Clocks: Prebuilt

By far the easiest method, all you need to do is download the following file:

Main things to note with this method:

  • Assumes you both have an AWAC clock and it can be easily turned off with the RTC replacing it, this may not always work
    • This only applies to SSDT-AWAC
    • SSDT-RTC0-RANGE instead relies on known RTC names, and can only handle so many edge cases
  • Doesn't really teach you anything +
    • For most, this doesn't matter. But to some knowing what makes your hackintosh tick is part of the journey

# Wrapping up

Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:

Last Updated: 10/16/2020, 9:07:15 PM
- + diff --git a/Universal/awac-methods/ssdttime.html b/Universal/awac-methods/ssdttime.html index b44fb56..4125d6a 100644 --- a/Universal/awac-methods/ssdttime.html +++ b/Universal/awac-methods/ssdttime.html @@ -4,46 +4,47 @@ Fixing System Clocks (SSDT-AWAC/RTC0) | Getting Started With ACPI - + - - + + +

# Fixing System Clocks (SSDT-AWAC/RTC0)

  • Reminder: Does not support HEDT(ie. X99 and X299)

The second involves using SSDTTime which automates most of the process. See here on how to use it: SSDTs: Easy Way

To get the SSDT-PMC, run the following:

  • 7. Dump DSDT then run 6. AWAC

This will provide you with some files, the main one you care about is SSDT-AWAC.aml. or SSDT-RTC0.aml. The DSDT and .dsl are only left for referencing or verification.

The main things to note with this method:

  • Doesn't really teach you anything +
    • For most, this doesn't matter. But to some knowing what makes your hackintosh tick is part of the journey

# Wrapping up

Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:

Last Updated: 10/16/2020, 9:07:15 PM
- + diff --git a/Universal/awac.html b/Universal/awac.html index 3fd33b3..78bb5fe 100644 --- a/Universal/awac.html +++ b/Universal/awac.html @@ -4,45 +4,46 @@ Fixing System Clocks (SSDT-AWAC/RTC0) | Getting Started With ACPI - + - - + + +

# Fixing System Clocks (SSDT-AWAC/RTC0)

# What this SSDT does

The purpose of SSDT-AWAC/RTC0 is to fix the system clocks found on newer hardware, mainly found in the following:

  • B360
  • B365
  • H310
  • H370
  • Z370 (Gigabyte and AsRock boards with newer BIOS versions)
  • Z390
  • B460
  • Z490
  • 400 series (Comet Lake, including Z490)
  • 495 series (Icelake)
  • X99
  • X299

SSDT-AWAC tries to re-enable the old RTC clock that is compatible with macOS, while SSDT-RTC0 will instead create a "fake" RTC clock if there is no legacy one to enable.

# Methods to make this SSDT

For the RTC fix, there are 3 methods you can choose from:

Last Updated: 10/16/2020, 9:07:15 PM
- + diff --git a/Universal/ec-fix.html b/Universal/ec-fix.html index 5c88fbc..c5030ec 100644 --- a/Universal/ec-fix.html +++ b/Universal/ec-fix.html @@ -4,46 +4,47 @@ Fixing Embedded Controller (SSDT-EC/USBX) | Getting Started With ACPI - + - - + + +

# Fixing Embedded Controller (SSDT-EC/USBX)

# What this SSDT does

The purpose of SSDT-EC/UBX is a couple things:

  • On desktops, the EC(or better known as the embedded controller) isn't compatible with AppleACPIEC driver, to get around this we disable this device when running macOS
  • AppleBusPowerController will look for a device named EC, so we will want to create a fake device for this kext to load onto +
    • AppleBusPowerController also requires a USBX device to supply USB power properties for Skylake and newer, so we will bundle this device in with the EC fix
  • On laptops, the EC is used for hotkeys and battery so disabling this isn't all too ideal. Problem is our EC's name isn't compatible, so we will create a simple "fake" EC device that will satisfy Apple

So TL;DR:

  • EC is embedded controller
  • Desktops will want real EC off, and a fake EC created
  • Laptops will just want an additional fake EC present
  • Skylake and newer devices will want USBX as well

# Methods to make this SSDT

For the EC fix, there are 3 methods you can choose from:

Last Updated: 10/16/2020, 9:07:15 PM
- + diff --git a/Universal/ec-methods/manual.html b/Universal/ec-methods/manual.html index 14d09e0..682d05a 100644 --- a/Universal/ec-methods/manual.html +++ b/Universal/ec-methods/manual.html @@ -4,54 +4,55 @@ Fixing Embedded Controllers: Manual | Getting Started With ACPI - + - - + + +

# Fixing Embedded Controllers: Manual

TO-DO:

  • Finish Edge cases and sample SSDT edits

# Finding the ACPI path

To find the ACPI pathing, you have 2 methods:

# DSDT

Finding the ACPI pathing is quite easy actually, first open your decompiled DSDT you got from Dumping the DSDT and Decompiling and Compiling with either maciASL(if in macOS) or any other text editor if in Windows or Linux(VSCode has an ACPI extension (opens new window) that can also help).

Next, search for PNP0C09. You should get something similar:

From the above example we see 2 main things:

  • Name of our embedded controller
    • In this case being EC0
  • Pathing of our embedded controller -
    • PC00.LPC0

But now we get into edge case territory, what fun!

The main ones to check for are:

If none of the above apply to you, you're ready for the next section:

# DeviceManager

If you already have Windows installed on this machine, finding the EC pathing is fairly easy.

Start by opening up Device Manager in Windows and looking for a device named Embedded Controller. Once found, click on it and select the BIOS device Name entry. You should get something like this:

From the above, we can see that our pathing is SB.PC00.LPC0.EC0

Now with the pathing, you can head here: Edits to the sample SSDT

# Edits to the sample SSDT

Now that we have our ACPI path, lets grab our SSDT and get to work:

Now when opening this SSDT, you'll notice a few things. Mainly:

  • Some code is commented out +
    • PC00.LPC0

But now we get into edge case territory, what fun!

The main ones to check for are:

If none of the above apply to you, you're ready for the next section:

# DeviceManager

If you already have Windows installed on this machine, finding the EC pathing is fairly easy.

Start by opening up Device Manager in Windows and looking for a device named Embedded Controller. Once found, click on it and select the BIOS device Name entry. You should get something like this:

From the above, we can see that our pathing is SB.PC00.LPC0.EC0

Now with the pathing, you can head here: Edits to the sample SSDT

# Edits to the sample SSDT

Now that we have our ACPI path, lets grab our SSDT and get to work:

Now when opening this SSDT, you'll notice a few things. Mainly:

  • Some code is commented out
    • This is code for disabling our EC
    • Laptops users SHOULD NOT uncomment this
  • There's a new EC called Device (EC)
    • DO NOT RENAME THIS, this will be the EC we give to macOS

Before:

External (_SB_.PCI0.LPCB, DeviceObj) <- Rename this
 
 Scope (_SB.PCI0.LPCB) <- Rename this
 

Following the example pathing we found, the SSDT should look something like this:

After:

External (_SB_.PC00.LPC0, DeviceObj) <- Renamed
 
 Scope (_SB.PC00.LPC0) <- Renamed
-

# Edge Cases

# Multiple PNP0C09's show up

When multiple PNP0C09 show up, we need to next check for the following properties:

  • _HID (Hardware ID)
  • _CRS (Current Resource Settings)
  • _GPE (General Purpose Events)

What these signify is whether this PNP0C09 device is real or not, as per the ACPI spec(opens new window) . So one's matching the above criteria are the one's we want to disable.

# No PNP0C09 show up

When this happens, you'll only need to create a "dummy" EC for macOS.

Try searching for any devices named: "LPCB", "LPC0", "LPC", "SBRG", "PX40". If you have any of these, try using the LPC pathing of each of those device in place of the Embedded Controller's pathing.

Note that DO NOT uncomment the EC disaling code as there are no devices that are considered "EC" in your machine.

# PNP0C09 already named EC

Congrats! No need to create an SSDT-EC! However you will still want USBX if you're skylake or newer.

Prebuilt can be grabbed here: SSDT-USBX.aml(opens new window)

# PNP0C09 already has an _STA method

This is the equivalent of not having an EC as we can't control it with our SSDT-EC, instead we'll need to create a "dummy" EC for macOS. You'll still want to find the PCI and LPC pathing for this device. So follow the guide as if you were creating a laptop SSDT-EC/USBX.

Example of an EC with STA already:

Credit to rottenpants466

# Compiling the SSDT

With the SSDT done, you're now ready to compile the SSDT!

# Wrapping up

Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:

Last Updated: 10/6/2020, 10:54:31 AM

# Edge Cases

# Multiple PNP0C09's show up

When multiple PNP0C09 show up, we need to next check for the following properties:

  • _HID (Hardware ID)
  • _CRS (Current Resource Settings)
  • _GPE (General Purpose Events)

What these signify is whether this PNP0C09 device is real or not, as per the ACPI spec (opens new window). So one's matching the above criteria are the one's we want to disable.

# No PNP0C09 show up

When this happens, you'll only need to create a "dummy" EC for macOS.

Try searching for any devices named: "LPCB", "LPC0", "LPC", "SBRG", "PX40". If you have any of these, try using the LPC pathing of each of those device in place of the Embedded Controller's pathing.

Note that DO NOT uncomment the EC disaling code as there are no devices that are considered "EC" in your machine.

# PNP0C09 already named EC

Congrats! No need to create an SSDT-EC! However you will still want USBX if you're skylake or newer.

Prebuilt can be grabbed here: SSDT-USBX.aml (opens new window)

# PNP0C09 already has an _STA method

This is the equivalent of not having an EC as we can't control it with our SSDT-EC, instead we'll need to create a "dummy" EC for macOS. You'll still want to find the PCI and LPC pathing for this device. So follow the guide as if you were creating a laptop SSDT-EC/USBX.

Example of an EC with STA already:

Credit to rottenpants466

# Compiling the SSDT

With the SSDT done, you're now ready to compile the SSDT!

# Wrapping up

Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:

Last Updated: 10/6/2020, 10:54:31 AM
- + diff --git a/Universal/ec-methods/prebuilt.html b/Universal/ec-methods/prebuilt.html index 7bc6a0b..4f0f551 100644 --- a/Universal/ec-methods/prebuilt.html +++ b/Universal/ec-methods/prebuilt.html @@ -4,45 +4,46 @@ Fixing Embedded Controllers: Prebuilt | Getting Started With ACPI - + - - + + +

# Fixing Embedded Controllers: Prebuilt

By far the easiest way to fix your Embedded Controller is just downloading one of the files below:

Desktop:

Laptops:

The main things to note with this method:

  • Quite Bloated
    • There's ACPI naming for every type, this means there's added delays in boot times
  • Doesn't really teach you anything
    • For most, this doesn't matter. But to some knowing what makes your hackintosh tick is part of the journey

# Wrapping up

Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:

Last Updated: 6/22/2020, 9:53:35 AM
- + diff --git a/Universal/ec-methods/ssdttime.html b/Universal/ec-methods/ssdttime.html index a277b7a..df9841c 100644 --- a/Universal/ec-methods/ssdttime.html +++ b/Universal/ec-methods/ssdttime.html @@ -4,48 +4,48 @@ Fixing Embedded Controllers: SSDTTime | Getting Started With ACPI - + - - + + +

# Fixing Embedded Controllers: SSDTTime

The second involves using SSDTTime which automates most of the process. See here on how to use it: SSDTs: Easy Way

To get the SSDT-EC on desktops, run the following:

  • 7. Dump DSDT then run 2. FakeEC

To get the SSDT-EC on laptops, run the following:

  • 7. Dump DSDT then run 3. FakeEC Laptop

This will provide you with some files, the main one you care about is SSDT-EC.aml. The DSDT and .dsl are only left for referencing or verification.

The main things to note with this method:

  • Doesn't provide you the USBX property to fix power +
  • Doesn't really teach you anything +
    • For most, this doesn't matter. But to some knowing what makes your hackintosh tick is part of the journey

# Wrapping up

Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:

Last Updated: 10/16/2020, 9:07:15 PM
- + diff --git a/Universal/imei-methods/manual.html b/Universal/imei-methods/manual.html index fb817ec..4b40989 100644 --- a/Universal/imei-methods/manual.html +++ b/Universal/imei-methods/manual.html @@ -4,53 +4,54 @@ Fixing IMEI: Manual | Getting Started With ACPI - + - - + + +

# Fixing IMEI: Manual

# Finding the ACPI device

Finding the ACPI pathing is quite easy actually, first open your decompiled DSDT you got from Dumping the DSDT and Decompiling and Compiling with either maciASL(if in macOS) or any other text editor if in Windows or Linux(VSCode has an ACPI extension (opens new window) that can also help).

Next, search for the following devices:

  • IMEI
  • HECI
  • MEI

If none of the 3 show up, you'll need to create an SSDT-IMEI.

If one of these 3 devices show up, you do not need SSDT-IMEI! You can simply skip this page.

The rest of this page will however assume none of those 3 devices showed up.

# Compiling the SSDT

So there's actually no edits required to SSDT-IMEI, you can either grab the source code and compile yourself or use the prebuilt

With the SSDT done, you're now ready to compile the SSDT!

# Wrapping up

Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:

Last Updated: 9/19/2020, 4:07:55 PM
- + diff --git a/Universal/imei-methods/prebuilt.html b/Universal/imei-methods/prebuilt.html index 642ac93..047e4e2 100644 --- a/Universal/imei-methods/prebuilt.html +++ b/Universal/imei-methods/prebuilt.html @@ -4,45 +4,46 @@ Fixing IMEI: Prebuilt | Getting Started With ACPI - + - - + + +

# Fixing IMEI: Prebuilt

By far the easiest method, all you need to do is download the following file:

# Wrapping up

Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:

Last Updated: 9/19/2020, 4:07:55 PM
- + diff --git a/Universal/imei.html b/Universal/imei.html index 20b2c6f..00a8107 100644 --- a/Universal/imei.html +++ b/Universal/imei.html @@ -4,45 +4,46 @@ Fixing IMEI (SSDT-IMEI) | Getting Started With ACPI - + - - + + +

# Fixing IMEI (SSDT-IMEI)

# What this SSDT does

The purpose of SSDT-IMEI is:

  • When mixing Ivy Bridge CPUs with 6 series motherboard, we get an issue where the IMEI device becomes incompatible with macOS. Specifically the device-id won't be recognized and this is a very important issue as macOS relies on the IMEI device for iGPU drivers.
    • The same applies when mixing Sandy Bridge motherboards with 7 series motherboards
  • An extra issue that may pop up is that the IMEI won't appear in ACPI, which can lead to more issues as macOS expects there to be an ACPI device to apply device-id's. So to resolve, we'll want to verify if we have an IMEI device, and if not create a new device.

# Methods to make this SSDT

For the IMEI fix, there are 2 methods you can choose from:

  • Prebuilt
    • The prebuilt are a bit bloated. It's recommended to use the method below.
  • Manual
Last Updated: 9/1/2020, 5:27:37 PM
- + diff --git a/Universal/irq.html b/Universal/irq.html index 08e693b..5c4229f 100644 --- a/Universal/irq.html +++ b/Universal/irq.html @@ -4,45 +4,46 @@ Fixing IRQ Conflicts (SSDT-HPET + OC_Patches.plist) | Getting Started With ACPI - + - - + + +

# Fixing IRQ Conflicts (SSDT-HPET + OC_Patches.plist)

So you miss having those fancy hot-patches from Clover like FixIPIC, FixTMR, FixRTC, FixHPET, etc

Well 1 very small problem, figuring out IRQ patching is a massive headache. I highly recommend you use SSDTTime. So head over to SSDT: Easy Way on how to make it.(use option C to omit conflicting legacy IRQs)

Last Updated: 7/7/2020, 8:08:13 PM
- + diff --git a/Universal/nvram-methods/manual.html b/Universal/nvram-methods/manual.html index 830ea62..2184c38 100644 --- a/Universal/nvram-methods/manual.html +++ b/Universal/nvram-methods/manual.html @@ -4,47 +4,48 @@ Fixing NVRAM: Manual | Getting Started With ACPI - + - - + + +

# Fixing NVRAM: Manual

# Finding the ACPI path

Finding the ACPI pathing is quite easy actually, first open your decompiled DSDT you got from Dumping the DSDT and Decompiling and Compiling with either maciASL(if in macOS) or any other text editor if in Windows or Linux(VSCode has an ACPI extension (opens new window) that can also help).

Next, search for the following:

  • Finding the LowPinCount path:
    • Search Name (_ADR, 0x001F0000)
  • Finding the PCI path: -
    • Search PNP0A08 (If multiple show up, use the first one)

You should get something like the following show up:

LPC Pathing PCI Pathing

Now with the pathing, you can head here: Edits to the sample SSDT

# Edits to the sample SSDT

Now that we have our ACPI path, lets grab our SSDT and get to work:

By default, this uses PCI0.LPCB for the pathing. you'll want to rename accordingly.

Following the example from above, we'll be renaming it to PCI0.LPC:

Before:

External (_SB_.PCI0.LPCB, DeviceObj) <- Rename this
+
  • Search PNP0A08 (If multiple show up, use the first one)

You should get something like the following show up:

LPC Pathing PCI Pathing

Now with the pathing, you can head here: Edits to the sample SSDT

# Edits to the sample SSDT

Now that we have our ACPI path, lets grab our SSDT and get to work:

By default, this uses PCI0.LPCB for the pathing. you'll want to rename accordingly.

Following the example from above, we'll be renaming it to PCI0.LPC:

Before:

External (_SB_.PCI0.LPCB, DeviceObj) <- Rename this
 
 Scope (_SB.PCI0.LPCB) <- Rename this
 

Following the example pathing we found, the SSDT should look something like this:

After:

External (_SB_.PCI0.LPC, DeviceObj) <- Renamed
@@ -59,6 +60,6 @@ Scope (_SB.PCI0.LPC) <- Renamed
       
       ⟶
     

- + diff --git a/Universal/nvram-methods/prebuilt.html b/Universal/nvram-methods/prebuilt.html index f48820e..e9e3fd6 100644 --- a/Universal/nvram-methods/prebuilt.html +++ b/Universal/nvram-methods/prebuilt.html @@ -4,45 +4,46 @@ Fixing NVRAM: Prebuilt | Getting Started With ACPI - + - - + + +

# Fixing NVRAM: Prebuilt

By far the easiest method, all you need to do is download the following file:

Main things to note with this method:

  • Bit Bloated
    • There's ACPI naming for most common paths, this means there's added delays in boot times(though unnoticeable to most as it's generally less than 0.5 seconds longer)
  • Doesn't really teach you anything
    • For most, this doesn't matter. But to some knowing what makes your hackintosh tick is part of the journey

# Wrapping up

Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:

Last Updated: 6/22/2020, 9:53:56 AM
- + diff --git a/Universal/nvram-methods/ssdttime.html b/Universal/nvram-methods/ssdttime.html index 78db988..2014c53 100644 --- a/Universal/nvram-methods/ssdttime.html +++ b/Universal/nvram-methods/ssdttime.html @@ -4,45 +4,46 @@ Fixing NVRAM (SSDT-PMC) | Getting Started With ACPI - + - - + + +

# Fixing NVRAM (SSDT-PMC)

The second involves using SSDTTime which automates most of the process. See here on how to use it: SSDTs: Easy Way

To get the SSDT-PMC, run the following:

  • 7. Dump DSDT then run 5. PMC

This will provide you with some files, the main one you care about is SSDT-PMC.aml. The DSDT and .dsl are only left for referencing or verification.

The main things to note with this method:

  • Doesn't really teach you anything
    • For most, this doesn't matter. But to some knowing what makes your hackintosh tick is part of the journey

# Wrapping up

Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:

Last Updated: 9/1/2020, 5:27:37 PM
- + diff --git a/Universal/nvram.html b/Universal/nvram.html index c1a9387..54c0523 100644 --- a/Universal/nvram.html +++ b/Universal/nvram.html @@ -4,53 +4,54 @@ Fixing NVRAM (SSDT-PMC) | Getting Started With ACPI - + - - + + +

# Fixing NVRAM (SSDT-PMC)

# What this SSDT does

This SSDT is required for all "true" 300 series motherboards(Z370 is excluded), it specifically brings back NVRAM support and requires very little configuration for the end user.

  • B360
  • B365
  • H310
  • H370
  • Z390

10th gen motherboards do not need this SSDT, NVRAM's native on these platforms.

# Methods to make this SSDT

The main ways to make this SSDT:

Last Updated: 9/1/2020, 5:27:37 PM
- + diff --git a/Universal/plug-methods/manual.html b/Universal/plug-methods/manual.html index 3f904be..5789ca8 100644 --- a/Universal/plug-methods/manual.html +++ b/Universal/plug-methods/manual.html @@ -4,45 +4,46 @@ Fixing Power Management: Manual | Getting Started With ACPI - + - - + + +

# Fixing Power Management: Manual

# Finding the ACPI path

To find the ACPI pathing, you have 2 methods:

# DSDT

CPU naming is fairly easy to figure out, first open your decompiled DSDT you got from Dumping the DSDT and Decompiling and Compiling with either maciASL(if in macOS) or any other text editor if in Windows or Linux(VSCode has an ACPI extension (opens new window) that can also help).

Next search for Processor. This should give you a result like this:

As we can see, the first processor in our list is SB.PR00. This is what we'll be applying the plugin-type=1 property too.

X99 and X299 note:

Due to the different DSDT structure of these systems, you'll need to to actually check in multiple places as the pathing isn't as obvious:

If we then search for instances of CP00 we find that its full ACPI pathing is SB.SCK0.CP00:

Now with the pathing, you can head here: Edits to the sample SSDT

# DeviceManager

If you already have Windows installed on this machine, finding the CPU pathing is fairly easy.

Start by opening up Device Manager in Windows and looking for a device named Processor. Once found, click on it and select the BIOS device Name entry. You should get something like this:

From the above, we can see that our pathing is PR.CPU0. Pay close attention to the start as PR is important for creating the SSDT

X99 and X299 note:

Odd quirk of DeviceManager in Windows is that the Processor's order does not actually match the ACPI path, instead giving something like SB.SCK0.CP10:

When this happens, you can either:

  • Look through and find the lowest value
  • Assume the lowest(commonly being PR00 or CP00)

So with the above X299 example, our CPU pathing would be SB.SCK0.CP00

Now with the pathing, you can head here: Edits to the sample SSDT

# Edits to the sample SSDT

Now that we have our ACPI path, lets grab our SSDT and get to work:

From the above SSDT, it's very likely your processor is already there. If so, you can delete all the other entries other than yours and the Method PMPM as this is what injects the plugin-type=1 property into our system.

  • Reminder: We only need to apply plugin-type=1 to the first thread

For the below example, we'll be using the X299 example(SB.SCK0.CP00)

Original Cleaned Up

# Compiling the SSDT

With the SSDT done, you're now ready to compile the SSDT!

# Wrapping up

Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:

Last Updated: 7/17/2020, 8:46:53 PM
- + diff --git a/Universal/plug-methods/prebuilt.html b/Universal/plug-methods/prebuilt.html index a467f86..fd928ef 100644 --- a/Universal/plug-methods/prebuilt.html +++ b/Universal/plug-methods/prebuilt.html @@ -4,45 +4,46 @@ Fixing Power Management: Prebuilt | Getting Started With ACPI - + - - + + +

# Fixing Power Management: Prebuilt

By far the easiest way to get SSDT-PLUG is just downloading the below file:

This prebuilt file is just a precompiled version of SSDT-PLUG (opens new window) provided by Acidanthera.

The main things to note with this method:

  • Quite Bloated
    • There's ACPI naming for every type, this means there's added delays in boot times(though unnoticeable to most as it's generally 0.5 seconds longer)
  • Doesn't really teach you anything
    • For most, this doesn't matter. But to some knowing what makes your hackintosh tick is part of the journey

# Wrapping up

Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:

Last Updated: 6/22/2020, 9:54:19 AM
- + diff --git a/Universal/plug-methods/ssdttime.html b/Universal/plug-methods/ssdttime.html index 044816c..845f5f7 100644 --- a/Universal/plug-methods/ssdttime.html +++ b/Universal/plug-methods/ssdttime.html @@ -4,47 +4,47 @@ Fixing Power Management: SSDTTime | Getting Started With ACPI - + - - + + +

# Fixing Power Management: SSDTTime

The second involves using SSDTTime which automates most of the process. See here on how to use it: SSDTs: Easy Way

To get the SSDT-PLUG, run the following:

  • 7. Dump DSDT then run 3. PluginType

This will provide you with some files, the main one you care about is SSDT-PLUG.aml. The DSDT and .dsl are only left for referencing or verification.

The main things to note with this method:

  • Doesn't really teach you anything +
    • For most, this doesn't matter. But to some knowing what makes your hackintosh tick is part of the journey

# Wrapping up

Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:

Last Updated: 10/16/2020, 9:07:15 PM
- + diff --git a/Universal/plug.html b/Universal/plug.html index 88dd491..a38206f 100644 --- a/Universal/plug.html +++ b/Universal/plug.html @@ -4,45 +4,46 @@ Fixing Power Management (SSDT-PLUG) | Getting Started With ACPI - + - - + + +

# Fixing Power Management (SSDT-PLUG)

# What this SSDT does

The purpose of SSDT-PLUG is to allow the kernel's XCPM(XNU's CPU Power Management) to manage our CPU's power management. It's pretty self explanatory why you'd want this.

Note: SSDT-PLUG is only compatible with Intel's Haswell and newer CPUs, Sandy Bridge and Ivy Bridge will need to follow the ssdtPRgen method (opens new window)(in post-install) while AMD users should not use this(unless attempting to attach AGPM which is outside the scope of Dortania's guides)

  • Ivy Bridge-E(HEDT/server) however is supported by XCPM

# Methods to make this SSDT

For SSDT-PLUG, there are 3 methods you can choose from:

Last Updated: 10/16/2020, 9:07:15 PM
- + diff --git a/Universal/rhub-methods/manual.html b/Universal/rhub-methods/manual.html index 8cf89b6..4d8d0e9 100644 --- a/Universal/rhub-methods/manual.html +++ b/Universal/rhub-methods/manual.html @@ -4,47 +4,48 @@ Fixing USB: Manual | Getting Started With ACPI - + - - + + +

# Fixing USB: Manual

# Finding the ACPI path

Finding the ACPI pathing is quite easy actually, first open your decompiled DSDT you got from Dumping the DSDT and Decompiling and Compiling with either maciASL(if in macOS) or any other text editor if in Windows or Linux(VSCode has an ACPI extension (opens new window) that can also help).

Next, search for the Device (RHUB)

You should get something like the following show up:

From the above, we can see that the full ACPI pathing for RHUB is PCI0.XHC.RHUB. If it's not as clear you can search for what those device paths are for your system:

  • Finding the PCI path:
    • Search PNP0A08 (If multiple show up, use the first one)
  • Finding XHCI path -
    • Search for XHC, XHCI and XHC1, and yours is whichever shows up.

Now with the pathing, you can head here: Edits to the sample SSDT

# Edits to the sample SSDT

Now that we have our ACPI path, lets grab our SSDT and get to work:

By default, this uses PCI0.XHC_.RHUB for the pathing. you'll want to rename accordingly.

Following the example from above, we'll be renaming it to PCI0.XHC1.RHUB:

Before:

External (_SB_.PCI0.XHC_.RHUB, DeviceObj) <- Rename this
+
  • Search for XHC, XHCI and XHC1, and yours is whichever shows up.

Now with the pathing, you can head here: Edits to the sample SSDT

# Edits to the sample SSDT

Now that we have our ACPI path, lets grab our SSDT and get to work:

By default, this uses PCI0.XHC_.RHUB for the pathing. you'll want to rename accordingly.

Following the example from above, we'll be renaming it to PCI0.XHC1.RHUB:

Before:

External (_SB_.PCI0.XHC_.RHUB, DeviceObj) <- Rename this
 
 Scope (_SB.PCI0.XHC_.RHUB) <- Rename this
 

Following the example pathing we found, the SSDT should look something like this:

After:

External (_SB.PCI0.XHC1.RHUB, DeviceObj) <- Renamed
@@ -59,6 +60,6 @@ Scope (_SB.PCI0.XHC1.RHUB) <- Renamed
       
       ⟶
     

- + diff --git a/Universal/rhub-methods/prebuilt.html b/Universal/rhub-methods/prebuilt.html index 1a7cd54..db60b8a 100644 --- a/Universal/rhub-methods/prebuilt.html +++ b/Universal/rhub-methods/prebuilt.html @@ -4,45 +4,46 @@ Fixing USB: Prebuilt | Getting Started With ACPI - + - - + + +

# Fixing USB: Prebuilt

By far the easiest method, all you need to do is download the following file:

# Wrapping up

Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:

Last Updated: 6/22/2020, 9:54:39 AM
- + diff --git a/Universal/rhub-methods/ssdttime.html b/Universal/rhub-methods/ssdttime.html new file mode 100644 index 0000000..cf47605 --- /dev/null +++ b/Universal/rhub-methods/ssdttime.html @@ -0,0 +1,50 @@ + + + + + + Fixing RHUB: SSDTTime | Getting Started With ACPI + + + + + + + + + + + +

# Fixing RHUB: SSDTTime

The second involves using SSDTTime which automates most of the process. See here on how to use it: SSDTs: Easy Way

To get the SSDT-RHUB, run the following:

  • 7. Dump DSDT then run 7. USB Reset

This will provide you with some files, the main one you care about is SSDT-USB-Rest.aml(Same file as SSDT-RHUB). The DSDT and .dsl are only left for referencing or verification.

The main things to note with this method:

  • Doesn't really teach you anything +
    • For most, this doesn't matter. But to some knowing what makes your hackintosh tick is part of the journey

# Wrapping up

Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:

Last Updated: 10/16/2020, 9:07:15 PM
+ + + diff --git a/Universal/rhub.html b/Universal/rhub.html index 20c4552..15393e1 100644 --- a/Universal/rhub.html +++ b/Universal/rhub.html @@ -4,45 +4,46 @@ Fixing USB | Getting Started With ACPI - + - - + + +

# Fixing USB

# What this SSDT does

So on 400 series motherboards, certain OEMs have broken the ACPI spec and this results in issues when booting into macOS. To fix this, we'll want to turn off the RHUB device and force macOS to manually rebuild the ports.

The following platforms will require fixing:

  • Mobile Icelake(currently Dell and Lenovo are the 2 known with this issue)
  • Asus Z490 (Gigabyte and AsRock users are fine, whether MSI currently this is unknown)

# Methods to make this SSDT

For the RHUB fix, there are 3 methods you can choose from:

Last Updated: 10/16/2020, 9:07:15 PM
- + diff --git a/Universal/smbus-methods/manual.html b/Universal/smbus-methods/manual.html index 618150a..2f168c9 100644 --- a/Universal/smbus-methods/manual.html +++ b/Universal/smbus-methods/manual.html @@ -4,46 +4,47 @@ Fixing SMBus support: Manual | Getting Started With ACPI - + - - + + +

# Fixing SMBus support: Manual

# Finding the ACPI path

So to find the ACPI pathing of our SMBus, we've got 2 methods:

# Hackintool

To find the correct pathing for your devices, grab Hackintool (opens new window) (Github link (opens new window)) and head to the PCI tab:

Look for the SMBus device under Subclass, then look beside and you'll see the ACPI path(under IOReg Name). To convert , omit @...

  • /PC00@0/SMBS@1F,4 -> PC00.SMBS

With the ACPI pathing, you can now head here: Edits to the sample SSDT

# DeviceManager

If you already have Windows installed on this machine, finding the SMBus pathing is fairly easy.

Start by opening up Device Manager in Windows and looking for a device named SMBUS. Once found, click on it and select the BIOS device Name entry. You should get something like this:

From the above example, we can see the SMBus is located at:

PC00.SMBS
+

With the ACPI pathing, you can now head here: Edits to the sample SSDT

# Edits to the sample SSDT

Now that we know the ACPI pathing of the SMBus, we can finally start editing the our SSDT.

So the important parts we care about are:

Before:

External (_SB_.PCI0, DeviceObj) <- Rename this
 External (_SB_.PCI0.SBUS.BUS0, DeviceObj) <- Rename this
 
 Scope (_SB.PCI0) <- Rename this
@@ -77,6 +78,6 @@ Device (_SB.PC00.SMBS.BUS0) <- Renamed
       
       ⟶
     

- + diff --git a/Universal/smbus.html b/Universal/smbus.html index 893cccf..4fea091 100644 --- a/Universal/smbus.html +++ b/Universal/smbus.html @@ -4,56 +4,57 @@ Fixing SMBus support (SSDT-SBUS-MCHC) | Getting Started With ACPI - + - - + + +

# Fixing SMBus support (SSDT-SBUS-MCHC)

# What this SSDT does

This section of the guide refers to fixing AppleSMBus support in macOS, what is AppleSMBus? Well this mainly handles the System Management Bus, which has many functions like:

  • AppleSMBusController
    • Aids with correct temperature, fan, voltage, ICH, etc readings
  • AppleSMBusPCI
    • Same idea as AppleSMBusController except for low bandwidth PCI devices
  • Memory Reporting -
    • Aids in proper memory reporting and can aid in getting better kernel panic details if memory related
  • Other things SMBus does: SMBus wiki(opens new window)

For install purposes, this SSDT isn't needed but for post-install it's recommended to put the final touches on your hack.

# Methods to make this SSDT

To make this SSDT, you only got 1 method: Doing it manually

Last Updated: 5/31/2020, 5:54:37 AM
Last Updated: 5/31/2020, 5:54:37 AM
- + diff --git a/Universal/spoof.html b/Universal/spoof.html index 5dbed50..81ff858 100644 --- a/Universal/spoof.html +++ b/Universal/spoof.html @@ -4,51 +4,52 @@ Renaming GPUs (SSDT-GPU-SPOOF) | Getting Started With ACPI - + - - + + +

# Renaming GPUs (SSDT-GPU-SPOOF)

So this is mainly needed for GPUs that are not natively supported out of the box due to their names, most commonly:

  • R9 290/390
  • R9 280/380
  • R7 270/370
  • R9 260/360
  • R7 250
  • R7 240

Instead, these GPUs need to be "spoofed" or faked into a model that closely matches theirs, generally this will be the "X" variant of the card. For some reason Apple never bothered adding the PCI IDs for these other cards even though their GPU cores are supported by the driver.

So to spoof the GPU, we need to find a couple things:

# Finding a suitable PCI ID

# Web

To find a suitable PCI ID, we'll be using PCI ID Repository (opens new window) which has a full database of all AMD GPUs. For this example, we'll be creating a Spoof SSDT for the R9 390. For a full list of supported GPUs, please see the GPU Buyers Guide (opens new window). The closest match to this GPU would be the 390X, and looking on that site near the top gives us this:

Vendor 1002 -> Device 1002:67b0
 

Now lets break this down into a device ID we can use:

  • 1002: The vendor ID, all AMD devices have this ID
  • 67B0: The device ID, this is what we care about

So how do we convert this to a fake ID? Well the format of a fake ID:

"device-id",
 Buffer (0x04)
 {
      0xB0, 0x67, 0x00, 0x00
 },
-

As you can see, the bytes are swapped in pairs. Keep this in mind when we make our SSDT

The specifics are due to Endianness(opens new window) for those who are curious

# Linux

If you can run Linux, use command lspci -vmmnnD -d 1002::0300

$ lspci -vmmnnD -d 1002::0300
+

As you can see, the bytes are swapped in pairs. Keep this in mind when we make our SSDT

The specifics are due to Endianness (opens new window) for those who are curious

# Linux

If you can run Linux, use command lspci -vmmnnD -d 1002::0300

$ lspci -vmmnnD -d 1002::0300
 Slot:	0000:01:00.0
 Class:	VGA compatible controller [0300]
 Vendor:	Advanced Micro Devices, Inc. [AMD/ATI] [1002]
@@ -61,7 +62,7 @@ Rev:	87
 

Now converting this to an ACPI path is quite simple, remove the #ACPI and #PCI(0000):

\_SB_.PC02.BR2A.PEGP
 

# Linux

Substitute your SLOTID found above into command cat /sys/bus/pci/devices/SLOTID/firmware_node/path, you cat get

$ cat /sys/bus/pci/devices/0000:01:00.0/firmware_node/path
 \_SB_.PC02.BR2A.PEGP
-

And voila! We've found our ACPI path, now that we have everything we're ready to get cooking

# Making the SSDT

To start grab our SSDT-GPU-SPOOF(opens new window) and open it up. Here there's a couple things to change:

External (_SB_.PCI0, DeviceObj)
+

And voila! We've found our ACPI path, now that we have everything we're ready to get cooking

# Making the SSDT

To start grab our SSDT-GPU-SPOOF (opens new window) and open it up. Here there's a couple things to change:

External (_SB_.PCI0, DeviceObj)
 External (_SB_.PCI0.PEG0.PEGP, DeviceObj)
 

For our example, we'll change all mentions of :

  • PCI0 with PC02
  • PEG0 with BR2A

Hint: If your ACPI path is a bit shorter than the example, this is fine. Just make sure the ACPI paths are correct to your device.

Now that the ACPI pathing is correct, we can finally apply our fake ID!!!

So the 2 parts we want to change:

device ID:

"device-id",
 Buffer (0x04)
@@ -82,6 +83,6 @@ Buffer ()
       
       ⟶
     

- + diff --git a/Universal/unc0-methods/manual.html b/Universal/unc0-methods/manual.html new file mode 100644 index 0000000..d95e7dc --- /dev/null +++ b/Universal/unc0-methods/manual.html @@ -0,0 +1,57 @@ + + + + + + Fixing Uncore Bridges: Manual | Getting Started With ACPI + + + + + + + + + + + +

# Fixing Uncore Bridges: Manual

# Download the SSDT

Super simple, just grab the SSDT and compile:

See here how to compile: Compiling ACPI

# Wrapping up

Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:

Last Updated: 10/16/2020, 9:07:15 PM
+ + + diff --git a/Universal/unc0-methods/prebuilt.html b/Universal/unc0-methods/prebuilt.html new file mode 100644 index 0000000..9932a42 --- /dev/null +++ b/Universal/unc0-methods/prebuilt.html @@ -0,0 +1,57 @@ + + + + + + Fixing Uncore Bridges: Prebuilt | Getting Started With ACPI + + + + + + + + + + + +

# Fixing Uncore Bridges: Prebuilt

By far the easiest method, all you need to do is download the following file:

# Wrapping up

Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:

Last Updated: 10/16/2020, 9:07:15 PM
+ + + diff --git a/Universal/unc0.html b/Universal/unc0.html new file mode 100644 index 0000000..f268f6d --- /dev/null +++ b/Universal/unc0.html @@ -0,0 +1,57 @@ + + + + + + Fixing Uncore Bridges (SSDT-UNC0) | Getting Started With ACPI + + + + + + + + + + + +

# Fixing Uncore Bridges (SSDT-UNC0)

# What this SSDT does

This SSDT is required for all X99 and many X79 boards, it specifically disables unused devices in ACPI ensuing IOPCIFamily doesn't kernel panic. This requires very little configuration for the end user.

  • X79
  • C602
  • X99
  • C612

# Methods to make this SSDT

The main ways to make this SSDT:

Last Updated: 10/16/2020, 9:07:15 PM
+ + + diff --git a/assets/css/0.styles.6c0249c8.css b/assets/css/0.styles.6c0249c8.css new file mode 100644 index 0000000..2a520ce --- /dev/null +++ b/assets/css/0.styles.6c0249c8.css @@ -0,0 +1 @@ +@import url($themeFont);html{scroll-behavior:smooth}.medium-zoom-overlay{z-index:100}.medium-zoom-overlay~img{z-index:101}code[class*=language-],pre[class*=language-]{color:#ccc;background:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#2d2d2d}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.block-comment,.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#999}.token.punctuation{color:#ccc}.token.attr-name,.token.deleted,.token.namespace,.token.tag{color:#e2777a}.token.function-name{color:#6196cc}.token.boolean,.token.function,.token.number{color:#f08d49}.token.class-name,.token.constant,.token.property,.token.symbol{color:#f8c555}.token.atrule,.token.builtin,.token.important,.token.keyword,.token.selector{color:#cc99cd}.token.attr-value,.token.char,.token.regex,.token.string,.token.variable{color:#7ec699}.token.entity,.token.operator,.token.url{color:#67cdcc}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:green}.theme-default-content code{color:#476582;padding:.25rem .5rem;margin:0;font-size:.85em;background-color:rgba(27,31,35,.05);border-radius:3px}.theme-default-content code .token.deleted{color:#ec5975}.theme-default-content code .token.inserted{color:#00bfff}.theme-default-content pre,.theme-default-content pre[class*=language-]{line-height:1.4;padding:1.25rem 1.5rem;margin:.85rem 0;background-color:#282c34;border-radius:6px;overflow:auto}.theme-default-content pre[class*=language-] code,.theme-default-content pre code{color:#fff;padding:0;background-color:transparent;border-radius:0}div[class*=language-]{background-color:#282c34}div[class*=language-] .highlight-lines{padding-top:1.3rem}div[class*=language-] .highlight-lines .highlighted{background-color:rgba(0,0,0,.66)}div[class*=language-].line-numbers-mode:after{background-color:#282c34}.custom-block.danger,.custom-block.tip,.custom-block.warning{border-left-width:.5rem;border-left-style:solid}.custom-block.tip{background-color:#f3f5f7;border-color:#42b983}.custom-block.warning{background-color:rgba(255,229,100,.3);border-color:#e7c000;color:#6b5900}.custom-block.warning .custom-block-title{color:#b29400}.custom-block.warning a{color:#2c3e50}.custom-block.danger{background-color:#ffe6e6;border-color:#c00;color:#4d0000}.custom-block.danger .custom-block-title{color:#900}.custom-block.danger a{color:#2c3e50}.custom-block.details{border-radius:2px;margin:1.6em 0;padding:1.6em;background-color:#eee}.arrow.up{border-bottom:6px solid #ccc}.arrow.down{border-top:6px solid #ccc}.arrow.right{border-left:6px solid #ccc}.arrow.left{border-right:6px solid #ccc}.theme-default-content:not(.custom),.theme-succinct-content:not(.custom){max-width:740px;margin:0 auto;padding:2rem 2.5rem}@media (max-width:959px){.theme-default-content:not(.custom),.theme-succinct-content:not(.custom){padding:2rem}}@media (max-width:419px){.theme-default-content:not(.custom),.theme-succinct-content:not(.custom){padding:1.5rem}}body,html{background-color:#fff}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;color:#2c3e50}.navbar{border-bottom:1px solid #eaecef}.navbar,.sidebar{background-color:#fff}.sidebar{border-right:1px solid #eaecef}.theme-default-content:not(.custom)>:first-child{margin-top:3.6rem}.theme-default-content:not(.custom) a:hover{text-decoration:underline}.theme-default-content:not(.custom) p.demo{padding:1rem 1.5rem;border:1px solid #ddd;border-radius:4px}.theme-default-content:not(.custom) img{max-width:100%}.theme-default-content.custom{padding:0;margin:0}.theme-default-content.custom img{max-width:100%}a,p a code{color:#00bfff}kbd{background:#eee;border:.15rem solid #ddd;border-bottom:.25rem solid #ddd}blockquote{font-size:1rem;color:#999;border-left:.2rem solid #dfe2e5;margin:1rem 0}.theme-default-content:not(.custom)>h1,.theme-default-content:not(.custom)>h2,.theme-default-content:not(.custom)>h3,.theme-default-content:not(.custom)>h4,.theme-default-content:not(.custom)>h5,.theme-default-content:not(.custom)>h6{margin-top:-3.1rem;padding-top:4.6rem;margin-bottom:0}.theme-default-content:not(.custom)>h1:first-child,.theme-default-content:not(.custom)>h2:first-child,.theme-default-content:not(.custom)>h3:first-child,.theme-default-content:not(.custom)>h4:first-child,.theme-default-content:not(.custom)>h5:first-child,.theme-default-content:not(.custom)>h6:first-child{margin-top:-1.5rem;margin-bottom:1rem}.theme-default-content:not(.custom)>h1:first-child+.custom-block,.theme-default-content:not(.custom)>h1:first-child+p,.theme-default-content:not(.custom)>h1:first-child+pre,.theme-default-content:not(.custom)>h2:first-child+.custom-block,.theme-default-content:not(.custom)>h2:first-child+p,.theme-default-content:not(.custom)>h2:first-child+pre,.theme-default-content:not(.custom)>h3:first-child+.custom-block,.theme-default-content:not(.custom)>h3:first-child+p,.theme-default-content:not(.custom)>h3:first-child+pre,.theme-default-content:not(.custom)>h4:first-child+.custom-block,.theme-default-content:not(.custom)>h4:first-child+p,.theme-default-content:not(.custom)>h4:first-child+pre,.theme-default-content:not(.custom)>h5:first-child+.custom-block,.theme-default-content:not(.custom)>h5:first-child+p,.theme-default-content:not(.custom)>h5:first-child+pre,.theme-default-content:not(.custom)>h6:first-child+.custom-block,.theme-default-content:not(.custom)>h6:first-child+p,.theme-default-content:not(.custom)>h6:first-child+pre{margin-top:2rem}h2{border-bottom:1px solid #eaecef}.line-number,code,kbd{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}ol,p,ul{line-height:1.7}hr{border-top:1px solid #eaecef}tr{border-top:1px solid #dfe2e5}tr:nth-child(2n){background-color:#f6f8fa}td,th{border:1px solid #dfe2e5}.theme-container.no-navbar .theme-default-content:not(.custom)>h1,.theme-container.no-navbar h2,.theme-container.no-navbar h3,.theme-container.no-navbar h4,.theme-container.no-navbar h5,.theme-container.no-navbar h6{margin-top:1.5rem;padding-top:0}@media (max-width:419px){h1{font-size:1.9rem}.theme-default-content div[class*=language-]{margin:.85rem -1.5rem;border-radius:0}}.theme-succinct-content code{color:#bab8aa;color:var(--codeColor);padding:.25rem .5rem;margin:0;font-size:.85em;background-color:rgba(27,31,35,.08);border-radius:3px}.theme-succinct-content code .token.deleted{color:#ec5975}.theme-succinct-content code .token.inserted{color:#3eaf7c;color:var(--accentColor)}.theme-succinct-content pre,.theme-succinct-content pre[class*=language-]{line-height:1.4;padding:1.25rem 1.5rem;margin:.85rem 0;background-color:#1a1c22;background-color:var(--codeBgColor);border-radius:6px;overflow:auto}.theme-succinct-content pre[class*=language-] code,.theme-succinct-content pre code{color:#fff;padding:0;background-color:transparent;border-radius:0}div[class*=language-]{position:relative;background-color:#1a1c22;background-color:var(--codeBgColor);border-radius:6px;overflow:hidden}div[class*=language-] .highlight-lines{-webkit-user-select:none;-ms-user-select:none;user-select:none;padding-top:2.1rem;position:absolute;top:0;left:0;width:100%;line-height:1.4}div[class*=language-] .highlight-lines .highlighted{background-color:#202228;background-color:var(--codeBgHighlightColor)}div[class*=language-] pre,div[class*=language-] pre[class*=language-]{background:transparent;position:relative;margin-bottom:0;z-index:1}div[class*=language-]:before{position:absolute;z-index:3;top:.8em;right:1em;font-size:.75rem;color:hsla(0,0%,100%,.4)}div[class*=language-]:not(.line-numbers-mode) .line-numbers-wrapper{display:none}div[class*=language-].line-numbers-mode .highlight-lines .highlighted{position:relative}div[class*=language-].line-numbers-mode .highlight-lines .highlighted:before{content:" ";position:absolute;z-index:3;left:0;top:0;display:block;width:3.5rem;height:100%;background-color:rgba(0,0,0,.66)}div[class*=language-].line-numbers-mode pre{padding-left:4.5rem;vertical-align:middle}div[class*=language-].line-numbers-mode .line-numbers-wrapper{position:absolute;top:0;width:3.5rem;text-align:center;color:hsla(0,0%,100%,.3);padding:1.25rem 0;line-height:1.4}div[class*=language-].line-numbers-mode .line-numbers-wrapper br{-webkit-user-select:none;-ms-user-select:none;user-select:none}div[class*=language-].line-numbers-mode .line-numbers-wrapper .line-number{position:relative;z-index:4;-webkit-user-select:none;-ms-user-select:none;user-select:none;font-size:.85em}div[class*=language-].line-numbers-mode:after{content:"";position:absolute;z-index:2;top:0;left:0;width:3.5rem;height:100%;border-radius:6px 0 0 6px;border-right:1px solid rgba(0,0,0,.66);background-color:#1a1c22;background-color:var(--codeBgColor)}div[class~=language-js]:before{content:"js"}div[class~=language-ts]:before{content:"ts"}div[class~=language-html]:before{content:"html"}div[class~=language-md]:before{content:"md"}div[class~=language-vue]:before{content:"vue"}div[class~=language-css]:before{content:"css"}div[class~=language-sass]:before{content:"sass"}div[class~=language-scss]:before{content:"scss"}div[class~=language-less]:before{content:"less"}div[class~=language-stylus]:before{content:"stylus"}div[class~=language-go]:before{content:"go"}div[class~=language-java]:before{content:"java"}div[class~=language-c]:before{content:"c"}div[class~=language-sh]:before{content:"sh"}div[class~=language-yaml]:before{content:"yaml"}div[class~=language-py]:before{content:"py"}div[class~=language-docker]:before{content:"docker"}div[class~=language-dockerfile]:before{content:"dockerfile"}div[class~=language-makefile]:before{content:"makefile"}div[class~=language-javascript]:before{content:"js"}div[class~=language-typescript]:before{content:"ts"}div[class~=language-markup]:before{content:"html"}div[class~=language-markdown]:before{content:"md"}div[class~=language-json]:before{content:"json"}div[class~=language-ruby]:before{content:"rb"}div[class~=language-python]:before{content:"py"}div[class~=language-bash]:before{content:"sh"}div[class~=language-php]:before{content:"php"}.custom-block .custom-block-title{font-weight:600;letter-spacing:.1rem;margin-bottom:-.4rem}.custom-block.danger,.custom-block.tip,.custom-block.warning{padding:.1rem 1.5rem;border:none;border-radius:6px;margin:1rem 0}.custom-block.tip{background-color:#1b4b35;background-color:var(--badgeTipColor)}.custom-block.warning{background-color:#574e21;background-color:var(--badgeWarningColor);color:#dfd6aa;color:var(--badgeWarningTextColor)}.custom-block.warning .custom-block-title{color:#c9bb72;color:var(--badgeWarningTitleColor)}.custom-block.warning a{color:#b0ae9d;color:var(--textMutedColor)}.custom-block.danger{background-color:#692025;background-color:var(--badgeErrorColor);color:#e5a9ad;color:var(--badgeErrorTextColor)}.custom-block.danger .custom-block-title{color:#d37077;color:var(--badgeErrorTitleColor)}.custom-block.danger a{color:#b0ae9d;color:var(--textMutedColor)}.custom-block.details{display:block;position:relative;border-radius:6px;margin:1em 0;padding:1.5em;background-color:hsla(0,0%,100%,.1);background-color:var(--selectionColor)}.custom-block.details h4{margin-top:0}.custom-block.details figure:last-child,.custom-block.details p:last-child{margin-bottom:0;padding-bottom:0}.custom-block.details summary{outline:none;cursor:pointer}.arrow{display:inline-block;width:0;height:0}.arrow.up{border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:6px solid #555;border-bottom-color:var(--arrowBgColor)}.arrow.down{border-left:4px solid transparent;border-right:4px solid transparent;border-top:6px solid #555;border-top-color:var(--arrowBgColor)}.arrow.right{border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:6px solid #555;border-left-color:var(--arrowBgColor)}.arrow.left{border-top:4px solid transparent;border-bottom:4px solid transparent;border-right:6px solid #555;border-right-color:var(--arrowBgColor)}.theme-succinct-content:not(.custom){max-width:740px;margin:0 auto;padding:2rem 2.5rem}@media (max-width:959px){.theme-succinct-content:not(.custom){padding:2rem}}@media (max-width:419px){.theme-succinct-content:not(.custom){padding:1.5rem}}.table-of-contents .badge{vertical-align:middle}:root,[data-theme=light]{--accentColor:#00bfff;--textColor:#2c3e50;--textMutedColor:#4e6e8e;--selectionColor:rgba(0,0,0,0.1);--headerColor:#3a5169;--descriptionColor:#6a8bad;--borderColor:#eaecef;--codeColor:#476582;--codeBgColor:#282c34;--codeBgHighlightColor:#3d4148;--arrowBgColor:#ccc;--bodyBgColor:#fff;--bodyComplementColor:#fafafa;--badgeTipColor:#e3f8ff;--badgeWarningColor:#f8f2d1;--badgeWarningTextColor:#776712;--badgeWarningTitleColor:#c6ac1e;--badgeErrorColor:#ffdadc;--badgeErrorTextColor:#8e0008;--badgeErrorTitleColor:#ed000d;--actionBtnBorderColor:#00ace6;--actionBtnHoverBorderColor:#1ac5ff;--codeBlockActiveColor:#007ca6;--navItemHoverColor:#14c4ff}[data-theme=dark]{--accentColor:#30bcd5;--textColor:#ccc;--textMutedColor:#999;--selectionColor:hsla(0,0%,100%,0.1);--headerColor:#c2c2c2;--descriptionColor:#b8b8b8;--borderColor:#4c525c;--codeColor:#a3a3a3;--codeBgColor:#1a1c22;--codeBgHighlightColor:#202228;--arrowBgColor:#555;--bodyBgColor:#2d3033;--bodyComplementColor:#373a3e;--badgeTipColor:#023e52;--badgeWarningColor:#574e21;--badgeWarningTextColor:#dfd6aa;--badgeWarningTitleColor:#c9bb72;--badgeErrorColor:#692025;--badgeErrorTextColor:#e5a9ad;--badgeErrorTitleColor:#d37077;--actionBtnBorderColor:#28acc3;--actionBtnHoverBorderColor:#28acc3;--codeBlockActiveColor:#007ca6;--navItemHoverColor:#29b0c8}*{scrollbar-color:hsla(0,0%,100%,.1) #2f3037;scrollbar-color:var(--selectionColor) var(--bodyComplementColor);scroll-behavior:smooth}::-webkit-scrollbar,::-webkit-scrollbar-track{background-color:#2f3037;background-color:var(--bodyComplementColor)}::-webkit-scrollbar-thumb{background-color:hsla(0,0%,100%,.1);background-color:var(--selectionColor)}::-webkit-scrollbar-button{background-color:#2f3037;background-color:var(--bodyComplementColor)}@media screen and (prefers-reduced-motion:true){*{scroll-behavior:auto}}::selection{background:hsla(0,0%,100%,.1);background:var(--selectionColor)}body,html{padding:0;margin:0;background-color:#25262b;background-color:var(--bodyBgColor)}.theme-code-group__nav-tab,.theme-container,body{font-family:$bodyFontFamily,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.theme-container,body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-size:16px;color:#e2e1db;color:var(--textColor)}body{min-height:100vh}.page{padding-left:20rem}.navbar{z-index:20;right:0;height:3.6rem;background-color:#25262b;background-color:var(--bodyBgColor);box-sizing:border-box;border-bottom:1px solid #4c525c;border-bottom-color:var(--borderColor)}.navbar,.sidebar-mask{position:fixed;top:0;left:0}.sidebar-mask{z-index:9;width:100vw;height:100vh;display:none}.sidebar{font-size:16px;background-color:#25262b;background-color:var(--bodyBgColor);width:20rem;position:fixed;z-index:10;margin:0;top:3.6rem;left:0;bottom:0;box-sizing:border-box;border-right:1px solid #4c525c;border-right-color:var(--borderColor);overflow-y:auto}.search-box input{color:#b0ae9d!important;color:var(--textMutedColor)!important;border-color:#4c525c!important;border-color:var(--borderColor)!important;background-color:#25262b!important;background-color:var(--bodyBgColor)!important}.search-box input:focus{border-color:#3eaf7c!important;border-color:var(--accentColor)!important}.search-box .suggestions{background:#25262b!important;background:var(--bodyBgColor)!important;border-color:#4c525c!important;border-color:var(--borderColor)!important}.search-box .suggestion a{color:#b0ae9d!important;color:var(--textMutedColor)!important}.search-box .suggestion.focused{background-color:#2f3037!important;background-color:var(--bodyComplementColor)!important}.search-box .suggestion.focused a{color:#3eaf7c!important;color:var(--accentColor)!important}.theme-succinct-content:not(.custom)>:first-child{margin-top:3.6rem}.theme-succinct-content:not(.custom) a:hover{text-decoration:underline}.theme-succinct-content:not(.custom) p.demo{padding:1rem 1.5rem;border:1px solid #4c525c;border-color:var(--borderColor);border-radius:4px}.theme-succinct-content:not(.custom) img{max-width:100%}.theme-succinct-content.custom{padding:0;margin:0}.theme-succinct-content.custom img{max-width:100%}a{font-weight:500;text-decoration:none}a,p a code{color:#3eaf7c;color:var(--accentColor)}p a code{font-weight:400}kbd{background:#b0ae9d;background:var(--textMutedColor);border:.15rem solid #4c525c;border-color:var(--borderColor);border-bottom:.25rem solid var(--borderColor);border-radius:.15rem;padding:0 .15em}blockquote{font-size:inherit;color:#b0ae9d;color:var(--textMutedColor);border-left:.2rem solid #4c525c;border-left-color:var(--borderColor);margin:.5rem 0;padding:.25rem 0 .25rem 1rem}blockquote>p{margin:0}ol,ul{padding-left:1.2em}strong{font-weight:600}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.25}.theme-succinct-content:not(.custom)>h1,.theme-succinct-content:not(.custom)>h2,.theme-succinct-content:not(.custom)>h3,.theme-succinct-content:not(.custom)>h4,.theme-succinct-content:not(.custom)>h5,.theme-succinct-content:not(.custom)>h6{margin-top:-3.1rem;padding-top:4.6rem;margin-bottom:0}.theme-succinct-content:not(.custom)>h1:first-child,.theme-succinct-content:not(.custom)>h2:first-child,.theme-succinct-content:not(.custom)>h3:first-child,.theme-succinct-content:not(.custom)>h4:first-child,.theme-succinct-content:not(.custom)>h5:first-child,.theme-succinct-content:not(.custom)>h6:first-child{margin-top:-1.5rem;margin-bottom:1rem}.theme-succinct-content:not(.custom)>h1:first-child+.custom-block,.theme-succinct-content:not(.custom)>h1:first-child+p,.theme-succinct-content:not(.custom)>h1:first-child+pre,.theme-succinct-content:not(.custom)>h2:first-child+.custom-block,.theme-succinct-content:not(.custom)>h2:first-child+p,.theme-succinct-content:not(.custom)>h2:first-child+pre,.theme-succinct-content:not(.custom)>h3:first-child+.custom-block,.theme-succinct-content:not(.custom)>h3:first-child+p,.theme-succinct-content:not(.custom)>h3:first-child+pre,.theme-succinct-content:not(.custom)>h4:first-child+.custom-block,.theme-succinct-content:not(.custom)>h4:first-child+p,.theme-succinct-content:not(.custom)>h4:first-child+pre,.theme-succinct-content:not(.custom)>h5:first-child+.custom-block,.theme-succinct-content:not(.custom)>h5:first-child+p,.theme-succinct-content:not(.custom)>h5:first-child+pre,.theme-succinct-content:not(.custom)>h6:first-child+.custom-block,.theme-succinct-content:not(.custom)>h6:first-child+p,.theme-succinct-content:not(.custom)>h6:first-child+pre{margin-top:2rem}h1:hover .header-anchor,h2:hover .header-anchor,h3:hover .header-anchor,h4:hover .header-anchor,h5:hover .header-anchor,h6:hover .header-anchor{opacity:1}h1{font-size:2.2rem}h2{font-size:1.65rem;padding-bottom:.3rem;border-bottom:1px solid #4c525c;border-bottom-color:var(--borderColor)}h3{font-size:1.35rem}a.header-anchor{font-size:.85em;float:left;margin-left:-.87em;padding-right:.23em;margin-top:.125em;opacity:0}a.header-anchor:hover{text-decoration:none}.line-number,code,kbd{font-family:$monoFontFamily,source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}ol,p,td,th,ul{line-height:1.7}hr{border:0;border-top:1px solid #4c525c;border-top-color:var(--borderColor)}table{border-collapse:collapse;margin:1rem 0;display:block;overflow-x:auto}tr{border-top:1px solid #4c525c;border-top-color:var(--borderColor)}tr:nth-child(2n){background-color:#2f3037;background-color:var(--bodyComplementColor)}td,th{border:1px solid #4c525c;border-color:var(--borderColor);padding:.6em 1em}.theme-code-group__nav{margin-bottom:-15px!important;background-color:#202228!important;background-color:var(--codeBgHighlightColor)!important}.theme-code-group__nav-tab{padding-right:10px!important;padding-left:10px!important}.theme-code-group__nav-tab-active{background-color:#287251!important;background-color:var(--codeBlockActiveColor)!important;outline-color:#287251!important;outline-color:var(--codeBlockActiveColor)!important;border:none!important}.theme-container.sidebar-open .sidebar-mask{display:block}.theme-container.no-navbar .theme-succinct-content:not(.custom)>h1,.theme-container.no-navbar h2,.theme-container.no-navbar h3,.theme-container.no-navbar h4,.theme-container.no-navbar h5,.theme-container.no-navbar h6{margin-top:1.5rem;padding-top:0}.theme-container.no-navbar .sidebar{top:0}@media (min-width:720px){.theme-container.no-sidebar .sidebar{display:none}.theme-container.no-sidebar .page{padding-left:0}}@media (max-width:959px){.sidebar{font-size:15px;width:16.4rem}.page{padding-left:16.4rem}}@media (max-width:719px){.sidebar{top:0;padding-top:3.6rem;transform:translateX(-100%);transition:transform .2s ease}.page{padding-left:0}.theme-container.sidebar-open .sidebar{transform:translateX(0)}.theme-container.no-navbar .sidebar{padding-top:0}}@media (max-width:419px){h1{font-size:1.9rem}.theme-succinct-content div[class*=language-]{margin:.85rem -1.5rem;border-radius:0}}[data-theme=light]{--sideBgColor:#fff}[data-theme=dark]{--sideBgColor:#363b40;--bgColor:#111112}.home .hero img{max-width:450px!important}.navbar{filter:drop-shadow(0 1px 1px var(--bgColor))}.sidebar{background-color:var(--sideBgColor)}div[class*=language-] pre,div[class*=language-] pre[class*=language-]{margin-top:0}html{overflow:scroll}::-webkit-scrollbar{width:0;background:transparent}tr:nth-child(1n){background-color:var(--bodyBgColor)}tr:nth-child(2n){background-color:var(--sideBgColor)}.dropdown-wrapper .nav-dropdown{border:1px solid var(--sideBgColor)!important;background-color:var(--sideBgColor)!important;box-shadow:0 0 2px var(--bodyBgColor);right:-12%!important}#nprogress{pointer-events:none}#nprogress .bar{background:#00bfff;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px #00bfff,0 0 5px #00bfff;opacity:1;transform:rotate(3deg) translateY(-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border-color:#00bfff transparent transparent #00bfff;border-style:solid;border-width:2px;border-radius:50%;-webkit-animation:nprogress-spinner .4s linear infinite;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@-webkit-keyframes nprogress-spinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes nprogress-spinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.go-to-top[data-v-5fd4ef0c]{cursor:pointer;position:fixed;bottom:2rem;right:2.5rem;width:2rem;color:#00bfff;z-index:1}.go-to-top[data-v-5fd4ef0c]:hover{color:#4dd2ff}@media (max-width:959px){.go-to-top[data-v-5fd4ef0c]{display:none}}.fade-enter-active[data-v-5fd4ef0c],.fade-leave-active[data-v-5fd4ef0c]{transition:opacity .3s}.fade-enter[data-v-5fd4ef0c],.fade-leave-to[data-v-5fd4ef0c]{opacity:0}.icon.outbound{color:#aaa;display:inline-block;vertical-align:middle;position:relative;top:-1px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.home{padding:3.6rem 2rem 0;max-width:960px;margin:0 auto;display:block}.home .hero{text-align:center}.home .hero img{max-width:100%;max-height:280px;display:block;margin:3rem auto 1.5rem}.home .hero h1{font-size:3rem}.home .hero .action,.home .hero .description,.home .hero h1{margin:1.8rem auto}.home .hero .description{max-width:40rem;font-size:1.6rem;line-height:1.3;color:#ceccc2;color:var(--descriptionColor)}.home .hero .action-button{display:inline-block;font-size:1.2rem;color:#25262b;color:var(--bodyBgColor);background-color:#3eaf7c;background-color:var(--accentColor);padding:.6rem 1.4rem;border-radius:40px;transition:background-color .1s ease;box-sizing:border-box;border-bottom:1px solid #389d70;border-bottom-color:var(--actionBtnBorderColor)}.home .hero .action-button:hover{background-color:#389d70;background-color:var(--actionBtnHoverBorderColor)}.home .features{border-top:1px solid #4c525c;border-top-color:var(--borderColor);padding:1.2rem 0;margin-top:2.5rem;display:flex;flex-wrap:wrap;align-items:flex-start;align-content:stretch;justify-content:space-between}.home .feature{flex-grow:1;flex-basis:30%;max-width:30%}.home .feature h2{font-size:1.4rem;font-weight:500;border-bottom:none;padding-bottom:0;color:#d8d7cf;color:var(--headerColor)}.home .feature p,.home .footer{color:#b0ae9d;color:var(--textMutedColor)}.home .footer{padding:2.5rem;border-top:1px solid #4c525c;border-top-color:var(--borderColor);text-align:center}@media (max-width:719px){.home .features{flex-direction:column}.home .feature{max-width:100%;padding:0 2.5rem}}@media (max-width:419px){.home{padding-left:1.5rem;padding-right:1.5rem}.home .hero img{max-height:210px;margin:2rem auto 1.2rem}.home .hero h1{font-size:2rem}.home .hero .action,.home .hero .description,.home .hero h1{margin:1.2rem auto}.home .hero .description{font-size:1.2rem}.home .hero .action-button{font-size:1rem;padding:.6rem 1.2rem}.home .feature h2{font-size:1.25rem}}.search-box{display:inline-block;position:relative;margin-right:1rem}.search-box input{cursor:text;width:10rem;height:2rem;color:#4e6e8e;display:inline-block;border:1px solid #cfd4db;border-radius:2rem;font-size:.9rem;line-height:2rem;padding:0 .5rem 0 2rem;outline:none;transition:all .2s ease;background:#fff url(/Getting-Started-With-ACPI/assets/img/search.83621669.svg) .6rem .5rem no-repeat;background-size:1rem}.search-box input:focus{cursor:auto;border-color:#00bfff}.search-box .suggestions{background:#fff;width:20rem;position:absolute;top:2rem;border:1px solid #cfd4db;border-radius:6px;padding:.4rem;list-style-type:none}.search-box .suggestions.align-right{right:0}.search-box .suggestion{line-height:1.4;padding:.4rem .6rem;border-radius:4px;cursor:pointer}.search-box .suggestion a{white-space:normal;color:#5d82a6}.search-box .suggestion a .page-title{font-weight:600}.search-box .suggestion a .header{font-size:.9em;margin-left:.25em}.search-box .suggestion.focused{background-color:#f3f4f5}.search-box .suggestion.focused a{color:#00bfff}@media (max-width:959px){.search-box input{cursor:pointer;width:0;border-color:transparent;position:relative}.search-box input:focus{cursor:text;left:0;width:10rem}}@media (-ms-high-contrast:none){.search-box input{height:2rem}}@media (max-width:959px) and (min-width:719px){.search-box .suggestions{left:0}}@media (max-width:719px){.search-box{margin-right:0}.search-box input{left:1rem}.search-box .suggestions{right:0}}@media (max-width:419px){.search-box .suggestions{width:calc(100vw - 4rem)}.search-box input:focus{width:8rem}}.sidebar-button{cursor:pointer;display:none;width:1.25rem;height:1.25rem;position:absolute;padding:.6rem;top:.6rem;left:1rem}.sidebar-button .icon{display:block;width:1.25rem;height:1.25rem}@media (max-width:719px){.sidebar-button{display:block}}.dropdown-enter,.dropdown-leave-to{height:0!important}.dropdown-wrapper{cursor:pointer}.dropdown-wrapper .dropdown-title,.dropdown-wrapper .mobile-dropdown-title{display:block;font-size:.9rem;font-family:inherit;cursor:inherit;padding:inherit;line-height:1.4rem;background:transparent;border:none;font-weight:500;color:#e2e1db;color:var(--textColor)}.dropdown-wrapper .dropdown-title:hover,.dropdown-wrapper .mobile-dropdown-title:hover{border-color:transparent}.dropdown-wrapper .dropdown-title .arrow,.dropdown-wrapper .mobile-dropdown-title .arrow{vertical-align:middle;margin-top:-1px;margin-left:.4rem}.dropdown-wrapper .mobile-dropdown-title{display:none;font-weight:600}.dropdown-wrapper .mobile-dropdown-title font-size inherit:hover{color:#3eaf7c;color:var(--accentColor)}.dropdown-wrapper .nav-dropdown .dropdown-item{color:inherit;line-height:1.7rem}.dropdown-wrapper .nav-dropdown .dropdown-item h4{margin:.45rem 0 0;border-top:1px solid #4c525c;border-top-color:var(--borderColor);padding:.45rem 1.5rem 0 1.25rem}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem-wrapper{padding:0;list-style:none}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem-wrapper .dropdown-subitem{font-size:.9em}.dropdown-wrapper .nav-dropdown .dropdown-item a{display:block;line-height:1.7rem;position:relative;border-bottom:none;font-weight:400;margin-bottom:0;padding:0 1.5rem 0 1.25rem}.dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active,.dropdown-wrapper .nav-dropdown .dropdown-item a:hover{color:#3eaf7c;color:var(--accentColor)}.dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active:after{content:"";width:0;height:0;border-left:5px solid #3eaf7c;border-left-color:var(--accentColor);border-top:3px solid transparent;border-bottom:3px solid transparent;position:absolute;top:calc(50% - 2px);left:9px}.dropdown-wrapper .nav-dropdown .dropdown-item:first-child h4{margin-top:0;padding-top:0;border-top:0}@media (max-width:719px){.dropdown-wrapper.open .dropdown-title{margin-bottom:.5rem}.dropdown-wrapper .dropdown-title{display:none}.dropdown-wrapper .mobile-dropdown-title{display:block}.dropdown-wrapper .nav-dropdown{transition:height .1s ease-out;overflow:hidden}.dropdown-wrapper .nav-dropdown .dropdown-item h4{border-top:0;margin-top:0;padding-top:0}.dropdown-wrapper .nav-dropdown .dropdown-item>a,.dropdown-wrapper .nav-dropdown .dropdown-item h4{font-size:15px;line-height:2rem}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem{font-size:14px;padding-left:1rem}}@media (min-width:719px){.dropdown-wrapper{height:1.8rem}.dropdown-wrapper.open .nav-dropdown,.dropdown-wrapper:hover .nav-dropdown{display:block!important}.dropdown-wrapper.open:blur{display:none}.dropdown-wrapper .nav-dropdown{display:none;height:auto!important;box-sizing:border-box;max-height:calc(100vh - 2.7rem);overflow-y:auto;position:absolute;top:100%;right:0;background-color:#25262b;background-color:var(--bodyBgColor);padding:.6rem 0;border:1px solid #4c525c;border-color:var(--borderColor);text-align:left;border-radius:.25rem;white-space:nowrap;margin:0}}.nav-links{display:inline-block;cursor:pointer}.nav-links a{line-height:1.4rem;color:inherit}.nav-links a.router-link-active,.nav-links a:hover{color:#3eaf7c;color:var(--accentColor)}.nav-links .nav-item{position:relative;display:inline-block;margin-left:1.5rem;line-height:2rem}.nav-links .nav-item:first-child{margin-left:0}.nav-links .repo-link{margin-left:1.5rem}@media (max-width:719px){.nav-links .nav-item,.nav-links .repo-link{margin-left:0}}@media (min-width:719px){.nav-links a.router-link-active,.nav-links a:hover{color:#e2e1db;color:var(--textColor)}.nav-item>a:not(.external).router-link-active,.nav-item>a:not(.external):hover{margin-bottom:-2px;border-bottom:2px solid #39a172;border-bottom-color:var(--navItemHoverColor)}}.navbar{padding:.7rem 1.5rem;line-height:2.2rem}.navbar a,.navbar img,.navbar span{display:inline-block}.navbar .logo{height:2.2rem;min-width:2.2rem;margin-right:.8rem;vertical-align:top}.navbar .site-name{font-size:1.3rem;font-weight:600;color:#e2e1db;color:var(--textColor);position:relative}.navbar .links{padding-left:1.5rem;box-sizing:border-box;background-color:#25262b;background-color:var(--bodyBgColor);white-space:nowrap;font-size:.9rem;position:absolute;right:1.5rem;top:.7rem;display:flex}.navbar .links .search-box{flex:0 0 auto;vertical-align:top}@media (max-width:719px){.navbar{padding-left:4rem}.navbar .can-hide{display:none}.navbar .links{padding-left:1.5rem}.navbar .site-name{width:calc(100vw - 9.4rem);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}}.page-edit{max-width:740px;margin:0 auto;padding:2rem 2.5rem}@media (max-width:959px){.page-edit{padding:2rem}}@media (max-width:419px){.page-edit{padding:1.5rem}}.page-edit{padding-top:1rem;padding-bottom:1rem;overflow:auto}.page-edit .edit-link{display:inline-block}.page-edit .edit-link a{color:#b0ae9d;color:var(--textMutedColor);margin-right:.25rem}.page-edit .last-updated{float:right;font-size:.9em}.page-edit .last-updated .prefix{font-weight:500;color:#b0ae9d;color:var(--textMutedColor)}.page-edit .last-updated .time{font-weight:400;color:#aaa}@media (max-width:719px){.page-edit .edit-link{margin-bottom:.5rem}.page-edit .last-updated{font-size:.8em;float:none;text-align:left}}.page-nav{max-width:740px;margin:0 auto;padding:2rem 2.5rem}@media (max-width:959px){.page-nav{padding:2rem}}@media (max-width:419px){.page-nav{padding:1.5rem}}.page-nav{padding-top:1rem;padding-bottom:0}.page-nav .inner{min-height:2rem;margin-top:0;border-top:1px solid #4c525c;border-top-color:var(--borderColor);padding-top:1rem;overflow:auto}.page-nav .next{float:right}.page{padding-bottom:2rem;display:block}.sidebar-group .sidebar-group{padding-left:.5em}.sidebar-group:not(.collapsable) .sidebar-heading:not(.clickable){cursor:auto;color:inherit}.sidebar-group.is-sub-group{padding-left:0}.sidebar-group.is-sub-group>.sidebar-heading{font-size:.95em;line-height:1.4;font-weight:400;padding-left:2rem}.sidebar-group.is-sub-group>.sidebar-heading:not(.clickable){opacity:.5}.sidebar-group.is-sub-group>.sidebar-group-items{padding-left:1rem}.sidebar-group.is-sub-group>.sidebar-group-items>li>.sidebar-link{font-size:.95em;border-left:none}.sidebar-group.depth-2>.sidebar-heading{border-left:none}.sidebar-heading{color:#2c3e50;color:var(--textColor);transition:color .15s ease;cursor:pointer;font-size:1.1em;font-weight:700;padding:.35rem 1.5rem .35rem 1.25rem;width:100%;box-sizing:border-box;margin:0;border-left:.25rem solid transparent}.sidebar-heading.open,.sidebar-heading:hover{color:inherit}.sidebar-heading .arrow{position:relative;top:-.12em;left:.5em}.sidebar-heading.clickable.active{font-weight:600;border-left-color:#3eaf7c;border-left-color:var(--accentColor)}.sidebar-heading.clickable.active,.sidebar-heading.clickable:hover{color:#3eaf7c;color:var(--accentColor)}.sidebar-group-items{transition:height .1s ease-out;font-size:.95em;overflow:hidden}.sidebar .sidebar-sub-headers{padding-left:1rem;font-size:.95em}a.sidebar-link{font-size:1em;font-weight:400;display:inline-block;color:#e2e1db;color:var(--textColor);border-left:.25rem solid transparent;padding:.35rem 1rem .35rem 1.25rem;line-height:1.4;width:100%;box-sizing:border-box}a.sidebar-link.active,a.sidebar-link:hover{color:#3eaf7c;color:var(--accentColor)}a.sidebar-link.active{font-weight:600;border-left-color:#3eaf7c;border-left-color:var(--accentColor)}.sidebar-group a.sidebar-link{padding-left:2rem}.sidebar-sub-headers a.sidebar-link{padding-top:.25rem;padding-bottom:.25rem;border-left:none}.sidebar-sub-headers a.sidebar-link.active{font-weight:500}.sidebar ul{padding:0;margin:0;list-style-type:none}.sidebar a{display:inline-block}.sidebar .nav-links{display:none;border-bottom:1px solid #4c525c;border-bottom-color:var(--borderColor);padding:.5rem 0 .75rem}.sidebar .nav-links a{font-weight:600}.sidebar .nav-links .nav-item,.sidebar .nav-links .repo-link{display:block;line-height:1.25rem;font-size:1.1em;padding:.5rem 0 .5rem 1.5rem}.sidebar>.sidebar-links{padding:1.5rem 0}.sidebar>.sidebar-links>li>a.sidebar-link{font-size:1.1em;line-height:1.7;font-weight:700}.sidebar>.sidebar-links>li:not(:first-child){margin-top:.75rem}@media (max-width:719px){.sidebar .nav-links{display:block}.sidebar .nav-links .dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active:after{top:calc(1rem - 2px)}.sidebar>.sidebar-links{padding:1rem 0}}.badge[data-v-269eac46]{display:inline-block;font-size:14px;height:18px;line-height:18px;border-radius:3px;padding:0 6px;color:#fff;background-color:#42b983}.badge.green[data-v-269eac46],.badge.tip[data-v-269eac46]{background-color:$badgeTipColorDefault;background-color:var(--badgeTipColor)}.badge.error[data-v-269eac46]{background-color:$badgeErrorColorDefault;background-color:var(--badgeErrorColor)}.badge.warn[data-v-269eac46],.badge.warning[data-v-269eac46],.badge.yellow[data-v-269eac46]{background-color:$badgeWarningColorDefault;background-color:var(--badgeWarningColor)}.badge+.badge[data-v-269eac46]{margin-left:5px}.badge[data-v-15b7b770]{display:inline-block;font-size:14px;height:18px;line-height:18px;border-radius:3px;padding:0 6px;color:#fff;background-color:#42b983}.badge.green[data-v-15b7b770],.badge.tip[data-v-15b7b770]{background-color:#e3f8ff}.badge.error[data-v-15b7b770]{background-color:#da5961}.badge.warn[data-v-15b7b770],.badge.warning[data-v-15b7b770],.badge.yellow[data-v-15b7b770]{background-color:#e7c000}.badge+.badge[data-v-15b7b770]{margin-left:5px}.theme-code-block[data-v-6d04095e]{display:none}.theme-code-block__active[data-v-6d04095e]{display:block}.theme-code-block>pre[data-v-6d04095e]{background-color:orange}.theme-code-group__nav[data-v-32c2d7ed]{margin-bottom:-35px;background-color:#282c34;padding-bottom:22px;border-top-left-radius:6px;border-top-right-radius:6px;padding-left:10px;padding-top:10px}.theme-code-group__ul[data-v-32c2d7ed]{margin:auto 0;padding-left:0;display:inline-flex;list-style:none}.theme-code-group__nav-tab[data-v-32c2d7ed]{border:0;padding:5px;cursor:pointer;background-color:transparent;font-size:.85em;line-height:1.4;color:hsla(0,0%,100%,.9);font-weight:600}.theme-code-group__nav-tab-active[data-v-32c2d7ed]{border-bottom:1px solid #42b983}.pre-blank[data-v-32c2d7ed]{color:#42b983} \ No newline at end of file diff --git a/assets/css/0.styles.ed9fcb48.css b/assets/css/0.styles.ed9fcb48.css deleted file mode 100644 index 65b7d67..0000000 --- a/assets/css/0.styles.ed9fcb48.css +++ /dev/null @@ -1 +0,0 @@ -@import url($themeFont);html{scroll-behavior:smooth}.medium-zoom-overlay{z-index:100}.medium-zoom-overlay~img{z-index:101}code[class*=language-],pre[class*=language-]{color:#ccc;background:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#2d2d2d}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.block-comment,.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#999}.token.punctuation{color:#ccc}.token.attr-name,.token.deleted,.token.namespace,.token.tag{color:#e2777a}.token.function-name{color:#6196cc}.token.boolean,.token.function,.token.number{color:#f08d49}.token.class-name,.token.constant,.token.property,.token.symbol{color:#f8c555}.token.atrule,.token.builtin,.token.important,.token.keyword,.token.selector{color:#cc99cd}.token.attr-value,.token.char,.token.regex,.token.string,.token.variable{color:#7ec699}.token.entity,.token.operator,.token.url{color:#67cdcc}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:green}.theme-default-content code{color:#476582;padding:.25rem .5rem;margin:0;font-size:.85em;background-color:rgba(27,31,35,.05);border-radius:3px}.theme-default-content code .token.deleted{color:#ec5975}.theme-default-content code .token.inserted{color:#00bfff}.theme-default-content pre,.theme-default-content pre[class*=language-]{line-height:1.4;padding:1.25rem 1.5rem;margin:.85rem 0;background-color:#282c34;border-radius:6px;overflow:auto}.theme-default-content pre[class*=language-] code,.theme-default-content pre code{color:#fff;padding:0;background-color:transparent;border-radius:0}div[class*=language-]{background-color:#282c34}div[class*=language-] .highlight-lines{padding-top:1.3rem}div[class*=language-] .highlight-lines .highlighted{background-color:rgba(0,0,0,.66)}div[class*=language-].line-numbers-mode:after{background-color:#282c34}.custom-block.danger,.custom-block.tip,.custom-block.warning{border-left-width:.5rem;border-left-style:solid}.custom-block.tip{background-color:#f3f5f7;border-color:#42b983}.custom-block.warning{background-color:rgba(255,229,100,.3);border-color:#e7c000;color:#6b5900}.custom-block.warning .custom-block-title{color:#b29400}.custom-block.warning a{color:#2c3e50}.custom-block.danger{background-color:#ffe6e6;border-color:#c00;color:#4d0000}.custom-block.danger .custom-block-title{color:#900}.custom-block.danger a{color:#2c3e50}.custom-block.details{border-radius:2px;margin:1.6em 0;padding:1.6em;background-color:#eee}.arrow.up{border-bottom:6px solid #ccc}.arrow.down{border-top:6px solid #ccc}.arrow.right{border-left:6px solid #ccc}.arrow.left{border-right:6px solid #ccc}.theme-default-content:not(.custom),.theme-succinct-content:not(.custom){max-width:740px;margin:0 auto;padding:2rem 2.5rem}@media (max-width:959px){.theme-default-content:not(.custom),.theme-succinct-content:not(.custom){padding:2rem}}@media (max-width:419px){.theme-default-content:not(.custom),.theme-succinct-content:not(.custom){padding:1.5rem}}body,html{background-color:#fff}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;color:#2c3e50}.navbar{border-bottom:1px solid #eaecef}.navbar,.sidebar{background-color:#fff}.sidebar{border-right:1px solid #eaecef}.theme-default-content:not(.custom)>:first-child{margin-top:3.6rem}.theme-default-content:not(.custom) a:hover{text-decoration:underline}.theme-default-content:not(.custom) p.demo{padding:1rem 1.5rem;border:1px solid #ddd;border-radius:4px}.theme-default-content:not(.custom) img{max-width:100%}.theme-default-content.custom{padding:0;margin:0}.theme-default-content.custom img{max-width:100%}a,p a code{color:#00bfff}kbd{background:#eee;border:.15rem solid #ddd;border-bottom:.25rem solid #ddd}blockquote{font-size:1rem;color:#999;border-left:.2rem solid #dfe2e5;margin:1rem 0}.theme-default-content:not(.custom)>h1,.theme-default-content:not(.custom)>h2,.theme-default-content:not(.custom)>h3,.theme-default-content:not(.custom)>h4,.theme-default-content:not(.custom)>h5,.theme-default-content:not(.custom)>h6{margin-top:-3.1rem;padding-top:4.6rem;margin-bottom:0}.theme-default-content:not(.custom)>h1:first-child,.theme-default-content:not(.custom)>h2:first-child,.theme-default-content:not(.custom)>h3:first-child,.theme-default-content:not(.custom)>h4:first-child,.theme-default-content:not(.custom)>h5:first-child,.theme-default-content:not(.custom)>h6:first-child{margin-top:-1.5rem;margin-bottom:1rem}.theme-default-content:not(.custom)>h1:first-child+.custom-block,.theme-default-content:not(.custom)>h1:first-child+p,.theme-default-content:not(.custom)>h1:first-child+pre,.theme-default-content:not(.custom)>h2:first-child+.custom-block,.theme-default-content:not(.custom)>h2:first-child+p,.theme-default-content:not(.custom)>h2:first-child+pre,.theme-default-content:not(.custom)>h3:first-child+.custom-block,.theme-default-content:not(.custom)>h3:first-child+p,.theme-default-content:not(.custom)>h3:first-child+pre,.theme-default-content:not(.custom)>h4:first-child+.custom-block,.theme-default-content:not(.custom)>h4:first-child+p,.theme-default-content:not(.custom)>h4:first-child+pre,.theme-default-content:not(.custom)>h5:first-child+.custom-block,.theme-default-content:not(.custom)>h5:first-child+p,.theme-default-content:not(.custom)>h5:first-child+pre,.theme-default-content:not(.custom)>h6:first-child+.custom-block,.theme-default-content:not(.custom)>h6:first-child+p,.theme-default-content:not(.custom)>h6:first-child+pre{margin-top:2rem}h2{border-bottom:1px solid #eaecef}.line-number,code,kbd{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}ol,p,ul{line-height:1.7}hr{border-top:1px solid #eaecef}tr{border-top:1px solid #dfe2e5}tr:nth-child(2n){background-color:#f6f8fa}td,th{border:1px solid #dfe2e5}.theme-container.no-navbar .theme-default-content:not(.custom)>h1,.theme-container.no-navbar h2,.theme-container.no-navbar h3,.theme-container.no-navbar h4,.theme-container.no-navbar h5,.theme-container.no-navbar h6{margin-top:1.5rem;padding-top:0}@media (max-width:419px){h1{font-size:1.9rem}.theme-default-content div[class*=language-]{margin:.85rem -1.5rem;border-radius:0}}.theme-succinct-content code{color:#bab8aa;color:var(--codeColor);padding:.25rem .5rem;margin:0;font-size:.85em;background-color:rgba(27,31,35,.08);border-radius:3px}.theme-succinct-content code .token.deleted{color:#ec5975}.theme-succinct-content code .token.inserted{color:#3eaf7c;color:var(--accentColor)}.theme-succinct-content pre,.theme-succinct-content pre[class*=language-]{line-height:1.4;padding:1.25rem 1.5rem;margin:.85rem 0;background-color:#1a1c22;background-color:var(--codeBgColor);border-radius:6px;overflow:auto}.theme-succinct-content pre[class*=language-] code,.theme-succinct-content pre code{color:#fff;padding:0;background-color:transparent;border-radius:0}div[class*=language-]{position:relative;background-color:#1a1c22;background-color:var(--codeBgColor);border-radius:6px;overflow:hidden}div[class*=language-] .highlight-lines{-webkit-user-select:none;-ms-user-select:none;user-select:none;padding-top:2.1rem;position:absolute;top:0;left:0;width:100%;line-height:1.4}div[class*=language-] .highlight-lines .highlighted{background-color:#202228;background-color:var(--codeBgHighlightColor)}div[class*=language-] pre,div[class*=language-] pre[class*=language-]{background:transparent;position:relative;margin-bottom:0;z-index:1}div[class*=language-]:before{position:absolute;z-index:3;top:.8em;right:1em;font-size:.75rem;color:hsla(0,0%,100%,.4)}div[class*=language-]:not(.line-numbers-mode) .line-numbers-wrapper{display:none}div[class*=language-].line-numbers-mode .highlight-lines .highlighted{position:relative}div[class*=language-].line-numbers-mode .highlight-lines .highlighted:before{content:" ";position:absolute;z-index:3;left:0;top:0;display:block;width:3.5rem;height:100%;background-color:rgba(0,0,0,.66)}div[class*=language-].line-numbers-mode pre{padding-left:4.5rem;vertical-align:middle}div[class*=language-].line-numbers-mode .line-numbers-wrapper{position:absolute;top:0;width:3.5rem;text-align:center;color:hsla(0,0%,100%,.3);padding:1.25rem 0;line-height:1.4}div[class*=language-].line-numbers-mode .line-numbers-wrapper br{-webkit-user-select:none;-ms-user-select:none;user-select:none}div[class*=language-].line-numbers-mode .line-numbers-wrapper .line-number{position:relative;z-index:4;-webkit-user-select:none;-ms-user-select:none;user-select:none;font-size:.85em}div[class*=language-].line-numbers-mode:after{content:"";position:absolute;z-index:2;top:0;left:0;width:3.5rem;height:100%;border-radius:6px 0 0 6px;border-right:1px solid rgba(0,0,0,.66);background-color:#1a1c22;background-color:var(--codeBgColor)}div[class~=language-js]:before{content:"js"}div[class~=language-ts]:before{content:"ts"}div[class~=language-html]:before{content:"html"}div[class~=language-md]:before{content:"md"}div[class~=language-vue]:before{content:"vue"}div[class~=language-css]:before{content:"css"}div[class~=language-sass]:before{content:"sass"}div[class~=language-scss]:before{content:"scss"}div[class~=language-less]:before{content:"less"}div[class~=language-stylus]:before{content:"stylus"}div[class~=language-go]:before{content:"go"}div[class~=language-java]:before{content:"java"}div[class~=language-c]:before{content:"c"}div[class~=language-sh]:before{content:"sh"}div[class~=language-yaml]:before{content:"yaml"}div[class~=language-py]:before{content:"py"}div[class~=language-docker]:before{content:"docker"}div[class~=language-dockerfile]:before{content:"dockerfile"}div[class~=language-makefile]:before{content:"makefile"}div[class~=language-javascript]:before{content:"js"}div[class~=language-typescript]:before{content:"ts"}div[class~=language-markup]:before{content:"html"}div[class~=language-markdown]:before{content:"md"}div[class~=language-json]:before{content:"json"}div[class~=language-ruby]:before{content:"rb"}div[class~=language-python]:before{content:"py"}div[class~=language-bash]:before{content:"sh"}div[class~=language-php]:before{content:"php"}.custom-block .custom-block-title{font-weight:600;letter-spacing:.1rem;margin-bottom:-.4rem}.custom-block.danger,.custom-block.tip,.custom-block.warning{padding:.1rem 1.5rem;border:none;border-radius:6px;margin:1rem 0}.custom-block.tip{background-color:#1b4b35;background-color:var(--badgeTipColor)}.custom-block.warning{background-color:#574e21;background-color:var(--badgeWarningColor);color:#dfd6aa;color:var(--badgeWarningTextColor)}.custom-block.warning .custom-block-title{color:#c9bb72;color:var(--badgeWarningTitleColor)}.custom-block.warning a{color:#b0ae9d;color:var(--textMutedColor)}.custom-block.danger{background-color:#692025;background-color:var(--badgeErrorColor);color:#e5a9ad;color:var(--badgeErrorTextColor)}.custom-block.danger .custom-block-title{color:#d37077;color:var(--badgeErrorTitleColor)}.custom-block.danger a{color:#b0ae9d;color:var(--textMutedColor)}.custom-block.details{display:block;position:relative;border-radius:6px;margin:1em 0;padding:1.5em;background-color:hsla(0,0%,100%,.1);background-color:var(--selectionColor)}.custom-block.details h4{margin-top:0}.custom-block.details figure:last-child,.custom-block.details p:last-child{margin-bottom:0;padding-bottom:0}.custom-block.details summary{outline:none;cursor:pointer}.arrow{display:inline-block;width:0;height:0}.arrow.up{border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:6px solid #555;border-bottom-color:var(--arrowBgColor)}.arrow.down{border-left:4px solid transparent;border-right:4px solid transparent;border-top:6px solid #555;border-top-color:var(--arrowBgColor)}.arrow.right{border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:6px solid #555;border-left-color:var(--arrowBgColor)}.arrow.left{border-top:4px solid transparent;border-bottom:4px solid transparent;border-right:6px solid #555;border-right-color:var(--arrowBgColor)}.theme-succinct-content:not(.custom){max-width:740px;margin:0 auto;padding:2rem 2.5rem}@media (max-width:959px){.theme-succinct-content:not(.custom){padding:2rem}}@media (max-width:419px){.theme-succinct-content:not(.custom){padding:1.5rem}}.table-of-contents .badge{vertical-align:middle}[data-theme=light]{--accentColor:#00bfff;--textColor:#2c3e50;--textMutedColor:#4e6e8e;--selectionColor:rgba(0,0,0,0.1);--headerColor:#3a5169;--descriptionColor:#6a8bad;--borderColor:#eaecef;--codeColor:#476582;--codeBgColor:#282c34;--codeBgHighlightColor:#3d4148;--arrowBgColor:#ccc;--bodyBgColor:#fff;--bodyComplementColor:#fafafa;--badgeTipColor:#e3f8ff;--badgeWarningColor:#f8f2d1;--badgeWarningTextColor:#776712;--badgeWarningTitleColor:#c6ac1e;--badgeErrorColor:#ffdadc;--badgeErrorTextColor:#8e0008;--badgeErrorTitleColor:#ed000d;--actionBtnBorderColor:#00ace6;--actionBtnHoverBorderColor:#1ac5ff;--codeBlockActiveColor:#007ca6;--navItemHoverColor:#14c4ff}[data-theme=dark]{--accentColor:#30bcd5;--textColor:#ccc;--textMutedColor:#999;--selectionColor:hsla(0,0%,100%,0.1);--headerColor:#c2c2c2;--descriptionColor:#b8b8b8;--borderColor:#4c525c;--codeColor:#a3a3a3;--codeBgColor:#1a1c22;--codeBgHighlightColor:#202228;--arrowBgColor:#555;--bodyBgColor:#2d3033;--bodyComplementColor:#373a3e;--badgeTipColor:#023e52;--badgeWarningColor:#574e21;--badgeWarningTextColor:#dfd6aa;--badgeWarningTitleColor:#c9bb72;--badgeErrorColor:#692025;--badgeErrorTextColor:#e5a9ad;--badgeErrorTitleColor:#d37077;--actionBtnBorderColor:#28acc3;--actionBtnHoverBorderColor:#28acc3;--codeBlockActiveColor:#007ca6;--navItemHoverColor:#29b0c8}*{scrollbar-color:hsla(0,0%,100%,.1) #2f3037;scrollbar-color:var(--selectionColor) var(--bodyComplementColor);scroll-behavior:smooth}::-webkit-scrollbar,::-webkit-scrollbar-track{background-color:#2f3037;background-color:var(--bodyComplementColor)}::-webkit-scrollbar-thumb{background-color:hsla(0,0%,100%,.1);background-color:var(--selectionColor)}::-webkit-scrollbar-button{background-color:#2f3037;background-color:var(--bodyComplementColor)}@media screen and (prefers-reduced-motion:true){*{scroll-behavior:auto}}::selection{background:hsla(0,0%,100%,.1);background:var(--selectionColor)}body,html{padding:0;margin:0;background-color:#25262b;background-color:var(--bodyBgColor)}.theme-code-group__nav-tab,.theme-container,body{font-family:$bodyFontFamily,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.theme-container,body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-size:16px;color:#e2e1db;color:var(--textColor)}.page{padding-left:20rem}.navbar{z-index:20;right:0;height:3.6rem;background-color:#25262b;background-color:var(--bodyBgColor);box-sizing:border-box;border-bottom:1px solid #4c525c;border-bottom-color:var(--borderColor)}.navbar,.sidebar-mask{position:fixed;top:0;left:0}.sidebar-mask{z-index:9;width:100vw;height:100vh;display:none}.sidebar{font-size:16px;background-color:#25262b;background-color:var(--bodyBgColor);width:20rem;position:fixed;z-index:10;margin:0;top:3.6rem;left:0;bottom:0;box-sizing:border-box;border-right:1px solid #4c525c;border-right-color:var(--borderColor);overflow-y:auto}.search-box input{color:#b0ae9d!important;color:var(--textMutedColor)!important;border-color:#4c525c!important;border-color:var(--borderColor)!important;background-color:#25262b!important;background-color:var(--bodyBgColor)!important}.search-box input:focus{border-color:#3eaf7c!important;border-color:var(--accentColor)!important}.search-box .suggestions{background:#25262b!important;background:var(--bodyBgColor)!important;border-color:#4c525c!important;border-color:var(--borderColor)!important}.search-box .suggestion a{color:#b0ae9d!important;color:var(--textMutedColor)!important}.search-box .suggestion.focused{background-color:#2f3037!important;background-color:var(--bodyComplementColor)!important}.search-box .suggestion.focused a{color:#3eaf7c!important;color:var(--accentColor)!important}.theme-succinct-content:not(.custom)>:first-child{margin-top:3.6rem}.theme-succinct-content:not(.custom) a:hover{text-decoration:underline}.theme-succinct-content:not(.custom) p.demo{padding:1rem 1.5rem;border:1px solid #4c525c;border-color:var(--borderColor);border-radius:4px}.theme-succinct-content:not(.custom) img{max-width:100%}.theme-succinct-content.custom{padding:0;margin:0}.theme-succinct-content.custom img{max-width:100%}a{font-weight:500;text-decoration:none}a,p a code{color:#3eaf7c;color:var(--accentColor)}p a code{font-weight:400}kbd{background:#b0ae9d;background:var(--textMutedColor);border:.15rem solid #4c525c;border-color:var(--borderColor);border-bottom:.25rem solid var(--borderColor);border-radius:.15rem;padding:0 .15em}blockquote{font-size:inherit;color:#b0ae9d;color:var(--textMutedColor);border-left:.2rem solid #4c525c;border-left-color:var(--borderColor);margin:.5rem 0;padding:.25rem 0 .25rem 1rem}blockquote>p{margin:0}ol,ul{padding-left:1.2em}strong{font-weight:600}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.25}.theme-succinct-content:not(.custom)>h1,.theme-succinct-content:not(.custom)>h2,.theme-succinct-content:not(.custom)>h3,.theme-succinct-content:not(.custom)>h4,.theme-succinct-content:not(.custom)>h5,.theme-succinct-content:not(.custom)>h6{margin-top:-3.1rem;padding-top:4.6rem;margin-bottom:0}.theme-succinct-content:not(.custom)>h1:first-child,.theme-succinct-content:not(.custom)>h2:first-child,.theme-succinct-content:not(.custom)>h3:first-child,.theme-succinct-content:not(.custom)>h4:first-child,.theme-succinct-content:not(.custom)>h5:first-child,.theme-succinct-content:not(.custom)>h6:first-child{margin-top:-1.5rem;margin-bottom:1rem}.theme-succinct-content:not(.custom)>h1:first-child+.custom-block,.theme-succinct-content:not(.custom)>h1:first-child+p,.theme-succinct-content:not(.custom)>h1:first-child+pre,.theme-succinct-content:not(.custom)>h2:first-child+.custom-block,.theme-succinct-content:not(.custom)>h2:first-child+p,.theme-succinct-content:not(.custom)>h2:first-child+pre,.theme-succinct-content:not(.custom)>h3:first-child+.custom-block,.theme-succinct-content:not(.custom)>h3:first-child+p,.theme-succinct-content:not(.custom)>h3:first-child+pre,.theme-succinct-content:not(.custom)>h4:first-child+.custom-block,.theme-succinct-content:not(.custom)>h4:first-child+p,.theme-succinct-content:not(.custom)>h4:first-child+pre,.theme-succinct-content:not(.custom)>h5:first-child+.custom-block,.theme-succinct-content:not(.custom)>h5:first-child+p,.theme-succinct-content:not(.custom)>h5:first-child+pre,.theme-succinct-content:not(.custom)>h6:first-child+.custom-block,.theme-succinct-content:not(.custom)>h6:first-child+p,.theme-succinct-content:not(.custom)>h6:first-child+pre{margin-top:2rem}h1:hover .header-anchor,h2:hover .header-anchor,h3:hover .header-anchor,h4:hover .header-anchor,h5:hover .header-anchor,h6:hover .header-anchor{opacity:1}h1{font-size:2.2rem}h2{font-size:1.65rem;padding-bottom:.3rem;border-bottom:1px solid #4c525c;border-bottom-color:var(--borderColor)}h3{font-size:1.35rem}a.header-anchor{font-size:.85em;float:left;margin-left:-.87em;padding-right:.23em;margin-top:.125em;opacity:0}a.header-anchor:hover{text-decoration:none}.line-number,code,kbd{font-family:$monoFontFamily,source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}ol,p,td,th,ul{line-height:1.7}hr{border:0;border-top:1px solid #4c525c;border-top-color:var(--borderColor)}table{border-collapse:collapse;margin:1rem 0;display:block;overflow-x:auto}tr{border-top:1px solid #4c525c;border-top-color:var(--borderColor)}tr:nth-child(2n){background-color:#2f3037;background-color:var(--bodyComplementColor)}td,th{border:1px solid #4c525c;border-color:var(--borderColor);padding:.6em 1em}.theme-code-group__nav{margin-bottom:-15px!important;background-color:#202228!important;background-color:var(--codeBgHighlightColor)!important}.theme-code-group__nav-tab{padding-right:10px!important;padding-left:10px!important}.theme-code-group__nav-tab-active{background-color:#287251!important;background-color:var(--codeBlockActiveColor)!important;outline-color:#287251!important;outline-color:var(--codeBlockActiveColor)!important;border:none!important}.theme-container.sidebar-open .sidebar-mask{display:block}.theme-container.no-navbar .theme-succinct-content:not(.custom)>h1,.theme-container.no-navbar h2,.theme-container.no-navbar h3,.theme-container.no-navbar h4,.theme-container.no-navbar h5,.theme-container.no-navbar h6{margin-top:1.5rem;padding-top:0}.theme-container.no-navbar .sidebar{top:0}@media (min-width:720px){.theme-container.no-sidebar .sidebar{display:none}.theme-container.no-sidebar .page{padding-left:0}}@media (max-width:959px){.sidebar{font-size:15px;width:16.4rem}.page{padding-left:16.4rem}}@media (max-width:719px){.sidebar{top:0;padding-top:3.6rem;transform:translateX(-100%);transition:transform .2s ease}.page{padding-left:0}.theme-container.sidebar-open .sidebar{transform:translateX(0)}.theme-container.no-navbar .sidebar{padding-top:0}}@media (max-width:419px){h1{font-size:1.9rem}.theme-succinct-content div[class*=language-]{margin:.85rem -1.5rem;border-radius:0}}[data-theme=light]{--sideBgColor:#fff}[data-theme=dark]{--sideBgColor:#363b40;--bgColor:#111112}.home .hero img{max-width:450px!important}.navbar{filter:drop-shadow(0 1px 1px var(--bgColor))}.sidebar{background-color:var(--sideBgColor)}div[class*=language-] pre,div[class*=language-] pre[class*=language-]{margin-top:0}html{overflow:scroll}::-webkit-scrollbar{width:0;background:transparent}tr:nth-child(1n){background-color:var(--bodyBgColor)}tr:nth-child(2n){background-color:var(--sideBgColor)}.dropdown-wrapper .nav-dropdown{border:1px solid var(--sideBgColor)!important;background-color:var(--sideBgColor)!important;box-shadow:0 0 2px var(--bodyBgColor);right:-12%!important}#nprogress{pointer-events:none}#nprogress .bar{background:#00bfff;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px #00bfff,0 0 5px #00bfff;opacity:1;transform:rotate(3deg) translateY(-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border-color:#00bfff transparent transparent #00bfff;border-style:solid;border-width:2px;border-radius:50%;-webkit-animation:nprogress-spinner .4s linear infinite;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@-webkit-keyframes nprogress-spinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes nprogress-spinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.go-to-top[data-v-5fd4ef0c]{cursor:pointer;position:fixed;bottom:2rem;right:2.5rem;width:2rem;color:#00bfff;z-index:1}.go-to-top[data-v-5fd4ef0c]:hover{color:#4dd2ff}@media (max-width:959px){.go-to-top[data-v-5fd4ef0c]{display:none}}.fade-enter-active[data-v-5fd4ef0c],.fade-leave-active[data-v-5fd4ef0c]{transition:opacity .3s}.fade-enter[data-v-5fd4ef0c],.fade-leave-to[data-v-5fd4ef0c]{opacity:0}.icon.outbound{color:#aaa;display:inline-block;vertical-align:middle;position:relative;top:-1px}.home{padding:3.6rem 2rem 0;max-width:960px;margin:0 auto;display:block}.home .hero{text-align:center}.home .hero img{max-width:100%;max-height:280px;display:block;margin:3rem auto 1.5rem}.home .hero h1{font-size:3rem}.home .hero .action,.home .hero .description,.home .hero h1{margin:1.8rem auto}.home .hero .description{max-width:40rem;font-size:1.6rem;line-height:1.3;color:#ceccc2;color:var(--descriptionColor)}.home .hero .action-button{display:inline-block;font-size:1.2rem;color:#25262b;color:var(--bodyBgColor);background-color:#3eaf7c;background-color:var(--accentColor);padding:.6rem 1.4rem;border-radius:40px;transition:background-color .1s ease;box-sizing:border-box;border-bottom:1px solid #389d70;border-bottom-color:var(--actionBtnBorderColor)}.home .hero .action-button:hover{background-color:#389d70;background-color:var(--actionBtnHoverBorderColor)}.home .features{border-top:1px solid #4c525c;border-top-color:var(--borderColor);padding:1.2rem 0;margin-top:2.5rem;display:flex;flex-wrap:wrap;align-items:flex-start;align-content:stretch;justify-content:space-between}.home .feature{flex-grow:1;flex-basis:30%;max-width:30%}.home .feature h2{font-size:1.4rem;font-weight:500;border-bottom:none;padding-bottom:0;color:#d8d7cf;color:var(--headerColor)}.home .feature p,.home .footer{color:#b0ae9d;color:var(--textMutedColor)}.home .footer{padding:2.5rem;border-top:1px solid #4c525c;border-top-color:var(--borderColor);text-align:center}@media (max-width:719px){.home .features{flex-direction:column}.home .feature{max-width:100%;padding:0 2.5rem}}@media (max-width:419px){.home{padding-left:1.5rem;padding-right:1.5rem}.home .hero img{max-height:210px;margin:2rem auto 1.2rem}.home .hero h1{font-size:2rem}.home .hero .action,.home .hero .description,.home .hero h1{margin:1.2rem auto}.home .hero .description{font-size:1.2rem}.home .hero .action-button{font-size:1rem;padding:.6rem 1.2rem}.home .feature h2{font-size:1.25rem}}.search-box{display:inline-block;position:relative;margin-right:1rem}.search-box input{cursor:text;width:10rem;height:2rem;color:#4e6e8e;display:inline-block;border:1px solid #cfd4db;border-radius:2rem;font-size:.9rem;line-height:2rem;padding:0 .5rem 0 2rem;outline:none;transition:all .2s ease;background:#fff url(/Getting-Started-With-ACPI/assets/img/search.83621669.svg) .6rem .5rem no-repeat;background-size:1rem}.search-box input:focus{cursor:auto;border-color:#00bfff}.search-box .suggestions{background:#fff;width:20rem;position:absolute;top:2rem;border:1px solid #cfd4db;border-radius:6px;padding:.4rem;list-style-type:none}.search-box .suggestions.align-right{right:0}.search-box .suggestion{line-height:1.4;padding:.4rem .6rem;border-radius:4px;cursor:pointer}.search-box .suggestion a{white-space:normal;color:#5d82a6}.search-box .suggestion a .page-title{font-weight:600}.search-box .suggestion a .header{font-size:.9em;margin-left:.25em}.search-box .suggestion.focused{background-color:#f3f4f5}.search-box .suggestion.focused a{color:#00bfff}@media (max-width:959px){.search-box input{cursor:pointer;width:0;border-color:transparent;position:relative}.search-box input:focus{cursor:text;left:0;width:10rem}}@media (-ms-high-contrast:none){.search-box input{height:2rem}}@media (max-width:959px) and (min-width:719px){.search-box .suggestions{left:0}}@media (max-width:719px){.search-box{margin-right:0}.search-box input{left:1rem}.search-box .suggestions{right:0}}@media (max-width:419px){.search-box .suggestions{width:calc(100vw - 4rem)}.search-box input:focus{width:8rem}}.sidebar-button{cursor:pointer;display:none;width:1.25rem;height:1.25rem;position:absolute;padding:.6rem;top:.6rem;left:1rem}.sidebar-button .icon{display:block;width:1.25rem;height:1.25rem}@media (max-width:719px){.sidebar-button{display:block}}.dropdown-enter,.dropdown-leave-to{height:0!important}.dropdown-wrapper{cursor:pointer}.dropdown-wrapper .dropdown-title,.dropdown-wrapper .mobile-dropdown-title{display:block;font-size:.9rem;font-family:inherit;cursor:inherit;padding:inherit;line-height:1.4rem;background:transparent;border:none;font-weight:500;color:#e2e1db;color:var(--textColor)}.dropdown-wrapper .dropdown-title:hover,.dropdown-wrapper .mobile-dropdown-title:hover{border-color:transparent}.dropdown-wrapper .dropdown-title .arrow,.dropdown-wrapper .mobile-dropdown-title .arrow{vertical-align:middle;margin-top:-1px;margin-left:.4rem}.dropdown-wrapper .mobile-dropdown-title{display:none;font-weight:600}.dropdown-wrapper .mobile-dropdown-title font-size inherit:hover{color:#3eaf7c;color:var(--accentColor)}.dropdown-wrapper .nav-dropdown .dropdown-item{color:inherit;line-height:1.7rem}.dropdown-wrapper .nav-dropdown .dropdown-item h4{margin:.45rem 0 0;border-top:1px solid #4c525c;border-top-color:var(--borderColor);padding:.45rem 1.5rem 0 1.25rem}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem-wrapper{padding:0;list-style:none}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem-wrapper .dropdown-subitem{font-size:.9em}.dropdown-wrapper .nav-dropdown .dropdown-item a{display:block;line-height:1.7rem;position:relative;border-bottom:none;font-weight:400;margin-bottom:0;padding:0 1.5rem 0 1.25rem}.dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active,.dropdown-wrapper .nav-dropdown .dropdown-item a:hover{color:#3eaf7c;color:var(--accentColor)}.dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active:after{content:"";width:0;height:0;border-left:5px solid #3eaf7c;border-left-color:var(--accentColor);border-top:3px solid transparent;border-bottom:3px solid transparent;position:absolute;top:calc(50% - 2px);left:9px}.dropdown-wrapper .nav-dropdown .dropdown-item:first-child h4{margin-top:0;padding-top:0;border-top:0}@media (max-width:719px){.dropdown-wrapper.open .dropdown-title{margin-bottom:.5rem}.dropdown-wrapper .dropdown-title{display:none}.dropdown-wrapper .mobile-dropdown-title{display:block}.dropdown-wrapper .nav-dropdown{transition:height .1s ease-out;overflow:hidden}.dropdown-wrapper .nav-dropdown .dropdown-item h4{border-top:0;margin-top:0;padding-top:0}.dropdown-wrapper .nav-dropdown .dropdown-item>a,.dropdown-wrapper .nav-dropdown .dropdown-item h4{font-size:15px;line-height:2rem}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem{font-size:14px;padding-left:1rem}}@media (min-width:719px){.dropdown-wrapper{height:1.8rem}.dropdown-wrapper.open .nav-dropdown,.dropdown-wrapper:hover .nav-dropdown{display:block!important}.dropdown-wrapper.open:blur{display:none}.dropdown-wrapper .nav-dropdown{display:none;height:auto!important;box-sizing:border-box;max-height:calc(100vh - 2.7rem);overflow-y:auto;position:absolute;top:100%;right:0;background-color:#25262b;background-color:var(--bodyBgColor);padding:.6rem 0;border:1px solid #4c525c;border-color:var(--borderColor);text-align:left;border-radius:.25rem;white-space:nowrap;margin:0}}.nav-links{display:inline-block;cursor:pointer}.nav-links a{line-height:1.4rem;color:inherit}.nav-links a.router-link-active,.nav-links a:hover{color:#3eaf7c;color:var(--accentColor)}.nav-links .nav-item{position:relative;display:inline-block;margin-left:1.5rem;line-height:2rem}.nav-links .nav-item:first-child{margin-left:0}.nav-links .repo-link{margin-left:1.5rem}@media (max-width:719px){.nav-links .nav-item,.nav-links .repo-link{margin-left:0}}@media (min-width:719px){.nav-links a.router-link-active,.nav-links a:hover{color:#e2e1db;color:var(--textColor)}.nav-item>a:not(.external).router-link-active,.nav-item>a:not(.external):hover{margin-bottom:-2px;border-bottom:2px solid #39a172;border-bottom-color:var(--navItemHoverColor)}}.navbar{padding:.7rem 1.5rem;line-height:2.2rem}.navbar a,.navbar img,.navbar span{display:inline-block}.navbar .logo{height:2.2rem;min-width:2.2rem;margin-right:.8rem;vertical-align:top}.navbar .site-name{font-size:1.3rem;font-weight:600;color:#e2e1db;color:var(--textColor);position:relative}.navbar .links{padding-left:1.5rem;box-sizing:border-box;background-color:#25262b;background-color:var(--bodyBgColor);white-space:nowrap;font-size:.9rem;position:absolute;right:1.5rem;top:.7rem;display:flex}.navbar .links .search-box{flex:0 0 auto;vertical-align:top}@media (max-width:719px){.navbar{padding-left:4rem}.navbar .can-hide{display:none}.navbar .links{padding-left:1.5rem}.navbar .site-name{width:calc(100vw - 9.4rem);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}}.page-edit{max-width:740px;margin:0 auto;padding:2rem 2.5rem}@media (max-width:959px){.page-edit{padding:2rem}}@media (max-width:419px){.page-edit{padding:1.5rem}}.page-edit{padding-top:1rem;padding-bottom:1rem;overflow:auto}.page-edit .edit-link{display:inline-block}.page-edit .edit-link a{color:#b0ae9d;color:var(--textMutedColor);margin-right:.25rem}.page-edit .last-updated{float:right;font-size:.9em}.page-edit .last-updated .prefix{font-weight:500;color:#b0ae9d;color:var(--textMutedColor)}.page-edit .last-updated .time{font-weight:400;color:#aaa}@media (max-width:719px){.page-edit .edit-link{margin-bottom:.5rem}.page-edit .last-updated{font-size:.8em;float:none;text-align:left}}.page-nav{max-width:740px;margin:0 auto;padding:2rem 2.5rem}@media (max-width:959px){.page-nav{padding:2rem}}@media (max-width:419px){.page-nav{padding:1.5rem}}.page-nav{padding-top:1rem;padding-bottom:0}.page-nav .inner{min-height:2rem;margin-top:0;border-top:1px solid #4c525c;border-top-color:var(--borderColor);padding-top:1rem;overflow:auto}.page-nav .next{float:right}.page{padding-bottom:2rem;display:block}.sidebar-group .sidebar-group{padding-left:.5em}.sidebar-group:not(.collapsable) .sidebar-heading:not(.clickable){cursor:auto;color:inherit}.sidebar-group.is-sub-group{padding-left:0}.sidebar-group.is-sub-group>.sidebar-heading{font-size:.95em;line-height:1.4;font-weight:400;padding-left:2rem}.sidebar-group.is-sub-group>.sidebar-heading:not(.clickable){opacity:.5}.sidebar-group.is-sub-group>.sidebar-group-items{padding-left:1rem}.sidebar-group.is-sub-group>.sidebar-group-items>li>.sidebar-link{font-size:.95em;border-left:none}.sidebar-group.depth-2>.sidebar-heading{border-left:none}.sidebar-heading{color:#2c3e50;color:var(--textColor);transition:color .15s ease;cursor:pointer;font-size:1.1em;font-weight:700;padding:.35rem 1.5rem .35rem 1.25rem;width:100%;box-sizing:border-box;margin:0;border-left:.25rem solid transparent}.sidebar-heading.open,.sidebar-heading:hover{color:inherit}.sidebar-heading .arrow{position:relative;top:-.12em;left:.5em}.sidebar-heading.clickable.active{font-weight:600;border-left-color:#3eaf7c;border-left-color:var(--accentColor)}.sidebar-heading.clickable.active,.sidebar-heading.clickable:hover{color:#3eaf7c;color:var(--accentColor)}.sidebar-group-items{transition:height .1s ease-out;font-size:.95em;overflow:hidden}.sidebar .sidebar-sub-headers{padding-left:1rem;font-size:.95em}a.sidebar-link{font-size:1em;font-weight:400;display:inline-block;color:#e2e1db;color:var(--textColor);border-left:.25rem solid transparent;padding:.35rem 1rem .35rem 1.25rem;line-height:1.4;width:100%;box-sizing:border-box}a.sidebar-link.active,a.sidebar-link:hover{color:#3eaf7c;color:var(--accentColor)}a.sidebar-link.active{font-weight:600;border-left-color:#3eaf7c;border-left-color:var(--accentColor)}.sidebar-group a.sidebar-link{padding-left:2rem}.sidebar-sub-headers a.sidebar-link{padding-top:.25rem;padding-bottom:.25rem;border-left:none}.sidebar-sub-headers a.sidebar-link.active{font-weight:500}.sidebar ul{padding:0;margin:0;list-style-type:none}.sidebar a{display:inline-block}.sidebar .nav-links{display:none;border-bottom:1px solid #4c525c;border-bottom-color:var(--borderColor);padding:.5rem 0 .75rem}.sidebar .nav-links a{font-weight:600}.sidebar .nav-links .nav-item,.sidebar .nav-links .repo-link{display:block;line-height:1.25rem;font-size:1.1em;padding:.5rem 0 .5rem 1.5rem}.sidebar>.sidebar-links{padding:1.5rem 0}.sidebar>.sidebar-links>li>a.sidebar-link{font-size:1.1em;line-height:1.7;font-weight:700}.sidebar>.sidebar-links>li:not(:first-child){margin-top:.75rem}@media (max-width:719px){.sidebar .nav-links{display:block}.sidebar .nav-links .dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active:after{top:calc(1rem - 2px)}.sidebar>.sidebar-links{padding:1rem 0}}.badge[data-v-269eac46]{display:inline-block;font-size:14px;height:18px;line-height:18px;border-radius:3px;padding:0 6px;color:#fff;background-color:#42b983}.badge.green[data-v-269eac46],.badge.tip[data-v-269eac46]{background-color:$badgeTipColorDefault;background-color:var(--badgeTipColor)}.badge.error[data-v-269eac46]{background-color:$badgeErrorColorDefault;background-color:var(--badgeErrorColor)}.badge.warn[data-v-269eac46],.badge.warning[data-v-269eac46],.badge.yellow[data-v-269eac46]{background-color:$badgeWarningColorDefault;background-color:var(--badgeWarningColor)}.badge+.badge[data-v-269eac46]{margin-left:5px}.badge[data-v-15b7b770]{display:inline-block;font-size:14px;height:18px;line-height:18px;border-radius:3px;padding:0 6px;color:#fff;background-color:#42b983}.badge.green[data-v-15b7b770],.badge.tip[data-v-15b7b770]{background-color:#e3f8ff}.badge.error[data-v-15b7b770]{background-color:#da5961}.badge.warn[data-v-15b7b770],.badge.warning[data-v-15b7b770],.badge.yellow[data-v-15b7b770]{background-color:#e7c000}.badge+.badge[data-v-15b7b770]{margin-left:5px}.theme-code-block[data-v-6d04095e]{display:none}.theme-code-block__active[data-v-6d04095e]{display:block}.theme-code-block>pre[data-v-6d04095e]{background-color:orange}.theme-code-group__nav[data-v-996f6ed8]{margin-bottom:-35px;background-color:#282c34;padding-bottom:22px;border-top-left-radius:6px;border-top-right-radius:6px;padding-left:10px;padding-top:10px}.theme-code-group__nav-tab[data-v-996f6ed8]{border:0;padding:5px;cursor:pointer;background-color:transparent;font-size:.85em;line-height:1.4;color:hsla(0,0%,100%,.9);font-weight:600}.theme-code-group__nav-tab-active[data-v-996f6ed8]{border-bottom:1px solid #42b983}.pre-blank[data-v-996f6ed8]{color:#42b983} \ No newline at end of file diff --git a/assets/img/rtc-name.afa4c3f4.png b/assets/img/rtc-name.afa4c3f4.png new file mode 100644 index 0000000..d7f515b Binary files /dev/null and b/assets/img/rtc-name.afa4c3f4.png differ diff --git a/assets/img/rtc-range-check.d964e9c9.png b/assets/img/rtc-range-check.d964e9c9.png new file mode 100644 index 0000000..b7fa84c Binary files /dev/null and b/assets/img/rtc-range-check.d964e9c9.png differ diff --git a/assets/img/ssdt-after-rename-hedt.ea1fe10e.png b/assets/img/ssdt-after-rename-hedt.ea1fe10e.png new file mode 100644 index 0000000..6cff517 Binary files /dev/null and b/assets/img/ssdt-after-rename-hedt.ea1fe10e.png differ diff --git a/assets/img/ssdt-before-rename-hedt.4b47d5a3.png b/assets/img/ssdt-before-rename-hedt.4b47d5a3.png new file mode 100644 index 0000000..0e3f84b Binary files /dev/null and b/assets/img/ssdt-before-rename-hedt.4b47d5a3.png differ diff --git a/assets/js/10.5081de30.js b/assets/js/10.5081de30.js new file mode 100644 index 0000000..2495790 --- /dev/null +++ b/assets/js/10.5081de30.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[10],{366:function(e,t,a){e.exports=a.p+"assets/img/devicemanager.770a10fc.png"},367:function(e,t,a){e.exports=a.p+"assets/img/ssdt-before.f71c9e04.png"},368:function(e,t,a){e.exports=a.p+"assets/img/ssdt-after.28584bc4.png"},421:function(e,t,a){"use strict";a.r(t);var s=a(25),i=Object(s.a)({},(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[s("h1",{attrs:{id:"fixing-backlight-manual"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#fixing-backlight-manual"}},[e._v("#")]),e._v(" Fixing Backlight: Manual")]),e._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#finding-the-acpi-path"}},[e._v("Finding the ACPI path")])]),e._v(" "),s("li",[s("a",{attrs:{href:"#edits-to-the-sample-ssdt"}},[e._v("Edits to the sample SSDT")])]),e._v(" "),s("li",[s("a",{attrs:{href:"#compiling-the-ssdt"}},[e._v("Compiling the SSDT")])]),e._v(" "),s("li",[s("a",{attrs:{href:"#wrapping-up"}},[e._v("Wrapping up")])])]),e._v(" "),s("h2",{attrs:{id:"finding-the-acpi-path"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#finding-the-acpi-path"}},[e._v("#")]),e._v(" Finding the ACPI path")]),e._v(" "),s("p",[e._v("For this guide, we're gonna assume Windows is already on this laptop, as otherwise creating this SSDT is a bit more difficult.")]),e._v(" "),s("p",[e._v("Now open DeviceManager, and head to the following:")]),e._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v("Device Manager -> Display Adapters -> Properties -> Details > BIOS device name\n")])])]),s("ul",[s("li",[e._v('Note some GPU ACPI pathing may be hiding under "BIOS device name"')])]),e._v(" "),s("p",[s("img",{attrs:{src:a(366),alt:"Credit to 1Revenger1 for the image"}})]),e._v(" "),s("p",[e._v("From the above example, we can see our display is hooked up to "),s("code",[e._v("PCI0.GFX0")])]),e._v(" "),s("h2",{attrs:{id:"edits-to-the-sample-ssdt"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#edits-to-the-sample-ssdt"}},[e._v("#")]),e._v(" Edits to the sample SSDT")]),e._v(" "),s("p",[e._v("Now that we have our ACPI path, lets grab our SSDT and get to work:")]),e._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"https://github.com/acidanthera/WhateverGreen/blob/master/Manual/SSDT-PNLF.dsl",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-PNLF.dsl"),s("OutboundLink")],1)]),e._v(" "),s("li",[s("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/decompiled/SSDT-PNLF-CFL.dsl.zip",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-PNLF-CFL.dsl"),s("OutboundLink")],1),e._v(" "),s("ul",[s("li",[e._v("For Coffee Lake and newer")])])])]),e._v(" "),s("p",[e._v("By default, this uses "),s("code",[e._v("PCI0.GFX0")]),e._v(" for the pathing. you'll want to rename accordingly. For this example, we'll assume your pathing is "),s("code",[e._v("PCI0.GPU0")]),e._v(":")]),e._v(" "),s("p",[s("strong",[e._v("Before")]),e._v(":")]),e._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v("External (_SB_.PCI0.GFX0, DeviceObj) <- Rename this\n\nScope (_SB.PCI0.GFX0) <- Rename this\n\nDevice(_SB.PCI0.GFX0.PNLF) <- Rename this\n")])])]),s("p",[s("img",{attrs:{src:a(367),alt:""}})]),e._v(" "),s("p",[e._v("Following the example pathing we found, the SSDT should look something like this:")]),e._v(" "),s("p",[s("strong",[e._v("After")]),e._v(":")]),e._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v("External (_SB_.PCI0.GPU0, DeviceObj) <- Renamed\n\nScope (_SB.PCI0.GPU0) <- Renamed\n\nDevice(_SB.PCI0.GPU0.PNLF) <- Renamed\n")])])]),s("p",[s("img",{attrs:{src:a(368),alt:""}})]),e._v(" "),s("h2",{attrs:{id:"compiling-the-ssdt"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#compiling-the-ssdt"}},[e._v("#")]),e._v(" Compiling the SSDT")]),e._v(" "),s("p",[e._v("With the SSDT done, you're now "),s("RouterLink",{attrs:{to:"/Manual/compile.html"}},[e._v("ready to compile the SSDT!")])],1),e._v(" "),s("h2",{attrs:{id:"wrapping-up"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#wrapping-up"}},[e._v("#")]),e._v(" Wrapping up")]),e._v(" "),s("p",[e._v("Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:")]),e._v(" "),s("ul",[s("li",[s("RouterLink",{attrs:{to:"/cleanup.html"}},[s("strong",[e._v("Cleanup")])])],1)])])}),[],!1,null,null,null);t.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/11.2eca66d9.js b/assets/js/11.2eca66d9.js deleted file mode 100644 index 74dcc82..0000000 --- a/assets/js/11.2eca66d9.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[11],{332:function(t,e,n){},401:function(t,e,n){"use strict";var i=n(332);n.n(i).a},461:function(t,e,n){"use strict";n.r(e);var i={functional:!0,props:{type:{type:String,default:"tip"},text:String,vertical:{type:String,default:"top"}},render:function(t,e){var n=e.props,i=e.slots;return t("span",{class:["badge",n.type],style:{verticalAlign:n.vertical}},n.text||i().default)}},r=(n(401),n(25)),a=Object(r.a)(i,void 0,void 0,!1,null,"15b7b770",null);e.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/10.435abaff.js b/assets/js/11.b361f094.js similarity index 90% rename from assets/js/10.435abaff.js rename to assets/js/11.b361f094.js index a384561..001e816 100644 --- a/assets/js/10.435abaff.js +++ b/assets/js/11.b361f094.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[10],{391:function(t,e,a){t.exports=a.p+"assets/img/rhub-path.0ccecac7.png"},392:function(t,e,a){t.exports=a.p+"assets/img/ssdt-before.24a00e7a.png"},393:function(t,e,a){t.exports=a.p+"assets/img/ssdt-after.4bf2a9ef.png"},446:function(t,e,a){"use strict";a.r(e);var s=a(25),i=Object(s.a)({},(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"fixing-usb-manual"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#fixing-usb-manual"}},[t._v("#")]),t._v(" Fixing USB: Manual")]),t._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#finding-the-acpi-path"}},[t._v("Finding the ACPI path")])]),t._v(" "),s("li",[s("a",{attrs:{href:"#edits-to-the-sample-ssdt"}},[t._v("Edits to the sample SSDT")])]),t._v(" "),s("li",[s("a",{attrs:{href:"#compiling-the-ssdt"}},[t._v("Compiling the SSDT")])]),t._v(" "),s("li",[s("a",{attrs:{href:"#wrapping-up"}},[t._v("Wrapping up")])])]),t._v(" "),s("h2",{attrs:{id:"finding-the-acpi-path"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#finding-the-acpi-path"}},[t._v("#")]),t._v(" Finding the ACPI path")]),t._v(" "),s("p",[t._v("Finding the ACPI pathing is quite easy actually, first open your decompiled DSDT you got from "),s("RouterLink",{attrs:{to:"/Manual/dump.html"}},[t._v("Dumping the DSDT")]),t._v(" and "),s("RouterLink",{attrs:{to:"/Manual/compile.html"}},[t._v("Decompiling and Compiling")]),t._v(" with either maciASL(if in macOS) or any other text editor if in Windows or Linux(VSCode has an "),s("a",{attrs:{href:"https://marketplace.visualstudio.com/items?itemName=Thog.vscode-asl",target:"_blank",rel:"noopener noreferrer"}},[t._v("ACPI extension"),s("OutboundLink")],1),t._v(" that can also help).")],1),t._v(" "),s("p",[t._v("Next, search for the "),s("code",[t._v("Device (RHUB)")])]),t._v(" "),s("p",[t._v("You should get something like the following show up:")]),t._v(" "),s("p",[s("img",{attrs:{src:a(391),alt:""}})]),t._v(" "),s("p",[t._v("From the above, we can see that the full ACPI pathing for RHUB is "),s("code",[t._v("PCI0.XHC.RHUB")]),t._v(". If it's not as clear you can search for what those device paths are for your system:")]),t._v(" "),s("ul",[s("li",[t._v("Finding the PCI path:\n"),s("ul",[s("li",[t._v("Search "),s("code",[t._v("PNP0A08")]),t._v(" (If multiple show up, use the first one)")])])]),t._v(" "),s("li",[t._v("Finding XHCI path\n"),s("ul",[s("li",[t._v("Search for "),s("code",[t._v("XHC")]),t._v(", "),s("code",[t._v("XHCI")]),t._v(" and "),s("code",[t._v("XHC1")]),t._v(", and yours is whichever shows up.")])])])]),t._v(" "),s("p",[t._v("Now with the pathing, you can head here: "),s("a",{attrs:{href:"#edits-to-the-sample-ssdt"}},[t._v("Edits to the sample SSDT")])]),t._v(" "),s("h2",{attrs:{id:"edits-to-the-sample-ssdt"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#edits-to-the-sample-ssdt"}},[t._v("#")]),t._v(" Edits to the sample SSDT")]),t._v(" "),s("p",[t._v("Now that we have our ACPI path, lets grab our SSDT and get to work:")]),t._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/decompiled/SSDT-RHUB.dsl",target:"_blank",rel:"noopener noreferrer"}},[t._v("SSDT-RHUB.dsl"),s("OutboundLink")],1)])]),t._v(" "),s("p",[t._v("By default, this uses "),s("code",[t._v("PCI0.XHC_.RHUB")]),t._v(" for the pathing. you'll want to rename accordingly.")]),t._v(" "),s("p",[t._v("Following the example from above, we'll be renaming it to "),s("code",[t._v("PCI0.XHC1.RHUB")]),t._v(":")]),t._v(" "),s("p",[s("strong",[t._v("Before")]),t._v(":")]),t._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[t._v("External (_SB_.PCI0.XHC_.RHUB, DeviceObj) <- Rename this\n\nScope (_SB.PCI0.XHC_.RHUB) <- Rename this\n")])])]),s("p",[s("img",{attrs:{src:a(392),alt:""}})]),t._v(" "),s("p",[t._v("Following the example pathing we found, the SSDT should look something like this:")]),t._v(" "),s("p",[s("strong",[t._v("After")]),t._v(":")]),t._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[t._v("External (_SB.PCI0.XHC1.RHUB, DeviceObj) <- Renamed\n\nScope (_SB.PCI0.XHC1.RHUB) <- Renamed\n")])])]),s("p",[s("img",{attrs:{src:a(393),alt:""}})]),t._v(" "),s("h2",{attrs:{id:"compiling-the-ssdt"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#compiling-the-ssdt"}},[t._v("#")]),t._v(" Compiling the SSDT")]),t._v(" "),s("p",[t._v("With the SSDT done, you're now "),s("RouterLink",{attrs:{to:"/Manual/compile.html"}},[t._v("ready to compile the SSDT!")])],1),t._v(" "),s("h2",{attrs:{id:"wrapping-up"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#wrapping-up"}},[t._v("#")]),t._v(" Wrapping up")]),t._v(" "),s("p",[t._v("Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:")]),t._v(" "),s("ul",[s("li",[s("RouterLink",{attrs:{to:"/cleanup.html"}},[s("strong",[t._v("Cleanup")])])],1)])])}),[],!1,null,null,null);e.default=i.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[11],{398:function(t,e,a){t.exports=a.p+"assets/img/rhub-path.0ccecac7.png"},399:function(t,e,a){t.exports=a.p+"assets/img/ssdt-before.24a00e7a.png"},400:function(t,e,a){t.exports=a.p+"assets/img/ssdt-after.4bf2a9ef.png"},454:function(t,e,a){"use strict";a.r(e);var s=a(25),i=Object(s.a)({},(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"fixing-usb-manual"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#fixing-usb-manual"}},[t._v("#")]),t._v(" Fixing USB: Manual")]),t._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#finding-the-acpi-path"}},[t._v("Finding the ACPI path")])]),t._v(" "),s("li",[s("a",{attrs:{href:"#edits-to-the-sample-ssdt"}},[t._v("Edits to the sample SSDT")])]),t._v(" "),s("li",[s("a",{attrs:{href:"#compiling-the-ssdt"}},[t._v("Compiling the SSDT")])]),t._v(" "),s("li",[s("a",{attrs:{href:"#wrapping-up"}},[t._v("Wrapping up")])])]),t._v(" "),s("h2",{attrs:{id:"finding-the-acpi-path"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#finding-the-acpi-path"}},[t._v("#")]),t._v(" Finding the ACPI path")]),t._v(" "),s("p",[t._v("Finding the ACPI pathing is quite easy actually, first open your decompiled DSDT you got from "),s("RouterLink",{attrs:{to:"/Manual/dump.html"}},[t._v("Dumping the DSDT")]),t._v(" and "),s("RouterLink",{attrs:{to:"/Manual/compile.html"}},[t._v("Decompiling and Compiling")]),t._v(" with either maciASL(if in macOS) or any other text editor if in Windows or Linux(VSCode has an "),s("a",{attrs:{href:"https://marketplace.visualstudio.com/items?itemName=Thog.vscode-asl",target:"_blank",rel:"noopener noreferrer"}},[t._v("ACPI extension"),s("OutboundLink")],1),t._v(" that can also help).")],1),t._v(" "),s("p",[t._v("Next, search for the "),s("code",[t._v("Device (RHUB)")])]),t._v(" "),s("p",[t._v("You should get something like the following show up:")]),t._v(" "),s("p",[s("img",{attrs:{src:a(398),alt:""}})]),t._v(" "),s("p",[t._v("From the above, we can see that the full ACPI pathing for RHUB is "),s("code",[t._v("PCI0.XHC.RHUB")]),t._v(". If it's not as clear you can search for what those device paths are for your system:")]),t._v(" "),s("ul",[s("li",[t._v("Finding the PCI path:\n"),s("ul",[s("li",[t._v("Search "),s("code",[t._v("PNP0A08")]),t._v(" (If multiple show up, use the first one)")])])]),t._v(" "),s("li",[t._v("Finding XHCI path\n"),s("ul",[s("li",[t._v("Search for "),s("code",[t._v("XHC")]),t._v(", "),s("code",[t._v("XHCI")]),t._v(" and "),s("code",[t._v("XHC1")]),t._v(", and yours is whichever shows up.")])])])]),t._v(" "),s("p",[t._v("Now with the pathing, you can head here: "),s("a",{attrs:{href:"#edits-to-the-sample-ssdt"}},[t._v("Edits to the sample SSDT")])]),t._v(" "),s("h2",{attrs:{id:"edits-to-the-sample-ssdt"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#edits-to-the-sample-ssdt"}},[t._v("#")]),t._v(" Edits to the sample SSDT")]),t._v(" "),s("p",[t._v("Now that we have our ACPI path, lets grab our SSDT and get to work:")]),t._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/decompiled/SSDT-RHUB.dsl",target:"_blank",rel:"noopener noreferrer"}},[t._v("SSDT-RHUB.dsl"),s("OutboundLink")],1)])]),t._v(" "),s("p",[t._v("By default, this uses "),s("code",[t._v("PCI0.XHC_.RHUB")]),t._v(" for the pathing. you'll want to rename accordingly.")]),t._v(" "),s("p",[t._v("Following the example from above, we'll be renaming it to "),s("code",[t._v("PCI0.XHC1.RHUB")]),t._v(":")]),t._v(" "),s("p",[s("strong",[t._v("Before")]),t._v(":")]),t._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[t._v("External (_SB_.PCI0.XHC_.RHUB, DeviceObj) <- Rename this\n\nScope (_SB.PCI0.XHC_.RHUB) <- Rename this\n")])])]),s("p",[s("img",{attrs:{src:a(399),alt:""}})]),t._v(" "),s("p",[t._v("Following the example pathing we found, the SSDT should look something like this:")]),t._v(" "),s("p",[s("strong",[t._v("After")]),t._v(":")]),t._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[t._v("External (_SB.PCI0.XHC1.RHUB, DeviceObj) <- Renamed\n\nScope (_SB.PCI0.XHC1.RHUB) <- Renamed\n")])])]),s("p",[s("img",{attrs:{src:a(400),alt:""}})]),t._v(" "),s("h2",{attrs:{id:"compiling-the-ssdt"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#compiling-the-ssdt"}},[t._v("#")]),t._v(" Compiling the SSDT")]),t._v(" "),s("p",[t._v("With the SSDT done, you're now "),s("RouterLink",{attrs:{to:"/Manual/compile.html"}},[t._v("ready to compile the SSDT!")])],1),t._v(" "),s("h2",{attrs:{id:"wrapping-up"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#wrapping-up"}},[t._v("#")]),t._v(" Wrapping up")]),t._v(" "),s("p",[t._v("Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:")]),t._v(" "),s("ul",[s("li",[s("RouterLink",{attrs:{to:"/cleanup.html"}},[s("strong",[t._v("Cleanup")])])],1)])])}),[],!1,null,null,null);e.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/12.44d0100b.js b/assets/js/12.44d0100b.js new file mode 100644 index 0000000..bf3b07f --- /dev/null +++ b/assets/js/12.44d0100b.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[12],{335:function(t,e,n){},408:function(t,e,n){"use strict";var i=n(335);n.n(i).a},473:function(t,e,n){"use strict";n.r(e);var i={functional:!0,props:{type:{type:String,default:"tip"},text:String,vertical:{type:String,default:"top"}},render:function(t,e){var n=e.props,i=e.slots;return t("span",{class:["badge",n.type],style:{verticalAlign:n.vertical}},n.text||i().default)}},r=(n(408),n(25)),a=Object(r.a)(i,void 0,void 0,!1,null,"15b7b770",null);e.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/12.f2156003.js b/assets/js/12.f2156003.js deleted file mode 100644 index db9c94b..0000000 --- a/assets/js/12.f2156003.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[12],{333:function(e,t,c){},402:function(e,t,c){"use strict";var i=c(333);c.n(i).a},409:function(e,t,c){"use strict";c.r(t);var i={name:"CodeBlock",props:{title:{type:String,required:!0},active:{type:Boolean,default:!1}}},n=(c(402),c(25)),a=Object(n.a)(i,(function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"theme-code-block",class:{"theme-code-block__active":this.active}},[this._t("default")],2)}),[],!1,null,"6d04095e",null);t.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/13.7e79f357.js b/assets/js/13.7e79f357.js new file mode 100644 index 0000000..fa9dff2 --- /dev/null +++ b/assets/js/13.7e79f357.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[13],{336:function(e,t,c){},409:function(e,t,c){"use strict";var i=c(336);c.n(i).a},416:function(e,t,c){"use strict";c.r(t);var i={name:"CodeBlock",props:{title:{type:String,required:!0},active:{type:Boolean,default:!1}}},n=(c(409),c(25)),a=Object(n.a)(i,(function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"theme-code-block",class:{"theme-code-block__active":this.active}},[this._t("default")],2)}),[],!1,null,"6d04095e",null);t.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/13.ebb9b243.js b/assets/js/13.ebb9b243.js deleted file mode 100644 index 3be26e5..0000000 --- a/assets/js/13.ebb9b243.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[13],{334:function(e,t,o){},403:function(e,t,o){"use strict";var a=o(334);o.n(a).a},410:function(e,t,o){"use strict";o.r(t);o(26),o(97),o(68),o(99);var a={name:"CodeGroup",data:function(){return{codeTabs:[],activeCodeTabIndex:-1}},watch:{activeCodeTabIndex:function(e){this.codeTabs.forEach((function(e){e.elm.classList.remove("theme-code-block__active")})),this.codeTabs[e].elm.classList.add("theme-code-block__active")}},mounted:function(){var e=this;this.codeTabs=(this.$slots.default||[]).filter((function(e){return Boolean(e.componentOptions)})).map((function(t,o){return""===t.componentOptions.propsData.active&&(e.activeCodeTabIndex=o),{title:t.componentOptions.propsData.title,elm:t.elm}})),-1===this.activeCodeTabIndex&&this.codeTabs.length>0&&(this.activeCodeTabIndex=0)},methods:{changeCodeTab:function(e){this.activeCodeTabIndex=e}}},n=(o(403),o(25)),c=Object(n.a)(a,(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("div",{staticClass:"theme-code-group"},[o("div",{staticClass:"theme-code-group__nav"},e._l(e.codeTabs,(function(t,a){return o("button",{key:t.title,staticClass:"theme-code-group__nav-tab",class:{"theme-code-group__nav-tab-active":a===e.activeCodeTabIndex},on:{click:function(t){return e.changeCodeTab(a)}}},[e._v("\n "+e._s(t.title)+"\n ")])})),0),e._v(" "),e._t("default"),e._v(" "),e.codeTabs.length<1?o("pre",{staticClass:"pre-blank"},[e._v("// Make sure to add code blocks to your code group")]):e._e()],2)}),[],!1,null,"996f6ed8",null);t.default=c.exports}}]); \ No newline at end of file diff --git a/assets/js/14.17d59f56.js b/assets/js/14.17d59f56.js new file mode 100644 index 0000000..2859ce5 --- /dev/null +++ b/assets/js/14.17d59f56.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[14],{337:function(e,t,o){},410:function(e,t,o){"use strict";var a=o(337);o.n(a).a},417:function(e,t,o){"use strict";o.r(t);o(26),o(99),o(69),o(101);var a={name:"CodeGroup",data:function(){return{codeTabs:[],activeCodeTabIndex:-1}},watch:{activeCodeTabIndex:function(e){this.codeTabs.forEach((function(e){e.elm.classList.remove("theme-code-block__active")})),this.codeTabs[e].elm.classList.add("theme-code-block__active")}},mounted:function(){var e=this;this.codeTabs=(this.$slots.default||[]).filter((function(e){return Boolean(e.componentOptions)})).map((function(t,o){return""===t.componentOptions.propsData.active&&(e.activeCodeTabIndex=o),{title:t.componentOptions.propsData.title,elm:t.elm}})),-1===this.activeCodeTabIndex&&this.codeTabs.length>0&&(this.activeCodeTabIndex=0)},methods:{changeCodeTab:function(e){this.activeCodeTabIndex=e}}},n=(o(410),o(25)),c=Object(n.a)(a,(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("div",{staticClass:"theme-code-group"},[o("div",{staticClass:"theme-code-group__nav"},[o("ul",{staticClass:"theme-code-group__ul"},e._l(e.codeTabs,(function(t,a){return o("li",{key:t.title,staticClass:"theme-code-group__li"},[o("button",{staticClass:"theme-code-group__nav-tab",class:{"theme-code-group__nav-tab-active":a===e.activeCodeTabIndex},on:{click:function(t){return e.changeCodeTab(a)}}},[e._v("\n "+e._s(t.title)+"\n ")])])})),0)]),e._v(" "),e._t("default"),e._v(" "),e.codeTabs.length<1?o("pre",{staticClass:"pre-blank"},[e._v("// Make sure to add code blocks to your code group")]):e._e()],2)}),[],!1,null,"32c2d7ed",null);t.default=c.exports}}]); \ No newline at end of file diff --git a/assets/js/14.187e1496.js b/assets/js/14.187e1496.js deleted file mode 100644 index 79ec163..0000000 --- a/assets/js/14.187e1496.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[14],{331:function(t,e,n){},400:function(t,e,n){"use strict";var a=n(331);n.n(a).a},460:function(t,e,n){"use strict";n.r(e);var a={functional:!0,props:{type:{type:String,default:"tip"},text:String,vertical:{type:String,default:"top"}},render:function(t,e){var n=e.props,a=e.slots;return t("span",{class:["badge",n.type],style:{verticalAlign:n.vertical}},n.text||a().default)}},i=(n(400),n(25)),r=Object(i.a)(a,void 0,void 0,!1,null,"269eac46",null);e.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/15.0109e811.js b/assets/js/15.0109e811.js new file mode 100644 index 0000000..389aaeb --- /dev/null +++ b/assets/js/15.0109e811.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[15],{334:function(t,e,n){},407:function(t,e,n){"use strict";var a=n(334);n.n(a).a},472:function(t,e,n){"use strict";n.r(e);var a={functional:!0,props:{type:{type:String,default:"tip"},text:String,vertical:{type:String,default:"top"}},render:function(t,e){var n=e.props,a=e.slots;return t("span",{class:["badge",n.type],style:{verticalAlign:n.vertical}},n.text||a().default)}},i=(n(407),n(25)),r=Object(i.a)(a,void 0,void 0,!1,null,"269eac46",null);e.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/15.b42e0809.js b/assets/js/16.9dcf6927.js similarity index 91% rename from assets/js/15.b42e0809.js rename to assets/js/16.9dcf6927.js index 62cb9cb..1c469af 100644 --- a/assets/js/15.b42e0809.js +++ b/assets/js/16.9dcf6927.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[15],{313:function(t,e,a){t.exports=a.p+"assets/img/nvidia.672e8e16.png"},328:function(t,e,a){t.exports=a.p+"assets/img/amd.acf5492b.png"},412:function(t,e,a){"use strict";a.r(e);var s=a(25),i=Object(s.a)({},(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"disabling-desktops-unsupported-gpus-ssdt-gpu-disable"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#disabling-desktops-unsupported-gpus-ssdt-gpu-disable"}},[t._v("#")]),t._v(" Disabling desktops unsupported GPUs(SSDT-GPU-DISABLE)")]),t._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#what-this-ssdt-does"}},[t._v("What this SSDT does")])]),t._v(" "),s("li",[s("a",{attrs:{href:"#methods-to-make-this-ssdt"}},[t._v("Methods to make this SSDT")]),t._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#prebuilts"}},[t._v("Prebuilt")])]),t._v(" "),s("li",[s("a",{attrs:{href:"#ssdttime"}},[t._v("SSDTTime")])]),t._v(" "),s("li",[s("a",{attrs:{href:"#manual"}},[t._v("Manual")]),t._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#finding-the-acpi-path"}},[t._v("Finding the ACPI path")])]),t._v(" "),s("li",[s("a",{attrs:{href:"#edits-to-the-sample-ssdt"}},[t._v("Edits to the sample SSDT")])]),t._v(" "),s("li",[s("a",{attrs:{href:"#compiling-the-ssdt"}},[t._v("Compiling the SSDT")])])])])])])]),t._v(" "),s("p",[t._v("So this is mainly needed for GPUs that are not supported in macOS, mainly this will be Nvidia users who wish to pair an AMD GPU for macOS use. While WhateverGreen does support the boot-arg "),s("code",[t._v("-wegnoegpu")]),t._v(", this only works when running on iGPU so for the rest of us we'll need to make an SSDT.")]),t._v(" "),s("p",[t._v("So to disable a specific GPU, we need to find a couple things:")]),t._v(" "),s("ul",[s("li",[t._v("ACPI Path of the GPU")]),t._v(" "),s("li",[s("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/decompiled/SSDT-GPU-DISABLE.dsl.zip",target:"_blank",rel:"noopener noreferrer"}},[t._v("SSDT-GPU-DISABLE"),s("OutboundLink")],1)])]),t._v(" "),s("h2",{attrs:{id:"finding-the-acpi-path-of-the-gpu"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#finding-the-acpi-path-of-the-gpu"}},[t._v("#")]),t._v(" Finding the ACPI Path of the GPU")]),t._v(" "),s("p",[t._v("To find the PCI path of a GPU is fairly simple, best way to find it is running Windows:")]),t._v(" "),s("ul",[s("li",[t._v("Open Device Manager")]),t._v(" "),s("li",[t._v("Select Display Adapters, then right click your GPU and select Properties")]),t._v(" "),s("li",[t._v('Under the Details Tab, search for "Location Paths"\n'),s("ul",[s("li",[t._v('Note some GPUs may be hiding under "BIOS device name"')])])])]),t._v(" "),s("p",[s("img",{attrs:{src:a(328),alt:""}})]),t._v(" "),s("p",[s("img",{attrs:{src:a(313),alt:"Credit to 1Revenger1 for the image"}})]),t._v(" "),s("p",[t._v('The second "ACPI" is what we care about:')]),t._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[t._v("ACPI(_SB_)#ACPI(PC02)#ACPI(BR2A)#ACPI(PEGP)#PCI(0000)#PCI(0000)\n")])])]),s("p",[t._v("Now converting this to an ACPI path is quite simple, remove the "),s("code",[t._v("#ACPI")]),t._v(" and "),s("code",[t._v("#PCI(0000)")]),t._v(":")]),t._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[t._v("`_SB_.PC02.BR2A.PEGP\n")])])]),s("p",[t._v("And voila! We've found our ACPI path, now that we have everything we're ready to get cooking")]),t._v(" "),s("h2",{attrs:{id:"making-the-ssdt"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#making-the-ssdt"}},[t._v("#")]),t._v(" Making the SSDT")]),t._v(" "),s("p",[t._v("To start grab our "),s("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/decompiled/SSDT-GPU-DISABLE.dsl.zip",target:"_blank",rel:"noopener noreferrer"}},[t._v("SSDT-GPU-DISABLE"),s("OutboundLink")],1),t._v(" and open it up. Here there's a couple things to change:")]),t._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[t._v("External (_SB_.PCI0.PEG0.PEGP, DeviceObj)\nMethod (_SB.PCI0.PEG0.PEGP._DSM, 4, NotSerialized)\n")])])]),s("p",[t._v("For our example, we'll change all mentions of :")]),t._v(" "),s("ul",[s("li",[s("code",[t._v("PCI0")]),t._v(" with "),s("code",[t._v("PC02")])]),t._v(" "),s("li",[s("code",[t._v("PEG0")]),t._v(" with "),s("code",[t._v("BR2A")])])]),t._v(" "),s("p",[t._v("Hint: If your ACPI path is a bit shorter than the example, this is fine. Just make sure the ACPI paths are correct to your device, some users may also need to adapt "),s("code",[t._v("_SB_")]),t._v(" to their path")]),t._v(" "),s("h2",{attrs:{id:"now-you-re-ready-to-compile-the-ssdt"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#now-you-re-ready-to-compile-the-ssdt"}},[t._v("#")]),t._v(" "),s("RouterLink",{attrs:{to:"/Manual/compile.html"}},[t._v("Now you're ready to compile the SSDT!")])],1)])}),[],!1,null,null,null);e.default=i.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[16],{316:function(t,e,a){t.exports=a.p+"assets/img/nvidia.672e8e16.png"},333:function(t,e,a){t.exports=a.p+"assets/img/amd.acf5492b.png"},419:function(t,e,a){"use strict";a.r(e);var s=a(25),i=Object(s.a)({},(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"disabling-desktops-unsupported-gpus-ssdt-gpu-disable"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#disabling-desktops-unsupported-gpus-ssdt-gpu-disable"}},[t._v("#")]),t._v(" Disabling desktops unsupported GPUs(SSDT-GPU-DISABLE)")]),t._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#what-this-ssdt-does"}},[t._v("What this SSDT does")])]),t._v(" "),s("li",[s("a",{attrs:{href:"#methods-to-make-this-ssdt"}},[t._v("Methods to make this SSDT")]),t._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#prebuilts"}},[t._v("Prebuilt")])]),t._v(" "),s("li",[s("a",{attrs:{href:"#ssdttime"}},[t._v("SSDTTime")])]),t._v(" "),s("li",[s("a",{attrs:{href:"#manual"}},[t._v("Manual")]),t._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#finding-the-acpi-path"}},[t._v("Finding the ACPI path")])]),t._v(" "),s("li",[s("a",{attrs:{href:"#edits-to-the-sample-ssdt"}},[t._v("Edits to the sample SSDT")])]),t._v(" "),s("li",[s("a",{attrs:{href:"#compiling-the-ssdt"}},[t._v("Compiling the SSDT")])])])])])])]),t._v(" "),s("p",[t._v("So this is mainly needed for GPUs that are not supported in macOS, mainly this will be Nvidia users who wish to pair an AMD GPU for macOS use. While WhateverGreen does support the boot-arg "),s("code",[t._v("-wegnoegpu")]),t._v(", this only works when running on iGPU so for the rest of us we'll need to make an SSDT.")]),t._v(" "),s("p",[t._v("So to disable a specific GPU, we need to find a couple things:")]),t._v(" "),s("ul",[s("li",[t._v("ACPI Path of the GPU")]),t._v(" "),s("li",[s("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/decompiled/SSDT-GPU-DISABLE.dsl.zip",target:"_blank",rel:"noopener noreferrer"}},[t._v("SSDT-GPU-DISABLE"),s("OutboundLink")],1)])]),t._v(" "),s("h2",{attrs:{id:"finding-the-acpi-path-of-the-gpu"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#finding-the-acpi-path-of-the-gpu"}},[t._v("#")]),t._v(" Finding the ACPI Path of the GPU")]),t._v(" "),s("p",[t._v("To find the PCI path of a GPU is fairly simple, best way to find it is running Windows:")]),t._v(" "),s("ul",[s("li",[t._v("Open Device Manager")]),t._v(" "),s("li",[t._v("Select Display Adapters, then right click your GPU and select Properties")]),t._v(" "),s("li",[t._v('Under the Details Tab, search for "Location Paths"\n'),s("ul",[s("li",[t._v('Note some GPUs may be hiding under "BIOS device name"')])])])]),t._v(" "),s("p",[s("img",{attrs:{src:a(333),alt:""}})]),t._v(" "),s("p",[s("img",{attrs:{src:a(316),alt:"Credit to 1Revenger1 for the image"}})]),t._v(" "),s("p",[t._v('The second "ACPI" is what we care about:')]),t._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[t._v("ACPI(_SB_)#ACPI(PC02)#ACPI(BR2A)#ACPI(PEGP)#PCI(0000)#PCI(0000)\n")])])]),s("p",[t._v("Now converting this to an ACPI path is quite simple, remove the "),s("code",[t._v("#ACPI")]),t._v(" and "),s("code",[t._v("#PCI(0000)")]),t._v(":")]),t._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[t._v("`_SB_.PC02.BR2A.PEGP\n")])])]),s("p",[t._v("And voila! We've found our ACPI path, now that we have everything we're ready to get cooking")]),t._v(" "),s("h2",{attrs:{id:"making-the-ssdt"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#making-the-ssdt"}},[t._v("#")]),t._v(" Making the SSDT")]),t._v(" "),s("p",[t._v("To start grab our "),s("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/decompiled/SSDT-GPU-DISABLE.dsl.zip",target:"_blank",rel:"noopener noreferrer"}},[t._v("SSDT-GPU-DISABLE"),s("OutboundLink")],1),t._v(" and open it up. Here there's a couple things to change:")]),t._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[t._v("External (_SB_.PCI0.PEG0.PEGP, DeviceObj)\nMethod (_SB.PCI0.PEG0.PEGP._DSM, 4, NotSerialized)\n")])])]),s("p",[t._v("For our example, we'll change all mentions of :")]),t._v(" "),s("ul",[s("li",[s("code",[t._v("PCI0")]),t._v(" with "),s("code",[t._v("PC02")])]),t._v(" "),s("li",[s("code",[t._v("PEG0")]),t._v(" with "),s("code",[t._v("BR2A")])])]),t._v(" "),s("p",[t._v("Hint: If your ACPI path is a bit shorter than the example, this is fine. Just make sure the ACPI paths are correct to your device, some users may also need to adapt "),s("code",[t._v("_SB_")]),t._v(" to their path")]),t._v(" "),s("h2",{attrs:{id:"now-you-re-ready-to-compile-the-ssdt"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#now-you-re-ready-to-compile-the-ssdt"}},[t._v("#")]),t._v(" "),s("RouterLink",{attrs:{to:"/Manual/compile.html"}},[t._v("Now you're ready to compile the SSDT!")])],1)])}),[],!1,null,null,null);e.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/16.5cf47448.js b/assets/js/17.c79d2f86.js similarity index 91% rename from assets/js/16.5cf47448.js rename to assets/js/17.c79d2f86.js index 2a3c638..a89afe0 100644 --- a/assets/js/16.5cf47448.js +++ b/assets/js/17.c79d2f86.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[16],{370:function(a,e,i){a.exports=i.p+"assets/img/macos-compile.5b3bc6ad.png"},371:function(a,e,i){a.exports=i.p+"assets/img/windows-compile.62b90d74.png"},422:function(a,e,i){"use strict";i.r(e);var t=i(25),l=Object(t.a)({},(function(){var a=this,e=a.$createElement,t=a._self._c||e;return t("ContentSlotsDistributor",{attrs:{"slot-key":a.$parent.slotKey}},[t("h1",{attrs:{id:"compiling-and-decompiling-acpi-tables"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#compiling-and-decompiling-acpi-tables"}},[a._v("#")]),a._v(" Compiling and decompiling ACPI Tables")]),a._v(" "),t("p",[a._v("See "),t("RouterLink",{attrs:{to:"/troubleshooting.html"}},[a._v("Troubleshooting")]),a._v(" if you have dumping/compiling errors")],1),a._v(" "),t("ul",[t("li",[t("RouterLink",{attrs:{to:"/Manual/compile.html#macos"}},[a._v("macOS Compiling and Decompiling")])],1),a._v(" "),t("li",[t("RouterLink",{attrs:{to:"/Manual/compile.html#windows"}},[a._v("Windows Compiling and Decompiling")])],1),a._v(" "),t("li",[t("RouterLink",{attrs:{to:"/Manual/compile.html#linux"}},[a._v("Linux Compiling and Decompiling")])],1)]),a._v(" "),t("h2",{attrs:{id:"macos"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#macos"}},[a._v("#")]),a._v(" macOS")]),a._v(" "),t("p",[a._v("So compiling DSDTs and SSDTs are quite easy with macOS, all you need is "),t("a",{attrs:{href:"https://github.com/acidanthera/MaciASL/releases",target:"_blank",rel:"noopener noreferrer"}},[a._v("MaciASL"),t("OutboundLink")],1),a._v(". To compile, just "),t("code",[a._v("File -> SaveAs -> ACPI Machine Language Binary(.AML)")]),a._v(", decompiling is just opening the file in MaciASL.")]),a._v(" "),t("p",[a._v("For those who prefer the command line, grab "),t("a",{attrs:{href:"https://github.com/acidanthera/MaciASL/blob/master/Dist/iasl-stable",target:"_blank",rel:"noopener noreferrer"}},[a._v("iasl-stable"),t("OutboundLink")],1),a._v(" and run the following:")]),a._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[a._v("path/to/iasl path/to/DSDT.aml\n")])])]),t("ul",[t("li",[a._v("If compiled .aml file is provided, a decompiled .dsl file will be given and vice versa.")])]),a._v(" "),t("p",[t("img",{attrs:{src:i(370),alt:""}})]),a._v(" "),t("h2",{attrs:{id:"windows"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#windows"}},[a._v("#")]),a._v(" Windows")]),a._v(" "),t("p",[a._v("Compiling and decompiling on windows is fairly simple though, you will need "),t("a",{attrs:{href:"https://acpica.org/downloads/binary-tools",target:"_blank",rel:"noopener noreferrer"}},[a._v("iasl.exe"),t("OutboundLink")],1),a._v(" and Command Prompt:")]),a._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[a._v("path/to/iasl.exe path/to/DSDT.aml\n")])])]),t("p",[t("img",{attrs:{src:i(371),alt:""}})]),a._v(" "),t("ul",[t("li",[a._v("If compiled .aml file is provided, a decompiled .dsl file will be given and vice versa.")])]),a._v(" "),t("h2",{attrs:{id:"linux"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#linux"}},[a._v("#")]),a._v(" Linux")]),a._v(" "),t("p",[a._v("Compiling and decompiling with Linux is just as simple, you will need a copy of iasl. You can get it here ("),t("a",{attrs:{href:"http://amdosx.kellynet.nl/iasl.zip",target:"_blank",rel:"noopener noreferrer"}},[a._v("iasl"),t("OutboundLink")],1),a._v(") or through the "),t("code",[a._v("iasl")]),a._v(" package in your package manager. iasl can be used as such:")]),a._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[a._v("path/to/iasl path/to/DSDT.aml\n")])])]),t("ul",[t("li",[a._v("If compiled .aml file is provided, a decompiled .dsl file will be given and vice versa.")])])])}),[],!1,null,null,null);e.default=l.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[17],{373:function(a,e,i){a.exports=i.p+"assets/img/macos-compile.5b3bc6ad.png"},374:function(a,e,i){a.exports=i.p+"assets/img/windows-compile.62b90d74.png"},428:function(a,e,i){"use strict";i.r(e);var t=i(25),l=Object(t.a)({},(function(){var a=this,e=a.$createElement,t=a._self._c||e;return t("ContentSlotsDistributor",{attrs:{"slot-key":a.$parent.slotKey}},[t("h1",{attrs:{id:"compiling-and-decompiling-acpi-tables"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#compiling-and-decompiling-acpi-tables"}},[a._v("#")]),a._v(" Compiling and decompiling ACPI Tables")]),a._v(" "),t("p",[a._v("See "),t("RouterLink",{attrs:{to:"/troubleshooting.html"}},[a._v("Troubleshooting")]),a._v(" if you have dumping/compiling errors")],1),a._v(" "),t("ul",[t("li",[t("RouterLink",{attrs:{to:"/Manual/compile.html#macos"}},[a._v("macOS Compiling and Decompiling")])],1),a._v(" "),t("li",[t("RouterLink",{attrs:{to:"/Manual/compile.html#windows"}},[a._v("Windows Compiling and Decompiling")])],1),a._v(" "),t("li",[t("RouterLink",{attrs:{to:"/Manual/compile.html#linux"}},[a._v("Linux Compiling and Decompiling")])],1)]),a._v(" "),t("h2",{attrs:{id:"macos"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#macos"}},[a._v("#")]),a._v(" macOS")]),a._v(" "),t("p",[a._v("So compiling DSDTs and SSDTs are quite easy with macOS, all you need is "),t("a",{attrs:{href:"https://github.com/acidanthera/MaciASL/releases",target:"_blank",rel:"noopener noreferrer"}},[a._v("MaciASL"),t("OutboundLink")],1),a._v(". To compile, just "),t("code",[a._v("File -> SaveAs -> ACPI Machine Language Binary(.AML)")]),a._v(", decompiling is just opening the file in MaciASL.")]),a._v(" "),t("p",[a._v("For those who prefer the command line, grab "),t("a",{attrs:{href:"https://github.com/acidanthera/MaciASL/blob/master/Dist/iasl-stable",target:"_blank",rel:"noopener noreferrer"}},[a._v("iasl-stable"),t("OutboundLink")],1),a._v(" and run the following:")]),a._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[a._v("path/to/iasl path/to/DSDT.aml\n")])])]),t("ul",[t("li",[a._v("If compiled .aml file is provided, a decompiled .dsl file will be given and vice versa.")])]),a._v(" "),t("p",[t("img",{attrs:{src:i(373),alt:""}})]),a._v(" "),t("h2",{attrs:{id:"windows"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#windows"}},[a._v("#")]),a._v(" Windows")]),a._v(" "),t("p",[a._v("Compiling and decompiling on windows is fairly simple though, you will need "),t("a",{attrs:{href:"https://acpica.org/downloads/binary-tools",target:"_blank",rel:"noopener noreferrer"}},[a._v("iasl.exe"),t("OutboundLink")],1),a._v(" and Command Prompt:")]),a._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[a._v("path/to/iasl.exe path/to/DSDT.aml\n")])])]),t("p",[t("img",{attrs:{src:i(374),alt:""}})]),a._v(" "),t("ul",[t("li",[a._v("If compiled .aml file is provided, a decompiled .dsl file will be given and vice versa.")])]),a._v(" "),t("h2",{attrs:{id:"linux"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#linux"}},[a._v("#")]),a._v(" Linux")]),a._v(" "),t("p",[a._v("Compiling and decompiling with Linux is just as simple, you will need a copy of iasl. You can get it here ("),t("a",{attrs:{href:"http://amdosx.kellynet.nl/iasl.zip",target:"_blank",rel:"noopener noreferrer"}},[a._v("iasl"),t("OutboundLink")],1),a._v(") or through the "),t("code",[a._v("iasl")]),a._v(" package in your package manager. iasl can be used as such:")]),a._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[a._v("path/to/iasl path/to/DSDT.aml\n")])])]),t("ul",[t("li",[a._v("If compiled .aml file is provided, a decompiled .dsl file will be given and vice versa.")])])])}),[],!1,null,null,null);e.default=l.exports}}]); \ No newline at end of file diff --git a/assets/js/17.a21bad02.js b/assets/js/18.55dc270f.js similarity index 95% rename from assets/js/17.a21bad02.js rename to assets/js/18.55dc270f.js index 9766b7e..83c1798 100644 --- a/assets/js/17.a21bad02.js +++ b/assets/js/18.55dc270f.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[17],{313:function(e,t,a){e.exports=a.p+"assets/img/nvidia.672e8e16.png"},328:function(e,t,a){e.exports=a.p+"assets/img/amd.acf5492b.png"},451:function(e,t,a){"use strict";a.r(t);var s=a(25),i=Object(s.a)({},(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[s("h1",{attrs:{id:"renaming-gpus-ssdt-gpu-spoof"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#renaming-gpus-ssdt-gpu-spoof"}},[e._v("#")]),e._v(" Renaming GPUs (SSDT-GPU-SPOOF)")]),e._v(" "),s("p",[e._v("So this is mainly needed for GPUs that are not natively supported out of the box due to their names, most commonly:")]),e._v(" "),s("ul",[s("li",[e._v("R9 290/390")]),e._v(" "),s("li",[e._v("R9 280/380")]),e._v(" "),s("li",[e._v("R7 270/370")]),e._v(" "),s("li",[e._v("R9 260/360")]),e._v(" "),s("li",[e._v("R7 250")]),e._v(" "),s("li",[e._v("R7 240")])]),e._v(" "),s("p",[e._v('Instead, these GPUs need to be "spoofed" or faked into a model that closely matches theirs, generally this will be the "X" variant of the card. For some reason Apple never bothered adding the PCI IDs for these other cards even though their GPU cores are supported by the driver.')]),e._v(" "),s("p",[e._v("So to spoof the GPU, we need to find a couple things:")]),e._v(" "),s("ul",[s("li",[e._v("Suitable PCI ID for the GPU")]),e._v(" "),s("li",[e._v("ACPI Path of the GPU")]),e._v(" "),s("li",[s("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/decompiled/SSDT-GPU-SPOOF.dsl.zip",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-GPU-SPOOF"),s("OutboundLink")],1)])]),e._v(" "),s("h2",{attrs:{id:"finding-a-suitable-pci-id"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#finding-a-suitable-pci-id"}},[e._v("#")]),e._v(" Finding a suitable PCI ID")]),e._v(" "),s("h3",{attrs:{id:"web"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#web"}},[e._v("#")]),e._v(" Web")]),e._v(" "),s("p",[e._v("To find a suitable PCI ID, we'll be using "),s("a",{attrs:{href:"https://pci-ids.ucw.cz/read/PC/1002",target:"_blank",rel:"noopener noreferrer"}},[e._v("PCI ID Repository"),s("OutboundLink")],1),e._v(" which has a full database of all AMD GPUs. For this example, we'll be creating a Spoof SSDT for the R9 390. For a full list of supported GPUs, please see the "),s("a",{attrs:{href:"https://dortania.github.io/GPU-Buyers-Guide/",target:"_blank",rel:"noopener noreferrer"}},[e._v("GPU Buyers Guide"),s("OutboundLink")],1),e._v(". The closest match to this GPU would be the 390X, and looking on that site near the top gives us this:")]),e._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v("Vendor 1002 -> Device 1002:67b0\n")])])]),s("p",[e._v("Now lets break this down into a device ID we can use:")]),e._v(" "),s("ul",[s("li",[s("code",[e._v("1002")]),e._v(": The vendor ID, all AMD devices have this ID")]),e._v(" "),s("li",[s("code",[e._v("67B0")]),e._v(": The device ID, this is what we care about")])]),e._v(" "),s("p",[e._v("So how do we convert this to a fake ID? Well the format of a fake ID:")]),e._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v('"device-id",\nBuffer (0x04)\n{\n 0xB0, 0x67, 0x00, 0x00\n},\n')])])]),s("p",[e._v("As you can see, the bytes are swapped in pairs. Keep this in mind when we make our SSDT")]),e._v(" "),s("p",[e._v("The specifics are due to "),s("a",{attrs:{href:"https://en.wikipedia.org/wiki/Endianness",target:"_blank",rel:"noopener noreferrer"}},[e._v("Endianness"),s("OutboundLink")],1),e._v(" for those who are curious")]),e._v(" "),s("h3",{attrs:{id:"linux"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#linux"}},[e._v("#")]),e._v(" Linux")]),e._v(" "),s("p",[e._v("If you can run Linux, use command "),s("code",[e._v("lspci -vmmnnD -d 1002::0300")])]),e._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v("$ lspci -vmmnnD -d 1002::0300\nSlot:\t0000:01:00.0\nClass:\tVGA compatible controller [0300]\nVendor:\tAdvanced Micro Devices, Inc. [AMD/ATI] [1002]\nDevice:\tOland [Radeon HD 8570 / R7 240/340 / Radeon 520 OEM] [6611]\nSVendor:\tMicro-Star International Co., Ltd. [MSI] [1462]\nSDevice:\tDevice [3740]\nRev:\t87\n")])])]),s("p",[e._v("You can easily get")]),e._v(" "),s("ul",[s("li",[e._v("Slot ID "),s("code",[e._v("0000:01:00.0")]),e._v(", we need it later")]),e._v(" "),s("li",[e._v("Vendor ID "),s("code",[e._v("1002")]),e._v(", all AMD devices have this ID")]),e._v(" "),s("li",[e._v("Device ID "),s("code",[e._v("6611")]),e._v(", this is what we care about")]),e._v(" "),s("li",[e._v("Device name "),s("code",[e._v("Radeon HD 8570 / R7 240/340 / Radeon 520 OEM")]),e._v(", mainly cosmetic")])]),e._v(" "),s("h2",{attrs:{id:"finding-the-acpi-path-of-the-gpu"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#finding-the-acpi-path-of-the-gpu"}},[e._v("#")]),e._v(" Finding the ACPI Path of the GPU")]),e._v(" "),s("h3",{attrs:{id:"windows"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#windows"}},[e._v("#")]),e._v(" Windows")]),e._v(" "),s("p",[e._v("To find the PCI path of a GPU is fairly simple, best way to find it is running Windows:")]),e._v(" "),s("ul",[s("li",[e._v("Open Device Manager")]),e._v(" "),s("li",[e._v("Select Display Adapters, then right click your GPU and select Properties")]),e._v(" "),s("li",[e._v('Under the Details Tab, search for "Location Paths"\n'),s("ul",[s("li",[e._v('Note some GPUs may be hiding under "BIOS device name"')])])])]),e._v(" "),s("p",[s("img",{attrs:{src:a(328),alt:""}})]),e._v(" "),s("p",[s("img",{attrs:{src:a(313),alt:"Credit to 1Revenger1 for the image"}})]),e._v(" "),s("p",[e._v('The second "ACPI" is what we care about:')]),e._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v("ACPI(_SB_)#ACPI(PC02)#ACPI(BR2A)#ACPI(PEGP)#PCI(0000)#PCI(0000)\n")])])]),s("p",[e._v("Now converting this to an ACPI path is quite simple, remove the "),s("code",[e._v("#ACPI")]),e._v(" and "),s("code",[e._v("#PCI(0000)")]),e._v(":")]),e._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v("\\_SB_.PC02.BR2A.PEGP\n")])])]),s("h3",{attrs:{id:"linux-2"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#linux-2"}},[e._v("#")]),e._v(" Linux")]),e._v(" "),s("p",[e._v("Substitute your SLOTID found above into command "),s("code",[e._v("cat /sys/bus/pci/devices/SLOTID/firmware_node/path")]),e._v(", you cat get")]),e._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v("$ cat /sys/bus/pci/devices/0000:01:00.0/firmware_node/path\n\\_SB_.PC02.BR2A.PEGP\n")])])]),s("p",[e._v("And voila! We've found our ACPI path, now that we have everything we're ready to get cooking")]),e._v(" "),s("h2",{attrs:{id:"making-the-ssdt"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#making-the-ssdt"}},[e._v("#")]),e._v(" Making the SSDT")]),e._v(" "),s("p",[e._v("To start grab our "),s("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/decompiled/SSDT-GPU-SPOOF.dsl.zip",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-GPU-SPOOF"),s("OutboundLink")],1),e._v(" and open it up. Here there's a couple things to change:")]),e._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v("External (_SB_.PCI0, DeviceObj)\nExternal (_SB_.PCI0.PEG0.PEGP, DeviceObj)\n")])])]),s("p",[e._v("For our example, we'll change all mentions of :")]),e._v(" "),s("ul",[s("li",[s("code",[e._v("PCI0")]),e._v(" with "),s("code",[e._v("PC02")])]),e._v(" "),s("li",[s("code",[e._v("PEG0")]),e._v(" with "),s("code",[e._v("BR2A")])])]),e._v(" "),s("p",[e._v("Hint: If your ACPI path is a bit shorter than the example, this is fine. Just make sure the ACPI paths are correct to your device.")]),e._v(" "),s("p",[e._v("Now that the ACPI pathing is correct, we can finally apply our fake ID!!!")]),e._v(" "),s("p",[e._v("So the 2 parts we want to change:")]),e._v(" "),s("p",[s("strong",[e._v("device ID")]),e._v(":")]),e._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v('"device-id",\nBuffer (0x04)\n{\n 0xB0, 0x67, 0x00, 0x00\n},\n')])])]),s("p",[s("strong",[e._v("Model")]),e._v(":")]),e._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v('"model",\nBuffer ()\n{\n "AMD Radeon R9 390"\n}\n')])])]),s("p",[s("code",[e._v('"device-id"')]),e._v(' will be set to our PCI ID that we found in "Finding a suitable PCI ID" and '),s("code",[e._v('"model"')]),e._v(" is mainly cosmetic")]),e._v(" "),s("h2",{attrs:{id:"now-you-re-ready-to-compile-the-ssdt"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#now-you-re-ready-to-compile-the-ssdt"}},[e._v("#")]),e._v(" "),s("RouterLink",{attrs:{to:"/Manual/compile.html"}},[e._v("Now you're ready to compile the SSDT!")])],1)])}),[],!1,null,null,null);t.default=i.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[18],{316:function(e,t,a){e.exports=a.p+"assets/img/nvidia.672e8e16.png"},333:function(e,t,a){e.exports=a.p+"assets/img/amd.acf5492b.png"},460:function(e,t,a){"use strict";a.r(t);var s=a(25),i=Object(s.a)({},(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[s("h1",{attrs:{id:"renaming-gpus-ssdt-gpu-spoof"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#renaming-gpus-ssdt-gpu-spoof"}},[e._v("#")]),e._v(" Renaming GPUs (SSDT-GPU-SPOOF)")]),e._v(" "),s("p",[e._v("So this is mainly needed for GPUs that are not natively supported out of the box due to their names, most commonly:")]),e._v(" "),s("ul",[s("li",[e._v("R9 290/390")]),e._v(" "),s("li",[e._v("R9 280/380")]),e._v(" "),s("li",[e._v("R7 270/370")]),e._v(" "),s("li",[e._v("R9 260/360")]),e._v(" "),s("li",[e._v("R7 250")]),e._v(" "),s("li",[e._v("R7 240")])]),e._v(" "),s("p",[e._v('Instead, these GPUs need to be "spoofed" or faked into a model that closely matches theirs, generally this will be the "X" variant of the card. For some reason Apple never bothered adding the PCI IDs for these other cards even though their GPU cores are supported by the driver.')]),e._v(" "),s("p",[e._v("So to spoof the GPU, we need to find a couple things:")]),e._v(" "),s("ul",[s("li",[e._v("Suitable PCI ID for the GPU")]),e._v(" "),s("li",[e._v("ACPI Path of the GPU")]),e._v(" "),s("li",[s("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/decompiled/SSDT-GPU-SPOOF.dsl.zip",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-GPU-SPOOF"),s("OutboundLink")],1)])]),e._v(" "),s("h2",{attrs:{id:"finding-a-suitable-pci-id"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#finding-a-suitable-pci-id"}},[e._v("#")]),e._v(" Finding a suitable PCI ID")]),e._v(" "),s("h3",{attrs:{id:"web"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#web"}},[e._v("#")]),e._v(" Web")]),e._v(" "),s("p",[e._v("To find a suitable PCI ID, we'll be using "),s("a",{attrs:{href:"https://pci-ids.ucw.cz/read/PC/1002",target:"_blank",rel:"noopener noreferrer"}},[e._v("PCI ID Repository"),s("OutboundLink")],1),e._v(" which has a full database of all AMD GPUs. For this example, we'll be creating a Spoof SSDT for the R9 390. For a full list of supported GPUs, please see the "),s("a",{attrs:{href:"https://dortania.github.io/GPU-Buyers-Guide/",target:"_blank",rel:"noopener noreferrer"}},[e._v("GPU Buyers Guide"),s("OutboundLink")],1),e._v(". The closest match to this GPU would be the 390X, and looking on that site near the top gives us this:")]),e._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v("Vendor 1002 -> Device 1002:67b0\n")])])]),s("p",[e._v("Now lets break this down into a device ID we can use:")]),e._v(" "),s("ul",[s("li",[s("code",[e._v("1002")]),e._v(": The vendor ID, all AMD devices have this ID")]),e._v(" "),s("li",[s("code",[e._v("67B0")]),e._v(": The device ID, this is what we care about")])]),e._v(" "),s("p",[e._v("So how do we convert this to a fake ID? Well the format of a fake ID:")]),e._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v('"device-id",\nBuffer (0x04)\n{\n 0xB0, 0x67, 0x00, 0x00\n},\n')])])]),s("p",[e._v("As you can see, the bytes are swapped in pairs. Keep this in mind when we make our SSDT")]),e._v(" "),s("p",[e._v("The specifics are due to "),s("a",{attrs:{href:"https://en.wikipedia.org/wiki/Endianness",target:"_blank",rel:"noopener noreferrer"}},[e._v("Endianness"),s("OutboundLink")],1),e._v(" for those who are curious")]),e._v(" "),s("h3",{attrs:{id:"linux"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#linux"}},[e._v("#")]),e._v(" Linux")]),e._v(" "),s("p",[e._v("If you can run Linux, use command "),s("code",[e._v("lspci -vmmnnD -d 1002::0300")])]),e._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v("$ lspci -vmmnnD -d 1002::0300\nSlot:\t0000:01:00.0\nClass:\tVGA compatible controller [0300]\nVendor:\tAdvanced Micro Devices, Inc. [AMD/ATI] [1002]\nDevice:\tOland [Radeon HD 8570 / R7 240/340 / Radeon 520 OEM] [6611]\nSVendor:\tMicro-Star International Co., Ltd. [MSI] [1462]\nSDevice:\tDevice [3740]\nRev:\t87\n")])])]),s("p",[e._v("You can easily get")]),e._v(" "),s("ul",[s("li",[e._v("Slot ID "),s("code",[e._v("0000:01:00.0")]),e._v(", we need it later")]),e._v(" "),s("li",[e._v("Vendor ID "),s("code",[e._v("1002")]),e._v(", all AMD devices have this ID")]),e._v(" "),s("li",[e._v("Device ID "),s("code",[e._v("6611")]),e._v(", this is what we care about")]),e._v(" "),s("li",[e._v("Device name "),s("code",[e._v("Radeon HD 8570 / R7 240/340 / Radeon 520 OEM")]),e._v(", mainly cosmetic")])]),e._v(" "),s("h2",{attrs:{id:"finding-the-acpi-path-of-the-gpu"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#finding-the-acpi-path-of-the-gpu"}},[e._v("#")]),e._v(" Finding the ACPI Path of the GPU")]),e._v(" "),s("h3",{attrs:{id:"windows"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#windows"}},[e._v("#")]),e._v(" Windows")]),e._v(" "),s("p",[e._v("To find the PCI path of a GPU is fairly simple, best way to find it is running Windows:")]),e._v(" "),s("ul",[s("li",[e._v("Open Device Manager")]),e._v(" "),s("li",[e._v("Select Display Adapters, then right click your GPU and select Properties")]),e._v(" "),s("li",[e._v('Under the Details Tab, search for "Location Paths"\n'),s("ul",[s("li",[e._v('Note some GPUs may be hiding under "BIOS device name"')])])])]),e._v(" "),s("p",[s("img",{attrs:{src:a(333),alt:""}})]),e._v(" "),s("p",[s("img",{attrs:{src:a(316),alt:"Credit to 1Revenger1 for the image"}})]),e._v(" "),s("p",[e._v('The second "ACPI" is what we care about:')]),e._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v("ACPI(_SB_)#ACPI(PC02)#ACPI(BR2A)#ACPI(PEGP)#PCI(0000)#PCI(0000)\n")])])]),s("p",[e._v("Now converting this to an ACPI path is quite simple, remove the "),s("code",[e._v("#ACPI")]),e._v(" and "),s("code",[e._v("#PCI(0000)")]),e._v(":")]),e._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v("\\_SB_.PC02.BR2A.PEGP\n")])])]),s("h3",{attrs:{id:"linux-2"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#linux-2"}},[e._v("#")]),e._v(" Linux")]),e._v(" "),s("p",[e._v("Substitute your SLOTID found above into command "),s("code",[e._v("cat /sys/bus/pci/devices/SLOTID/firmware_node/path")]),e._v(", you cat get")]),e._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v("$ cat /sys/bus/pci/devices/0000:01:00.0/firmware_node/path\n\\_SB_.PC02.BR2A.PEGP\n")])])]),s("p",[e._v("And voila! We've found our ACPI path, now that we have everything we're ready to get cooking")]),e._v(" "),s("h2",{attrs:{id:"making-the-ssdt"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#making-the-ssdt"}},[e._v("#")]),e._v(" Making the SSDT")]),e._v(" "),s("p",[e._v("To start grab our "),s("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/decompiled/SSDT-GPU-SPOOF.dsl.zip",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-GPU-SPOOF"),s("OutboundLink")],1),e._v(" and open it up. Here there's a couple things to change:")]),e._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v("External (_SB_.PCI0, DeviceObj)\nExternal (_SB_.PCI0.PEG0.PEGP, DeviceObj)\n")])])]),s("p",[e._v("For our example, we'll change all mentions of :")]),e._v(" "),s("ul",[s("li",[s("code",[e._v("PCI0")]),e._v(" with "),s("code",[e._v("PC02")])]),e._v(" "),s("li",[s("code",[e._v("PEG0")]),e._v(" with "),s("code",[e._v("BR2A")])])]),e._v(" "),s("p",[e._v("Hint: If your ACPI path is a bit shorter than the example, this is fine. Just make sure the ACPI paths are correct to your device.")]),e._v(" "),s("p",[e._v("Now that the ACPI pathing is correct, we can finally apply our fake ID!!!")]),e._v(" "),s("p",[e._v("So the 2 parts we want to change:")]),e._v(" "),s("p",[s("strong",[e._v("device ID")]),e._v(":")]),e._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v('"device-id",\nBuffer (0x04)\n{\n 0xB0, 0x67, 0x00, 0x00\n},\n')])])]),s("p",[s("strong",[e._v("Model")]),e._v(":")]),e._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v('"model",\nBuffer ()\n{\n "AMD Radeon R9 390"\n}\n')])])]),s("p",[s("code",[e._v('"device-id"')]),e._v(' will be set to our PCI ID that we found in "Finding a suitable PCI ID" and '),s("code",[e._v('"model"')]),e._v(" is mainly cosmetic")]),e._v(" "),s("h2",{attrs:{id:"now-you-re-ready-to-compile-the-ssdt"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#now-you-re-ready-to-compile-the-ssdt"}},[e._v("#")]),e._v(" "),s("RouterLink",{attrs:{to:"/Manual/compile.html"}},[e._v("Now you're ready to compile the SSDT!")])],1)])}),[],!1,null,null,null);t.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/18.c8282aa4.js b/assets/js/19.efc4a987.js similarity index 96% rename from assets/js/18.c8282aa4.js rename to assets/js/19.efc4a987.js index edb06a3..6e9cf9a 100644 --- a/assets/js/18.c8282aa4.js +++ b/assets/js/19.efc4a987.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[18],{313:function(e,t,a){e.exports=a.p+"assets/img/nvidia.672e8e16.png"},417:function(e,t,a){"use strict";a.r(t);var s=a(25),o=Object(s.a)({},(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[s("h1",{attrs:{id:"disabling-laptop-dgpus-ssdt-dgpu-off-nohybgfx"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#disabling-laptop-dgpus-ssdt-dgpu-off-nohybgfx"}},[e._v("#")]),e._v(" Disabling laptop dGPUs (SSDT-dGPU-Off/NoHybGfx)")]),e._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#what-this-ssdt-does"}},[e._v("What this SSDT does")])]),e._v(" "),s("li",[s("a",{attrs:{href:"#methods-to-make-this-ssdt"}},[e._v("Methods to make this SSDT")]),e._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#prebuilts"}},[e._v("Prebuilt")])]),e._v(" "),s("li",[s("a",{attrs:{href:"#ssdttime"}},[e._v("SSDTTime")])]),e._v(" "),s("li",[s("a",{attrs:{href:"#manual"}},[e._v("Manual")]),e._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#finding-the-acpi-path"}},[e._v("Finding the ACPI path")])]),e._v(" "),s("li",[s("a",{attrs:{href:"#edits-to-the-sample-ssdt"}},[e._v("Edits to the sample SSDT")])]),e._v(" "),s("li",[s("a",{attrs:{href:"#compiling-the-ssdt"}},[e._v("Compiling the SSDT")])])])])])])]),e._v(" "),s("p",[e._v("So with laptops, we can hide the dGPU from macOS with the little boot-arg called "),s("code",[e._v("-wegnoegpu")]),e._v(" from WhateverGreen. But one small problem, the dGPU is still pulling power draining your battery slowly. We'll be going over 2 methods for disabling the dGPU in a laptop:")]),e._v(" "),s("ul",[s("li",[s("RouterLink",{attrs:{to:"/Laptops/laptop-disable.html#optimus-method"}},[e._v("Optimus Method")])],1),e._v(" "),s("li",[s("RouterLink",{attrs:{to:"/Laptops/laptop-disable.html#bumblebee-method"}},[e._v("Bumblebee Method")])],1)]),e._v(" "),s("p",[e._v("Note that this is not needed for install, but recommended for post-install")]),e._v(" "),s("h2",{attrs:{id:"optimus-method"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#optimus-method"}},[e._v("#")]),e._v(" Optimus Method")]),e._v(" "),s("p",[e._v("How this works is that we call the "),s("code",[e._v(".off")]),e._v(" method found on Optimus GPUs, this is the expected way to power off a GPU but some may find their dGPU will power back up later on. Mainly seen in Lenovo's, the Optimus method should work for most users:")]),e._v(" "),s("p",[e._v("To start, grab "),s("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/decompiled/SSDT-dGPU-Off.dsl.zip",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-dGPU-Off.dsl"),s("OutboundLink")],1)]),e._v(" "),s("p",[e._v("Next we need to get on Windows, and head to the following:")]),e._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v("Device Manager -> Display Adapters -> dGPU -> Properties -> Details > BIOS device name\n")])])]),s("ul",[s("li",[e._v('Note some GPUs may be hiding under "BIOS device name"')])]),e._v(" "),s("p",[e._v("This should provided you with an ACPI path for your dGPU, most commonly:")]),e._v(" "),s("ul",[s("li",[e._v("Nvidia dGPU: "),s("code",[e._v("\\_SB.PCI0.PEG0.PEGP")])]),e._v(" "),s("li",[e._v("AMD dGPU: "),s("code",[e._v("\\_SB.PCI0.PEGP.DGFX")])])]),e._v(" "),s("p",[s("img",{attrs:{src:a(313),alt:"Credit to 1Revenger1 for the image"}})]),e._v(" "),s("p",[e._v("Now with that, we'll need to change the ACPI path in the SSDT. Main sections:")]),e._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v("External(_SB.PCI0.PEG0.PEGP._OFF, MethodObj)\n")])])]),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v("If (CondRefOf(\\_SB.PCI0.PEG0.PEGP._OFF)) { \\_SB.PCI0.PEG0.PEGP._OFF() }\n")])])]),s("p",[e._v("Once adapted to your config, head to the compile section")]),e._v(" "),s("ul",[s("li",[e._v("For those with sleep issues, you can refer to the original "),s("a",{attrs:{href:"https://www.tonymacx86.com/threads/guide-disabling-discrete-graphics-in-dual-gpu-laptops.163772/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Rehabman thread"),s("OutboundLink")],1)])]),e._v(" "),s("h2",{attrs:{id:"bumblebee-method"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#bumblebee-method"}},[e._v("#")]),e._v(" Bumblebee Method")]),e._v(" "),s("p",[e._v("With some machines, the simple "),s("code",[e._v(".off")]),e._v(" call won't keep the card off properly, that's where the Bumblebee method comes in. This SSDT will actually send the dGPU into D3 state being the lowest power state a device can support. Credit to Mameo for the original adaptation.")]),e._v(" "),s("p",[e._v("To start, grab "),s("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/decompiled/SSDT-NoHybGfx.dsl.zip",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-NoHybGfx.dsl"),s("OutboundLink")],1)]),e._v(" "),s("p",[e._v("Next we need to get on Windows, and head to the following:")]),e._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v("Device Manager -> Display Adapters -> dGPU -> Properties -> Details > BIOS device name\n")])])]),s("p",[e._v("This should provided you with an ACPI path for your dGPU, most commonly:")]),e._v(" "),s("ul",[s("li",[e._v("Nvidia dGPU: "),s("code",[e._v("\\_SB.PCI0.PEG0.PEGP")])]),e._v(" "),s("li",[e._v("AMD dGPU: "),s("code",[e._v("\\_SB.PCI0.PEGP.DGFX")])])]),e._v(" "),s("p",[e._v("Now with that, we'll need to change the ACPI path in the SSDT. Main sections:")]),e._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v("External (_SB_.PCI0.PEG0.PEGP._DSM, MethodObj) // dGPU ACPI Path\nExternal (_SB_.PCI0.PEG0.PEGP._PS3, MethodObj) // dGPU ACPI Path\n")])])]),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v("If ((CondRefOf (\\_SB.PCI0.PEG0.PEGP._DSM) && CondRefOf (\\_SB.PCI0.PEG0.PEGP._PS3)))\n")])])]),s("div",{staticClass:"language-text extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v(' // Card Off Request\n \\_SB.PCI0.PEG0.PEGP._DSM (ToUUID ("a486d8f8-0bda-471b-a72b-6042a6b5bee0"), 0x0100, 0x1A, Buffer (0x04)\n')])])]),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v(" // Card Off\n\\_SB.PCI0.PEG0.PEGP._PS3 ()\n")])])]),s("p",[e._v("Once adapted to your config, head to the compile section")]),e._v(" "),s("h2",{attrs:{id:"now-you-re-ready-to-compile-the-ssdt"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#now-you-re-ready-to-compile-the-ssdt"}},[e._v("#")]),e._v(" "),s("RouterLink",{attrs:{to:"/Manual/compile.html"}},[e._v("Now you're ready to compile the SSDT!")])],1)])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[19],{316:function(e,t,a){e.exports=a.p+"assets/img/nvidia.672e8e16.png"},429:function(e,t,a){"use strict";a.r(t);var s=a(25),o=Object(s.a)({},(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[s("h1",{attrs:{id:"disabling-laptop-dgpus-ssdt-dgpu-off-nohybgfx"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#disabling-laptop-dgpus-ssdt-dgpu-off-nohybgfx"}},[e._v("#")]),e._v(" Disabling laptop dGPUs (SSDT-dGPU-Off/NoHybGfx)")]),e._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#what-this-ssdt-does"}},[e._v("What this SSDT does")])]),e._v(" "),s("li",[s("a",{attrs:{href:"#methods-to-make-this-ssdt"}},[e._v("Methods to make this SSDT")]),e._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#prebuilts"}},[e._v("Prebuilt")])]),e._v(" "),s("li",[s("a",{attrs:{href:"#ssdttime"}},[e._v("SSDTTime")])]),e._v(" "),s("li",[s("a",{attrs:{href:"#manual"}},[e._v("Manual")]),e._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#finding-the-acpi-path"}},[e._v("Finding the ACPI path")])]),e._v(" "),s("li",[s("a",{attrs:{href:"#edits-to-the-sample-ssdt"}},[e._v("Edits to the sample SSDT")])]),e._v(" "),s("li",[s("a",{attrs:{href:"#compiling-the-ssdt"}},[e._v("Compiling the SSDT")])])])])])])]),e._v(" "),s("p",[e._v("So with laptops, we can hide the dGPU from macOS with the little boot-arg called "),s("code",[e._v("-wegnoegpu")]),e._v(" from WhateverGreen. But one small problem, the dGPU is still pulling power draining your battery slowly. We'll be going over 2 methods for disabling the dGPU in a laptop:")]),e._v(" "),s("ul",[s("li",[s("RouterLink",{attrs:{to:"/Laptops/laptop-disable.html#optimus-method"}},[e._v("Optimus Method")])],1),e._v(" "),s("li",[s("RouterLink",{attrs:{to:"/Laptops/laptop-disable.html#bumblebee-method"}},[e._v("Bumblebee Method")])],1)]),e._v(" "),s("p",[e._v("Note that this is not needed for install, but recommended for post-install")]),e._v(" "),s("h2",{attrs:{id:"optimus-method"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#optimus-method"}},[e._v("#")]),e._v(" Optimus Method")]),e._v(" "),s("p",[e._v("How this works is that we call the "),s("code",[e._v(".off")]),e._v(" method found on Optimus GPUs, this is the expected way to power off a GPU but some may find their dGPU will power back up later on. Mainly seen in Lenovo's, the Optimus method should work for most users:")]),e._v(" "),s("p",[e._v("To start, grab "),s("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/decompiled/SSDT-dGPU-Off.dsl.zip",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-dGPU-Off.dsl"),s("OutboundLink")],1)]),e._v(" "),s("p",[e._v("Next we need to get on Windows, and head to the following:")]),e._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v("Device Manager -> Display Adapters -> dGPU -> Properties -> Details > BIOS device name\n")])])]),s("ul",[s("li",[e._v('Note some GPUs may be hiding under "BIOS device name"')])]),e._v(" "),s("p",[e._v("This should provided you with an ACPI path for your dGPU, most commonly:")]),e._v(" "),s("ul",[s("li",[e._v("Nvidia dGPU: "),s("code",[e._v("\\_SB.PCI0.PEG0.PEGP")])]),e._v(" "),s("li",[e._v("AMD dGPU: "),s("code",[e._v("\\_SB.PCI0.PEGP.DGFX")])])]),e._v(" "),s("p",[s("img",{attrs:{src:a(316),alt:"Credit to 1Revenger1 for the image"}})]),e._v(" "),s("p",[e._v("Now with that, we'll need to change the ACPI path in the SSDT. Main sections:")]),e._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v("External(_SB.PCI0.PEG0.PEGP._OFF, MethodObj)\n")])])]),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v("If (CondRefOf(\\_SB.PCI0.PEG0.PEGP._OFF)) { \\_SB.PCI0.PEG0.PEGP._OFF() }\n")])])]),s("p",[e._v("Once adapted to your config, head to the compile section")]),e._v(" "),s("ul",[s("li",[e._v("For those with sleep issues, you can refer to the original "),s("a",{attrs:{href:"https://www.tonymacx86.com/threads/guide-disabling-discrete-graphics-in-dual-gpu-laptops.163772/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Rehabman thread"),s("OutboundLink")],1)])]),e._v(" "),s("h2",{attrs:{id:"bumblebee-method"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#bumblebee-method"}},[e._v("#")]),e._v(" Bumblebee Method")]),e._v(" "),s("p",[e._v("With some machines, the simple "),s("code",[e._v(".off")]),e._v(" call won't keep the card off properly, that's where the Bumblebee method comes in. This SSDT will actually send the dGPU into D3 state being the lowest power state a device can support. Credit to Mameo for the original adaptation.")]),e._v(" "),s("p",[e._v("To start, grab "),s("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/decompiled/SSDT-NoHybGfx.dsl.zip",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-NoHybGfx.dsl"),s("OutboundLink")],1)]),e._v(" "),s("p",[e._v("Next we need to get on Windows, and head to the following:")]),e._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v("Device Manager -> Display Adapters -> dGPU -> Properties -> Details > BIOS device name\n")])])]),s("p",[e._v("This should provided you with an ACPI path for your dGPU, most commonly:")]),e._v(" "),s("ul",[s("li",[e._v("Nvidia dGPU: "),s("code",[e._v("\\_SB.PCI0.PEG0.PEGP")])]),e._v(" "),s("li",[e._v("AMD dGPU: "),s("code",[e._v("\\_SB.PCI0.PEGP.DGFX")])])]),e._v(" "),s("p",[e._v("Now with that, we'll need to change the ACPI path in the SSDT. Main sections:")]),e._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v("External (_SB_.PCI0.PEG0.PEGP._DSM, MethodObj) // dGPU ACPI Path\nExternal (_SB_.PCI0.PEG0.PEGP._PS3, MethodObj) // dGPU ACPI Path\n")])])]),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v("If ((CondRefOf (\\_SB.PCI0.PEG0.PEGP._DSM) && CondRefOf (\\_SB.PCI0.PEG0.PEGP._PS3)))\n")])])]),s("div",{staticClass:"language-text extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v(' // Card Off Request\n \\_SB.PCI0.PEG0.PEGP._DSM (ToUUID ("a486d8f8-0bda-471b-a72b-6042a6b5bee0"), 0x0100, 0x1A, Buffer (0x04)\n')])])]),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v(" // Card Off\n\\_SB.PCI0.PEG0.PEGP._PS3 ()\n")])])]),s("p",[e._v("Once adapted to your config, head to the compile section")]),e._v(" "),s("h2",{attrs:{id:"now-you-re-ready-to-compile-the-ssdt"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#now-you-re-ready-to-compile-the-ssdt"}},[e._v("#")]),e._v(" "),s("RouterLink",{attrs:{to:"/Manual/compile.html"}},[e._v("Now you're ready to compile the SSDT!")])],1)])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/2.b96c6b25.js b/assets/js/2.b96c6b25.js new file mode 100644 index 0000000..881ccff --- /dev/null +++ b/assets/js/2.b96c6b25.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{315:function(t,e,n){"use strict";n.d(e,"d",(function(){return i})),n.d(e,"a",(function(){return a})),n.d(e,"i",(function(){return s})),n.d(e,"f",(function(){return u})),n.d(e,"g",(function(){return l})),n.d(e,"h",(function(){return c})),n.d(e,"b",(function(){return h})),n.d(e,"e",(function(){return f})),n.d(e,"k",(function(){return p})),n.d(e,"l",(function(){return d})),n.d(e,"c",(function(){return v})),n.d(e,"j",(function(){return m}));n(26),n(99),n(171),n(98),n(178),n(69),n(45),n(319),n(70),n(338),n(101);var i=/#.*$/,r=/\.(md|html)$/,a=/\/$/,s=/^[a-z]+:/i;function o(t){return decodeURI(t).replace(i,"").replace(r,"")}function u(t){return s.test(t)}function l(t){return/^mailto:/.test(t)}function c(t){return/^tel:/.test(t)}function h(t){if(u(t))return t;var e=t.match(i),n=e?e[0]:"",r=o(t);return a.test(r)?t:r+".html"+n}function f(t,e){var n=decodeURIComponent(t.hash),r=function(t){var e=t.match(i);if(e)return e[0]}(e);return(!r||n===r)&&o(t.path)===o(e)}function p(t,e,n){if(u(e))return{type:"external",path:e};n&&(e=function(t,e,n){var i=t.charAt(0);if("/"===i)return t;if("?"===i||"#"===i)return e+t;var r=e.split("/");n&&r[r.length-1]||r.pop();for(var a=t.replace(/^\//,"").split("/"),s=0;s3&&void 0!==arguments[3]?arguments[3]:1;if("string"==typeof e)return p(n,e,i);if(Array.isArray(e))return Object.assign(p(n,e[0],i),{title:e[1]});var a=e.children||[];return 0===a.length&&e.path?Object.assign(p(n,e.path,i),{title:e.title}):{type:"group",path:e.path,title:e.title,sidebarDepth:e.sidebarDepth,initialOpenGroupIndex:e.initialOpenGroupIndex,children:a.map((function(e){return t(e,n,i,r+1)})),collapsable:!1!==e.collapsable}}(t,r,l)})):[]}return[]}function g(t){var e=v(t.headers||[]);return[{type:"group",collapsable:!1,title:t.title,path:null,children:e.map((function(e){return{type:"auto",title:e.title,basePath:t.path,path:t.path+"#"+e.slug,children:e.children||[]}}))}]}function v(t){var e;return(t=t.map((function(t){return Object.assign({},t)}))).forEach((function(t){2===t.level?e=t:e&&(e.children||(e.children=[])).push(t)})),t.filter((function(t){return 2===t.level}))}function m(t){return Object.assign(t,{type:t.items&&t.items.length?"links":"link"})}},319:function(t,e,n){"use strict";var i=n(175),r=n(7),a=n(13),s=n(20),o=n(176),u=n(177);i("match",1,(function(t,e,n){return[function(e){var n=s(this),i=null==e?void 0:e[t];return void 0!==i?i.call(e,n):new RegExp(e)[t](String(n))},function(t){var i=n(e,t,this);if(i.done)return i.value;var s=r(t),l=String(this);if(!s.global)return u(s,l);var c=s.unicode;s.lastIndex=0;for(var h,f=[],p=0;null!==(h=u(s,l));){var d=String(h[0]);f[p]=d,""===d&&(s.lastIndex=o(l,a(s.lastIndex),c)),p++}return 0===p?null:f}]}))},320:function(t,e,n){},321:function(t,e,n){},322:function(t,e,n){},323:function(t,e,n){},324:function(t,e,n){},325:function(t,e,n){},326:function(t,e,n){},327:function(t,e,n){},328:function(t,e,n){},329:function(t,e,n){},330:function(t,e,n){},331:function(t,e,n){},332:function(t,e,n){},338:function(t,e,n){"use strict";var i=n(175),r=n(172),a=n(7),s=n(20),o=n(104),u=n(176),l=n(13),c=n(177),h=n(72),f=n(1),p=[].push,d=Math.min,g=!f((function(){return!RegExp(4294967295,"y")}));i("split",2,(function(t,e,n){var i;return i="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(t,n){var i=String(s(this)),a=void 0===n?4294967295:n>>>0;if(0===a)return[];if(void 0===t)return[i];if(!r(t))return e.call(i,t,a);for(var o,u,l,c=[],f=(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.unicode?"u":"")+(t.sticky?"y":""),d=0,g=new RegExp(t.source,f+"g");(o=h.call(g,i))&&!((u=g.lastIndex)>d&&(c.push(i.slice(d,o.index)),o.length>1&&o.index=a));)g.lastIndex===o.index&&g.lastIndex++;return d===i.length?!l&&g.test("")||c.push(""):c.push(i.slice(d)),c.length>a?c.slice(0,a):c}:"0".split(void 0,0).length?function(t,n){return void 0===t&&0===n?[]:e.call(this,t,n)}:e,[function(e,n){var r=s(this),a=null==e?void 0:e[t];return void 0!==a?a.call(e,r,n):i.call(String(r),e,n)},function(t,r){var s=n(i,t,this,r,i!==e);if(s.done)return s.value;var h=a(t),f=String(this),p=o(h,RegExp),v=h.unicode,m=(h.ignoreCase?"i":"")+(h.multiline?"m":"")+(h.unicode?"u":"")+(g?"y":"g"),b=new p(g?h:"^(?:"+h.source+")",m),_=void 0===r?4294967295:r>>>0;if(0===_)return[];if(0===f.length)return null===c(b,f)?[f]:[];for(var k=0,x=0,C=[];x-1)&&(e=e.replace(/y/g,""));var o=s(x?new m(t,e):m(t,e),i?this:b,$);return C&&n&&d(o,{sticky:n}),o},y=function(t){t in $||o($,t,{configurable:!0,get:function(){return m[t]},set:function(e){m[t]=e}})},w=u(m),L=0;w.length>L;)y(w[L++]);b.constructor=$,$.prototype=b,f(r,"RegExp",$)}g("RegExp")},341:function(t,e){t.exports=function(t){return null==t}},342:function(t,e,n){"use strict";n.r(e);n(170);var i=n(315),r={name:"SidebarGroup",components:{DropdownTransition:n(343).a},props:["item","open","collapsable","depth"],beforeCreate:function(){this.$options.components.SidebarLinks=n(342).default},methods:{isActive:i.e}},a=(n(362),n(25)),s=Object(a.a)(r,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("section",{staticClass:"sidebar-group",class:[{collapsable:t.collapsable,"is-sub-group":0!==t.depth},"depth-"+t.depth]},[t.item.path?n("RouterLink",{staticClass:"sidebar-heading clickable",class:{open:t.open,active:t.isActive(t.$route,t.item.path)},attrs:{to:t.item.path},nativeOn:{click:function(e){return t.$emit("toggle")}}},[n("span",[t._v(t._s(t.item.title))]),t._v(" "),t.collapsable?n("span",{staticClass:"arrow",class:t.open?"down":"right"}):t._e()]):n("p",{staticClass:"sidebar-heading",class:{open:t.open},on:{click:function(e){return t.$emit("toggle")}}},[n("span",[t._v(t._s(t.item.title))]),t._v(" "),t.collapsable?n("span",{staticClass:"arrow",class:t.open?"down":"right"}):t._e()]),t._v(" "),n("DropdownTransition",[t.open||!t.collapsable?n("SidebarLinks",{staticClass:"sidebar-group-items",attrs:{items:t.item.children,"sidebar-depth":t.item.sidebarDepth,"initial-open-group-index":t.item.initialOpenGroupIndex,depth:t.depth+1}}):t._e()],1)],1)}),[],!1,null,null,null).exports;n(363),n(69);function o(t,e,n,i,r){var a={props:{to:e,activeClass:"",exactActiveClass:""},class:{active:i,"sidebar-link":!0}};return r>2&&(a.style={"padding-left":r+"rem"}),t("RouterLink",a,n)}function u(t,e,n,r,a){var s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:1;return!e||s>a?null:t("ul",{class:"sidebar-sub-headers"},e.map((function(e){var l=Object(i.e)(r,n+"#"+e.slug);return t("li",{class:"sidebar-sub-header"},[o(t,n+"#"+e.slug,e.title,l,e.level-1),u(t,e.children,n,r,a,s+1)])})))}var l={functional:!0,props:["item","sidebarDepth"],render:function(t,e){var n=e.parent,r=n.$page,a=(n.$site,n.$route),s=n.$themeConfig,l=n.$themeLocaleConfig,c=e.props,h=c.item,f=c.sidebarDepth,p=Object(i.e)(a,h.path),d="auto"===h.type?p||h.children.some((function(t){return Object(i.e)(a,h.basePath+"#"+t.slug)})):p,g="external"===h.type?function(t,e,n){return t("a",{attrs:{href:e,target:"_blank",rel:"noopener noreferrer"},class:{"sidebar-link":!0}},[n,t("OutboundLink")])}(t,h.path,h.title||h.path):o(t,h.path,h.title||h.path,d),v=[r.frontmatter.sidebarDepth,f,l.sidebarDepth,s.sidebarDepth,1].find((function(t){return void 0!==t})),m=l.displayAllHeaders||s.displayAllHeaders;return"auto"===h.type?[g,u(t,h.children,h.basePath,a,v)]:(d||m)&&h.headers&&!i.d.test(h.path)?[g,u(t,Object(i.c)(h.headers),h.path,a,v)]:g}};n(364);function c(t,e){return"group"===e.type&&e.children.some((function(e){return"group"===e.type?c(t,e):"page"===e.type&&Object(i.e)(t,e.path)}))}var h={name:"SidebarLinks",components:{SidebarGroup:s,SidebarLink:Object(a.a)(l,void 0,void 0,!1,null,null,null).exports},props:["items","depth","sidebarDepth","initialOpenGroupIndex"],data:function(){return{openGroupIndex:this.initialOpenGroupIndex||0}},watch:{$route:function(){this.refreshIndex()}},created:function(){this.refreshIndex()},methods:{refreshIndex:function(){var t=function(t,e){for(var n=0;n-1&&(this.openGroupIndex=t)},toggleGroup:function(t){this.openGroupIndex=t===this.openGroupIndex?-1:t},isActive:function(t){return Object(i.e)(this.$route,t.regularPath)}}},f=Object(a.a)(h,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return t.items.length?n("ul",{staticClass:"sidebar-links"},t._l(t.items,(function(e,i){return n("li",{key:i},["group"===e.type?n("SidebarGroup",{attrs:{item:e,open:i===t.openGroupIndex,collapsable:e.collapsable||e.collapsible,depth:t.depth},on:{toggle:function(e){return t.toggleGroup(i)}}}):n("SidebarLink",{attrs:{"sidebar-depth":t.sidebarDepth,item:e}})],1)})),0):t._e()}),[],!1,null,null,null);e.default=f.exports},343:function(t,e,n){"use strict";var i={name:"DropdownTransition",methods:{setHeight:function(t){t.style.height=t.scrollHeight+"px"},unsetHeight:function(t){t.style.height=""}}},r=(n(354),n(25)),a=Object(r.a)(i,(function(){var t=this.$createElement;return(this._self._c||t)("transition",{attrs:{name:"dropdown"},on:{enter:this.setHeight,"after-enter":this.unsetHeight,"before-leave":this.setHeight}},[this._t("default")],2)}),[],!1,null,null,null);e.a=a.exports},344:function(t,e,n){"use strict";var i=n(0),r=n(345);i({target:"String",proto:!0,forced:n(346)("link")},{link:function(t){return r(this,"a","href",t)}})},345:function(t,e,n){var i=n(20),r=/"/g;t.exports=function(t,e,n,a){var s=String(i(t)),o="<"+e;return""!==n&&(o+=" "+n+'="'+String(a).replace(r,""")+'"'),o+">"+s+""}},346:function(t,e,n){var i=n(1);t.exports=function(t){return i((function(){var e=""[t]('"');return e!==e.toLowerCase()||e.split('"').length>3}))}},347:function(t,e,n){"use strict";var i=n(320);n.n(i).a},348:function(t,e,n){var i=n(0),r=n(349);i({global:!0,forced:parseInt!=r},{parseInt:r})},349:function(t,e,n){var i=n(2),r=n(179).trim,a=n(180),s=i.parseInt,o=/^[+-]?0[Xx]/,u=8!==s(a+"08")||22!==s(a+"0x16");t.exports=u?function(t,e){var n=r(String(t));return s(n,e>>>0||(o.test(n)?16:10))}:s},350:function(t,e,n){var i=n(1),r=n(180);t.exports=function(t){return i((function(){return!!r[t]()||"​…᠎"!="​…᠎"[t]()||r[t].name!==t}))}},351:function(t,e,n){"use strict";var i,r=n(0),a=n(22).f,s=n(13),o=n(106),u=n(20),l=n(107),c=n(21),h="".endsWith,f=Math.min,p=l("endsWith");r({target:"String",proto:!0,forced:!!(c||p||(i=a(String.prototype,"endsWith"),!i||i.writable))&&!p},{endsWith:function(t){var e=String(u(this));o(t);var n=arguments.length>1?arguments[1]:void 0,i=s(e.length),r=void 0===n?i:f(s(n),i),a=String(t);return h?h.call(e,a,r):e.slice(r-a.length,r)===a}})},352:function(t,e,n){"use strict";var i=n(321);n.n(i).a},353:function(t,e,n){"use strict";var i=n(322);n.n(i).a},354:function(t,e,n){"use strict";var i=n(323);n.n(i).a},355:function(t,e,n){"use strict";var i=n(324);n.n(i).a},356:function(t,e,n){"use strict";var i=n(325);n.n(i).a},357:function(t,e,n){"use strict";var i=n(326);n.n(i).a},358:function(t,e,n){"use strict";var i=n(327);n.n(i).a},359:function(t,e,n){var i=n(32),r=n(14),a=n(27);t.exports=function(t){return"string"==typeof t||!r(t)&&a(t)&&"[object String]"==i(t)}},360:function(t,e,n){"use strict";var i=n(328);n.n(i).a},361:function(t,e,n){"use strict";var i=n(329);n.n(i).a},362:function(t,e,n){"use strict";var i=n(330);n.n(i).a},363:function(t,e,n){"use strict";var i=n(0),r=n(31).find,a=n(103),s=n(18),o=!0,u=s("find");"find"in[]&&Array(1).find((function(){o=!1})),i({target:"Array",proto:!0,forced:o||!u},{find:function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}}),a("find")},364:function(t,e,n){"use strict";var i=n(331);n.n(i).a},365:function(t,e,n){"use strict";var i=n(332);n.n(i).a},411:function(t,e,n){"use strict";n.r(e);n(170),n(100),n(344);var i=n(315),r={name:"NavLink",props:{item:{required:!0}},computed:{link:function(){return Object(i.b)(this.item.link)},exact:function(){var t=this;return this.$site.locales?Object.keys(this.$site.locales).some((function(e){return e===t.link})):"/"===this.link},isNonHttpURI:function(){return Object(i.g)(this.link)||Object(i.h)(this.link)},isBlankTarget:function(){return"_blank"===this.target},isInternal:function(){return!Object(i.f)(this.link)&&!this.isBlankTarget},target:function(){return this.isNonHttpURI?null:this.item.target?this.item.target:Object(i.f)(this.link)?"_blank":""},rel:function(){return this.isNonHttpURI||!1===this.item.rel?null:this.item.rel?this.item.rel:this.isBlankTarget?"noopener noreferrer":null}},methods:{focusoutAction:function(){this.$emit("focusout")}}},a=n(25),s=Object(a.a)(r,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return t.isInternal?n("RouterLink",{staticClass:"nav-link",attrs:{to:t.link,exact:t.exact},nativeOn:{focusout:function(e){return t.focusoutAction(e)}}},[t._v("\n "+t._s(t.item.text)+"\n")]):n("a",{staticClass:"nav-link external",attrs:{href:t.link,target:t.target,rel:t.rel},on:{focusout:t.focusoutAction}},[t._v("\n "+t._s(t.item.text)+"\n "),t.isBlankTarget?n("OutboundLink"):t._e()],1)}),[],!1,null,null,null).exports,o={name:"Home",components:{NavLink:s},computed:{data:function(){return this.$page.frontmatter},actionLink:function(){return{link:this.data.actionLink,text:this.data.actionText}}}},u=(n(347),Object(a.a)(o,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("main",{staticClass:"home",attrs:{"aria-labelledby":null!==t.data.heroText?"main-title":null}},[n("header",{staticClass:"hero"},[t.data.heroImage?n("img",{attrs:{src:t.$withBase(t.data.heroImage),alt:t.data.heroAlt||"hero"}}):t._e(),t._v(" "),null!==t.data.heroText?n("h1",{attrs:{id:"main-title"}},[t._v("\n "+t._s(t.data.heroText||t.$title||"Hello")+"\n ")]):t._e(),t._v(" "),null!==t.data.tagline?n("p",{staticClass:"description"},[t._v("\n "+t._s(t.data.tagline||t.$description||"Welcome to your VuePress site")+"\n ")]):t._e(),t._v(" "),t.data.actionText&&t.data.actionLink?n("p",{staticClass:"action"},[n("NavLink",{staticClass:"action-button",attrs:{item:t.actionLink}})],1):t._e()]),t._v(" "),t.data.features&&t.data.features.length?n("div",{staticClass:"features"},t._l(t.data.features,(function(e,i){return n("div",{key:i,staticClass:"feature"},[n("h2",[t._v(t._s(e.title))]),t._v(" "),n("p",[t._v(t._s(e.details))])])})),0):t._e(),t._v(" "),n("Content",{staticClass:"theme-succinct-content custom"}),t._v(" "),t.data.footer?n("div",{staticClass:"footer"},[t._v("\n "+t._s(t.data.footer)+"\n ")]):t._e()],1)}),[],!1,null,null,null).exports),l=(n(348),n(26),n(173),n(171),n(98),n(45),n(174),n(319),n(339),n(178),n(69),n(340),n(102),n(351),n(70),n(338),n(184)),c=n.n(l),h=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=c()(e,"title","");return c()(e,"frontmatter.tags")&&(i+=" ".concat(e.frontmatter.tags.join(" "))),n&&(i+=" ".concat(n)),f(t,i)},f=function(t,e){var n=function(t){return t.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&")},i=new RegExp("[^\0-]"),r=t.split(/\s+/g).map((function(t){return t.trim()})).filter((function(t){return!!t}));if(i.test(t))return r.some((function(t){return e.toLowerCase().indexOf(t)>-1}));var a=t.endsWith(" ");return new RegExp(r.map((function(t,e){return r.length!==e+1||a?"(?=.*\\b".concat(n(t),"\\b)"):"(?=.*\\b".concat(n(t),")")})).join("")+".+","gi").test(e)},p={name:"SearchBox",data:function(){return{query:"",focused:!1,focusIndex:0,placeholder:void 0}},computed:{showSuggestions:function(){return this.focused&&this.suggestions&&this.suggestions.length},suggestions:function(){var t=this.query.trim().toLowerCase();if(t){for(var e=this.$site.pages,n=this.$site.themeConfig.searchMaxSuggestions||5,i=this.$localePath,r=[],a=0;a=n);a++){var s=e[a];if(this.getPageLocalePath(s)===i&&this.isSearchable(s))if(h(t,s))r.push(s);else if(s.headers)for(var o=0;o=n);o++){var u=s.headers[o];u.title&&h(t,s,u.title)&&r.push(Object.assign({},s,{path:s.path+"#"+u.slug,header:u}))}}return r}},alignRight:function(){return(this.$site.themeConfig.nav||[]).length+(this.$site.repo?1:0)<=2}},mounted:function(){this.placeholder=this.$site.themeConfig.searchPlaceholder||"",document.addEventListener("keydown",this.onHotkey)},beforeDestroy:function(){document.removeEventListener("keydown",this.onHotkey)},methods:{getPageLocalePath:function(t){for(var e in this.$site.locales||{})if("/"!==e&&0===t.path.indexOf(e))return e;return"/"},isSearchable:function(t){var e=null;return null===e||(e=Array.isArray(e)?e:new Array(e)).filter((function(e){return t.path.match(e)})).length>0},onHotkey:function(t){t.srcElement===document.body&&["s","/"].includes(t.key)&&(this.$refs.input.focus(),t.preventDefault())},onUp:function(){this.showSuggestions&&(this.focusIndex>0?this.focusIndex--:this.focusIndex=this.suggestions.length-1)},onDown:function(){this.showSuggestions&&(this.focusIndex "+t._s(e.header.title))]):t._e()])])})),0):t._e()])}),[],!1,null,null,null).exports),g=(n(353),Object(a.a)({},(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"sidebar-button",on:{click:function(e){return t.$emit("toggle-sidebar")}}},[n("svg",{staticClass:"icon",attrs:{xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",role:"img",viewBox:"0 0 448 512"}},[n("path",{attrs:{fill:"currentColor",d:"M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"}})])])}),[],!1,null,null,null).exports),v=(n(183),n(43)),m=n(343),b=n(185),_=n.n(b),k={name:"DropdownLink",components:{NavLink:s,DropdownTransition:m.a},props:{item:{required:!0}},data:function(){return{open:!1}},computed:{dropdownAriaLabel:function(){return this.item.ariaLabel||this.item.text}},watch:{$route:function(){this.open=!1}},methods:{setOpen:function(t){this.open=t},isLastItemOfArray:function(t,e){return _()(e)===t},handleDropdown:function(){0===event.detail&&this.setOpen(!this.open)}}},x=(n(355),Object(a.a)(k,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"dropdown-wrapper",class:{open:t.open}},[n("button",{staticClass:"dropdown-title",attrs:{type:"button","aria-label":t.dropdownAriaLabel},on:{click:t.handleDropdown}},[n("span",{staticClass:"title"},[t._v(t._s(t.item.text))]),t._v(" "),n("span",{staticClass:"arrow down"})]),t._v(" "),n("button",{staticClass:"mobile-dropdown-title",attrs:{type:"button","aria-label":t.dropdownAriaLabel},on:{click:function(e){return t.setOpen(!t.open)}}},[n("span",{staticClass:"title"},[t._v(t._s(t.item.text))]),t._v(" "),n("span",{staticClass:"arrow",class:t.open?"down":"right"})]),t._v(" "),n("DropdownTransition",[n("ul",{directives:[{name:"show",rawName:"v-show",value:t.open,expression:"open"}],staticClass:"nav-dropdown"},t._l(t.item.items,(function(e,i){return n("li",{key:e.link||i,staticClass:"dropdown-item"},["links"===e.type?n("h4",[t._v("\n "+t._s(e.text)+"\n ")]):t._e(),t._v(" "),"links"===e.type?n("ul",{staticClass:"dropdown-subitem-wrapper"},t._l(e.items,(function(i){return n("li",{key:i.link,staticClass:"dropdown-subitem"},[n("NavLink",{attrs:{item:i},on:{focusout:function(n){t.isLastItemOfArray(i,e.items)&&t.isLastItemOfArray(e,t.item.items)&&t.setOpen(!1)}}})],1)})),0):n("NavLink",{attrs:{item:e},on:{focusout:function(n){t.isLastItemOfArray(e,t.item.items)&&t.setOpen(!1)}}})],1)})),0)])],1)}),[],!1,null,null,null).exports),C=(n(105),n(62)),$=["light","dark"],y={name:"ThemeSwitcher",data:function(){return{theme:""}},computed:{nextTheme:function(){var t=($.indexOf(this.theme)+1)%$.length;return $[t]}},methods:{switchTheme:function(){var t=($.indexOf(this.theme)+1)%$.length;window.__setPreferredTheme($[t]),this.theme=$[t]}},mounted:function(){var t=this;return Object(C.a)(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:void 0!==window.__theme&&(t.theme=window.__theme);case 1:case"end":return e.stop()}}),e)})))()}},w=Object(a.a)(y,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("a",{staticClass:"nav-link",attrs:{role:"button","aria-label":"Switch to "+t.nextTheme+" mode"},on:{click:function(e){return e.preventDefault(),t.switchTheme()}}},["dark"===t.theme?n("span",{key:"dark"},[t._v("Switch to light mode")]):"light"===t.theme?n("span",{key:"light"},[t._v("Switch to dark mode")]):n("span",{key:"light"},[t._v("Switch theme")])])}),[],!1,null,null,null).exports,L=n(165),S={name:"NavLinks",components:{NavLink:s,DropdownLink:x,ThemeSwitcher:w},computed:{userNav:function(){return this.$themeLocaleConfig.nav||this.$site.themeConfig.nav||[]},showThemeSwitcher:function(){return Array.isArray(L.a)&&L.a.includes("ThemeManager")},nav:function(){var t=this,e=this.$site.locales;if(e&&Object.keys(e).length>1){var n=this.$page.path,i=this.$router.options.routes,r=this.$site.themeConfig.locales||{},a={text:this.$themeLocaleConfig.selectText||"Languages",ariaLabel:this.$themeLocaleConfig.ariaLabel||"Select language",items:Object.keys(e).map((function(a){var s,o=e[a],u=r[a]&&r[a].label||o.lang;return o.lang===t.$lang?s=n:(s=n.replace(t.$localeConfig.path,a),i.some((function(t){return t.path===s}))||(s=a)),{text:u,link:s}}))};return[].concat(Object(v.a)(this.userNav),[a])}return this.userNav},userLinks:function(){return(this.nav||[]).map((function(t){return Object.assign(Object(i.j)(t),{items:(t.items||[]).map(i.j)})}))},repoLink:function(){var t=this.$site.themeConfig.repo;return t?/^https?:/.test(t)?t:"https://github.com/".concat(t):null},repoLabel:function(){if(this.repoLink){if(this.$site.themeConfig.repoLabel)return this.$site.themeConfig.repoLabel;for(var t=this.repoLink.match(/^https?:\/\/[^/]+/)[0],e=["GitHub","GitLab","Bitbucket"],n=0;nMath.abs(n)&&Math.abs(e)>40&&(e>0&&this.touchStart.x<=80?this.toggleSidebar(!0):this.toggleSidebar(!1))}}}),X=Object(a.a)(V,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"theme-container",class:t.pageClasses,on:{touchstart:t.onTouchStart,touchend:t.onTouchEnd}},[t.shouldShowNavbar?n("Navbar",{on:{"toggle-sidebar":t.toggleSidebar}}):t._e(),t._v(" "),n("div",{staticClass:"sidebar-mask",on:{click:function(e){return t.toggleSidebar(!1)}}}),t._v(" "),n("Sidebar",{attrs:{items:t.sidebarItems},on:{"toggle-sidebar":t.toggleSidebar},scopedSlots:t._u([{key:"top",fn:function(){return[t._t("sidebar-top")]},proxy:!0},{key:"bottom",fn:function(){return[t._t("sidebar-bottom")]},proxy:!0}],null,!0)}),t._v(" "),t.$page.frontmatter.home?n("Home"):n("Page",{attrs:{"sidebar-items":t.sidebarItems},scopedSlots:t._u([{key:"top",fn:function(){return[t._t("page-top")]},proxy:!0},{key:"bottom",fn:function(){return[t._t("page-bottom")]},proxy:!0}],null,!0)})],1)}),[],!1,null,null,null);e.default=X.exports}}]); \ No newline at end of file diff --git a/assets/js/2.bcec8105.js b/assets/js/2.bcec8105.js deleted file mode 100644 index 68ad395..0000000 --- a/assets/js/2.bcec8105.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{312:function(t,e,n){"use strict";n.d(e,"d",(function(){return i})),n.d(e,"a",(function(){return a})),n.d(e,"i",(function(){return s})),n.d(e,"f",(function(){return u})),n.d(e,"g",(function(){return l})),n.d(e,"h",(function(){return c})),n.d(e,"b",(function(){return h})),n.d(e,"e",(function(){return f})),n.d(e,"k",(function(){return p})),n.d(e,"l",(function(){return d})),n.d(e,"c",(function(){return v})),n.d(e,"j",(function(){return m}));n(26),n(97),n(169),n(100),n(174),n(68),n(45),n(314),n(69),n(335),n(99);var i=/#.*$/,r=/\.(md|html)$/,a=/\/$/,s=/^[a-z]+:/i;function o(t){return decodeURI(t).replace(i,"").replace(r,"")}function u(t){return s.test(t)}function l(t){return/^mailto:/.test(t)}function c(t){return/^tel:/.test(t)}function h(t){if(u(t))return t;var e=t.match(i),n=e?e[0]:"",r=o(t);return a.test(r)?t:r+".html"+n}function f(t,e){var n=decodeURIComponent(t.hash),r=function(t){var e=t.match(i);if(e)return e[0]}(e);return(!r||n===r)&&o(t.path)===o(e)}function p(t,e,n){if(u(e))return{type:"external",path:e};n&&(e=function(t,e,n){var i=t.charAt(0);if("/"===i)return t;if("?"===i||"#"===i)return e+t;var r=e.split("/");n&&r[r.length-1]||r.pop();for(var a=t.replace(/^\//,"").split("/"),s=0;s3&&void 0!==arguments[3]?arguments[3]:1;if("string"==typeof e)return p(n,e,i);if(Array.isArray(e))return Object.assign(p(n,e[0],i),{title:e[1]});var a=e.children||[];return 0===a.length&&e.path?Object.assign(p(n,e.path,i),{title:e.title}):{type:"group",path:e.path,title:e.title,sidebarDepth:e.sidebarDepth,initialOpenGroupIndex:e.initialOpenGroupIndex,children:a.map((function(e){return t(e,n,i,r+1)})),collapsable:!1!==e.collapsable}}(t,r,l)})):[]}return[]}function g(t){var e=v(t.headers||[]);return[{type:"group",collapsable:!1,title:t.title,path:null,children:e.map((function(e){return{type:"auto",title:e.title,basePath:t.path,path:t.path+"#"+e.slug,children:e.children||[]}}))}]}function v(t){var e;return(t=t.map((function(t){return Object.assign({},t)}))).forEach((function(t){2===t.level?e=t:e&&(e.children||(e.children=[])).push(t)})),t.filter((function(t){return 2===t.level}))}function m(t){return Object.assign(t,{type:t.items&&t.items.length?"links":"link"})}},314:function(t,e,n){"use strict";var i=n(171),r=n(7),a=n(13),s=n(20),o=n(172),u=n(173);i("match",1,(function(t,e,n){return[function(e){var n=s(this),i=null==e?void 0:e[t];return void 0!==i?i.call(e,n):new RegExp(e)[t](String(n))},function(t){var i=n(e,t,this);if(i.done)return i.value;var s=r(t),l=String(this);if(!s.global)return u(s,l);var c=s.unicode;s.lastIndex=0;for(var h,f=[],p=0;null!==(h=u(s,l));){var d=String(h[0]);f[p]=d,""===d&&(s.lastIndex=o(l,a(s.lastIndex),c)),p++}return 0===p?null:f}]}))},315:function(t,e,n){},316:function(t,e,n){},317:function(t,e,n){},318:function(t,e,n){},319:function(t,e,n){},320:function(t,e,n){},321:function(t,e,n){},322:function(t,e,n){},323:function(t,e,n){},324:function(t,e,n){},325:function(t,e,n){},326:function(t,e,n){},327:function(t,e,n){},335:function(t,e,n){"use strict";var i=n(171),r=n(170),a=n(7),s=n(20),o=n(103),u=n(172),l=n(13),c=n(173),h=n(71),f=n(1),p=[].push,d=Math.min,g=!f((function(){return!RegExp(4294967295,"y")}));i("split",2,(function(t,e,n){var i;return i="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(t,n){var i=String(s(this)),a=void 0===n?4294967295:n>>>0;if(0===a)return[];if(void 0===t)return[i];if(!r(t))return e.call(i,t,a);for(var o,u,l,c=[],f=(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.unicode?"u":"")+(t.sticky?"y":""),d=0,g=new RegExp(t.source,f+"g");(o=h.call(g,i))&&!((u=g.lastIndex)>d&&(c.push(i.slice(d,o.index)),o.length>1&&o.index=a));)g.lastIndex===o.index&&g.lastIndex++;return d===i.length?!l&&g.test("")||c.push(""):c.push(i.slice(d)),c.length>a?c.slice(0,a):c}:"0".split(void 0,0).length?function(t,n){return void 0===t&&0===n?[]:e.call(this,t,n)}:e,[function(e,n){var r=s(this),a=null==e?void 0:e[t];return void 0!==a?a.call(e,r,n):i.call(String(r),e,n)},function(t,r){var s=n(i,t,this,r,i!==e);if(s.done)return s.value;var h=a(t),f=String(this),p=o(h,RegExp),v=h.unicode,m=(h.ignoreCase?"i":"")+(h.multiline?"m":"")+(h.unicode?"u":"")+(g?"y":"g"),b=new p(g?h:"^(?:"+h.source+")",m),_=void 0===r?4294967295:r>>>0;if(0===_)return[];if(0===f.length)return null===c(b,f)?[f]:[];for(var k=0,x=0,C=[];x-1)&&(e=e.replace(/y/g,""));var o=s(x?new m(t,e):m(t,e),i?this:b,$);return C&&n&&d(o,{sticky:n}),o},y=function(t){t in $||o($,t,{configurable:!0,get:function(){return m[t]},set:function(e){m[t]=e}})},L=u(m),w=0;L.length>w;)y(L[w++]);b.constructor=$,$.prototype=b,f(r,"RegExp",$)}g("RegExp")},338:function(t,e){t.exports=function(t){return null==t}},339:function(t,e,n){"use strict";n.r(e);n(168);var i=n(312),r={name:"SidebarGroup",components:{DropdownTransition:n(340).a},props:["item","open","collapsable","depth"],beforeCreate:function(){this.$options.components.SidebarLinks=n(339).default},methods:{isActive:i.e}},a=(n(359),n(25)),s=Object(a.a)(r,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("section",{staticClass:"sidebar-group",class:[{collapsable:t.collapsable,"is-sub-group":0!==t.depth},"depth-"+t.depth]},[t.item.path?n("RouterLink",{staticClass:"sidebar-heading clickable",class:{open:t.open,active:t.isActive(t.$route,t.item.path)},attrs:{to:t.item.path},nativeOn:{click:function(e){return t.$emit("toggle")}}},[n("span",[t._v(t._s(t.item.title))]),t._v(" "),t.collapsable?n("span",{staticClass:"arrow",class:t.open?"down":"right"}):t._e()]):n("p",{staticClass:"sidebar-heading",class:{open:t.open},on:{click:function(e){return t.$emit("toggle")}}},[n("span",[t._v(t._s(t.item.title))]),t._v(" "),t.collapsable?n("span",{staticClass:"arrow",class:t.open?"down":"right"}):t._e()]),t._v(" "),n("DropdownTransition",[t.open||!t.collapsable?n("SidebarLinks",{staticClass:"sidebar-group-items",attrs:{items:t.item.children,"sidebar-depth":t.item.sidebarDepth,"initial-open-group-index":t.item.initialOpenGroupIndex,depth:t.depth+1}}):t._e()],1)],1)}),[],!1,null,null,null).exports;n(360),n(68);function o(t,e,n,i,r){var a={props:{to:e,activeClass:"",exactActiveClass:""},class:{active:i,"sidebar-link":!0}};return r>2&&(a.style={"padding-left":r+"rem"}),t("RouterLink",a,n)}function u(t,e,n,r,a){var s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:1;return!e||s>a?null:t("ul",{class:"sidebar-sub-headers"},e.map((function(e){var l=Object(i.e)(r,n+"#"+e.slug);return t("li",{class:"sidebar-sub-header"},[o(t,n+"#"+e.slug,e.title,l,e.level-1),u(t,e.children,n,r,a,s+1)])})))}var l={functional:!0,props:["item","sidebarDepth"],render:function(t,e){var n=e.parent,r=n.$page,a=(n.$site,n.$route),s=n.$themeConfig,l=n.$themeLocaleConfig,c=e.props,h=c.item,f=c.sidebarDepth,p=Object(i.e)(a,h.path),d="auto"===h.type?p||h.children.some((function(t){return Object(i.e)(a,h.basePath+"#"+t.slug)})):p,g="external"===h.type?function(t,e,n){return t("a",{attrs:{href:e,target:"_blank",rel:"noopener noreferrer"},class:{"sidebar-link":!0}},[n,t("OutboundLink")])}(t,h.path,h.title||h.path):o(t,h.path,h.title||h.path,d),v=[r.frontmatter.sidebarDepth,f,l.sidebarDepth,s.sidebarDepth,1].find((function(t){return void 0!==t})),m=l.displayAllHeaders||s.displayAllHeaders;return"auto"===h.type?[g,u(t,h.children,h.basePath,a,v)]:(d||m)&&h.headers&&!i.d.test(h.path)?[g,u(t,Object(i.c)(h.headers),h.path,a,v)]:g}};n(361);function c(t,e){return"group"===e.type&&e.children.some((function(e){return"group"===e.type?c(t,e):"page"===e.type&&Object(i.e)(t,e.path)}))}var h={name:"SidebarLinks",components:{SidebarGroup:s,SidebarLink:Object(a.a)(l,void 0,void 0,!1,null,null,null).exports},props:["items","depth","sidebarDepth","initialOpenGroupIndex"],data:function(){return{openGroupIndex:this.initialOpenGroupIndex||0}},watch:{$route:function(){this.refreshIndex()}},created:function(){this.refreshIndex()},methods:{refreshIndex:function(){var t=function(t,e){for(var n=0;n-1&&(this.openGroupIndex=t)},toggleGroup:function(t){this.openGroupIndex=t===this.openGroupIndex?-1:t},isActive:function(t){return Object(i.e)(this.$route,t.regularPath)}}},f=Object(a.a)(h,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return t.items.length?n("ul",{staticClass:"sidebar-links"},t._l(t.items,(function(e,i){return n("li",{key:i},["group"===e.type?n("SidebarGroup",{attrs:{item:e,open:i===t.openGroupIndex,collapsable:e.collapsable||e.collapsible,depth:t.depth},on:{toggle:function(e){return t.toggleGroup(i)}}}):n("SidebarLink",{attrs:{"sidebar-depth":t.sidebarDepth,item:e}})],1)})),0):t._e()}),[],!1,null,null,null);e.default=f.exports},340:function(t,e,n){"use strict";var i={name:"DropdownTransition",methods:{setHeight:function(t){t.style.height=t.scrollHeight+"px"},unsetHeight:function(t){t.style.height=""}}},r=(n(351),n(25)),a=Object(r.a)(i,(function(){var t=this.$createElement;return(this._self._c||t)("transition",{attrs:{name:"dropdown"},on:{enter:this.setHeight,"after-enter":this.unsetHeight,"before-leave":this.setHeight}},[this._t("default")],2)}),[],!1,null,null,null);e.a=a.exports},341:function(t,e,n){"use strict";var i=n(0),r=n(342);i({target:"String",proto:!0,forced:n(343)("link")},{link:function(t){return r(this,"a","href",t)}})},342:function(t,e,n){var i=n(20),r=/"/g;t.exports=function(t,e,n,a){var s=String(i(t)),o="<"+e;return""!==n&&(o+=" "+n+'="'+String(a).replace(r,""")+'"'),o+">"+s+""}},343:function(t,e,n){var i=n(1);t.exports=function(t){return i((function(){var e=""[t]('"');return e!==e.toLowerCase()||e.split('"').length>3}))}},344:function(t,e,n){"use strict";var i=n(315);n.n(i).a},345:function(t,e,n){var i=n(0),r=n(346);i({global:!0,forced:parseInt!=r},{parseInt:r})},346:function(t,e,n){var i=n(2),r=n(175).trim,a=n(176),s=i.parseInt,o=/^[+-]?0[Xx]/,u=8!==s(a+"08")||22!==s(a+"0x16");t.exports=u?function(t,e){var n=r(String(t));return s(n,e>>>0||(o.test(n)?16:10))}:s},347:function(t,e,n){var i=n(1),r=n(176);t.exports=function(t){return i((function(){return!!r[t]()||"​…᠎"!="​…᠎"[t]()||r[t].name!==t}))}},348:function(t,e,n){"use strict";var i,r=n(0),a=n(22).f,s=n(13),o=n(105),u=n(20),l=n(106),c=n(21),h="".endsWith,f=Math.min,p=l("endsWith");r({target:"String",proto:!0,forced:!!(c||p||(i=a(String.prototype,"endsWith"),!i||i.writable))&&!p},{endsWith:function(t){var e=String(u(this));o(t);var n=arguments.length>1?arguments[1]:void 0,i=s(e.length),r=void 0===n?i:f(s(n),i),a=String(t);return h?h.call(e,a,r):e.slice(r-a.length,r)===a}})},349:function(t,e,n){"use strict";var i=n(316);n.n(i).a},350:function(t,e,n){"use strict";var i=n(317);n.n(i).a},351:function(t,e,n){"use strict";var i=n(318);n.n(i).a},352:function(t,e,n){"use strict";var i=n(319);n.n(i).a},353:function(t,e,n){"use strict";var i=n(320);n.n(i).a},354:function(t,e,n){"use strict";var i=n(321);n.n(i).a},355:function(t,e,n){"use strict";var i=n(322);n.n(i).a},356:function(t,e,n){var i=n(32),r=n(14),a=n(27);t.exports=function(t){return"string"==typeof t||!r(t)&&a(t)&&"[object String]"==i(t)}},357:function(t,e,n){"use strict";var i=n(323);n.n(i).a},358:function(t,e,n){"use strict";var i=n(324);n.n(i).a},359:function(t,e,n){"use strict";var i=n(325);n.n(i).a},360:function(t,e,n){"use strict";var i=n(0),r=n(31).find,a=n(102),s=n(18),o=!0,u=s("find");"find"in[]&&Array(1).find((function(){o=!1})),i({target:"Array",proto:!0,forced:o||!u},{find:function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}}),a("find")},361:function(t,e,n){"use strict";var i=n(326);n.n(i).a},362:function(t,e,n){"use strict";var i=n(327);n.n(i).a},404:function(t,e,n){"use strict";n.r(e);n(168),n(98),n(341);var i=n(312),r={name:"NavLink",props:{item:{required:!0}},computed:{link:function(){return Object(i.b)(this.item.link)},exact:function(){var t=this;return this.$site.locales?Object.keys(this.$site.locales).some((function(e){return e===t.link})):"/"===this.link},isNonHttpURI:function(){return Object(i.g)(this.link)||Object(i.h)(this.link)},isBlankTarget:function(){return"_blank"===this.target},isInternal:function(){return!Object(i.f)(this.link)&&!this.isBlankTarget},target:function(){return this.isNonHttpURI?null:this.item.target?this.item.target:Object(i.f)(this.link)?"_blank":""},rel:function(){return this.isNonHttpURI||!1===this.item.rel?null:this.item.rel?this.item.rel:this.isBlankTarget?"noopener noreferrer":null}},methods:{focusoutAction:function(){this.$emit("focusout")}}},a=n(25),s=Object(a.a)(r,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return t.isInternal?n("RouterLink",{staticClass:"nav-link",attrs:{to:t.link,exact:t.exact},nativeOn:{focusout:function(e){return t.focusoutAction(e)}}},[t._v("\n "+t._s(t.item.text)+"\n")]):n("a",{staticClass:"nav-link external",attrs:{href:t.link,target:t.target,rel:t.rel},on:{focusout:t.focusoutAction}},[t._v("\n "+t._s(t.item.text)+"\n "),t.isBlankTarget?n("OutboundLink"):t._e()],1)}),[],!1,null,null,null).exports,o={name:"Home",components:{NavLink:s},computed:{data:function(){return this.$page.frontmatter},actionLink:function(){return{link:this.data.actionLink,text:this.data.actionText}}}},u=(n(344),Object(a.a)(o,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("main",{staticClass:"home",attrs:{"aria-labelledby":null!==t.data.heroText?"main-title":null}},[n("header",{staticClass:"hero"},[t.data.heroImage?n("img",{attrs:{src:t.$withBase(t.data.heroImage),alt:t.data.heroAlt||"hero"}}):t._e(),t._v(" "),null!==t.data.heroText?n("h1",{attrs:{id:"main-title"}},[t._v("\n "+t._s(t.data.heroText||t.$title||"Hello")+"\n ")]):t._e(),t._v(" "),null!==t.data.tagline?n("p",{staticClass:"description"},[t._v("\n "+t._s(t.data.tagline||t.$description||"Welcome to your VuePress site")+"\n ")]):t._e(),t._v(" "),t.data.actionText&&t.data.actionLink?n("p",{staticClass:"action"},[n("NavLink",{staticClass:"action-button",attrs:{item:t.actionLink}})],1):t._e()]),t._v(" "),t.data.features&&t.data.features.length?n("div",{staticClass:"features"},t._l(t.data.features,(function(e,i){return n("div",{key:i,staticClass:"feature"},[n("h2",[t._v(t._s(e.title))]),t._v(" "),n("p",[t._v(t._s(e.details))])])})),0):t._e(),t._v(" "),n("Content",{staticClass:"theme-succinct-content custom"}),t._v(" "),t.data.footer?n("div",{staticClass:"footer"},[t._v("\n "+t._s(t.data.footer)+"\n ")]):t._e()],1)}),[],!1,null,null,null).exports),l=(n(345),n(26),n(178),n(169),n(100),n(45),n(180),n(314),n(336),n(174),n(68),n(337),n(101),n(348),n(69),n(335),n(182)),c=n.n(l),h=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=c()(e,"title","");return c()(e,"frontmatter.tags")&&(i+=" ".concat(e.frontmatter.tags.join(" "))),n&&(i+=" ".concat(n)),f(t,i)},f=function(t,e){var n=function(t){return t.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&")},i=new RegExp("[^\0-]"),r=t.split(/\s+/g).map((function(t){return t.trim()})).filter((function(t){return!!t}));if(i.test(t))return r.some((function(t){return e.toLowerCase().indexOf(t)>-1}));var a=t.endsWith(" ");return new RegExp(r.map((function(t,e){return r.length!==e+1||a?"(?=.*\\b".concat(n(t),"\\b)"):"(?=.*\\b".concat(n(t),")")})).join("")+".+","gi").test(e)},p={name:"SearchBox",data:function(){return{query:"",focused:!1,focusIndex:0,placeholder:void 0}},computed:{showSuggestions:function(){return this.focused&&this.suggestions&&this.suggestions.length},suggestions:function(){var t=this.query.trim().toLowerCase();if(t){for(var e=this.$site.pages,n=this.$site.themeConfig.searchMaxSuggestions||5,i=this.$localePath,r=[],a=0;a=n);a++){var s=e[a];if(this.getPageLocalePath(s)===i&&this.isSearchable(s))if(h(t,s))r.push(s);else if(s.headers)for(var o=0;o=n);o++){var u=s.headers[o];u.title&&h(t,s,u.title)&&r.push(Object.assign({},s,{path:s.path+"#"+u.slug,header:u}))}}return r}},alignRight:function(){return(this.$site.themeConfig.nav||[]).length+(this.$site.repo?1:0)<=2}},mounted:function(){this.placeholder=this.$site.themeConfig.searchPlaceholder||"",document.addEventListener("keydown",this.onHotkey)},beforeDestroy:function(){document.removeEventListener("keydown",this.onHotkey)},methods:{getPageLocalePath:function(t){for(var e in this.$site.locales||{})if("/"!==e&&0===t.path.indexOf(e))return e;return"/"},isSearchable:function(t){var e=null;return null===e||(e=Array.isArray(e)?e:new Array(e)).filter((function(e){return t.path.match(e)})).length>0},onHotkey:function(t){t.srcElement===document.body&&["s","/"].includes(t.key)&&(this.$refs.input.focus(),t.preventDefault())},onUp:function(){this.showSuggestions&&(this.focusIndex>0?this.focusIndex--:this.focusIndex=this.suggestions.length-1)},onDown:function(){this.showSuggestions&&(this.focusIndex "+t._s(e.header.title))]):t._e()])])})),0):t._e()])}),[],!1,null,null,null).exports),g=(n(350),Object(a.a)({},(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"sidebar-button",on:{click:function(e){return t.$emit("toggle-sidebar")}}},[n("svg",{staticClass:"icon",attrs:{xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",role:"img",viewBox:"0 0 448 512"}},[n("path",{attrs:{fill:"currentColor",d:"M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"}})])])}),[],!1,null,null,null).exports),v=(n(181),n(43)),m=n(340),b=n(183),_=n.n(b),k={name:"DropdownLink",components:{NavLink:s,DropdownTransition:m.a},props:{item:{required:!0}},data:function(){return{open:!1}},computed:{dropdownAriaLabel:function(){return this.item.ariaLabel||this.item.text}},watch:{$route:function(){this.open=!1}},methods:{setOpen:function(t){this.open=t},isLastItemOfArray:function(t,e){return _()(e)===t},handleDropdown:function(){0===event.detail&&this.setOpen(!this.open)}}},x=(n(352),Object(a.a)(k,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"dropdown-wrapper",class:{open:t.open}},[n("button",{staticClass:"dropdown-title",attrs:{type:"button","aria-label":t.dropdownAriaLabel},on:{click:t.handleDropdown}},[n("span",{staticClass:"title"},[t._v(t._s(t.item.text))]),t._v(" "),n("span",{staticClass:"arrow down"})]),t._v(" "),n("button",{staticClass:"mobile-dropdown-title",attrs:{type:"button","aria-label":t.dropdownAriaLabel},on:{click:function(e){return t.setOpen(!t.open)}}},[n("span",{staticClass:"title"},[t._v(t._s(t.item.text))]),t._v(" "),n("span",{staticClass:"arrow",class:t.open?"down":"right"})]),t._v(" "),n("DropdownTransition",[n("ul",{directives:[{name:"show",rawName:"v-show",value:t.open,expression:"open"}],staticClass:"nav-dropdown"},t._l(t.item.items,(function(e,i){return n("li",{key:e.link||i,staticClass:"dropdown-item"},["links"===e.type?n("h4",[t._v("\n "+t._s(e.text)+"\n ")]):t._e(),t._v(" "),"links"===e.type?n("ul",{staticClass:"dropdown-subitem-wrapper"},t._l(e.items,(function(i){return n("li",{key:i.link,staticClass:"dropdown-subitem"},[n("NavLink",{attrs:{item:i},on:{focusout:function(n){t.isLastItemOfArray(i,e.items)&&t.isLastItemOfArray(e,t.item.items)&&t.setOpen(!1)}}})],1)})),0):n("NavLink",{attrs:{item:e},on:{focusout:function(n){t.isLastItemOfArray(e,t.item.items)&&t.setOpen(!1)}}})],1)})),0)])],1)}),[],!1,null,null,null).exports),C=(n(104),n(62)),$=["light","dark"],y={name:"ThemeSwitcher",data:function(){return{theme:""}},computed:{nextTheme:function(){var t=($.indexOf(this.theme)+1)%$.length;return $[t]}},methods:{switchTheme:function(){var t=($.indexOf(this.theme)+1)%$.length;window.__setPreferredTheme($[t]),this.theme=$[t]}},mounted:function(){var t=this;return Object(C.a)(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:void 0!==window.__theme&&(t.theme=window.__theme);case 1:case"end":return e.stop()}}),e)})))()}},L={name:"NavLinks",components:{NavLink:s,DropdownLink:x,ThemeSwitcher:Object(a.a)(y,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("a",{staticClass:"nav-link",attrs:{role:"button","aria-label":"Switch to "+t.nextTheme+" mode"},on:{click:function(e){return e.preventDefault(),t.switchTheme()}}},["dark"===t.theme?n("span",{key:"dark"},[t._v("Switch to light mode")]):"light"===t.theme?n("span",{key:"light"},[t._v("Switch to dark mode")]):n("span",{key:"light"},[t._v("Switch theme")])])}),[],!1,null,null,null).exports},computed:{userNav:function(){return this.$themeLocaleConfig.nav||this.$site.themeConfig.nav||[]},nav:function(){var t=this,e=this.$site.locales;if(e&&Object.keys(e).length>1){var n=this.$page.path,i=this.$router.options.routes,r=this.$site.themeConfig.locales||{},a={text:this.$themeLocaleConfig.selectText||"Languages",ariaLabel:this.$themeLocaleConfig.ariaLabel||"Select language",items:Object.keys(e).map((function(a){var s,o=e[a],u=r[a]&&r[a].label||o.lang;return o.lang===t.$lang?s=n:(s=n.replace(t.$localeConfig.path,a),i.some((function(t){return t.path===s}))||(s=a)),{text:u,link:s}}))};return[].concat(Object(v.a)(this.userNav),[a])}return this.userNav},userLinks:function(){return(this.nav||[]).map((function(t){return Object.assign(Object(i.j)(t),{items:(t.items||[]).map(i.j)})}))},repoLink:function(){var t=this.$site.themeConfig.repo;return t?/^https?:/.test(t)?t:"https://github.com/".concat(t):null},repoLabel:function(){if(this.repoLink){if(this.$site.themeConfig.repoLabel)return this.$site.themeConfig.repoLabel;for(var t=this.repoLink.match(/^https?:\/\/[^/]+/)[0],e=["GitHub","GitLab","Bitbucket"],n=0;nMath.abs(n)&&Math.abs(e)>40&&(e>0&&this.touchStart.x<=80?this.toggleSidebar(!0):this.toggleSidebar(!1))}}}),z=Object(a.a)(q,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"theme-container",class:t.pageClasses,on:{touchstart:t.onTouchStart,touchend:t.onTouchEnd}},[t.shouldShowNavbar?n("Navbar",{on:{"toggle-sidebar":t.toggleSidebar}}):t._e(),t._v(" "),n("div",{staticClass:"sidebar-mask",on:{click:function(e){return t.toggleSidebar(!1)}}}),t._v(" "),n("Sidebar",{attrs:{items:t.sidebarItems},on:{"toggle-sidebar":t.toggleSidebar},scopedSlots:t._u([{key:"top",fn:function(){return[t._t("sidebar-top")]},proxy:!0},{key:"bottom",fn:function(){return[t._t("sidebar-bottom")]},proxy:!0}],null,!0)}),t._v(" "),t.$page.frontmatter.home?n("Home"):n("Page",{attrs:{"sidebar-items":t.sidebarItems},scopedSlots:t._u([{key:"top",fn:function(){return[t._t("page-top")]},proxy:!0},{key:"bottom",fn:function(){return[t._t("page-bottom")]},proxy:!0}],null,!0)})],1)}),[],!1,null,null,null);e.default=z.exports}}]); \ No newline at end of file diff --git a/assets/js/19.ad58ef9c.js b/assets/js/20.04fcc53a.js similarity index 96% rename from assets/js/19.ad58ef9c.js rename to assets/js/20.04fcc53a.js index 89d15f4..50d83c0 100644 --- a/assets/js/19.ad58ef9c.js +++ b/assets/js/20.04fcc53a.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[19],{372:function(e,t,o){e.exports=o.p+"assets/img/sysreport.8d1d1d0e.png"},423:function(e,t,o){"use strict";o.r(t);var r=o(25),a=Object(r.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"getting-a-copy-of-our-dsdt"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#getting-a-copy-of-our-dsdt"}},[e._v("#")]),e._v(" Getting a copy of our DSDT")]),e._v(" "),r("p",[e._v("So to start, we'll need to get a copy of your DSDT from your firmware. The easiest way is grabbing the DSDT.aml SSDTTime dumped for us earlier but here are some other options:")]),e._v(" "),r("h2",{attrs:{id:"from-windows"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#from-windows"}},[e._v("#")]),e._v(" From Windows")]),e._v(" "),r("ul",[r("li",[r("p",[r("a",{attrs:{href:"https://github.com/corpnewt/SSDTTime",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDTTime"),r("OutboundLink")],1)]),e._v(" "),r("ul",[r("li",[e._v("Supports both Windows and Linux for DSDT dumping")]),e._v(" "),r("li",[r("code",[e._v("7. Dump DSDT - Automatically dump the system DSDT")])])])]),e._v(" "),r("li",[r("p",[r("a",{attrs:{href:"https://acpica.org/downloads/binary-tools",target:"_blank",rel:"noopener noreferrer"}},[e._v("acpidump.exe"),r("OutboundLink")],1)]),e._v(" "),r("ul",[r("li",[e._v("In command prompt run "),r("code",[e._v("path/to/acpidump.exe -b -n DSDT -z")]),e._v(", this will dump your DSDT as a .dat file. Rename this to DSDT.aml")])])]),e._v(" "),r("li",[r("p",[e._v("Do note that all ACPI patches from clover/OpenCore will be applied to the DSDT with the above 2 methods")])])]),e._v(" "),r("h2",{attrs:{id:"from-linux"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#from-linux"}},[e._v("#")]),e._v(" From Linux")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://github.com/corpnewt/SSDTTime",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDTTime"),r("OutboundLink")],1),e._v(" "),r("ul",[r("li",[e._v("Supports both Windows and Linux for DSDT dumping")]),e._v(" "),r("li",[r("code",[e._v("4. Dump DSDT - Automatically dump the system DSDT")])])])]),e._v(" "),r("li",[e._v("Do note that all ACPI patches from clover/OpenCore will be applied to the DSDT with the above method")])]),e._v(" "),r("h2",{attrs:{id:"from-clover"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#from-clover"}},[e._v("#")]),e._v(" From Clover")]),e._v(" "),r("p",[e._v("For those with Clover installed previously, this is a simple way to get your ACPI tables:")]),e._v(" "),r("ul",[r("li",[e._v("F4 in Clover Boot menu\n"),r("ul",[r("li",[e._v("DSDT can be found in "),r("code",[e._v("EFI/CLOVER/ACPI/origin")]),e._v(", the folder "),r("strong",[e._v("must")]),e._v(" exist before dumping")])])])]),e._v(" "),r("h2",{attrs:{id:"from-opencore"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#from-opencore"}},[e._v("#")]),e._v(" From OpenCore")]),e._v(" "),r("p",[e._v("With OpenCore, we have 2 options:")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"#sysreport-quirk"}},[e._v("SysReport Quirk")])]),e._v(" "),r("li",[r("a",{attrs:{href:"#uefi-shell"}},[e._v("UEFI Shell")])])]),e._v(" "),r("h3",{attrs:{id:"sysreport-quirk"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#sysreport-quirk"}},[e._v("#")]),e._v(" SysReport Quirk")]),e._v(" "),r("p",[e._v("With OpenCore 0.5.9, we have a new quirk called SysReport which will actually dump our DSDT automatically when hitting the boot screen. The main issues are:")]),e._v(" "),r("ul",[r("li",[e._v("You already need a bootable OpenCore USB to get this dump")]),e._v(" "),r("li",[e._v("This also requires a DEBUG version of 0.5.9")])]),e._v(" "),r("p",[e._v("For the latter, you just need to replace the following files with "),r("a",{attrs:{href:"https://github.com/acidanthera/OpenCorePkg/releases",target:"_blank",rel:"noopener noreferrer"}},[e._v("DEBUG version"),r("OutboundLink")],1),e._v(":")]),e._v(" "),r("ul",[r("li",[e._v("EFI/BOOT/\n"),r("ul",[r("li",[r("code",[e._v("BOOTx64.efi")])])])]),e._v(" "),r("li",[e._v("EFI/OC/Bootstrap/\n"),r("ul",[r("li",[r("code",[e._v("Bootstrap.efi")])])])]),e._v(" "),r("li",[e._v("EFI/OC/Drivers/\n"),r("ul",[r("li",[r("code",[e._v("OpenRuntime.efi")])])])]),e._v(" "),r("li",[e._v("EFI/OC/\n"),r("ul",[r("li",[r("code",[e._v("OpenCore.efi")])])])])]),e._v(" "),r("p",[e._v("For the former, you can actually skip the ACPI section, return to the "),r("a",{attrs:{href:"https://dortania.github.io/OpenCore-Install-Guide/",target:"_blank",rel:"noopener noreferrer"}},[e._v("OpenCore guide"),r("OutboundLink")],1),e._v(" and finish making the USB. Once booted to the picker, you can shut off the PC and check your USB:")]),e._v(" "),r("p",[r("img",{attrs:{src:o(372),alt:""}})]),e._v(" "),r("p",[e._v("And voila! You have a DSDT! Now you can continue on with making SSDTs")]),e._v(" "),r("h3",{attrs:{id:"uefi-shell"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#uefi-shell"}},[e._v("#")]),e._v(" UEFI Shell")]),e._v(" "),r("p",[e._v("For this, we'll want ti grab "),r("a",{attrs:{href:"https://github.com/dortania/OpenCore-Install-Guide/tree/master/extra-files/acpidump.efi.zip",target:"_blank",rel:"noopener noreferrer"}},[r("code",[e._v("acpidump.efi")]),r("OutboundLink")],1),e._v(" and add this to "),r("code",[e._v("EFI/OC/Tools")]),e._v(" and in your config under "),r("code",[e._v("Misc -> Tools")]),e._v(" with the argument: "),r("code",[e._v("-b -n DSDT -z")]),e._v(" and select this option in OpenCore's picker.")]),e._v(" "),r("p",[e._v("If OpenCore is having issues running acpidump.efi from the boot picker, you can call it from the shell with "),r("a",{attrs:{href:"https://github.com/acidanthera/OpenCorePkg/releases",target:"_blank",rel:"noopener noreferrer"}},[e._v("OpenShell"),r("OutboundLink")],1),e._v("(reminder to add to both "),r("code",[e._v("EFI/OC/Tools")]),e._v(" and in your config under "),r("code",[e._v("Misc -> Tools")]),e._v(" ):")]),e._v(" "),r("div",{staticClass:"language- extra-class"},[r("pre",{pre:!0,attrs:{class:"language-text"}},[r("code",[e._v("shell> fs0: // replace with proper drive\nfs0:\\> dir // to verify this is the right directory\n Directory of fs0:\\\n 01/01/01 3:30p EFI\nfs0:\\> cd EFI\\OC\\Tools\nfs0:\\EFI\\OC\\Tools> acpidump.efi -b -n DSDT -z\t\t\n")])])]),r("p",[e._v("Once done, you should find your DSDT in the EFI/OC/Tools folder with a "),r("code",[e._v(".dat")]),e._v(" extension. Rename this DSDT.dat file to DSDT.aml to help us down the line")])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[20],{375:function(e,t,o){e.exports=o.p+"assets/img/sysreport.8d1d1d0e.png"},430:function(e,t,o){"use strict";o.r(t);var r=o(25),a=Object(r.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"getting-a-copy-of-our-dsdt"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#getting-a-copy-of-our-dsdt"}},[e._v("#")]),e._v(" Getting a copy of our DSDT")]),e._v(" "),r("p",[e._v("So to start, we'll need to get a copy of your DSDT from your firmware. The easiest way is grabbing the DSDT.aml SSDTTime dumped for us earlier but here are some other options:")]),e._v(" "),r("h2",{attrs:{id:"from-windows"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#from-windows"}},[e._v("#")]),e._v(" From Windows")]),e._v(" "),r("ul",[r("li",[r("p",[r("a",{attrs:{href:"https://github.com/corpnewt/SSDTTime",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDTTime"),r("OutboundLink")],1)]),e._v(" "),r("ul",[r("li",[e._v("Supports both Windows and Linux for DSDT dumping")]),e._v(" "),r("li",[r("code",[e._v("7. Dump DSDT - Automatically dump the system DSDT")])])])]),e._v(" "),r("li",[r("p",[r("a",{attrs:{href:"https://acpica.org/downloads/binary-tools",target:"_blank",rel:"noopener noreferrer"}},[e._v("acpidump.exe"),r("OutboundLink")],1)]),e._v(" "),r("ul",[r("li",[e._v("In command prompt run "),r("code",[e._v("path/to/acpidump.exe -b -n DSDT -z")]),e._v(", this will dump your DSDT as a .dat file. Rename this to DSDT.aml")])])]),e._v(" "),r("li",[r("p",[e._v("Do note that all ACPI patches from clover/OpenCore will be applied to the DSDT with the above 2 methods")])])]),e._v(" "),r("h2",{attrs:{id:"from-linux"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#from-linux"}},[e._v("#")]),e._v(" From Linux")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://github.com/corpnewt/SSDTTime",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDTTime"),r("OutboundLink")],1),e._v(" "),r("ul",[r("li",[e._v("Supports both Windows and Linux for DSDT dumping")]),e._v(" "),r("li",[r("code",[e._v("4. Dump DSDT - Automatically dump the system DSDT")])])])]),e._v(" "),r("li",[e._v("Do note that all ACPI patches from clover/OpenCore will be applied to the DSDT with the above method")])]),e._v(" "),r("h2",{attrs:{id:"from-clover"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#from-clover"}},[e._v("#")]),e._v(" From Clover")]),e._v(" "),r("p",[e._v("For those with Clover installed previously, this is a simple way to get your ACPI tables:")]),e._v(" "),r("ul",[r("li",[e._v("F4 in Clover Boot menu\n"),r("ul",[r("li",[e._v("DSDT can be found in "),r("code",[e._v("EFI/CLOVER/ACPI/origin")]),e._v(", the folder "),r("strong",[e._v("must")]),e._v(" exist before dumping")])])])]),e._v(" "),r("h2",{attrs:{id:"from-opencore"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#from-opencore"}},[e._v("#")]),e._v(" From OpenCore")]),e._v(" "),r("p",[e._v("With OpenCore, we have 2 options:")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"#sysreport-quirk"}},[e._v("SysReport Quirk")])]),e._v(" "),r("li",[r("a",{attrs:{href:"#uefi-shell"}},[e._v("UEFI Shell")])])]),e._v(" "),r("h3",{attrs:{id:"sysreport-quirk"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#sysreport-quirk"}},[e._v("#")]),e._v(" SysReport Quirk")]),e._v(" "),r("p",[e._v("With OpenCore 0.5.9, we have a new quirk called SysReport which will actually dump our DSDT automatically when hitting the boot screen. The main issues are:")]),e._v(" "),r("ul",[r("li",[e._v("You already need a bootable OpenCore USB to get this dump")]),e._v(" "),r("li",[e._v("This also requires a DEBUG version of 0.5.9")])]),e._v(" "),r("p",[e._v("For the latter, you just need to replace the following files with "),r("a",{attrs:{href:"https://github.com/acidanthera/OpenCorePkg/releases",target:"_blank",rel:"noopener noreferrer"}},[e._v("DEBUG version"),r("OutboundLink")],1),e._v(":")]),e._v(" "),r("ul",[r("li",[e._v("EFI/BOOT/\n"),r("ul",[r("li",[r("code",[e._v("BOOTx64.efi")])])])]),e._v(" "),r("li",[e._v("EFI/OC/Bootstrap/\n"),r("ul",[r("li",[r("code",[e._v("Bootstrap.efi")])])])]),e._v(" "),r("li",[e._v("EFI/OC/Drivers/\n"),r("ul",[r("li",[r("code",[e._v("OpenRuntime.efi")])])])]),e._v(" "),r("li",[e._v("EFI/OC/\n"),r("ul",[r("li",[r("code",[e._v("OpenCore.efi")])])])])]),e._v(" "),r("p",[e._v("For the former, you can actually skip the ACPI section, return to the "),r("a",{attrs:{href:"https://dortania.github.io/OpenCore-Install-Guide/",target:"_blank",rel:"noopener noreferrer"}},[e._v("OpenCore guide"),r("OutboundLink")],1),e._v(" and finish making the USB. Once booted to the picker, you can shut off the PC and check your USB:")]),e._v(" "),r("p",[r("img",{attrs:{src:o(375),alt:""}})]),e._v(" "),r("p",[e._v("And voila! You have a DSDT! Now you can continue on with making SSDTs")]),e._v(" "),r("h3",{attrs:{id:"uefi-shell"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#uefi-shell"}},[e._v("#")]),e._v(" UEFI Shell")]),e._v(" "),r("p",[e._v("For this, we'll want ti grab "),r("a",{attrs:{href:"https://github.com/dortania/OpenCore-Install-Guide/tree/master/extra-files/acpidump.efi.zip",target:"_blank",rel:"noopener noreferrer"}},[r("code",[e._v("acpidump.efi")]),r("OutboundLink")],1),e._v(" and add this to "),r("code",[e._v("EFI/OC/Tools")]),e._v(" and in your config under "),r("code",[e._v("Misc -> Tools")]),e._v(" with the argument: "),r("code",[e._v("-b -n DSDT -z")]),e._v(" and select this option in OpenCore's picker.")]),e._v(" "),r("p",[e._v("If OpenCore is having issues running acpidump.efi from the boot picker, you can call it from the shell with "),r("a",{attrs:{href:"https://github.com/acidanthera/OpenCorePkg/releases",target:"_blank",rel:"noopener noreferrer"}},[e._v("OpenShell"),r("OutboundLink")],1),e._v("(reminder to add to both "),r("code",[e._v("EFI/OC/Tools")]),e._v(" and in your config under "),r("code",[e._v("Misc -> Tools")]),e._v(" ):")]),e._v(" "),r("div",{staticClass:"language- extra-class"},[r("pre",{pre:!0,attrs:{class:"language-text"}},[r("code",[e._v("shell> fs0: // replace with proper drive\nfs0:\\> dir // to verify this is the right directory\n Directory of fs0:\\\n 01/01/01 3:30p EFI\nfs0:\\> cd EFI\\OC\\Tools\nfs0:\\EFI\\OC\\Tools> acpidump.efi -b -n DSDT -z\t\t\n")])])]),r("p",[e._v("Once done, you should find your DSDT in the EFI/OC/Tools folder with a "),r("code",[e._v(".dat")]),e._v(" extension. Rename this DSDT.dat file to DSDT.aml to help us down the line")])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/20.745d4eef.js b/assets/js/20.745d4eef.js deleted file mode 100644 index 5a3107d..0000000 --- a/assets/js/20.745d4eef.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[20],{399:function(e,t,o){e.exports=o.p+"assets/img/ssdttime.54f2ba0d.png"},453:function(e,t,o){"use strict";o.r(t);var r=o(25),i=Object(r.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"ssdts-the-easy-way"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#ssdts-the-easy-way"}},[e._v("#")]),e._v(" SSDTs: The easy way")]),e._v(" "),r("p",[e._v("So here we'll be using a super simple tool made by CorpNewt: "),r("a",{attrs:{href:"https://github.com/corpnewt/SSDTTime",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDTTime"),r("OutboundLink")],1)]),e._v(" "),r("p",[e._v("What this tool does is, it dumps your DSDT from your firmware, and then creates SSDTs based off your DSDT. "),r("strong",[e._v("This must be done on the target machine running either Windows or Linux")])]),e._v(" "),r("h2",{attrs:{id:"so-what-can-t-ssdttime-do"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#so-what-can-t-ssdttime-do"}},[e._v("#")]),e._v(" So what "),r("strong",[e._v("CAN'T")]),e._v(" SSDTTime do")]),e._v(" "),r("ul",[r("li",[r("strong",[e._v("SSDT-PNLF")]),e._v(":\n"),r("ul",[r("li",[e._v("Need to be configured to your system")])])]),e._v(" "),r("li",[r("strong",[e._v("SSDT-GPI0")]),e._v(":\n"),r("ul",[r("li",[e._v("Need to be configured to your system")])])]),e._v(" "),r("li",[r("strong",[e._v("USBX SSDT")]),e._v(":\n"),r("ul",[r("li",[e._v("This is included on sample SSDTs but SSDTTime only makes the SSDT-EC part, Skylake and newer users can grab a pre-built here: "),r("a",{attrs:{href:"https://github.com/dortania/OpenCore-Post-Install/blob/master/extra-files/SSDT-USBX.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-USBX.aml"),r("OutboundLink")],1)])])]),e._v(" "),r("li",[r("strong",[e._v("RHUB SSDT")]),e._v(":\n"),r("ul",[r("li",[e._v("If you have a 10th gen CPU, you'll need to either use the prebuilt or manually create it.")])])]),e._v(" "),r("li",[r("strong",[e._v("IMEI SSDT")]),e._v(":\n"),r("ul",[r("li",[e._v("If you have either a Sandy bridge CPU with 7 series motherboard or Ivy Bridge with 6 series motherboard, you'll need to either use the prebuilt or manually create it.")])])])]),e._v(" "),r("p",[e._v('For users who don\'t have all the options available to them in SSDTTime, you can follow the "SSDTs: The long way" section. You can still use SSDTTime for SSDTs it does support.')]),e._v(" "),r("h2",{attrs:{id:"running-ssdttime"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#running-ssdttime"}},[e._v("#")]),e._v(" Running SSDTTime")]),e._v(" "),r("p",[e._v("Run the "),r("code",[e._v("SSDTTime.bat")]),e._v(" file as Admin on the target machine and you should see something like this:")]),e._v(" "),r("p",[r("img",{attrs:{src:o(399),alt:""}})]),e._v(" "),r("p",[e._v("What are all these options?:")]),e._v(" "),r("ul",[r("li",[r("code",[e._v("1. FixHPET - Patch out IRQ Conflicts")]),e._v(" "),r("ul",[r("li",[e._v("IRQ patching, mainly needed for X79, X99 and laptop users(use option "),r("code",[e._v("C")]),e._v(" to omit conflicting legacy IRQs)")])])]),e._v(" "),r("li",[r("code",[e._v("2. FakeEC - OS-aware Fake EC")]),e._v(" "),r("ul",[r("li",[e._v("This is the SSDT-EC, required for Catalina users")])])]),e._v(" "),r("li",[r("code",[e._v("3. FakeEC Laptop\t\t- OS-aware Fake EC")]),e._v(" "),r("ul",[r("li",[e._v("This is the SSDT-EC, but the laptop version only Builds Fake EC and leaves the existing EC devices untouched, again required for Catalina users")])])]),e._v(" "),r("li",[r("code",[e._v("4. PluginType - Sets plugin-type = 1 on First ProcessorObj")]),e._v(" "),r("ul",[r("li",[e._v("This is the SSDT-PLUG, for Intel only")])])]),e._v(" "),r("li",[r("code",[e._v("5. PMC - Sets Power Management controller status")]),e._v(" "),r("ul",[r("li",[e._v("This is the SSDT-PMC, for Intel true 300+ series only, this device is missing from ACPI in recent boards and helps to bring back NVRAM support.")])])]),e._v(" "),r("li",[r("code",[e._v("6. AWAC - Context-Aware AWAC Disable and RTC Fake")]),e._v(" "),r("ul",[r("li",[e._v("This is the SSDT-AWAC/RTC0, its purpose is to fix the system clocks found on newer hardware")])])]),e._v(" "),r("li",[r("code",[e._v("7. Dump DSDT - Automatically dump the system DSDT")]),e._v(" "),r("ul",[r("li",[e._v("Dumps your DSDT from your firmware")])])])]),e._v(" "),r("p",[e._v("What we want to do is select option "),r("code",[e._v("4. Dump DSDT")]),e._v(" first, then select the appropriate option(s) for your system.")]),e._v(" "),r("blockquote",[r("p",[e._v("What about USBX?")])]),e._v(" "),r("p",[e._v("For Skylake and newer plus AMD, you can grab a pre-built file here: "),r("a",{attrs:{href:"https://github.com/dortania/OpenCore-Post-Install/blob/master/extra-files/SSDT-USBX.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-USBX.aml"),r("OutboundLink")],1),e._v(". This file is plug and play and requires no device configuration, "),r("strong",[e._v("do not use on Broadwell and older")]),e._v(".")]),e._v(" "),r("p",[r("strong",[e._v("Troubleshooting note")]),e._v(": See "),r("a",{attrs:{href:"https://dortania.github.io/OpenCore-Install-Guide/troubleshooting/troubleshooting.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("General Troubleshooting"),r("OutboundLink")],1),e._v(" if you're having issues running SSDTTime")]),e._v(" "),r("h2",{attrs:{id:"adding-to-opencore"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#adding-to-opencore"}},[e._v("#")]),e._v(" Adding to OpenCore")]),e._v(" "),r("p",[e._v("Don't forget that SSDTs need to be added to Opencore, reminder that .aml is complied, .dsl is code. "),r("strong",[e._v("Add only the .aml file")]),e._v(":")]),e._v(" "),r("ul",[r("li",[e._v("EFI/OC/ACPI")]),e._v(" "),r("li",[e._v("config.plist -> ACPI -> Add")])]),e._v(" "),r("p",[e._v("Reminder that Cmd/Crtl+R with ProperTree pointed at your OC folder will add all your SSDTs, kexts and .efi drivers to the config for you. "),r("strong",[e._v("Do not add your DSDT to OpenCore, its already in your firmware")]),e._v(". If you are unsure what this is referring to, go back to the OpenCore guide and select your config based of the architecture of your CPU.")]),e._v(" "),r("p",[e._v("For those who do not yet have a config.plist, you'll want to next head back to your respective OpenCore guides and create the config.plist:")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://dortania.github.io/OpenCore-Install-Guide/",target:"_blank",rel:"noopener noreferrer"}},[e._v("OpenCore Install guide"),r("OutboundLink")],1)])]),e._v(" "),r("p",[e._v("Users of "),r("code",[e._v("FixHPET")]),e._v(" will also need to merge oc_patches.plist into their config.plist")]),e._v(" "),r("p",[e._v("Steps to do this:")]),e._v(" "),r("ul",[r("li",[e._v("Open both files,")]),e._v(" "),r("li",[e._v("Delete the "),r("code",[e._v("ACPI -> Patch")]),e._v(" section from config.plist")]),e._v(" "),r("li",[e._v("Copy the "),r("code",[e._v("ACPI -> Patch")]),e._v(" section from patches.plist")]),e._v(" "),r("li",[e._v("Paste into where old patches were in config.plist")])])])}),[],!1,null,null,null);t.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/21.5515e10a.js b/assets/js/21.5515e10a.js new file mode 100644 index 0000000..322d02d --- /dev/null +++ b/assets/js/21.5515e10a.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[21],{406:function(e,t,o){e.exports=o.p+"assets/img/ssdttime.54f2ba0d.png"},470:function(e,t,o){"use strict";o.r(t);var r=o(25),s=Object(r.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"ssdts-the-easy-way"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#ssdts-the-easy-way"}},[e._v("#")]),e._v(" SSDTs: The easy way")]),e._v(" "),r("p",[e._v("So here we'll be using a super simple tool made by CorpNewt: "),r("a",{attrs:{href:"https://github.com/corpnewt/SSDTTime",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDTTime"),r("OutboundLink")],1)]),e._v(" "),r("p",[e._v("What this tool does is, it dumps your DSDT from your firmware, and then creates SSDTs based off your DSDT. "),r("strong",[e._v("This must be done on the target machine running either Windows or Linux")])]),e._v(" "),r("h2",{attrs:{id:"so-what-can-t-ssdttime-do"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#so-what-can-t-ssdttime-do"}},[e._v("#")]),e._v(" So what "),r("strong",[e._v("CAN'T")]),e._v(" SSDTTime do")]),e._v(" "),r("ul",[r("li",[r("strong",[e._v("SSDT-PNLF")]),e._v(":\n"),r("ul",[r("li",[e._v("Need to be configured to your system")])])]),e._v(" "),r("li",[r("strong",[e._v("SSDT-GPI0")]),e._v(":\n"),r("ul",[r("li",[e._v("Need to be configured to your system")])])]),e._v(" "),r("li",[r("strong",[e._v("USBX SSDT")]),e._v(":\n"),r("ul",[r("li",[e._v("This is included on sample SSDTs but SSDTTime only makes the SSDT-EC part, Skylake and newer users can grab a pre-built here: "),r("a",{attrs:{href:"https://github.com/dortania/OpenCore-Post-Install/blob/master/extra-files/SSDT-USBX.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-USBX.aml"),r("OutboundLink")],1)])])]),e._v(" "),r("li",[r("strong",[e._v("IMEI SSDT")]),e._v(":\n"),r("ul",[r("li",[e._v("If you have either a Sandy bridge CPU with 7 series motherboard or Ivy Bridge with 6 series motherboard, you'll need to either use the prebuilt or manually create it.")])])]),e._v(" "),r("li",[r("strong",[e._v("RTC0 RANGE SSDT")]),e._v(":\nIf you have X99 or X299, you'll need to configure it to your system")])]),e._v(" "),r("p",[e._v('For users who don\'t have all the options available to them in SSDTTime, you can follow the "SSDTs: The long way" section. You can still use SSDTTime for SSDTs it does support.')]),e._v(" "),r("h2",{attrs:{id:"running-ssdttime"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#running-ssdttime"}},[e._v("#")]),e._v(" Running SSDTTime")]),e._v(" "),r("p",[e._v("Run the "),r("code",[e._v("SSDTTime.bat")]),e._v(" file as Admin on the target machine and you should see something like this:")]),e._v(" "),r("p",[r("img",{attrs:{src:o(406),alt:""}})]),e._v(" "),r("p",[e._v("What are all these options?:")]),e._v(" "),r("ul",[r("li",[r("code",[e._v("1. FixHPET - Patch out IRQ Conflicts")]),e._v(" "),r("ul",[r("li",[e._v("IRQ patching, mainly needed for X79, X99 and laptop users(use option "),r("code",[e._v("C")]),e._v(" to omit conflicting legacy IRQs)")])])]),e._v(" "),r("li",[r("code",[e._v("2. FakeEC - OS-aware Fake EC")]),e._v(" "),r("ul",[r("li",[e._v("This is the SSDT-EC, required for Catalina users")])])]),e._v(" "),r("li",[r("code",[e._v("3. FakeEC Laptop\t\t- OS-aware Fake EC")]),e._v(" "),r("ul",[r("li",[e._v("This is the SSDT-EC, but the laptop version only Builds Fake EC and leaves the existing EC devices untouched, again required for Catalina users")])])]),e._v(" "),r("li",[r("code",[e._v("4. PluginType - Sets plugin-type = 1 on First ProcessorObj")]),e._v(" "),r("ul",[r("li",[e._v("This is the SSDT-PLUG, for Intel only")])])]),e._v(" "),r("li",[r("code",[e._v("5. PMC - Sets Power Management controller status")]),e._v(" "),r("ul",[r("li",[e._v("This is the SSDT-PMC, for Intel true 300+ series only, this device is missing from ACPI in recent boards and helps to bring back NVRAM support.")])])]),e._v(" "),r("li",[r("code",[e._v("6. AWAC - Context-Aware AWAC Disable and RTC Fake")]),e._v(" "),r("ul",[r("li",[e._v("This is the SSDT-AWAC/RTC0, its purpose is to fix the system clocks found on newer hardware")])])]),e._v(" "),r("li",[r("code",[e._v("7. USB Reset - Reset USB controllers to allow hardware mapping")]),e._v(" "),r("ul",[r("li",[e._v("This is SSDT-RHUB, used for resetting USB ports in macOS for Asus's Z490 motherboards")])])]),e._v(" "),r("li",[r("code",[e._v("8. Dump DSDT - Automatically dump the system DSDT")]),e._v(" "),r("ul",[r("li",[e._v("Dumps your DSDT from your firmware")])])])]),e._v(" "),r("p",[e._v("What we want to do is select option "),r("code",[e._v("4. Dump DSDT")]),e._v(" first, then select the appropriate option(s) for your system.")]),e._v(" "),r("blockquote",[r("p",[e._v("What about USBX?")])]),e._v(" "),r("p",[e._v("For Skylake and newer plus AMD, you can grab a pre-built file here: "),r("a",{attrs:{href:"https://github.com/dortania/OpenCore-Post-Install/blob/master/extra-files/SSDT-USBX.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-USBX.aml"),r("OutboundLink")],1),e._v(". This file is plug and play and requires no device configuration, "),r("strong",[e._v("do not use on Broadwell and older")]),e._v(".")]),e._v(" "),r("p",[r("strong",[e._v("Troubleshooting note")]),e._v(": See "),r("a",{attrs:{href:"https://dortania.github.io/OpenCore-Install-Guide/troubleshooting/troubleshooting.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("General Troubleshooting"),r("OutboundLink")],1),e._v(" if you're having issues running SSDTTime")]),e._v(" "),r("h2",{attrs:{id:"adding-to-opencore"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#adding-to-opencore"}},[e._v("#")]),e._v(" Adding to OpenCore")]),e._v(" "),r("p",[e._v("Don't forget that SSDTs need to be added to Opencore, reminder that .aml is complied, .dsl is code. "),r("strong",[e._v("Add only the .aml file")]),e._v(":")]),e._v(" "),r("ul",[r("li",[e._v("EFI/OC/ACPI")]),e._v(" "),r("li",[e._v("config.plist -> ACPI -> Add")])]),e._v(" "),r("p",[e._v("Reminder that Cmd/Crtl+R with ProperTree pointed at your OC folder will add all your SSDTs, kexts and .efi drivers to the config for you. "),r("strong",[e._v("Do not add your DSDT to OpenCore, its already in your firmware")]),e._v(". If you are unsure what this is referring to, go back to the OpenCore guide and select your config based of the architecture of your CPU.")]),e._v(" "),r("p",[e._v("For those who do not yet have a config.plist, you'll want to next head back to your respective OpenCore guides and create the config.plist:")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://dortania.github.io/OpenCore-Install-Guide/",target:"_blank",rel:"noopener noreferrer"}},[e._v("OpenCore Install guide"),r("OutboundLink")],1)])]),e._v(" "),r("p",[e._v("Users of "),r("code",[e._v("FixHPET")]),e._v(" will also need to merge oc_patches.plist into their config.plist")]),e._v(" "),r("p",[e._v("Steps to do this:")]),e._v(" "),r("ul",[r("li",[e._v("Open both files,")]),e._v(" "),r("li",[e._v("Delete the "),r("code",[e._v("ACPI -> Patch")]),e._v(" section from config.plist")]),e._v(" "),r("li",[e._v("Copy the "),r("code",[e._v("ACPI -> Patch")]),e._v(" section from patches.plist")]),e._v(" "),r("li",[e._v("Paste into where old patches were in config.plist")])])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/assets/js/21.8af3374f.js b/assets/js/22.0afc6a4a.js similarity index 70% rename from assets/js/21.8af3374f.js rename to assets/js/22.0afc6a4a.js index 8d6716e..60c578d 100644 --- a/assets/js/21.8af3374f.js +++ b/assets/js/22.0afc6a4a.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[21],{407:function(t,s,n){"use strict";n.r(s);var e={data:function(){return{msg:"Hello this is "}}},i=n(25),a=Object(i.a)(e,(function(){var t=this.$createElement;return(this._self._c||t)("p",{staticClass:"demo"},[this._v("\n "+this._s(this.msg)+"\n")])}),[],!1,null,null,null);s.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[22],{414:function(t,s,n){"use strict";n.r(s);var e={data:function(){return{msg:"Hello this is "}}},i=n(25),a=Object(i.a)(e,(function(){var t=this.$createElement;return(this._self._c||t)("p",{staticClass:"demo"},[this._v("\n "+this._s(this.msg)+"\n")])}),[],!1,null,null,null);s.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/22.963ce3f9.js b/assets/js/23.a3fca4dd.js similarity index 63% rename from assets/js/22.963ce3f9.js rename to assets/js/23.a3fca4dd.js index c8a77c2..8fb4561 100644 --- a/assets/js/22.963ce3f9.js +++ b/assets/js/23.a3fca4dd.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[22],{459:function(t,n,e){"use strict";e.r(n);var s=e(25),i=Object(s.a)({},(function(){var t=this.$createElement;return(this._self._c||t)("p",{staticClass:"demo"},[this._v("This is another component")])}),[],!1,null,null,null);n.default=i.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[23],{471:function(t,n,e){"use strict";e.r(n);var s=e(25),i=Object(s.a)({},(function(){var t=this.$createElement;return(this._self._c||t)("p",{staticClass:"demo"},[this._v("This is another component")])}),[],!1,null,null,null);n.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/23.fc743060.js b/assets/js/24.a70a214b.js similarity index 69% rename from assets/js/23.fc743060.js rename to assets/js/24.a70a214b.js index 5254ba7..5a4df2e 100644 --- a/assets/js/23.fc743060.js +++ b/assets/js/24.a70a214b.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[23],{406:function(t,n,s){"use strict";s.r(n);var e={data:function(){return{msg:"Hello this is "}}},i=s(25),o=Object(i.a)(e,(function(){var t=this.$createElement;return(this._self._c||t)("p",{staticClass:"demo"},[this._v("\n "+this._s(this.msg)+"\n")])}),[],!1,null,null,null);n.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[24],{413:function(t,n,s){"use strict";s.r(n);var e={data:function(){return{msg:"Hello this is "}}},i=s(25),o=Object(i.a)(e,(function(){var t=this.$createElement;return(this._self._c||t)("p",{staticClass:"demo"},[this._v("\n "+this._s(this.msg)+"\n")])}),[],!1,null,null,null);n.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/24.082ee2a4.js b/assets/js/25.a30df27b.js similarity index 88% rename from assets/js/24.082ee2a4.js rename to assets/js/25.a30df27b.js index 125d066..772d207 100644 --- a/assets/js/24.082ee2a4.js +++ b/assets/js/25.a30df27b.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[24],{408:function(e,t,n){"use strict";n.r(t);var a={name:"ThemeManager",beforeMount:function(){function e(e){window.__theme=e,t=e,document.body.setAttribute("data-theme",e),window.__onThemeChange(e)}var t;window.__onThemeChange=function(){};try{t=localStorage.getItem("theme")}catch(e){}window.__setPreferredTheme=function(t){e(t);try{localStorage.setItem("theme",t)}catch(e){}};var n=window.matchMedia("(prefers-color-scheme: dark)");n.addListener((function(e){window.__setPreferredTheme(e.matches?"dark":"light")})),e(t||(n.matches?"dark":"light"))}},i=n(25),o=Object(i.a)(a,(function(){var e=this.$createElement;return(this._self._c||e)("div",{staticStyle:{visibility:"hidden",display:"none"}})}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[25],{415:function(e,t,n){"use strict";n.r(t);var a={name:"ThemeManager",beforeMount:function(){function e(e){window.__theme=e,t=e,document.body.setAttribute("data-theme",e),window.__onThemeChange(e)}var t;window.__onThemeChange=function(){};try{t=localStorage.getItem("theme")}catch(e){}window.__setPreferredTheme=function(t){e(t);try{localStorage.setItem("theme",t)}catch(e){}};var n=window.matchMedia("(prefers-color-scheme: dark)");n.addListener((function(e){window.__setPreferredTheme(e.matches?"dark":"light")})),e(t||(n.matches?"dark":"light"))}},i=n(25),o=Object(i.a)(a,(function(){var e=this.$createElement;return(this._self._c||e)("div",{staticStyle:{visibility:"hidden",display:"none"}})}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/25.0cdf8073.js b/assets/js/26.9a3eb304.js similarity index 90% rename from assets/js/25.0cdf8073.js rename to assets/js/26.9a3eb304.js index 5301e9a..64a99a5 100644 --- a/assets/js/25.0cdf8073.js +++ b/assets/js/26.9a3eb304.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[25],{405:function(t,e,s){"use strict";s.r(e);var n=["There's nothing here.","How did we get here?","That's a Four-Oh-Four.","Looks like we've got some broken links."],o={methods:{getMsg:function(){return n[Math.floor(Math.random()*n.length)]}}},i=s(25),h=Object(i.a)(o,(function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"theme-container"},[e("div",{staticClass:"theme-succinct-content"},[e("h1",[this._v("404")]),this._v(" "),e("blockquote",[this._v(this._s(this.getMsg()))]),this._v(" "),e("RouterLink",{attrs:{to:"/"}},[this._v("\n Take me home.\n ")])],1)])}),[],!1,null,null,null);e.default=h.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[26],{412:function(t,e,s){"use strict";s.r(e);var n=["There's nothing here.","How did we get here?","That's a Four-Oh-Four.","Looks like we've got some broken links."],o={methods:{getMsg:function(){return n[Math.floor(Math.random()*n.length)]}}},i=s(25),h=Object(i.a)(o,(function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"theme-container"},[e("div",{staticClass:"theme-succinct-content"},[e("h1",[this._v("404")]),this._v(" "),e("blockquote",[this._v(this._s(this.getMsg()))]),this._v(" "),e("RouterLink",{attrs:{to:"/"}},[this._v("\n Take me home.\n ")])],1)])}),[],!1,null,null,null);e.default=h.exports}}]); \ No newline at end of file diff --git a/assets/js/26.714e1b48.js b/assets/js/27.239a168c.js similarity index 98% rename from assets/js/26.714e1b48.js rename to assets/js/27.239a168c.js index adc1af2..8ee38b4 100644 --- a/assets/js/26.714e1b48.js +++ b/assets/js/27.239a168c.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[26],{411:function(e,t,i){"use strict";i.r(t);var o=i(25),n=Object(o.a)({},(function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[i("h1",{attrs:{id:"supporting-the-guides"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#supporting-the-guides"}},[e._v("#")]),e._v(" Supporting the guides")]),e._v(" "),i("p",[i("strong",[e._v("Note")]),e._v(": This is a community run guide which is not officially endorsed by Acidanthera. Please do not bug Acidanthera with issues about this guide.")]),e._v(" "),i("p",[e._v("Want to help support the guide? Well there's some ways you can help!")]),e._v(" "),i("ul",[i("li",[i("RouterLink",{attrs:{to:"/CONTRIBUTING.html#contributing-via-issues"}},[e._v("Contributing via Issues")])],1),e._v(" "),i("li",[i("RouterLink",{attrs:{to:"/CONTRIBUTING.html#contributing-via-prs"}},[e._v("Contributing via PRs")])],1)]),e._v(" "),i("p",[e._v("Note: For those wanting to contribute financially, we seriously appreciate it but we're a non-profit organization. We do this to teach, not to make money. If you have some money left over we highly recommend donating it to a charity. "),i("a",{attrs:{href:"https://crohnsandcolitis.donorportal.ca/Donation/DonationDetails.aspx?L=en-CA&G=159&F=1097&T=GENER",target:"_blank",rel:"noopener noreferrer"}},[e._v("Crohn's and Colitis Canada"),i("OutboundLink")],1),e._v(" is one we recommend if you have none on mind.")]),e._v(" "),i("h2",{attrs:{id:"contributing-via-issues"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#contributing-via-issues"}},[e._v("#")]),e._v(" Contributing via Issues")]),e._v(" "),i("p",[e._v("Contributing via Issues is pretty simple but there are some rules:")]),e._v(" "),i("ul",[i("li",[e._v("Keep issues tab dedicated to guides issues only, "),i("strong",[e._v("no personal hackintosh issues")]),e._v(". It is not a place to discuss installation issues.")]),e._v(" "),i("li",[e._v("If for a typo or better clarification, please indicate what page it was on. Would appreciate not going for a scavenger hunt on where these issues are.")])]),e._v(" "),i("p",[e._v("You can find the issues tab here: "),i("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/issues",target:"_blank",rel:"noopener noreferrer"}},[e._v("Getting Started With ACPI Issues"),i("OutboundLink")],1)]),e._v(" "),i("h2",{attrs:{id:"contributing-via-prs"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#contributing-via-prs"}},[e._v("#")]),e._v(" Contributing via PRs")]),e._v(" "),i("p",[e._v("Some guidelines when contributing via PRs:")]),e._v(" "),i("ul",[i("li",[e._v("Use your brain (please).")]),e._v(" "),i("li",[e._v("Proofread your submissions.")]),e._v(" "),i("li",[e._v("Pull Requests can be denied if we feel it does not fit or has inaccurate information. We will generally tell you why it is rejected though or ask for revisions.\n"),i("ul",[i("li",[e._v("We would also appreciate sources for any bigger commits to make it easier on us to verify the info your provide is valid")])])]),e._v(" "),i("li",[e._v("Images must be hosted locally in the repo under the "),i("code",[e._v("/images/")]),e._v(" folder")]),e._v(" "),i("li",[e._v("Your PR must be run through a markdown lint and have all issues fixed.")]),e._v(" "),i("li",[e._v('In general, try to avoid using "non-Acidanthera" tools when possible. Generally we want to avoid use of third-party tools - though if it\'s impossible otherwise, then you can link it.\n'),i("ul",[i("li",[e._v("Tools explicitly banned:\n"),i("ul",[i("li",[e._v("UniBeast, MultiBeast and KextBeast\n"),i("ul",[i("li",[e._v("More info can be found here: "),i("a",{attrs:{href:"https://github.com/khronokernel/Tonymcx86-stance",target:"_blank",rel:"noopener noreferrer"}},[e._v("Tonymacx86-stance"),i("OutboundLink")],1)])])]),e._v(" "),i("li",[e._v("Transmac\n"),i("ul",[i("li",[e._v("Know for creating borked USB drives")])])]),e._v(" "),i("li",[e._v("Niresh Installers\n"),i("ul",[i("li",[e._v("We'd like to avoid piracy with the guides")])])])])])])])]),e._v(" "),i("h3",{attrs:{id:"how-to-contribute"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#how-to-contribute"}},[e._v("#")]),e._v(" How to Contribute")]),e._v(" "),i("p",[e._v("Best way to test your commits and make sure they are formatted correctly is downloading "),i("code",[e._v("nodejs")]),e._v(" and "),i("code",[e._v("yarn")]),e._v(" then getting the VuePress and "),i("a",{attrs:{href:"https://github.com/igorshubovych/markdownlint-cli",target:"_blank",rel:"noopener noreferrer"}},[e._v("markdownlint-cli"),i("OutboundLink")],1),e._v(" tools. When you run "),i("code",[e._v("yarn dev")]),e._v(", it will set up a local webserver which you can connect to view the changes you made. "),i("code",[e._v("markdownlint *")]),e._v(" will throw any errors at you about formatting as well, and "),i("code",[e._v("markdownlint -f *")]),e._v(" will attempt to fix these.")]),e._v(" "),i("ul",[i("li",[i("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/fork/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Fork this repo"),i("OutboundLink")],1)]),e._v(" "),i("li",[e._v("Install the required tools:\n"),i("ul",[i("li",[i("code",[e._v("brew install yarn")])]),e._v(" "),i("li",[i("code",[e._v("npm install -g markdownlint-cli")])])])]),e._v(" "),i("li",[e._v("Make your changes.")]),e._v(" "),i("li",[e._v("Build the site:\n"),i("ul",[i("li",[i("code",[e._v("yarn install")]),e._v(" (To install all the required plugins)")]),e._v(" "),i("li",[i("code",[e._v("yarn dev")]),e._v(" (Preview the site)\n"),i("ul",[i("li",[e._v("Can be found at "),i("code",[e._v("http://localhost:8080")])])])])])]),e._v(" "),i("li",[e._v("Check markdown format:\n"),i("ul",[i("li",[i("code",[e._v("markdownlint -f *")]),e._v(" (To fix any potential issues)")])])])]),e._v(" "),i("h3",{attrs:{id:"tips"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#tips"}},[e._v("#")]),e._v(" Tips")]),e._v(" "),i("p",[e._v("Some tools that make contributing a bit easier:")]),e._v(" "),i("ul",[i("li",[i("a",{attrs:{href:"https://typora.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("Typora"),i("OutboundLink")],1),e._v(" for real time markdown rendering.")]),e._v(" "),i("li",[i("a",{attrs:{href:"https://macromates.com",target:"_blank",rel:"noopener noreferrer"}},[e._v("TextMate"),i("OutboundLink")],1),e._v(" for easy and powerful mass find/replace.")]),e._v(" "),i("li",[i("a",{attrs:{href:"https://desktop.github.com",target:"_blank",rel:"noopener noreferrer"}},[e._v("Github Desktop"),i("OutboundLink")],1),e._v(" for more user friendly GUI.")])])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[27],{418:function(e,t,i){"use strict";i.r(t);var o=i(25),n=Object(o.a)({},(function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[i("h1",{attrs:{id:"supporting-the-guides"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#supporting-the-guides"}},[e._v("#")]),e._v(" Supporting the guides")]),e._v(" "),i("p",[i("strong",[e._v("Note")]),e._v(": This is a community run guide which is not officially endorsed by Acidanthera. Please do not bug Acidanthera with issues about this guide.")]),e._v(" "),i("p",[e._v("Want to help support the guide? Well there's some ways you can help!")]),e._v(" "),i("ul",[i("li",[i("RouterLink",{attrs:{to:"/CONTRIBUTING.html#contributing-via-issues"}},[e._v("Contributing via Issues")])],1),e._v(" "),i("li",[i("RouterLink",{attrs:{to:"/CONTRIBUTING.html#contributing-via-prs"}},[e._v("Contributing via PRs")])],1)]),e._v(" "),i("p",[e._v("Note: For those wanting to contribute financially, we seriously appreciate it but we're a non-profit organization. We do this to teach, not to make money. If you have some money left over we highly recommend donating it to a charity. "),i("a",{attrs:{href:"https://crohnsandcolitis.donorportal.ca/Donation/DonationDetails.aspx?L=en-CA&G=159&F=1097&T=GENER",target:"_blank",rel:"noopener noreferrer"}},[e._v("Crohn's and Colitis Canada"),i("OutboundLink")],1),e._v(" is one we recommend if you have none on mind.")]),e._v(" "),i("h2",{attrs:{id:"contributing-via-issues"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#contributing-via-issues"}},[e._v("#")]),e._v(" Contributing via Issues")]),e._v(" "),i("p",[e._v("Contributing via Issues is pretty simple but there are some rules:")]),e._v(" "),i("ul",[i("li",[e._v("Keep issues tab dedicated to guides issues only, "),i("strong",[e._v("no personal hackintosh issues")]),e._v(". It is not a place to discuss installation issues.")]),e._v(" "),i("li",[e._v("If for a typo or better clarification, please indicate what page it was on. Would appreciate not going for a scavenger hunt on where these issues are.")])]),e._v(" "),i("p",[e._v("You can find the issues tab here: "),i("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/issues",target:"_blank",rel:"noopener noreferrer"}},[e._v("Getting Started With ACPI Issues"),i("OutboundLink")],1)]),e._v(" "),i("h2",{attrs:{id:"contributing-via-prs"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#contributing-via-prs"}},[e._v("#")]),e._v(" Contributing via PRs")]),e._v(" "),i("p",[e._v("Some guidelines when contributing via PRs:")]),e._v(" "),i("ul",[i("li",[e._v("Use your brain (please).")]),e._v(" "),i("li",[e._v("Proofread your submissions.")]),e._v(" "),i("li",[e._v("Pull Requests can be denied if we feel it does not fit or has inaccurate information. We will generally tell you why it is rejected though or ask for revisions.\n"),i("ul",[i("li",[e._v("We would also appreciate sources for any bigger commits to make it easier on us to verify the info your provide is valid")])])]),e._v(" "),i("li",[e._v("Images must be hosted locally in the repo under the "),i("code",[e._v("/images/")]),e._v(" folder")]),e._v(" "),i("li",[e._v("Your PR must be run through a markdown lint and have all issues fixed.")]),e._v(" "),i("li",[e._v('In general, try to avoid using "non-Acidanthera" tools when possible. Generally we want to avoid use of third-party tools - though if it\'s impossible otherwise, then you can link it.\n'),i("ul",[i("li",[e._v("Tools explicitly banned:\n"),i("ul",[i("li",[e._v("UniBeast, MultiBeast and KextBeast\n"),i("ul",[i("li",[e._v("More info can be found here: "),i("a",{attrs:{href:"https://github.com/khronokernel/Tonymcx86-stance",target:"_blank",rel:"noopener noreferrer"}},[e._v("Tonymacx86-stance"),i("OutboundLink")],1)])])]),e._v(" "),i("li",[e._v("Transmac\n"),i("ul",[i("li",[e._v("Know for creating borked USB drives")])])]),e._v(" "),i("li",[e._v("Niresh Installers\n"),i("ul",[i("li",[e._v("We'd like to avoid piracy with the guides")])])])])])])])]),e._v(" "),i("h3",{attrs:{id:"how-to-contribute"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#how-to-contribute"}},[e._v("#")]),e._v(" How to Contribute")]),e._v(" "),i("p",[e._v("Best way to test your commits and make sure they are formatted correctly is downloading "),i("code",[e._v("nodejs")]),e._v(" and "),i("code",[e._v("yarn")]),e._v(" then getting the VuePress and "),i("a",{attrs:{href:"https://github.com/igorshubovych/markdownlint-cli",target:"_blank",rel:"noopener noreferrer"}},[e._v("markdownlint-cli"),i("OutboundLink")],1),e._v(" tools. When you run "),i("code",[e._v("yarn dev")]),e._v(", it will set up a local webserver which you can connect to view the changes you made. "),i("code",[e._v("markdownlint *")]),e._v(" will throw any errors at you about formatting as well, and "),i("code",[e._v("markdownlint -f *")]),e._v(" will attempt to fix these.")]),e._v(" "),i("ul",[i("li",[i("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/fork/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Fork this repo"),i("OutboundLink")],1)]),e._v(" "),i("li",[e._v("Install the required tools:\n"),i("ul",[i("li",[i("code",[e._v("brew install yarn")])]),e._v(" "),i("li",[i("code",[e._v("npm install -g markdownlint-cli")])])])]),e._v(" "),i("li",[e._v("Make your changes.")]),e._v(" "),i("li",[e._v("Build the site:\n"),i("ul",[i("li",[i("code",[e._v("yarn install")]),e._v(" (To install all the required plugins)")]),e._v(" "),i("li",[i("code",[e._v("yarn dev")]),e._v(" (Preview the site)\n"),i("ul",[i("li",[e._v("Can be found at "),i("code",[e._v("http://localhost:8080")])])])])])]),e._v(" "),i("li",[e._v("Check markdown format:\n"),i("ul",[i("li",[i("code",[e._v("markdownlint -f *")]),e._v(" (To fix any potential issues)")])])])]),e._v(" "),i("h3",{attrs:{id:"tips"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#tips"}},[e._v("#")]),e._v(" Tips")]),e._v(" "),i("p",[e._v("Some tools that make contributing a bit easier:")]),e._v(" "),i("ul",[i("li",[i("a",{attrs:{href:"https://typora.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("Typora"),i("OutboundLink")],1),e._v(" for real time markdown rendering.")]),e._v(" "),i("li",[i("a",{attrs:{href:"https://macromates.com",target:"_blank",rel:"noopener noreferrer"}},[e._v("TextMate"),i("OutboundLink")],1),e._v(" for easy and powerful mass find/replace.")]),e._v(" "),i("li",[i("a",{attrs:{href:"https://desktop.github.com",target:"_blank",rel:"noopener noreferrer"}},[e._v("Github Desktop"),i("OutboundLink")],1),e._v(" for more user friendly GUI.")])])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/27.e23faed2.js b/assets/js/28.293af53c.js similarity index 88% rename from assets/js/27.e23faed2.js rename to assets/js/28.293af53c.js index f01d38a..e217172 100644 --- a/assets/js/27.e23faed2.js +++ b/assets/js/28.293af53c.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[27],{413:function(t,e,o){"use strict";o.r(e);var r=o(25),s=Object(r.a)({},(function(){var t=this,e=t.$createElement,o=t._self._c||e;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("h1",{attrs:{id:"fixing-embedded-controller-desktop"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#fixing-embedded-controller-desktop"}},[t._v("#")]),t._v(" Fixing Embedded Controller (Desktop)")]),t._v(" "),o("h2",{attrs:{id:"you-ll-want-to-go-to-ssdt-ec-under-the-universal-tab-for-the-new-ssdt-ec-page"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#you-ll-want-to-go-to-ssdt-ec-under-the-universal-tab-for-the-new-ssdt-ec-page"}},[t._v("#")]),t._v(" You'll want to go to "),o("RouterLink",{attrs:{to:"/Universal/desktop-ec.html"}},[t._v("SSDT-EC under the Universal tab")]),t._v(" for the new SSDT-EC page")],1)])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[28],{420:function(t,e,o){"use strict";o.r(e);var r=o(25),s=Object(r.a)({},(function(){var t=this,e=t.$createElement,o=t._self._c||e;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("h1",{attrs:{id:"fixing-embedded-controller-desktop"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#fixing-embedded-controller-desktop"}},[t._v("#")]),t._v(" Fixing Embedded Controller (Desktop)")]),t._v(" "),o("h2",{attrs:{id:"you-ll-want-to-go-to-ssdt-ec-under-the-universal-tab-for-the-new-ssdt-ec-page"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#you-ll-want-to-go-to-ssdt-ec-under-the-universal-tab-for-the-new-ssdt-ec-page"}},[t._v("#")]),t._v(" You'll want to go to "),o("RouterLink",{attrs:{to:"/Universal/desktop-ec.html"}},[t._v("SSDT-EC under the Universal tab")]),t._v(" for the new SSDT-EC page")],1)])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/assets/js/28.f861ed85.js b/assets/js/29.a4f0b3b1.js similarity index 94% rename from assets/js/28.f861ed85.js rename to assets/js/29.a4f0b3b1.js index a76c81b..0d622cb 100644 --- a/assets/js/28.f861ed85.js +++ b/assets/js/29.a4f0b3b1.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[28],{415:function(t,e,i){"use strict";i.r(e);var o=i(25),a=Object(o.a)({},(function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[i("h1",{attrs:{id:"fixing-backlight-prebuilt"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#fixing-backlight-prebuilt"}},[t._v("#")]),t._v(" Fixing Backlight: Prebuilt")]),t._v(" "),i("p",[t._v("By far the easiest method, all you need to do is download the following file:")]),t._v(" "),i("ul",[i("li",[i("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-PNLF.aml",target:"_blank",rel:"noopener noreferrer"}},[t._v("SSDT-PNLF.aml"),i("OutboundLink")],1),t._v(" "),i("ul",[i("li",[t._v("For most users")])])]),t._v(" "),i("li",[i("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-PNLF-CFL.aml",target:"_blank",rel:"noopener noreferrer"}},[t._v("SSDT-PNLF-CFL.aml"),i("OutboundLink")],1),t._v(" "),i("ul",[i("li",[t._v("For Coffee Lake and newer")])])])]),t._v(" "),i("p",[t._v("Main things to note with this method:")]),t._v(" "),i("ul",[i("li",[t._v("Assumes GPU pathing, works great for 99% of devices but if you're having issues controlling backlight this may be something to look at")]),t._v(" "),i("li",[t._v("Doesn't really teach you anything\n"),i("ul",[i("li",[t._v("For most, this doesn't matter. But to some knowing what makes your hackintosh tick is part of the journey")])])])])])}),[],!1,null,null,null);e.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[29],{422:function(t,e,i){"use strict";i.r(e);var o=i(25),a=Object(o.a)({},(function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[i("h1",{attrs:{id:"fixing-backlight-prebuilt"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#fixing-backlight-prebuilt"}},[t._v("#")]),t._v(" Fixing Backlight: Prebuilt")]),t._v(" "),i("p",[t._v("By far the easiest method, all you need to do is download the following file:")]),t._v(" "),i("ul",[i("li",[i("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-PNLF.aml",target:"_blank",rel:"noopener noreferrer"}},[t._v("SSDT-PNLF.aml"),i("OutboundLink")],1),t._v(" "),i("ul",[i("li",[t._v("For most users")])])]),t._v(" "),i("li",[i("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-PNLF-CFL.aml",target:"_blank",rel:"noopener noreferrer"}},[t._v("SSDT-PNLF-CFL.aml"),i("OutboundLink")],1),t._v(" "),i("ul",[i("li",[t._v("For Coffee Lake and newer")])])])]),t._v(" "),i("p",[t._v("Main things to note with this method:")]),t._v(" "),i("ul",[i("li",[t._v("Assumes GPU pathing, works great for 99% of devices but if you're having issues controlling backlight this may be something to look at")]),t._v(" "),i("li",[t._v("Doesn't really teach you anything\n"),i("ul",[i("li",[t._v("For most, this doesn't matter. But to some knowing what makes your hackintosh tick is part of the journey")])])])])])}),[],!1,null,null,null);e.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/3.b4430655.js b/assets/js/3.fb39bcd4.js similarity index 86% rename from assets/js/3.b4430655.js rename to assets/js/3.fb39bcd4.js index 9d348cb..3ea29f4 100644 --- a/assets/js/3.b4430655.js +++ b/assets/js/3.fb39bcd4.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{384:function(t,e,a){t.exports=a.p+"assets/img/processor.38dc34ad.png"},385:function(t,e,a){t.exports=a.p+"assets/img/processor-2.8af8c8dd.png"},386:function(t,e,a){t.exports=a.p+"assets/img/cp00.d25cad0f.png"},387:function(t,e,a){t.exports=a.p+"assets/img/plug-bios.1b527198.png"},388:function(t,e,a){t.exports=a.p+"assets/img/plug-x299.8123a653.png"},389:function(t,e,a){t.exports=a.p+"assets/img/ssdt-mess.8323e4a6.png"},390:function(t,e,a){t.exports=a.p+"assets/img/ssdt-clean.b241b36e.png"},442:function(t,e,a){"use strict";a.r(e);var s=a(25),i=Object(s.a)({},(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"fixing-power-management-manual"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#fixing-power-management-manual"}},[t._v("#")]),t._v(" Fixing Power Management: Manual")]),t._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#finding-the-acpi-path"}},[t._v("Finding the ACPI path")]),t._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#DSDT"}},[t._v("DSDT")])]),t._v(" "),s("li",[s("a",{attrs:{href:"#devicemanager"}},[t._v("DeviceManager")])])])]),t._v(" "),s("li",[s("a",{attrs:{href:"#edits-to-the-sample-ssdt"}},[t._v("Edits to the sample SSDT")])]),t._v(" "),s("li",[s("a",{attrs:{href:"#compiling-the-ssdt"}},[t._v("Compiling the SSDT")])]),t._v(" "),s("li",[s("a",{attrs:{href:"#wrapping-up"}},[t._v("Wrapping up")])])]),t._v(" "),s("h2",{attrs:{id:"finding-the-acpi-path"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#finding-the-acpi-path"}},[t._v("#")]),t._v(" Finding the ACPI path")]),t._v(" "),s("p",[t._v("To find the ACPI pathing, you have 2 methods:")]),t._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#DSDT"}},[t._v("DSDT")])]),t._v(" "),s("li",[s("a",{attrs:{href:"#devicemanager"}},[t._v("DeviceManager")])])]),t._v(" "),s("h3",{attrs:{id:"dsdt"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#dsdt"}},[t._v("#")]),t._v(" DSDT")]),t._v(" "),s("p",[t._v("CPU naming is fairly easy to figure out, first open your decompiled DSDT you got from "),s("RouterLink",{attrs:{to:"/Manual/dump.html"}},[t._v("Dumping the DSDT")]),t._v(" and "),s("RouterLink",{attrs:{to:"/Manual/compile.html"}},[t._v("Decompiling and Compiling")]),t._v(" with either maciASL(if in macOS) or any other text editor if in Windows or Linux(VSCode has an "),s("a",{attrs:{href:"https://marketplace.visualstudio.com/items?itemName=Thog.vscode-asl",target:"_blank",rel:"noopener noreferrer"}},[t._v("ACPI extension"),s("OutboundLink")],1),t._v(" that can also help).")],1),t._v(" "),s("p",[t._v("Next search for "),s("code",[t._v("Processor")]),t._v(". This should give you a result like this:")]),t._v(" "),s("p",[s("img",{attrs:{src:a(384),alt:""}})]),t._v(" "),s("p",[t._v("As we can see, the first processor in our list is "),s("code",[t._v("SB.PR00")]),t._v(". This is what we'll be applying the "),s("code",[t._v("plugin-type=1")]),t._v(" property too.")]),t._v(" "),s("p",[s("strong",[t._v("X99 and X299 note")]),t._v(":")]),t._v(" "),s("p",[t._v("Due to the different DSDT structure of these systems, you'll need to to actually check in multiple places as the pathing isn't as obvious:")]),t._v(" "),s("p",[s("img",{attrs:{src:a(385),alt:""}})]),t._v(" "),s("p",[t._v("If we then search for instances of "),s("code",[t._v("CP00")]),t._v(" we find that its full ACPI pathing is "),s("code",[t._v("SB.SCK0.CP00")]),t._v(":")]),t._v(" "),s("p",[s("img",{attrs:{src:a(386),alt:""}})]),t._v(" "),s("p",[t._v("Now with the pathing, you can head here: "),s("a",{attrs:{href:"#edits-to-the-sample-ssdt"}},[t._v("Edits to the sample SSDT")])]),t._v(" "),s("h5",{attrs:{id:"devicemanager"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#devicemanager"}},[t._v("#")]),t._v(" DeviceManager")]),t._v(" "),s("p",[t._v("If you already have Windows installed on this machine, finding the CPU pathing is fairly easy.")]),t._v(" "),s("p",[t._v("Start by opening up Device Manager in Windows and looking for a device named "),s("code",[t._v("Processor")]),t._v(". Once found, click on it and select the "),s("code",[t._v("BIOS device Name")]),t._v(" entry. You should get something like this:")]),t._v(" "),s("p",[s("img",{attrs:{src:a(387),alt:""}})]),t._v(" "),s("p",[t._v("From the above, we can see that our pathing is "),s("code",[t._v("PR.CPU0")]),t._v(". Pay close attention to the start as "),s("code",[t._v("PR")]),t._v(" is important for creating the SSDT")]),t._v(" "),s("p",[s("strong",[t._v("X99 and X299 note")]),t._v(":")]),t._v(" "),s("p",[t._v("Odd quirk of DeviceManager in Windows is that the Processor's order does not actually match the ACPI path, instead giving something like "),s("code",[t._v("SB.SCK0.CP10")]),t._v(":")]),t._v(" "),s("p",[s("img",{attrs:{src:a(388),alt:""}})]),t._v(" "),s("p",[t._v("When this happens, you can either:")]),t._v(" "),s("ul",[s("li",[t._v("Look through and find the lowest value")]),t._v(" "),s("li",[t._v("Assume the lowest(commonly being "),s("code",[t._v("PR00")]),t._v(" or "),s("code",[t._v("CP00")]),t._v(")")])]),t._v(" "),s("p",[t._v("So with the above X299 example, our CPU pathing would be "),s("code",[t._v("SB.SCK0.CP00")])]),t._v(" "),s("p",[t._v("Now with the pathing, you can head here: "),s("a",{attrs:{href:"#edits-to-the-sample-ssdt"}},[t._v("Edits to the sample SSDT")])]),t._v(" "),s("h2",{attrs:{id:"edits-to-the-sample-ssdt"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#edits-to-the-sample-ssdt"}},[t._v("#")]),t._v(" Edits to the sample SSDT")]),t._v(" "),s("p",[t._v("Now that we have our ACPI path, lets grab our SSDT and get to work:")]),t._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-PLUG.dsl",target:"_blank",rel:"noopener noreferrer"}},[t._v("SSDT-PLUG.dsl"),s("OutboundLink")],1)])]),t._v(" "),s("p",[t._v("From the above SSDT, it's very likely your processor is already there. If so, you can delete all the other entries other than yours and the "),s("code",[t._v("Method PMPM")]),t._v(" as this is what injects the "),s("code",[t._v("plugin-type=1")]),t._v(" property into our system.")]),t._v(" "),s("ul",[s("li",[s("strong",[t._v("Reminder")]),t._v(": We only need to apply "),s("code",[t._v("plugin-type=1")]),t._v(" to the first thread")])]),t._v(" "),s("p",[t._v("For the below example, we'll be using the X299 example("),s("code",[t._v("SB.SCK0.CP00")]),t._v(")")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",{staticStyle:{"text-align":"center"}},[t._v("Original")]),t._v(" "),s("th",{staticStyle:{"text-align":"center"}},[t._v("Cleaned Up")])])]),t._v(" "),s("tbody",[s("tr",[s("td",{staticStyle:{"text-align":"center"}},[s("img",{attrs:{src:a(389),alt:""}})]),t._v(" "),s("td",{staticStyle:{"text-align":"center"}},[s("img",{attrs:{src:a(390),alt:""}})])])])]),t._v(" "),s("h2",{attrs:{id:"compiling-the-ssdt"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#compiling-the-ssdt"}},[t._v("#")]),t._v(" Compiling the SSDT")]),t._v(" "),s("p",[t._v("With the SSDT done, you're now "),s("RouterLink",{attrs:{to:"/Manual/compile.html"}},[t._v("ready to compile the SSDT!")])],1),t._v(" "),s("h2",{attrs:{id:"wrapping-up"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#wrapping-up"}},[t._v("#")]),t._v(" Wrapping up")]),t._v(" "),s("p",[t._v("Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:")]),t._v(" "),s("ul",[s("li",[s("RouterLink",{attrs:{to:"/cleanup.html"}},[s("strong",[t._v("Cleanup")])])],1)])])}),[],!1,null,null,null);e.default=i.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{391:function(t,e,a){t.exports=a.p+"assets/img/processor.38dc34ad.png"},392:function(t,e,a){t.exports=a.p+"assets/img/processor-2.8af8c8dd.png"},393:function(t,e,a){t.exports=a.p+"assets/img/cp00.d25cad0f.png"},394:function(t,e,a){t.exports=a.p+"assets/img/plug-bios.1b527198.png"},395:function(t,e,a){t.exports=a.p+"assets/img/plug-x299.8123a653.png"},396:function(t,e,a){t.exports=a.p+"assets/img/ssdt-mess.8323e4a6.png"},397:function(t,e,a){t.exports=a.p+"assets/img/ssdt-clean.b241b36e.png"},450:function(t,e,a){"use strict";a.r(e);var s=a(25),i=Object(s.a)({},(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"fixing-power-management-manual"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#fixing-power-management-manual"}},[t._v("#")]),t._v(" Fixing Power Management: Manual")]),t._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#finding-the-acpi-path"}},[t._v("Finding the ACPI path")]),t._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#DSDT"}},[t._v("DSDT")])]),t._v(" "),s("li",[s("a",{attrs:{href:"#devicemanager"}},[t._v("DeviceManager")])])])]),t._v(" "),s("li",[s("a",{attrs:{href:"#edits-to-the-sample-ssdt"}},[t._v("Edits to the sample SSDT")])]),t._v(" "),s("li",[s("a",{attrs:{href:"#compiling-the-ssdt"}},[t._v("Compiling the SSDT")])]),t._v(" "),s("li",[s("a",{attrs:{href:"#wrapping-up"}},[t._v("Wrapping up")])])]),t._v(" "),s("h2",{attrs:{id:"finding-the-acpi-path"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#finding-the-acpi-path"}},[t._v("#")]),t._v(" Finding the ACPI path")]),t._v(" "),s("p",[t._v("To find the ACPI pathing, you have 2 methods:")]),t._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#DSDT"}},[t._v("DSDT")])]),t._v(" "),s("li",[s("a",{attrs:{href:"#devicemanager"}},[t._v("DeviceManager")])])]),t._v(" "),s("h3",{attrs:{id:"dsdt"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#dsdt"}},[t._v("#")]),t._v(" DSDT")]),t._v(" "),s("p",[t._v("CPU naming is fairly easy to figure out, first open your decompiled DSDT you got from "),s("RouterLink",{attrs:{to:"/Manual/dump.html"}},[t._v("Dumping the DSDT")]),t._v(" and "),s("RouterLink",{attrs:{to:"/Manual/compile.html"}},[t._v("Decompiling and Compiling")]),t._v(" with either maciASL(if in macOS) or any other text editor if in Windows or Linux(VSCode has an "),s("a",{attrs:{href:"https://marketplace.visualstudio.com/items?itemName=Thog.vscode-asl",target:"_blank",rel:"noopener noreferrer"}},[t._v("ACPI extension"),s("OutboundLink")],1),t._v(" that can also help).")],1),t._v(" "),s("p",[t._v("Next search for "),s("code",[t._v("Processor")]),t._v(". This should give you a result like this:")]),t._v(" "),s("p",[s("img",{attrs:{src:a(391),alt:""}})]),t._v(" "),s("p",[t._v("As we can see, the first processor in our list is "),s("code",[t._v("SB.PR00")]),t._v(". This is what we'll be applying the "),s("code",[t._v("plugin-type=1")]),t._v(" property too.")]),t._v(" "),s("p",[s("strong",[t._v("X99 and X299 note")]),t._v(":")]),t._v(" "),s("p",[t._v("Due to the different DSDT structure of these systems, you'll need to to actually check in multiple places as the pathing isn't as obvious:")]),t._v(" "),s("p",[s("img",{attrs:{src:a(392),alt:""}})]),t._v(" "),s("p",[t._v("If we then search for instances of "),s("code",[t._v("CP00")]),t._v(" we find that its full ACPI pathing is "),s("code",[t._v("SB.SCK0.CP00")]),t._v(":")]),t._v(" "),s("p",[s("img",{attrs:{src:a(393),alt:""}})]),t._v(" "),s("p",[t._v("Now with the pathing, you can head here: "),s("a",{attrs:{href:"#edits-to-the-sample-ssdt"}},[t._v("Edits to the sample SSDT")])]),t._v(" "),s("h5",{attrs:{id:"devicemanager"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#devicemanager"}},[t._v("#")]),t._v(" DeviceManager")]),t._v(" "),s("p",[t._v("If you already have Windows installed on this machine, finding the CPU pathing is fairly easy.")]),t._v(" "),s("p",[t._v("Start by opening up Device Manager in Windows and looking for a device named "),s("code",[t._v("Processor")]),t._v(". Once found, click on it and select the "),s("code",[t._v("BIOS device Name")]),t._v(" entry. You should get something like this:")]),t._v(" "),s("p",[s("img",{attrs:{src:a(394),alt:""}})]),t._v(" "),s("p",[t._v("From the above, we can see that our pathing is "),s("code",[t._v("PR.CPU0")]),t._v(". Pay close attention to the start as "),s("code",[t._v("PR")]),t._v(" is important for creating the SSDT")]),t._v(" "),s("p",[s("strong",[t._v("X99 and X299 note")]),t._v(":")]),t._v(" "),s("p",[t._v("Odd quirk of DeviceManager in Windows is that the Processor's order does not actually match the ACPI path, instead giving something like "),s("code",[t._v("SB.SCK0.CP10")]),t._v(":")]),t._v(" "),s("p",[s("img",{attrs:{src:a(395),alt:""}})]),t._v(" "),s("p",[t._v("When this happens, you can either:")]),t._v(" "),s("ul",[s("li",[t._v("Look through and find the lowest value")]),t._v(" "),s("li",[t._v("Assume the lowest(commonly being "),s("code",[t._v("PR00")]),t._v(" or "),s("code",[t._v("CP00")]),t._v(")")])]),t._v(" "),s("p",[t._v("So with the above X299 example, our CPU pathing would be "),s("code",[t._v("SB.SCK0.CP00")])]),t._v(" "),s("p",[t._v("Now with the pathing, you can head here: "),s("a",{attrs:{href:"#edits-to-the-sample-ssdt"}},[t._v("Edits to the sample SSDT")])]),t._v(" "),s("h2",{attrs:{id:"edits-to-the-sample-ssdt"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#edits-to-the-sample-ssdt"}},[t._v("#")]),t._v(" Edits to the sample SSDT")]),t._v(" "),s("p",[t._v("Now that we have our ACPI path, lets grab our SSDT and get to work:")]),t._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-PLUG.dsl",target:"_blank",rel:"noopener noreferrer"}},[t._v("SSDT-PLUG.dsl"),s("OutboundLink")],1)])]),t._v(" "),s("p",[t._v("From the above SSDT, it's very likely your processor is already there. If so, you can delete all the other entries other than yours and the "),s("code",[t._v("Method PMPM")]),t._v(" as this is what injects the "),s("code",[t._v("plugin-type=1")]),t._v(" property into our system.")]),t._v(" "),s("ul",[s("li",[s("strong",[t._v("Reminder")]),t._v(": We only need to apply "),s("code",[t._v("plugin-type=1")]),t._v(" to the first thread")])]),t._v(" "),s("p",[t._v("For the below example, we'll be using the X299 example("),s("code",[t._v("SB.SCK0.CP00")]),t._v(")")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",{staticStyle:{"text-align":"center"}},[t._v("Original")]),t._v(" "),s("th",{staticStyle:{"text-align":"center"}},[t._v("Cleaned Up")])])]),t._v(" "),s("tbody",[s("tr",[s("td",{staticStyle:{"text-align":"center"}},[s("img",{attrs:{src:a(396),alt:""}})]),t._v(" "),s("td",{staticStyle:{"text-align":"center"}},[s("img",{attrs:{src:a(397),alt:""}})])])])]),t._v(" "),s("h2",{attrs:{id:"compiling-the-ssdt"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#compiling-the-ssdt"}},[t._v("#")]),t._v(" Compiling the SSDT")]),t._v(" "),s("p",[t._v("With the SSDT done, you're now "),s("RouterLink",{attrs:{to:"/Manual/compile.html"}},[t._v("ready to compile the SSDT!")])],1),t._v(" "),s("h2",{attrs:{id:"wrapping-up"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#wrapping-up"}},[t._v("#")]),t._v(" Wrapping up")]),t._v(" "),s("p",[t._v("Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:")]),t._v(" "),s("ul",[s("li",[s("RouterLink",{attrs:{to:"/cleanup.html"}},[s("strong",[t._v("Cleanup")])])],1)])])}),[],!1,null,null,null);e.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/29.a427a3fc.js b/assets/js/30.34950d06.js similarity index 94% rename from assets/js/29.a427a3fc.js rename to assets/js/30.34950d06.js index c28dc6e..1074573 100644 --- a/assets/js/29.a427a3fc.js +++ b/assets/js/30.34950d06.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[29],{416:function(t,s,e){"use strict";e.r(s);var a=e(25),h=Object(a.a)({},(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"fixing-backlight-ssdt-pnlf"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#fixing-backlight-ssdt-pnlf"}},[t._v("#")]),t._v(" Fixing Backlight (SSDT-PNLF)")]),t._v(" "),e("ul",[e("li",[e("a",{attrs:{href:"#what-this-ssdt-does"}},[t._v("What this SSDT does")])]),t._v(" "),e("li",[e("a",{attrs:{href:"#methods-to-make-this-ssdt"}},[t._v("Methods to make this SSDT")])])]),t._v(" "),e("h2",{attrs:{id:"what-this-ssdt-does"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#what-this-ssdt-does"}},[t._v("#")]),t._v(" What this SSDT does")]),t._v(" "),e("p",[t._v("The purpose of this SSDT is to create a PNLF device for macOS to play with, specifically one with a hardware ID of "),e("code",[t._v("APP0002")]),t._v(". Luckily WhateverGreen will handle the rest of the work for us.")]),t._v(" "),e("h2",{attrs:{id:"methods-to-make-this-ssdt"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#methods-to-make-this-ssdt"}},[t._v("#")]),t._v(" Methods to make this SSDT")]),t._v(" "),e("p",[t._v("For the backlight fix, there are 2 methods you can choose from:")]),t._v(" "),e("ul",[e("li",[e("RouterLink",{attrs:{to:"/Laptops/backlight-methods/prebuilt.html"}},[t._v("Prebuilt")])],1),t._v(" "),e("li",[e("RouterLink",{attrs:{to:"/Laptops/backlight-methods/manual.html"}},[t._v("Manual")])],1)])])}),[],!1,null,null,null);s.default=h.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[30],{423:function(t,s,e){"use strict";e.r(s);var a=e(25),h=Object(a.a)({},(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"fixing-backlight-ssdt-pnlf"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#fixing-backlight-ssdt-pnlf"}},[t._v("#")]),t._v(" Fixing Backlight (SSDT-PNLF)")]),t._v(" "),e("ul",[e("li",[e("a",{attrs:{href:"#what-this-ssdt-does"}},[t._v("What this SSDT does")])]),t._v(" "),e("li",[e("a",{attrs:{href:"#methods-to-make-this-ssdt"}},[t._v("Methods to make this SSDT")])])]),t._v(" "),e("h2",{attrs:{id:"what-this-ssdt-does"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#what-this-ssdt-does"}},[t._v("#")]),t._v(" What this SSDT does")]),t._v(" "),e("p",[t._v("The purpose of this SSDT is to create a PNLF device for macOS to play with, specifically one with a hardware ID of "),e("code",[t._v("APP0002")]),t._v(". Luckily WhateverGreen will handle the rest of the work for us.")]),t._v(" "),e("h2",{attrs:{id:"methods-to-make-this-ssdt"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#methods-to-make-this-ssdt"}},[t._v("#")]),t._v(" Methods to make this SSDT")]),t._v(" "),e("p",[t._v("For the backlight fix, there are 2 methods you can choose from:")]),t._v(" "),e("ul",[e("li",[e("RouterLink",{attrs:{to:"/Laptops/backlight-methods/prebuilt.html"}},[t._v("Prebuilt")])],1),t._v(" "),e("li",[e("RouterLink",{attrs:{to:"/Laptops/backlight-methods/manual.html"}},[t._v("Manual")])],1)])])}),[],!1,null,null,null);s.default=h.exports}}]); \ No newline at end of file diff --git a/assets/js/30.eeb519ff.js b/assets/js/31.2bc69729.js similarity index 88% rename from assets/js/30.eeb519ff.js rename to assets/js/31.2bc69729.js index f95da5a..ba012fc 100644 --- a/assets/js/30.eeb519ff.js +++ b/assets/js/31.2bc69729.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[30],{418:function(t,e,o){"use strict";o.r(e);var a=o(25),r=Object(a.a)({},(function(){var t=this,e=t.$createElement,o=t._self._c||e;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("h1",{attrs:{id:"fixing-embedded-controller-laptop"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#fixing-embedded-controller-laptop"}},[t._v("#")]),t._v(" Fixing Embedded Controller (Laptop)")]),t._v(" "),o("h2",{attrs:{id:"you-ll-want-to-go-to-ssdt-ec-under-the-universal-tab-for-the-new-ssdt-ec-page"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#you-ll-want-to-go-to-ssdt-ec-under-the-universal-tab-for-the-new-ssdt-ec-page"}},[t._v("#")]),t._v(" You'll want to go to "),o("RouterLink",{attrs:{to:"/Universal/desktop-ec.html"}},[t._v("SSDT-EC under the Universal tab")]),t._v(" for the new SSDT-EC page")],1)])}),[],!1,null,null,null);e.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[31],{424:function(t,e,o){"use strict";o.r(e);var a=o(25),r=Object(a.a)({},(function(){var t=this,e=t.$createElement,o=t._self._c||e;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("h1",{attrs:{id:"fixing-embedded-controller-laptop"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#fixing-embedded-controller-laptop"}},[t._v("#")]),t._v(" Fixing Embedded Controller (Laptop)")]),t._v(" "),o("h2",{attrs:{id:"you-ll-want-to-go-to-ssdt-ec-under-the-universal-tab-for-the-new-ssdt-ec-page"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#you-ll-want-to-go-to-ssdt-ec-under-the-universal-tab-for-the-new-ssdt-ec-page"}},[t._v("#")]),t._v(" You'll want to go to "),o("RouterLink",{attrs:{to:"/Universal/desktop-ec.html"}},[t._v("SSDT-EC under the Universal tab")]),t._v(" for the new SSDT-EC page")],1)])}),[],!1,null,null,null);e.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/31.90ef21e0.js b/assets/js/32.d55345a3.js similarity index 96% rename from assets/js/31.90ef21e0.js rename to assets/js/32.d55345a3.js index bab8347..ab8b924 100644 --- a/assets/js/31.90ef21e0.js +++ b/assets/js/32.d55345a3.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[31],{420:function(t,e,i){"use strict";i.r(e);var l=i(25),a=Object(l.a)({},(function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[i("h1",{attrs:{id:"fixing-trackpads-prebuilt"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#fixing-trackpads-prebuilt"}},[t._v("#")]),t._v(" Fixing Trackpads: Prebuilt")]),t._v(" "),i("p",[t._v("This is a one-size fits all solution where we basically trick our hardware into thinking it's booting Windows. The problem with this method is that it's common to break Windows booting so avoid unless troubleshooting.")]),t._v(" "),i("ul",[i("li",[i("p",[i("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-XOSI.aml",target:"_blank",rel:"noopener noreferrer"}},[t._v("SSDT-XOSI"),i("OutboundLink")],1)])]),t._v(" "),i("li",[i("p",[t._v("XOSI Rename(add this under config.plist -> ACPI -> Patch):")])])]),t._v(" "),i("table",[i("thead",[i("tr",[i("th",{staticStyle:{"text-align":"left"}},[t._v("Comment")]),t._v(" "),i("th",{staticStyle:{"text-align":"left"}},[t._v("String")]),t._v(" "),i("th",{staticStyle:{"text-align":"left"}},[t._v("Change _OSI to XOSI")])])]),t._v(" "),i("tbody",[i("tr",[i("td",{staticStyle:{"text-align":"left"}},[t._v("Enabled")]),t._v(" "),i("td",{staticStyle:{"text-align":"left"}},[t._v("Boolean")]),t._v(" "),i("td",{staticStyle:{"text-align":"left"}},[t._v("YES")])]),t._v(" "),i("tr",[i("td",{staticStyle:{"text-align":"left"}},[t._v("Count")]),t._v(" "),i("td",{staticStyle:{"text-align":"left"}},[t._v("Number")]),t._v(" "),i("td",{staticStyle:{"text-align":"left"}},[t._v("0")])]),t._v(" "),i("tr",[i("td",{staticStyle:{"text-align":"left"}},[t._v("Limit")]),t._v(" "),i("td",{staticStyle:{"text-align":"left"}},[t._v("Number")]),t._v(" "),i("td",{staticStyle:{"text-align":"left"}},[t._v("0")])]),t._v(" "),i("tr",[i("td",{staticStyle:{"text-align":"left"}},[t._v("Find")]),t._v(" "),i("td",{staticStyle:{"text-align":"left"}},[t._v("Data")]),t._v(" "),i("td",{staticStyle:{"text-align":"left"}},[t._v("5f4f5349")])]),t._v(" "),i("tr",[i("td",{staticStyle:{"text-align":"left"}},[t._v("Replace")]),t._v(" "),i("td",{staticStyle:{"text-align":"left"}},[t._v("Data")]),t._v(" "),i("td",{staticStyle:{"text-align":"left"}},[t._v("584f5349")])])])])])}),[],!1,null,null,null);e.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[32],{426:function(t,e,i){"use strict";i.r(e);var l=i(25),a=Object(l.a)({},(function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[i("h1",{attrs:{id:"fixing-trackpads-prebuilt"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#fixing-trackpads-prebuilt"}},[t._v("#")]),t._v(" Fixing Trackpads: Prebuilt")]),t._v(" "),i("p",[t._v("This is a one-size fits all solution where we basically trick our hardware into thinking it's booting Windows. The problem with this method is that it's common to break Windows booting so avoid unless troubleshooting.")]),t._v(" "),i("ul",[i("li",[i("p",[i("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-XOSI.aml",target:"_blank",rel:"noopener noreferrer"}},[t._v("SSDT-XOSI"),i("OutboundLink")],1)])]),t._v(" "),i("li",[i("p",[t._v("XOSI Rename(add this under config.plist -> ACPI -> Patch):")])])]),t._v(" "),i("table",[i("thead",[i("tr",[i("th",{staticStyle:{"text-align":"left"}},[t._v("Comment")]),t._v(" "),i("th",{staticStyle:{"text-align":"left"}},[t._v("String")]),t._v(" "),i("th",{staticStyle:{"text-align":"left"}},[t._v("Change _OSI to XOSI")])])]),t._v(" "),i("tbody",[i("tr",[i("td",{staticStyle:{"text-align":"left"}},[t._v("Enabled")]),t._v(" "),i("td",{staticStyle:{"text-align":"left"}},[t._v("Boolean")]),t._v(" "),i("td",{staticStyle:{"text-align":"left"}},[t._v("YES")])]),t._v(" "),i("tr",[i("td",{staticStyle:{"text-align":"left"}},[t._v("Count")]),t._v(" "),i("td",{staticStyle:{"text-align":"left"}},[t._v("Number")]),t._v(" "),i("td",{staticStyle:{"text-align":"left"}},[t._v("0")])]),t._v(" "),i("tr",[i("td",{staticStyle:{"text-align":"left"}},[t._v("Limit")]),t._v(" "),i("td",{staticStyle:{"text-align":"left"}},[t._v("Number")]),t._v(" "),i("td",{staticStyle:{"text-align":"left"}},[t._v("0")])]),t._v(" "),i("tr",[i("td",{staticStyle:{"text-align":"left"}},[t._v("Find")]),t._v(" "),i("td",{staticStyle:{"text-align":"left"}},[t._v("Data")]),t._v(" "),i("td",{staticStyle:{"text-align":"left"}},[t._v("5f4f5349")])]),t._v(" "),i("tr",[i("td",{staticStyle:{"text-align":"left"}},[t._v("Replace")]),t._v(" "),i("td",{staticStyle:{"text-align":"left"}},[t._v("Data")]),t._v(" "),i("td",{staticStyle:{"text-align":"left"}},[t._v("584f5349")])])])])])}),[],!1,null,null,null);e.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/32.26efa5d3.js b/assets/js/33.c734377b.js similarity index 95% rename from assets/js/32.26efa5d3.js rename to assets/js/33.c734377b.js index 7973a66..0f9626d 100644 --- a/assets/js/32.26efa5d3.js +++ b/assets/js/33.c734377b.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[32],{421:function(t,s,e){"use strict";e.r(s);var a=e(25),o=Object(a.a)({},(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"fixing-trackpads-ssdt-gpi0-xosi"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#fixing-trackpads-ssdt-gpi0-xosi"}},[t._v("#")]),t._v(" Fixing Trackpads (SSDT-GPI0/XOSI)")]),t._v(" "),e("ul",[e("li",[e("a",{attrs:{href:"#what-this-ssdt-does"}},[t._v("What this SSDT does")])]),t._v(" "),e("li",[e("a",{attrs:{href:"#methods-to-make-this-ssdt"}},[t._v("Methods to make this SSDT")])])]),t._v(" "),e("h2",{attrs:{id:"what-this-ssdt-does"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#what-this-ssdt-does"}},[t._v("#")]),t._v(" What this SSDT does")]),t._v(" "),e("p",[t._v("This SSDT is used to force enable our GPI0 for VoodooI2C to connect onto.")]),t._v(" "),e("p",[t._v("With most modern laptop DSDTs, there's a variable called "),e("code",[t._v("GPEN")]),t._v(" or "),e("code",[t._v("GPHD")]),t._v(" which are used for setting the status of the GPI0 device. For us, we want to enable the device.")]),t._v(" "),e("h2",{attrs:{id:"methods-to-make-this-ssdt"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#methods-to-make-this-ssdt"}},[t._v("#")]),t._v(" Methods to make this SSDT")]),t._v(" "),e("p",[t._v("For the trackpad fix, there are 2 methods you can choose from:")]),t._v(" "),e("ul",[e("li",[e("RouterLink",{attrs:{to:"/Laptops/trackpad-methods/prebuilt.html"}},[t._v("Prebuilt")])],1),t._v(" "),e("li",[e("RouterLink",{attrs:{to:"/Laptops/trackpad-methods/manual.html"}},[t._v("Manual")])],1)])])}),[],!1,null,null,null);s.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[33],{427:function(t,s,e){"use strict";e.r(s);var a=e(25),o=Object(a.a)({},(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"fixing-trackpads-ssdt-gpi0-xosi"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#fixing-trackpads-ssdt-gpi0-xosi"}},[t._v("#")]),t._v(" Fixing Trackpads (SSDT-GPI0/XOSI)")]),t._v(" "),e("ul",[e("li",[e("a",{attrs:{href:"#what-this-ssdt-does"}},[t._v("What this SSDT does")])]),t._v(" "),e("li",[e("a",{attrs:{href:"#methods-to-make-this-ssdt"}},[t._v("Methods to make this SSDT")])])]),t._v(" "),e("h2",{attrs:{id:"what-this-ssdt-does"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#what-this-ssdt-does"}},[t._v("#")]),t._v(" What this SSDT does")]),t._v(" "),e("p",[t._v("This SSDT is used to force enable our GPI0 for VoodooI2C to connect onto.")]),t._v(" "),e("p",[t._v("With most modern laptop DSDTs, there's a variable called "),e("code",[t._v("GPEN")]),t._v(" or "),e("code",[t._v("GPHD")]),t._v(" which are used for setting the status of the GPI0 device. For us, we want to enable the device.")]),t._v(" "),e("h2",{attrs:{id:"methods-to-make-this-ssdt"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#methods-to-make-this-ssdt"}},[t._v("#")]),t._v(" Methods to make this SSDT")]),t._v(" "),e("p",[t._v("For the trackpad fix, there are 2 methods you can choose from:")]),t._v(" "),e("ul",[e("li",[e("RouterLink",{attrs:{to:"/Laptops/trackpad-methods/prebuilt.html"}},[t._v("Prebuilt")])],1),t._v(" "),e("li",[e("RouterLink",{attrs:{to:"/Laptops/trackpad-methods/manual.html"}},[t._v("Manual")])],1)])])}),[],!1,null,null,null);s.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/33.f2a069c5.js b/assets/js/34.8f4b99b0.js similarity index 98% rename from assets/js/33.f2a069c5.js rename to assets/js/34.8f4b99b0.js index 933f631..3accaad 100644 --- a/assets/js/33.f2a069c5.js +++ b/assets/js/34.8f4b99b0.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[33],{424:function(e,t,o){"use strict";o.r(t);var a=o(25),s=Object(a.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("h1",{attrs:{id:"getting-started-with-acpi"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#getting-started-with-acpi"}},[e._v("#")]),e._v(" Getting started with ACPI")]),e._v(" "),o("img",{attrs:{src:"acpi-logo.png",width:"512"}}),e._v(" "),o("h2",{attrs:{id:"a-quick-explainer-on-acpi"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#a-quick-explainer-on-acpi"}},[e._v("#")]),e._v(" A quick explainer on ACPI")]),e._v(" "),o("p",[e._v("So what are DSDTs and SSDTs? Well, these are tables present in your firmware that outline hardware devices like USB controllers, CPU threads, embedded controllers, system clocks and such. A DSDT(Differentiated System Description Table) can be seen as the body holding most of the info with smaller bits of info being passed by the SSDT(Secondary System Description Table). You can think of the DSDT as the building blueprints with SSDTs being sticky notes outlining extra details to the project")]),e._v(" "),o("p",[e._v("You can read more about ACPI and it's spec here: "),o("a",{attrs:{href:"https://uefi.org/sites/default/files/resources/ACPI_6_3_May16.pdf",target:"_blank",rel:"noopener noreferrer"}},[e._v("ACPI 6.3 Manual"),o("OutboundLink")],1)]),e._v(" "),o("blockquote",[o("p",[e._v("So why do we care about these tables?")])]),e._v(" "),o("p",[e._v("macOS can be very picky about the devices present in the DSDT and so our job is to correct it. The main devices that need to be corrected for macOS to work properly:")]),e._v(" "),o("ul",[o("li",[e._v("Embedded controllers(EC)\n"),o("ul",[o("li",[e._v("All semi-modern intel machines have an EC (usually called H_EC, ECDV, EC0, etc...) exposed in their DSDT, with many AMD systems also having it exposed. These controllers are generally not compatible with macOS and can cause panics, so then need to be hidden from macOS. macOS Catalina requires a device named "),o("code",[e._v("EC")]),e._v(" to be present though, so a dummy EC is created.")]),e._v(" "),o("li",[e._v("With laptops, the actual embedded controller still needs to be enabled for battery and hotkeys to work, and renaming the EC can additionally cause issues with windows, so creating a fake EC without disabling the real embedded controller is preferable.")])])]),e._v(" "),o("li",[e._v("Plugin type\n"),o("ul",[o("li",[e._v("This allows the use of XCPM providing native CPU power management on "),o("strong",[e._v("Intel")]),e._v(" Haswell and newer CPUs, the SSDT will connect to the first thread of the CPU. Not meant for AMD")])])]),e._v(" "),o("li",[e._v("AWAC system clock.\n"),o("ul",[o("li",[e._v("This applies to all 300 series motherboards including many Z370 boards, the specific issue is that newer boards ship with AWAC clock enabled. This is a problem because macOS cannot communicate with AWAC clocks, so this requires us to either force on the legacy RTC clock or if unavailable create a fake one for macOS to play with")])])]),e._v(" "),o("li",[e._v("NVRAM SSDT\n"),o("ul",[o("li",[e._v("True 300 series motherboards(non-Z370) don't declare the FW chip as MMIO in ACPI and so the kernel ignores the MMIO region declared by the UEFI memory map. This SSDT brings back NVRAM support")])])]),e._v(" "),o("li",[e._v("Backlight SSDT\n"),o("ul",[o("li",[e._v("Used for fixing backlight control support on laptops")])])]),e._v(" "),o("li",[e._v("GPIO SSDT\n"),o("ul",[o("li",[e._v("Used for creating a stub to allow VoodooI2C to connect onto, for laptops only")])])]),e._v(" "),o("li",[e._v("XOSI SSDT\n"),o("ul",[o("li",[e._v("Used for rerouting OSI calls to this SSDT, mainly used for tricking our hardware into thinking its booting Windows so we get better trackpad support. This is a very hacky solution known for breaking Windows boot, use the GPIO SSDT instead. Usage of XOSI will not be covered in this guide")])])]),e._v(" "),o("li",[e._v("IRQ SSDT and ACPI patches\n"),o("ul",[o("li",[e._v("Needed for fixing IRQ conflicts within the DSDT, for laptops mainly. SSDTTime exclusive")]),e._v(" "),o("li",[e._v("Note Skylake and newer systems rarely have IRQ conflicts, this is mainly prevalent on Broadwell and older")])])])]),e._v(" "),o("p",[e._v("Now head to the next page on what SSDTs do your systems need:")]),e._v(" "),o("h2",{attrs:{id:"choosing-the-ssdts"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#choosing-the-ssdts"}},[e._v("#")]),e._v(" "),o("RouterLink",{attrs:{to:"/ssdt-platform.html"}},[e._v("Choosing the SSDTs")])],1)])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[34],{431:function(e,t,o){"use strict";o.r(t);var a=o(25),s=Object(a.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("h1",{attrs:{id:"getting-started-with-acpi"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#getting-started-with-acpi"}},[e._v("#")]),e._v(" Getting started with ACPI")]),e._v(" "),o("img",{attrs:{src:"acpi-logo.png",width:"512"}}),e._v(" "),o("h2",{attrs:{id:"a-quick-explainer-on-acpi"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#a-quick-explainer-on-acpi"}},[e._v("#")]),e._v(" A quick explainer on ACPI")]),e._v(" "),o("p",[e._v("So what are DSDTs and SSDTs? Well, these are tables present in your firmware that outline hardware devices like USB controllers, CPU threads, embedded controllers, system clocks and such. A DSDT(Differentiated System Description Table) can be seen as the body holding most of the info with smaller bits of info being passed by the SSDT(Secondary System Description Table). You can think of the DSDT as the building blueprints with SSDTs being sticky notes outlining extra details to the project")]),e._v(" "),o("p",[e._v("You can read more about ACPI and it's spec here: "),o("a",{attrs:{href:"https://uefi.org/sites/default/files/resources/ACPI_6_3_May16.pdf",target:"_blank",rel:"noopener noreferrer"}},[e._v("ACPI 6.3 Manual"),o("OutboundLink")],1)]),e._v(" "),o("blockquote",[o("p",[e._v("So why do we care about these tables?")])]),e._v(" "),o("p",[e._v("macOS can be very picky about the devices present in the DSDT and so our job is to correct it. The main devices that need to be corrected for macOS to work properly:")]),e._v(" "),o("ul",[o("li",[e._v("Embedded controllers(EC)\n"),o("ul",[o("li",[e._v("All semi-modern intel machines have an EC (usually called H_EC, ECDV, EC0, etc...) exposed in their DSDT, with many AMD systems also having it exposed. These controllers are generally not compatible with macOS and can cause panics, so then need to be hidden from macOS. macOS Catalina requires a device named "),o("code",[e._v("EC")]),e._v(" to be present though, so a dummy EC is created.")]),e._v(" "),o("li",[e._v("With laptops, the actual embedded controller still needs to be enabled for battery and hotkeys to work, and renaming the EC can additionally cause issues with windows, so creating a fake EC without disabling the real embedded controller is preferable.")])])]),e._v(" "),o("li",[e._v("Plugin type\n"),o("ul",[o("li",[e._v("This allows the use of XCPM providing native CPU power management on "),o("strong",[e._v("Intel")]),e._v(" Haswell and newer CPUs, the SSDT will connect to the first thread of the CPU. Not meant for AMD")])])]),e._v(" "),o("li",[e._v("AWAC system clock.\n"),o("ul",[o("li",[e._v("This applies to all 300 series motherboards including many Z370 boards, the specific issue is that newer boards ship with AWAC clock enabled. This is a problem because macOS cannot communicate with AWAC clocks, so this requires us to either force on the legacy RTC clock or if unavailable create a fake one for macOS to play with")])])]),e._v(" "),o("li",[e._v("NVRAM SSDT\n"),o("ul",[o("li",[e._v("True 300 series motherboards(non-Z370) don't declare the FW chip as MMIO in ACPI and so the kernel ignores the MMIO region declared by the UEFI memory map. This SSDT brings back NVRAM support")])])]),e._v(" "),o("li",[e._v("Backlight SSDT\n"),o("ul",[o("li",[e._v("Used for fixing backlight control support on laptops")])])]),e._v(" "),o("li",[e._v("GPIO SSDT\n"),o("ul",[o("li",[e._v("Used for creating a stub to allow VoodooI2C to connect onto, for laptops only")])])]),e._v(" "),o("li",[e._v("XOSI SSDT\n"),o("ul",[o("li",[e._v("Used for rerouting OSI calls to this SSDT, mainly used for tricking our hardware into thinking its booting Windows so we get better trackpad support. This is a very hacky solution known for breaking Windows boot, use the GPIO SSDT instead. Usage of XOSI will not be covered in this guide")])])]),e._v(" "),o("li",[e._v("IRQ SSDT and ACPI patches\n"),o("ul",[o("li",[e._v("Needed for fixing IRQ conflicts within the DSDT, for laptops mainly. SSDTTime exclusive")]),e._v(" "),o("li",[e._v("Note Skylake and newer systems rarely have IRQ conflicts, this is mainly prevalent on Broadwell and older")])])])]),e._v(" "),o("p",[e._v("Now head to the next page on what SSDTs do your systems need:")]),e._v(" "),o("h2",{attrs:{id:"choosing-the-ssdts"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#choosing-the-ssdts"}},[e._v("#")]),e._v(" "),o("RouterLink",{attrs:{to:"/ssdt-platform.html"}},[e._v("Choosing the SSDTs")])],1)])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/assets/js/35.9f192aed.js b/assets/js/35.9f192aed.js deleted file mode 100644 index c338131..0000000 --- a/assets/js/35.9f192aed.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[35],{427:function(t,e,a){"use strict";a.r(e);var o=a(25),r=Object(o.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"fixing-system-clocks-prebuilt"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#fixing-system-clocks-prebuilt"}},[t._v("#")]),t._v(" Fixing System Clocks: Prebuilt")]),t._v(" "),a("p",[t._v("By far the easiest method, all you need to do is download the following file:")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-AWAC.aml",target:"_blank",rel:"noopener noreferrer"}},[t._v("SSDT-AWAC.aml"),a("OutboundLink")],1)])]),t._v(" "),a("p",[t._v("Main things to note with this method:")]),t._v(" "),a("ul",[a("li",[t._v("Assumes you both have an AWAC clock and it can be easily turned off with the RTC replacing it, "),a("strong",[t._v("this may not always work")])]),t._v(" "),a("li",[t._v("Doesn't really teach you anything\n"),a("ul",[a("li",[t._v("For most, this doesn't matter. But to some knowing what makes your hackintosh tick is part of the journey")])])])]),t._v(" "),a("h2",{attrs:{id:"wrapping-up"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#wrapping-up"}},[t._v("#")]),t._v(" Wrapping up")]),t._v(" "),a("p",[t._v("Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/cleanup.html"}},[a("strong",[t._v("Cleanup")])])],1)])])}),[],!1,null,null,null);e.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/34.2b040371.js b/assets/js/35.b412db3d.js similarity index 97% rename from assets/js/34.2b040371.js rename to assets/js/35.b412db3d.js index 7bdf748..9f51982 100644 --- a/assets/js/34.2b040371.js +++ b/assets/js/35.b412db3d.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[34],{425:function(t,a,l){"use strict";l.r(a);var s=l(25),r=Object(s.a)({},(function(){var t=this,a=t.$createElement,l=t._self._c||a;return l("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[l("h1",{attrs:{id:"table-of-contents"}},[l("a",{staticClass:"header-anchor",attrs:{href:"#table-of-contents"}},[t._v("#")]),t._v(" Table of contents")]),t._v(" "),l("ul",[l("li",[l("RouterLink",{attrs:{to:"/"}},[t._v("Getting Started With ACPI")])],1),t._v(" "),l("li",[l("RouterLink",{attrs:{to:"/ssdt-platform.html"}},[t._v("Choosing the SSDTs")])],1)]),t._v(" "),l("h2",{attrs:{id:"methods"}},[l("a",{staticClass:"header-anchor",attrs:{href:"#methods"}},[t._v("#")]),t._v(" Methods")]),t._v(" "),l("ul",[l("li",[l("RouterLink",{attrs:{to:"/ssdt-methods/ssdt-methods.html"}},[t._v("How to create SSDTs")]),t._v(" "),l("ul",[l("li",[l("RouterLink",{attrs:{to:"/ssdt-methods/ssdt-prebuilt.html"}},[t._v("SSDTs: Prebuilt")])],1),t._v(" "),l("li",[l("RouterLink",{attrs:{to:"/ssdt-methods/ssdt-easy.html"}},[t._v("SSDTs: Easy Way")])],1),t._v(" "),l("li",[l("RouterLink",{attrs:{to:"/ssdt-methods/ssdt-long.html"}},[t._v("SSDTs: Long Way")])],1)])],1)]),t._v(" "),l("h2",{attrs:{id:"manual"}},[l("a",{staticClass:"header-anchor",attrs:{href:"#manual"}},[t._v("#")]),t._v(" Manual")]),t._v(" "),l("ul",[l("li",[l("RouterLink",{attrs:{to:"/Manual/dump.html"}},[t._v("Dumping the DSDT")])],1),t._v(" "),l("li",[l("RouterLink",{attrs:{to:"/Manual/compile.html"}},[t._v("Decompiling and Compiling")])],1)]),t._v(" "),l("h2",{attrs:{id:"desktop"}},[l("a",{staticClass:"header-anchor",attrs:{href:"#desktop"}},[t._v("#")]),t._v(" Desktop")]),t._v(" "),l("ul",[l("li",[l("RouterLink",{attrs:{to:"/Desktops/desktop-disable.html"}},[t._v("Disabling desktop dGPUs")])],1)]),t._v(" "),l("h2",{attrs:{id:"laptop"}},[l("a",{staticClass:"header-anchor",attrs:{href:"#laptop"}},[t._v("#")]),t._v(" Laptop")]),t._v(" "),l("ul",[l("li",[l("RouterLink",{attrs:{to:"/Laptops/backlight.html"}},[t._v("Backlight PNLF")]),t._v(" "),l("ul",[l("li",[l("RouterLink",{attrs:{to:"/Laptops/backlight-methods/prebuilt.html"}},[t._v("Prebuilt")])],1),t._v(" "),l("li",[l("RouterLink",{attrs:{to:"/Laptops/backlight-methods/manual.html"}},[t._v("Manual")])],1)])],1),t._v(" "),l("li",[l("RouterLink",{attrs:{to:"/Laptops/trackpad.html"}},[t._v("Trackpad GPI0")]),t._v(" "),l("ul",[l("li",[l("RouterLink",{attrs:{to:"/Laptops/trackpad-methods/prebuilt.html"}},[t._v("Prebuilt")])],1),t._v(" "),l("li",[l("RouterLink",{attrs:{to:"/Laptops/trackpad-methods/manual.html"}},[t._v("Manual")])],1)])],1),t._v(" "),l("li",[l("RouterLink",{attrs:{to:"/Laptops/laptop-disable.html"}},[t._v("Disabling laptop dGPUs")])],1)]),t._v(" "),l("h2",{attrs:{id:"universal"}},[l("a",{staticClass:"header-anchor",attrs:{href:"#universal"}},[t._v("#")]),t._v(" Universal")]),t._v(" "),l("ul",[l("li",[l("RouterLink",{attrs:{to:"/Universal/ec-fix.html"}},[t._v("Embedded Controller")]),t._v(" "),l("ul",[l("li",[l("RouterLink",{attrs:{to:"/Universal/ec-methods/prebuilt.html"}},[t._v("Prebuilt")])],1),t._v(" "),l("li",[l("RouterLink",{attrs:{to:"/Universal/ec-methods/ssdttime.html"}},[t._v("SSDTTime")])],1),t._v(" "),l("li",[l("RouterLink",{attrs:{to:"/Universal/ec-methods/manual.html"}},[t._v("Manual")])],1)])],1),t._v(" "),l("li",[l("RouterLink",{attrs:{to:"/Universal/plug.html"}},[t._v("CPU Power Management")]),t._v(" "),l("ul",[l("li",[l("RouterLink",{attrs:{to:"/Universal/plug-methods/prebuilt.html"}},[t._v("Prebuilt")])],1),t._v(" "),l("li",[l("RouterLink",{attrs:{to:"/Universal/plug-methods/ssdttime.html"}},[t._v("SSDTTime")])],1),t._v(" "),l("li",[l("RouterLink",{attrs:{to:"/Universal/plug-methods/manual.html"}},[t._v("Manual")])],1)])],1),t._v(" "),l("li",[l("RouterLink",{attrs:{to:"/Universal/awac.html"}},[t._v("AWAC vs RTC")]),t._v(" "),l("ul",[l("li",[l("RouterLink",{attrs:{to:"/Universal/awac-methods/prebuilt.html"}},[t._v("Prebuilt")])],1),t._v(" "),l("li",[l("RouterLink",{attrs:{to:"/Universal/awac-methods/manual.html"}},[t._v("Manual")])],1)])],1),t._v(" "),l("li",[l("RouterLink",{attrs:{to:"/Universal/nvram.html"}},[t._v("NVRAM PMC")]),t._v(" "),l("ul",[l("li",[l("RouterLink",{attrs:{to:"/Universal/nvram-methods/prebuilt.html"}},[t._v("Prebuilt")])],1),t._v(" "),l("li",[l("RouterLink",{attrs:{to:"/Universal/nvram-methods/manual.html"}},[t._v("Manual")])],1)])],1),t._v(" "),l("li",[l("RouterLink",{attrs:{to:"/Universal/rhub.html"}},[t._v("USB RHUB")]),t._v(" "),l("ul",[l("li",[l("RouterLink",{attrs:{to:"/Universal/rhub-methods/prebuilt.html"}},[t._v("Prebuilt")])],1),t._v(" "),l("li",[l("RouterLink",{attrs:{to:"/Universal/rhub-methods/manual.html"}},[t._v("Manual")])],1)])],1),t._v(" "),l("li",[l("RouterLink",{attrs:{to:"/Universal/irq.html"}},[t._v("IRQ Fix")])],1),t._v(" "),l("li",[l("RouterLink",{attrs:{to:"/Universal/spoof.html"}},[t._v("GPU Spoof")])],1),t._v(" "),l("li",[l("RouterLink",{attrs:{to:"/Universal/smbus.html"}},[t._v("Fixing SMBus Support")]),t._v(" "),l("ul",[l("li",[l("RouterLink",{attrs:{to:"/Universal/smbus-methods/manual.html"}},[t._v("Manual")])],1)])],1)]),t._v(" "),l("h2",{attrs:{id:"cleanup"}},[l("a",{staticClass:"header-anchor",attrs:{href:"#cleanup"}},[t._v("#")]),t._v(" Cleanup")]),t._v(" "),l("ul",[l("li",[l("RouterLink",{attrs:{to:"/cleanup.html"}},[t._v("Cleanup")])],1)]),t._v(" "),l("h2",{attrs:{id:"misc"}},[l("a",{staticClass:"header-anchor",attrs:{href:"#misc"}},[t._v("#")]),t._v(" Misc")]),t._v(" "),l("ul",[l("li",[l("RouterLink",{attrs:{to:"/troubleshooting.html"}},[t._v("Troubleshooting")])],1),t._v(" "),l("li",[l("RouterLink",{attrs:{to:"/CONTRIBUTING.html"}},[t._v("Contributing")])],1)])])}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[35],{432:function(t,a,l){"use strict";l.r(a);var s=l(25),r=Object(s.a)({},(function(){var t=this,a=t.$createElement,l=t._self._c||a;return l("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[l("h1",{attrs:{id:"table-of-contents"}},[l("a",{staticClass:"header-anchor",attrs:{href:"#table-of-contents"}},[t._v("#")]),t._v(" Table of contents")]),t._v(" "),l("ul",[l("li",[l("RouterLink",{attrs:{to:"/"}},[t._v("Getting Started With ACPI")])],1),t._v(" "),l("li",[l("RouterLink",{attrs:{to:"/ssdt-platform.html"}},[t._v("Choosing the SSDTs")])],1)]),t._v(" "),l("h2",{attrs:{id:"methods"}},[l("a",{staticClass:"header-anchor",attrs:{href:"#methods"}},[t._v("#")]),t._v(" Methods")]),t._v(" "),l("ul",[l("li",[l("RouterLink",{attrs:{to:"/ssdt-methods/ssdt-methods.html"}},[t._v("How to create SSDTs")]),t._v(" "),l("ul",[l("li",[l("RouterLink",{attrs:{to:"/ssdt-methods/ssdt-prebuilt.html"}},[t._v("SSDTs: Prebuilt")])],1),t._v(" "),l("li",[l("RouterLink",{attrs:{to:"/ssdt-methods/ssdt-easy.html"}},[t._v("SSDTs: Easy Way")])],1),t._v(" "),l("li",[l("RouterLink",{attrs:{to:"/ssdt-methods/ssdt-long.html"}},[t._v("SSDTs: Long Way")])],1)])],1)]),t._v(" "),l("h2",{attrs:{id:"manual"}},[l("a",{staticClass:"header-anchor",attrs:{href:"#manual"}},[t._v("#")]),t._v(" Manual")]),t._v(" "),l("ul",[l("li",[l("RouterLink",{attrs:{to:"/Manual/dump.html"}},[t._v("Dumping the DSDT")])],1),t._v(" "),l("li",[l("RouterLink",{attrs:{to:"/Manual/compile.html"}},[t._v("Decompiling and Compiling")])],1)]),t._v(" "),l("h2",{attrs:{id:"desktop"}},[l("a",{staticClass:"header-anchor",attrs:{href:"#desktop"}},[t._v("#")]),t._v(" Desktop")]),t._v(" "),l("ul",[l("li",[l("RouterLink",{attrs:{to:"/Desktops/desktop-disable.html"}},[t._v("Disabling desktop dGPUs")])],1)]),t._v(" "),l("h2",{attrs:{id:"laptop"}},[l("a",{staticClass:"header-anchor",attrs:{href:"#laptop"}},[t._v("#")]),t._v(" Laptop")]),t._v(" "),l("ul",[l("li",[l("RouterLink",{attrs:{to:"/Laptops/backlight.html"}},[t._v("Backlight PNLF")]),t._v(" "),l("ul",[l("li",[l("RouterLink",{attrs:{to:"/Laptops/backlight-methods/prebuilt.html"}},[t._v("Prebuilt")])],1),t._v(" "),l("li",[l("RouterLink",{attrs:{to:"/Laptops/backlight-methods/manual.html"}},[t._v("Manual")])],1)])],1),t._v(" "),l("li",[l("RouterLink",{attrs:{to:"/Laptops/trackpad.html"}},[t._v("Trackpad GPI0")]),t._v(" "),l("ul",[l("li",[l("RouterLink",{attrs:{to:"/Laptops/trackpad-methods/prebuilt.html"}},[t._v("Prebuilt")])],1),t._v(" "),l("li",[l("RouterLink",{attrs:{to:"/Laptops/trackpad-methods/manual.html"}},[t._v("Manual")])],1)])],1),t._v(" "),l("li",[l("RouterLink",{attrs:{to:"/Laptops/laptop-disable.html"}},[t._v("Disabling laptop dGPUs")])],1)]),t._v(" "),l("h2",{attrs:{id:"universal"}},[l("a",{staticClass:"header-anchor",attrs:{href:"#universal"}},[t._v("#")]),t._v(" Universal")]),t._v(" "),l("ul",[l("li",[l("RouterLink",{attrs:{to:"/Universal/ec-fix.html"}},[t._v("Embedded Controller")]),t._v(" "),l("ul",[l("li",[l("RouterLink",{attrs:{to:"/Universal/ec-methods/prebuilt.html"}},[t._v("Prebuilt")])],1),t._v(" "),l("li",[l("RouterLink",{attrs:{to:"/Universal/ec-methods/ssdttime.html"}},[t._v("SSDTTime")])],1),t._v(" "),l("li",[l("RouterLink",{attrs:{to:"/Universal/ec-methods/manual.html"}},[t._v("Manual")])],1)])],1),t._v(" "),l("li",[l("RouterLink",{attrs:{to:"/Universal/plug.html"}},[t._v("CPU Power Management")]),t._v(" "),l("ul",[l("li",[l("RouterLink",{attrs:{to:"/Universal/plug-methods/prebuilt.html"}},[t._v("Prebuilt")])],1),t._v(" "),l("li",[l("RouterLink",{attrs:{to:"/Universal/plug-methods/ssdttime.html"}},[t._v("SSDTTime")])],1),t._v(" "),l("li",[l("RouterLink",{attrs:{to:"/Universal/plug-methods/manual.html"}},[t._v("Manual")])],1)])],1),t._v(" "),l("li",[l("RouterLink",{attrs:{to:"/Universal/awac.html"}},[t._v("AWAC vs RTC")]),t._v(" "),l("ul",[l("li",[l("RouterLink",{attrs:{to:"/Universal/awac-methods/prebuilt.html"}},[t._v("Prebuilt")])],1),t._v(" "),l("li",[l("RouterLink",{attrs:{to:"/Universal/awac-methods/manual.html"}},[t._v("Manual")])],1)])],1),t._v(" "),l("li",[l("RouterLink",{attrs:{to:"/Universal/nvram.html"}},[t._v("NVRAM PMC")]),t._v(" "),l("ul",[l("li",[l("RouterLink",{attrs:{to:"/Universal/nvram-methods/prebuilt.html"}},[t._v("Prebuilt")])],1),t._v(" "),l("li",[l("RouterLink",{attrs:{to:"/Universal/nvram-methods/manual.html"}},[t._v("Manual")])],1)])],1),t._v(" "),l("li",[l("RouterLink",{attrs:{to:"/Universal/rhub.html"}},[t._v("USB RHUB")]),t._v(" "),l("ul",[l("li",[l("RouterLink",{attrs:{to:"/Universal/rhub-methods/prebuilt.html"}},[t._v("Prebuilt")])],1),t._v(" "),l("li",[l("RouterLink",{attrs:{to:"/Universal/rhub-methods/manual.html"}},[t._v("Manual")])],1)])],1),t._v(" "),l("li",[l("RouterLink",{attrs:{to:"/Universal/irq.html"}},[t._v("IRQ Fix")])],1),t._v(" "),l("li",[l("RouterLink",{attrs:{to:"/Universal/spoof.html"}},[t._v("GPU Spoof")])],1),t._v(" "),l("li",[l("RouterLink",{attrs:{to:"/Universal/smbus.html"}},[t._v("Fixing SMBus Support")]),t._v(" "),l("ul",[l("li",[l("RouterLink",{attrs:{to:"/Universal/smbus-methods/manual.html"}},[t._v("Manual")])],1)])],1)]),t._v(" "),l("h2",{attrs:{id:"cleanup"}},[l("a",{staticClass:"header-anchor",attrs:{href:"#cleanup"}},[t._v("#")]),t._v(" Cleanup")]),t._v(" "),l("ul",[l("li",[l("RouterLink",{attrs:{to:"/cleanup.html"}},[t._v("Cleanup")])],1)]),t._v(" "),l("h2",{attrs:{id:"misc"}},[l("a",{staticClass:"header-anchor",attrs:{href:"#misc"}},[t._v("#")]),t._v(" Misc")]),t._v(" "),l("ul",[l("li",[l("RouterLink",{attrs:{to:"/troubleshooting.html"}},[t._v("Troubleshooting")])],1),t._v(" "),l("li",[l("RouterLink",{attrs:{to:"/CONTRIBUTING.html"}},[t._v("Contributing")])],1)])])}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/36.bf9fbe7d.js b/assets/js/36.bf9fbe7d.js new file mode 100644 index 0000000..ecde74e --- /dev/null +++ b/assets/js/36.bf9fbe7d.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[36],{436:function(t,e,a){"use strict";a.r(e);var o=a(25),n=Object(o.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"fixing-system-clocks-prebuilt"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#fixing-system-clocks-prebuilt"}},[t._v("#")]),t._v(" Fixing System Clocks: Prebuilt")]),t._v(" "),a("p",[t._v("By far the easiest method, all you need to do is download the following file:")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-AWAC.aml",target:"_blank",rel:"noopener noreferrer"}},[t._v("SSDT-AWAC.aml"),a("OutboundLink")],1),t._v(" "),a("ul",[a("li",[t._v("For most users")])])]),t._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-RTC0-RANGE-HEDT.aml",target:"_blank",rel:"noopener noreferrer"}},[t._v("SSDT-RTC0-RANGE-HEDT"),a("OutboundLink")],1),t._v(" "),a("ul",[a("li",[t._v("For Intel's X99 and X299 platforms")])])])]),t._v(" "),a("p",[t._v("Main things to note with this method:")]),t._v(" "),a("ul",[a("li",[t._v("Assumes you both have an AWAC clock and it can be easily turned off with the RTC replacing it, "),a("strong",[t._v("this may not always work")]),t._v(" "),a("ul",[a("li",[t._v("This only applies to SSDT-AWAC")]),t._v(" "),a("li",[t._v("SSDT-RTC0-RANGE instead relies on known RTC names, and can only handle so many edge cases")])])]),t._v(" "),a("li",[t._v("Doesn't really teach you anything\n"),a("ul",[a("li",[t._v("For most, this doesn't matter. But to some knowing what makes your hackintosh tick is part of the journey")])])])]),t._v(" "),a("h2",{attrs:{id:"wrapping-up"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#wrapping-up"}},[t._v("#")]),t._v(" Wrapping up")]),t._v(" "),a("p",[t._v("Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/cleanup.html"}},[a("strong",[t._v("Cleanup")])])],1)])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/36.caed4407.js b/assets/js/36.caed4407.js deleted file mode 100644 index 4a30f0e..0000000 --- a/assets/js/36.caed4407.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[36],{428:function(t,e,o){"use strict";o.r(e);var s=o(25),n=Object(s.a)({},(function(){var t=this,e=t.$createElement,o=t._self._c||e;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("h1",{attrs:{id:"fixing-system-clocks-ssdt-awac-rtc0"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#fixing-system-clocks-ssdt-awac-rtc0"}},[t._v("#")]),t._v(" Fixing System Clocks (SSDT-AWAC/RTC0)")]),t._v(" "),o("p",[t._v("The second involves using SSDTTime which automates most of the process. See here on how to use it: "),o("RouterLink",{attrs:{to:"/ssdt-methods/ssdt-easy.html"}},[t._v("SSDTs: Easy Way")])],1),t._v(" "),o("p",[t._v("To get the SSDT-PMC, run the following:")]),t._v(" "),o("ul",[o("li",[o("code",[t._v("7. Dump DSDT")]),t._v(" then run "),o("code",[t._v("6. AWAC")])])]),t._v(" "),o("p",[t._v("This will provide you with some files, the main one you care about is SSDT-AWAC."),o("strong",[t._v("aml")]),t._v(". or SSDT-RTC0."),o("strong",[t._v("aml")]),t._v(". The DSDT and .dsl are only left for referencing or verification.")]),t._v(" "),o("p",[t._v("The main things to note with this method:")]),t._v(" "),o("ul",[o("li",[t._v("Doesn't really teach you anything\n"),o("ul",[o("li",[t._v("For most, this doesn't matter. But to some knowing what makes your hackintosh tick is part of the journey")])])])]),t._v(" "),o("h2",{attrs:{id:"wrapping-up"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#wrapping-up"}},[t._v("#")]),t._v(" Wrapping up")]),t._v(" "),o("p",[t._v("Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:")]),t._v(" "),o("ul",[o("li",[o("RouterLink",{attrs:{to:"/cleanup.html"}},[o("strong",[t._v("Cleanup")])])],1)])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/37.be9f181d.js b/assets/js/37.be9f181d.js deleted file mode 100644 index da6f371..0000000 --- a/assets/js/37.be9f181d.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[37],{429:function(t,e,s){"use strict";s.r(e);var a=s(25),i=Object(a.a)({},(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"fixing-system-clocks-ssdt-awac-rtc0"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#fixing-system-clocks-ssdt-awac-rtc0"}},[t._v("#")]),t._v(" Fixing System Clocks (SSDT-AWAC/RTC0)")]),t._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#what-this-ssdt-does"}},[t._v("What this SSDT does")])]),t._v(" "),s("li",[s("a",{attrs:{href:"#methods-to-make-this-ssdt"}},[t._v("Methods to make this SSDT")])])]),t._v(" "),s("h2",{attrs:{id:"what-this-ssdt-does"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#what-this-ssdt-does"}},[t._v("#")]),t._v(" What this SSDT does")]),t._v(" "),s("p",[t._v("The purpose of SSDT-AWAC/RTC0 is to fix the system clocks found on newer hardware, mainly found in the following:")]),t._v(" "),s("ul",[s("li",[t._v("B360")]),t._v(" "),s("li",[t._v("B365")]),t._v(" "),s("li",[t._v("H310")]),t._v(" "),s("li",[t._v("H370")]),t._v(" "),s("li",[t._v("Z370 (Gigabyte and AsRock boards with newer BIOS versions)")]),t._v(" "),s("li",[t._v("Z390")]),t._v(" "),s("li",[t._v("B460")]),t._v(" "),s("li",[t._v("Z490")]),t._v(" "),s("li",[t._v("400 series (Comet Lake, including Z490)")]),t._v(" "),s("li",[t._v("495 series (Icelake)")]),t._v(" "),s("li",[t._v("X299X (10th Gen refresh, AsRock and Asus don't use the -x naming so you'll need to double check)")])]),t._v(" "),s("p",[t._v('SSDT-AWAC tries to re-enable the old RTC clock that is compatible with macOS, while SSDT-RTC0 will instead create a "fake" RTC clock if there is no legacy one to enable.')]),t._v(" "),s("h2",{attrs:{id:"methods-to-make-this-ssdt"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#methods-to-make-this-ssdt"}},[t._v("#")]),t._v(" Methods to make this SSDT")]),t._v(" "),s("p",[t._v("For the RTC fix, there are 3 methods you can choose from:")]),t._v(" "),s("ul",[s("li",[s("RouterLink",{attrs:{to:"/Universal/awac-methods/prebuilt.html"}},[t._v("Prebuilt")])],1),t._v(" "),s("li",[s("RouterLink",{attrs:{to:"/Universal/awac-methods/ssdttime.html"}},[t._v("SSDTTime")])],1),t._v(" "),s("li",[s("RouterLink",{attrs:{to:"/Universal/awac-methods/manual.html"}},[t._v("Manual")])],1)])])}),[],!1,null,null,null);e.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/37.da586690.js b/assets/js/37.da586690.js new file mode 100644 index 0000000..3e95ba5 --- /dev/null +++ b/assets/js/37.da586690.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[37],{435:function(t,e,o){"use strict";o.r(e);var s=o(25),n=Object(s.a)({},(function(){var t=this,e=t.$createElement,o=t._self._c||e;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("h1",{attrs:{id:"fixing-system-clocks-ssdt-awac-rtc0"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#fixing-system-clocks-ssdt-awac-rtc0"}},[t._v("#")]),t._v(" Fixing System Clocks (SSDT-AWAC/RTC0)")]),t._v(" "),o("ul",[o("li",[o("strong",[t._v("Reminder")]),t._v(": Does not support HEDT(ie. X99 and X299)")])]),t._v(" "),o("p",[t._v("The second involves using SSDTTime which automates most of the process. See here on how to use it: "),o("RouterLink",{attrs:{to:"/ssdt-methods/ssdt-easy.html"}},[t._v("SSDTs: Easy Way")])],1),t._v(" "),o("p",[t._v("To get the SSDT-PMC, run the following:")]),t._v(" "),o("ul",[o("li",[o("code",[t._v("7. Dump DSDT")]),t._v(" then run "),o("code",[t._v("6. AWAC")])])]),t._v(" "),o("p",[t._v("This will provide you with some files, the main one you care about is SSDT-AWAC."),o("strong",[t._v("aml")]),t._v(". or SSDT-RTC0."),o("strong",[t._v("aml")]),t._v(". The DSDT and .dsl are only left for referencing or verification.")]),t._v(" "),o("p",[t._v("The main things to note with this method:")]),t._v(" "),o("ul",[o("li",[t._v("Doesn't really teach you anything\n"),o("ul",[o("li",[t._v("For most, this doesn't matter. But to some knowing what makes your hackintosh tick is part of the journey")])])])]),t._v(" "),o("h2",{attrs:{id:"wrapping-up"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#wrapping-up"}},[t._v("#")]),t._v(" Wrapping up")]),t._v(" "),o("p",[t._v("Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:")]),t._v(" "),o("ul",[o("li",[o("RouterLink",{attrs:{to:"/cleanup.html"}},[o("strong",[t._v("Cleanup")])])],1)])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/38.f81ddac0.js b/assets/js/38.f81ddac0.js new file mode 100644 index 0000000..f78fdf4 --- /dev/null +++ b/assets/js/38.f81ddac0.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[38],{437:function(t,s,e){"use strict";e.r(s);var a=e(25),i=Object(a.a)({},(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"fixing-system-clocks-ssdt-awac-rtc0"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#fixing-system-clocks-ssdt-awac-rtc0"}},[t._v("#")]),t._v(" Fixing System Clocks (SSDT-AWAC/RTC0)")]),t._v(" "),e("ul",[e("li",[e("a",{attrs:{href:"#what-this-ssdt-does"}},[t._v("What this SSDT does")])]),t._v(" "),e("li",[e("a",{attrs:{href:"#methods-to-make-this-ssdt"}},[t._v("Methods to make this SSDT")])])]),t._v(" "),e("h2",{attrs:{id:"what-this-ssdt-does"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#what-this-ssdt-does"}},[t._v("#")]),t._v(" What this SSDT does")]),t._v(" "),e("p",[t._v("The purpose of SSDT-AWAC/RTC0 is to fix the system clocks found on newer hardware, mainly found in the following:")]),t._v(" "),e("ul",[e("li",[t._v("B360")]),t._v(" "),e("li",[t._v("B365")]),t._v(" "),e("li",[t._v("H310")]),t._v(" "),e("li",[t._v("H370")]),t._v(" "),e("li",[t._v("Z370 (Gigabyte and AsRock boards with newer BIOS versions)")]),t._v(" "),e("li",[t._v("Z390")]),t._v(" "),e("li",[t._v("B460")]),t._v(" "),e("li",[t._v("Z490")]),t._v(" "),e("li",[t._v("400 series (Comet Lake, including Z490)")]),t._v(" "),e("li",[t._v("495 series (Icelake)")]),t._v(" "),e("li",[t._v("X99")]),t._v(" "),e("li",[t._v("X299")])]),t._v(" "),e("p",[t._v('SSDT-AWAC tries to re-enable the old RTC clock that is compatible with macOS, while SSDT-RTC0 will instead create a "fake" RTC clock if there is no legacy one to enable.')]),t._v(" "),e("h2",{attrs:{id:"methods-to-make-this-ssdt"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#methods-to-make-this-ssdt"}},[t._v("#")]),t._v(" Methods to make this SSDT")]),t._v(" "),e("p",[t._v("For the RTC fix, there are 3 methods you can choose from:")]),t._v(" "),e("ul",[e("li",[e("RouterLink",{attrs:{to:"/Universal/awac-methods/prebuilt.html"}},[t._v("Prebuilt")])],1),t._v(" "),e("li",[e("RouterLink",{attrs:{to:"/Universal/awac-methods/ssdttime.html"}},[t._v("SSDTTime")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("Does not support HEDT")])])])],1),t._v(" "),e("li",[e("RouterLink",{attrs:{to:"/Universal/awac-methods/manual.html"}},[t._v("Manual")]),t._v(" "),e("ul",[e("li",[t._v("For most users")])])],1),t._v(" "),e("li",[e("RouterLink",{attrs:{to:"/Universal/awac-methods/manual-hedt.html"}},[t._v("Manual-HEDT")]),t._v(" "),e("ul",[e("li",[t._v("For X99 and X299 users")])])],1)])])}),[],!1,null,null,null);s.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/38.14741ef9.js b/assets/js/39.268e6a49.js similarity index 76% rename from assets/js/38.14741ef9.js rename to assets/js/39.268e6a49.js index 1e942c7..d61eebd 100644 --- a/assets/js/38.14741ef9.js +++ b/assets/js/39.268e6a49.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[38],{430:function(e,t,s){"use strict";s.r(t);var o=s(25),l=Object(o.a)({},(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[s("h1",{attrs:{id:"fixing-embedded-controller-ssdt-ec-usbx"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#fixing-embedded-controller-ssdt-ec-usbx"}},[e._v("#")]),e._v(" Fixing Embedded Controller (SSDT-EC/USBX)")]),e._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#fixing-embedded-controller-ssdt-ecusbx"}},[e._v("Fixing Embedded Controller (SSDT-EC/USBX)")]),e._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#what-this-ssdt-does"}},[e._v("What this SSDT does")])]),e._v(" "),s("li",[s("a",{attrs:{href:"#methods-to-make-this-ssdt"}},[e._v("Methods to make this SSDT")])])])])]),e._v(" "),s("h2",{attrs:{id:"what-this-ssdt-does"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#what-this-ssdt-does"}},[e._v("#")]),e._v(" What this SSDT does")]),e._v(" "),s("p",[e._v("The purpose of SSDT-EC/UBX is a couple things:")]),e._v(" "),s("ul",[s("li",[e._v("On desktops, the EC(or better known as the embedded controller) isn't compatible with AppleACPIEC driver, to get around this we disable this device when running macOS")]),e._v(" "),s("li",[e._v("AppleBusPowerController will look for a device named "),s("code",[e._v("EC")]),e._v(", so we will want to create a fake device for this kext to load onto\n"),s("ul",[s("li",[e._v("AppleBusPowerController also requires a USBX device to supply USB power properties for Skylake and newer, so we will bundle this device in with the EC fix")])])]),e._v(" "),s("li",[e._v("On laptops, the EC is used for hotkeys and battery so disabling this isn't all too ideal. Problem is our EC's name isn't compatible, so we will create a simple \"fake\" EC device that will satisfy Apple")])]),e._v(" "),s("p",[e._v("So TL;DR:")]),e._v(" "),s("ul",[s("li",[e._v("EC is embedded controller")]),e._v(" "),s("li",[e._v("Desktops will want real EC off, and a fake EC created")]),e._v(" "),s("li",[e._v("Laptops will just want an additional fake EC present")]),e._v(" "),s("li",[e._v("Skylake and newer devices will want USBX as well")])]),e._v(" "),s("h2",{attrs:{id:"methods-to-make-this-ssdt"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#methods-to-make-this-ssdt"}},[e._v("#")]),e._v(" Methods to make this SSDT")]),e._v(" "),s("p",[e._v("For the EC fix, there are 3 methods you can choose from:")]),e._v(" "),s("ul",[s("li",[s("p",[s("RouterLink",{attrs:{to:"/Universal/ec-methods/prebuilt.html"}},[e._v("Prebuilt")])],1),e._v(" "),s("ul",[s("li",[e._v("The prebuilt for desktops are very bloated. It's recommended to use the two methods below.")]),e._v(" "),s("li",[e._v("The Laptop prebuilts are easily usable.")])])]),e._v(" "),s("li",[s("p",[s("RouterLink",{attrs:{to:"/Universal/ec-methods/ssdttime.html"}},[e._v("SSDTTime")])],1)]),e._v(" "),s("li",[s("p",[s("RouterLink",{attrs:{to:"/Universal/ec-methods/manual.html"}},[e._v("Manual")])],1)])])])}),[],!1,null,null,null);t.default=l.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[39],{438:function(e,t,s){"use strict";s.r(t);var o=s(25),i=Object(o.a)({},(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[s("h1",{attrs:{id:"fixing-embedded-controller-ssdt-ec-usbx"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#fixing-embedded-controller-ssdt-ec-usbx"}},[e._v("#")]),e._v(" Fixing Embedded Controller (SSDT-EC/USBX)")]),e._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#fixing-embedded-controller-ssdt-ecusbx"}},[e._v("Fixing Embedded Controller (SSDT-EC/USBX)")]),e._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#what-this-ssdt-does"}},[e._v("What this SSDT does")])]),e._v(" "),s("li",[s("a",{attrs:{href:"#methods-to-make-this-ssdt"}},[e._v("Methods to make this SSDT")])])])])]),e._v(" "),s("h2",{attrs:{id:"what-this-ssdt-does"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#what-this-ssdt-does"}},[e._v("#")]),e._v(" What this SSDT does")]),e._v(" "),s("p",[e._v("The purpose of SSDT-EC/UBX is a couple things:")]),e._v(" "),s("ul",[s("li",[e._v("On desktops, the EC(or better known as the embedded controller) isn't compatible with AppleACPIEC driver, to get around this we disable this device when running macOS")]),e._v(" "),s("li",[e._v("AppleBusPowerController will look for a device named "),s("code",[e._v("EC")]),e._v(", so we will want to create a fake device for this kext to load onto\n"),s("ul",[s("li",[e._v("AppleBusPowerController also requires a USBX device to supply USB power properties for Skylake and newer, so we will bundle this device in with the EC fix")])])]),e._v(" "),s("li",[e._v("On laptops, the EC is used for hotkeys and battery so disabling this isn't all too ideal. Problem is our EC's name isn't compatible, so we will create a simple \"fake\" EC device that will satisfy Apple")])]),e._v(" "),s("p",[e._v("So TL;DR:")]),e._v(" "),s("ul",[s("li",[e._v("EC is embedded controller")]),e._v(" "),s("li",[e._v("Desktops will want real EC off, and a fake EC created")]),e._v(" "),s("li",[e._v("Laptops will just want an additional fake EC present")]),e._v(" "),s("li",[e._v("Skylake and newer devices will want USBX as well")])]),e._v(" "),s("h2",{attrs:{id:"methods-to-make-this-ssdt"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#methods-to-make-this-ssdt"}},[e._v("#")]),e._v(" Methods to make this SSDT")]),e._v(" "),s("p",[e._v("For the EC fix, there are 3 methods you can choose from:")]),e._v(" "),s("ul",[s("li",[s("RouterLink",{attrs:{to:"/Universal/ec-methods/prebuilt.html"}},[e._v("Prebuilt")])],1),e._v(" "),s("li",[s("RouterLink",{attrs:{to:"/Universal/ec-methods/ssdttime.html"}},[e._v("SSDTTime")])],1),e._v(" "),s("li",[s("RouterLink",{attrs:{to:"/Universal/ec-methods/manual.html"}},[e._v("Manual")])],1)])])}),[],!1,null,null,null);t.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/4.61452de6.js b/assets/js/4.61452de6.js new file mode 100644 index 0000000..e1d7c9d --- /dev/null +++ b/assets/js/4.61452de6.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[4],{317:function(t,e,a){t.exports=a.p+"assets/img/lpc.bfa9cf23.png"},318:function(t,e,a){t.exports=a.p+"assets/img/pci0.4477f361.png"},376:function(t,e,a){t.exports=a.p+"assets/img/rtc-range-check.d964e9c9.png"},377:function(t,e,a){t.exports=a.p+"assets/img/rtc-name.afa4c3f4.png"},378:function(t,e,a){t.exports=a.p+"assets/img/ssdt-before-rename-hedt.4b47d5a3.png"},379:function(t,e,a){t.exports=a.p+"assets/img/ssdt-after-rename-hedt.ea1fe10e.png"},433:function(t,e,a){"use strict";a.r(e);var n=a(25),i=Object(n.a)({},(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[n("h1",{attrs:{id:"fixing-system-clocks-on-hedt-manual"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#fixing-system-clocks-on-hedt-manual"}},[t._v("#")]),t._v(" Fixing System Clocks on HEDT: Manual")]),t._v(" "),n("ul",[n("li",[n("a",{attrs:{href:"#finding-the-acpi-path"}},[t._v("Finding the ACPI path")])]),t._v(" "),n("li",[n("a",{attrs:{href:"#edits-to-the-sample-ssdt"}},[t._v("Edits to the sample SSDT")])]),t._v(" "),n("li",[n("a",{attrs:{href:"#compiling-the-ssdt"}},[t._v("Compiling the SSDT")])]),t._v(" "),n("li",[n("a",{attrs:{href:"#wrapping-up"}},[t._v("Wrapping up")])])]),t._v(" "),n("h2",{attrs:{id:"seeing-if-you-need-ssdt-rtc0-range"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#seeing-if-you-need-ssdt-rtc0-range"}},[t._v("#")]),t._v(" Seeing if you need SSDT-RTC0-RANGE")]),t._v(" "),n("p",[t._v("To start, first open your decompiled DSDT you got from "),n("RouterLink",{attrs:{to:"/Manual/dump.html"}},[t._v("Dumping the DSDT")]),t._v(" and "),n("RouterLink",{attrs:{to:"/Manual/compile.html"}},[t._v("Decompiling and Compiling")]),t._v(" with either maciASL(if in macOS) or any other text editor if in Windows or Linux(VSCode has an "),n("a",{attrs:{href:"https://marketplace.visualstudio.com/items?itemName=Thog.vscode-asl",target:"_blank",rel:"noopener noreferrer"}},[t._v("ACPI extension"),n("OutboundLink")],1),t._v(" that can also help).")],1),t._v(" "),n("p",[t._v("Now search for "),n("code",[t._v("PNP0B00")]),t._v(" and look at the "),n("code",[t._v("_CRS")]),t._v(" entry within it:")]),t._v(" "),n("p",[n("img",{attrs:{src:a(376),alt:""}})]),t._v(" "),n("p",[t._v("And from the above example, we see we have 2 banks of RTC memory:")]),t._v(" "),n("ul",[n("li",[t._v("Bank 1: starts at 0x70 and is length 0x2")]),t._v(" "),n("li",[t._v("Bank 2: starts at 0x74 and is length 0x4")])]),t._v(" "),n("p",[t._v("Now the problem is that the OEM forgot to mat sections 0x72 and 0x73. Because of this, macOS may halt while booting(prominently in Big Sur)")]),t._v(" "),n("p",[t._v("And finally, verify if it has an _STA method as well. This will be used shortly")]),t._v(" "),n("h2",{attrs:{id:"finding-the-acpi-path"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#finding-the-acpi-path"}},[t._v("#")]),t._v(" Finding the ACPI path")]),t._v(" "),n("p",[t._v("Finding the ACPI pathing is quite easy actually, first open your decompiled DSDT you got from "),n("RouterLink",{attrs:{to:"/Manual/dump.html"}},[t._v("Dumping the DSDT")]),t._v(" and "),n("RouterLink",{attrs:{to:"/Manual/compile.html"}},[t._v("Decompiling and Compiling")]),t._v(" with either maciASL(if in macOS) or any other text editor if in Windows or Linux(VSCode has an "),n("a",{attrs:{href:"https://marketplace.visualstudio.com/items?itemName=Thog.vscode-asl",target:"_blank",rel:"noopener noreferrer"}},[t._v("ACPI extension"),n("OutboundLink")],1),t._v(" that can also help).")],1),t._v(" "),n("p",[t._v("To start, search for the following:")]),t._v(" "),n("ul",[n("li",[t._v("Finding the RTC name:\n"),n("ul",[n("li",[t._v("Search "),n("code",[t._v("PNP0B00")])])])]),t._v(" "),n("li",[t._v("Finding the LowPinCount path:\n"),n("ul",[n("li",[t._v("Search "),n("code",[t._v("Name (_ADR, 0x001F0000)")])])])]),t._v(" "),n("li",[t._v("Finding the PCI path:\n"),n("ul",[n("li",[t._v("Search "),n("code",[t._v("PNP0A08")]),t._v(" (If multiple show up, use the first one)")])])])]),t._v(" "),n("p",[t._v("You should get something like the following show up:")]),t._v(" "),n("table",[n("thead",[n("tr",[n("th",{staticStyle:{"text-align":"center"}},[t._v("RTC Pathing")]),t._v(" "),n("th",{staticStyle:{"text-align":"center"}},[t._v("LPC Pathing")]),t._v(" "),n("th",{staticStyle:{"text-align":"center"}},[t._v("PCI Pathing")])])]),t._v(" "),n("tbody",[n("tr",[n("td",{staticStyle:{"text-align":"center"}},[n("img",{attrs:{src:a(377),alt:""}})]),t._v(" "),n("td",{staticStyle:{"text-align":"center"}},[n("img",{attrs:{src:a(317),alt:""}})]),t._v(" "),n("td",{staticStyle:{"text-align":"center"}},[n("img",{attrs:{src:a(318),alt:""}})])])])]),t._v(" "),n("p",[t._v("From the above, we can see we have "),n("code",[t._v("RTC")]),t._v(", "),n("code",[t._v("LPC0")]),t._v(" and "),n("code",[t._v("PCI0")]),t._v(". Now we can head to the next stage")]),t._v(" "),n("h2",{attrs:{id:"edits-to-the-sample-ssdt"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#edits-to-the-sample-ssdt"}},[t._v("#")]),t._v(" Edits to the sample SSDT")]),t._v(" "),n("p",[t._v("Now that we have our ACPI path, lets grab our SSDT and get to work:")]),t._v(" "),n("ul",[n("li",[n("a",{attrs:{href:"https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-RTC0-RANGE.dsl",target:"_blank",rel:"noopener noreferrer"}},[t._v("SSDT-RTC0-RANGE.dsl"),n("OutboundLink")],1)])]),t._v(" "),n("p",[t._v("By default, this uses "),n("code",[t._v("PC00.LPC0.RTC")]),t._v(" for the pathing. you'll want to rename accordingly.")]),t._v(" "),n("p",[t._v("Following the example from above, we'll be renaming it to "),n("code",[t._v("PCI0.LPC0.RTC")]),t._v(":")]),t._v(" "),n("p",[n("strong",[t._v("Before")]),t._v(":")]),t._v(" "),n("div",{staticClass:"language- extra-class"},[n("pre",{pre:!0,attrs:{class:"language-text"}},[n("code",[t._v("External (_SB_.PC00.LPC0, DeviceObj) <- Rename this\n\nExternal (_SB_.PC00.LPC0.RTC_, DeviceObj) <- Rename this\n\nScope (_SB.PC00.LPC0) <- Rename this\n")])])]),n("p",[n("img",{attrs:{src:a(378),alt:""}})]),t._v(" "),n("p",[t._v("Following the example pathing we found, the SSDT should look something like this:")]),t._v(" "),n("p",[n("strong",[t._v("After")]),t._v(":")]),t._v(" "),n("div",{staticClass:"language- extra-class"},[n("pre",{pre:!0,attrs:{class:"language-text"}},[n("code",[t._v("External (_SB_.PCI0.LPC0, DeviceObj) <- Renamed\n\nScope (_SB.PCI0.LPC0.RTC) <- Renamed\n\nScope (_SB.PCI0.LPC0) <- Renamed\n\n\n\t\t/* <- Remove if your RTC device didn't have an _STA\n\t\tScope (RTC)\n {\n Method (_STA, 0, NotSerialized) // _STA: Status\n {\n If (_OSI (\"Darwin\"))\n {\n Return (Zero)\n }\n Else\n {\n Return (0x0F)\n }\n }\n }\n\t\t*/ <- Remove if your RTC device didn't have an _STA\n")])])]),n("p",[n("img",{attrs:{src:a(379),alt:""}})]),t._v(" "),n("h3",{attrs:{id:"compiling-the-ssdt"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#compiling-the-ssdt"}},[t._v("#")]),t._v(" Compiling the SSDT")]),t._v(" "),n("p",[t._v("With the SSDT done, you're now "),n("RouterLink",{attrs:{to:"/Manual/compile.html"}},[t._v("ready to compile the SSDT!")])],1),t._v(" "),n("h2",{attrs:{id:"wrapping-up"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#wrapping-up"}},[t._v("#")]),t._v(" Wrapping up")]),t._v(" "),n("p",[t._v("Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:")]),t._v(" "),n("ul",[n("li",[n("RouterLink",{attrs:{to:"/cleanup.html"}},[n("strong",[t._v("Cleanup")])])],1)])])}),[],!1,null,null,null);e.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/4.9ad0dfa8.js b/assets/js/4.9ad0dfa8.js deleted file mode 100644 index 9feb3a3..0000000 --- a/assets/js/4.9ad0dfa8.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[4],{329:function(e,t,a){e.exports=a.p+"assets/img/lpc.bfa9cf23.png"},330:function(e,t,a){e.exports=a.p+"assets/img/pci0.4477f361.png"},373:function(e,t,a){e.exports=a.p+"assets/img/ACPI000E.f11d4625.png"},374:function(e,t,a){e.exports=a.p+"assets/img/PNP0B00.cd0c5876.png"},375:function(e,t,a){e.exports=a.p+"assets/img/ssdt-before.b9b19f9b.png"},376:function(e,t,a){e.exports=a.p+"assets/img/ssdt-after.3d0ae705.png"},426:function(e,t,a){"use strict";a.r(t);var s=a(25),n=Object(s.a)({},(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[s("h1",{attrs:{id:"fixing-system-clocks-manual"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#fixing-system-clocks-manual"}},[e._v("#")]),e._v(" Fixing System Clocks: Manual")]),e._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#determining-which-ssdt-you-need"}},[e._v("Determining which SSDT you need")])]),e._v(" "),s("li",[s("a",{attrs:{href:"#rtc0-method"}},[e._v("RTC0 Method")]),e._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#finding-the-acpi-path"}},[e._v("Finding the ACPI path")])]),e._v(" "),s("li",[s("a",{attrs:{href:"#edits-to-the-sample-ssdt"}},[e._v("Edits to the sample SSDT")])]),e._v(" "),s("li",[s("a",{attrs:{href:"#compiling-the-ssdt"}},[e._v("Compiling the SSDT")])])])]),e._v(" "),s("li",[s("a",{attrs:{href:"#wrapping-up"}},[e._v("Wrapping up")])])]),e._v(" "),s("h2",{attrs:{id:"determining-which-ssdt-you-need"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#determining-which-ssdt-you-need"}},[e._v("#")]),e._v(" Determining which SSDT you need")]),e._v(" "),s("p",[e._v("Finding which SSDT you need is quite easy actually, first open your decompiled DSDT you got from "),s("RouterLink",{attrs:{to:"/Manual/dump.html"}},[e._v("Dumping the DSDT")]),e._v(" and "),s("RouterLink",{attrs:{to:"/Manual/compile.html"}},[e._v("Decompiling and Compiling")]),e._v(" with either maciASL(if in macOS) or any other text editor if in Windows or Linux(VSCode has an "),s("a",{attrs:{href:"https://marketplace.visualstudio.com/items?itemName=Thog.vscode-asl",target:"_blank",rel:"noopener noreferrer"}},[e._v("ACPI extension"),s("OutboundLink")],1),e._v(" that can also help).")],1),e._v(" "),s("p",[e._v("Next search for "),s("code",[e._v("ACPI000E")]),e._v(". You should get something similar:")]),e._v(" "),s("p",[s("img",{attrs:{src:a(373),alt:""}})]),e._v(" "),s("p",[e._v("The above tells us a few things:")]),e._v(" "),s("ul",[s("li",[e._v("We in fact do have an AWAC clock\n"),s("ul",[s("li",[e._v("If nothing shows up, you don't need to do anything for AWAC or RTC")])])]),e._v(" "),s("li",[e._v("It can be easily disabled with STAS(if not, you can skip to here: "),s("a",{attrs:{href:"#rtc0-method"}},[e._v("RTC0 Method")]),e._v(")\n"),s("ul",[s("li",[s("code",[e._v("_STA")]),e._v(" is the device status, with "),s("code",[e._v("Zero")]),e._v(" meaning it won't show up")])])])]),e._v(" "),s("p",[e._v("But to double check, next search for "),s("code",[e._v("PNP0B00")]),e._v(":")]),e._v(" "),s("p",[s("img",{attrs:{src:a(374),alt:""}})]),e._v(" "),s("p",[e._v("And looks at that, we can in fact disable our AWAC and enable the RTC! If not skip to here: "),s("a",{attrs:{href:"#rtc0-method"}},[e._v("RTC0 Method")])]),e._v(" "),s("p",[e._v("Now it's as simple as grabbing "),s("a",{attrs:{href:"https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-AWAC.dsl",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-AWAC.dsl"),s("OutboundLink")],1),e._v(" and "),s("a",{attrs:{href:"#compiling-the-ssdt"}},[e._v("compile")]),e._v(", no changes needed You can also use the below SSDT to the same effect:")]),e._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-AWAC.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-AWAC.aml"),s("OutboundLink")],1)])]),e._v(" "),s("h3",{attrs:{id:"ini-edge-cases"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#ini-edge-cases"}},[e._v("#")]),e._v(" _INI Edge Cases")]),e._v(" "),s("p",[e._v("Mainly seen on X299 refresh boards, there's already a "),s("code",[e._v("Scope (_SB) { Method (_INI...")]),e._v(" in your DSDT. This means our SSDT-AWAC will conflict with the one found in our DSDT. For these situations, you'll want to remove "),s("code",[e._v("Method (_INI, 0, NotSerialized) {}")]),e._v(" from the SSDT. You'll be left this this in the end:")]),e._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v('DefinitionBlock ("", "SSDT", 2, "DRTNIA", "AWAC", 0x00000000)\n{\n External (STAS, IntObj)\n\n Scope (_SB)\n {\n If (_OSI ("Darwin"))\n {\n STAS = One\n }\n }\n}\n')])])]),s("h2",{attrs:{id:"rtc0-method"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#rtc0-method"}},[e._v("#")]),e._v(" RTC0 Method")]),e._v(" "),s("p",[e._v("This method is for those who either don't have a "),s("code",[e._v("PNP0B00")]),e._v(" device to re-enable or have no easy way(via STAS variable).")]),e._v(" "),s("h3",{attrs:{id:"finding-the-acpi-path"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#finding-the-acpi-path"}},[e._v("#")]),e._v(" Finding the ACPI path")]),e._v(" "),s("p",[e._v("Assuming you've gotten your DSDT already opened from earlier, search for the following:")]),e._v(" "),s("ul",[s("li",[e._v("Finding the LowPinCount path:\n"),s("ul",[s("li",[e._v("Search "),s("code",[e._v("Name (_ADR, 0x001F0000)")])])])]),e._v(" "),s("li",[e._v("Finding the PCI path:\n"),s("ul",[s("li",[e._v("Search "),s("code",[e._v("PNP0A08")]),e._v(" (If multiple show up, use the first one)")])])])]),e._v(" "),s("p",[e._v("You should get something like the following show up:")]),e._v(" "),s("table",[s("thead",[s("tr",[s("th",{staticStyle:{"text-align":"center"}},[e._v("LPC Pathing")]),e._v(" "),s("th",{staticStyle:{"text-align":"center"}},[e._v("PCI Pathing")])])]),e._v(" "),s("tbody",[s("tr",[s("td",{staticStyle:{"text-align":"center"}},[s("img",{attrs:{src:a(329),alt:""}})]),e._v(" "),s("td",{staticStyle:{"text-align":"center"}},[s("img",{attrs:{src:a(330),alt:""}})])])])]),e._v(" "),s("p",[e._v("From the above, we can see we have both "),s("code",[e._v("PCI0")]),e._v(" and "),s("code",[e._v("LPC")]),e._v(". Now we can head to the next stage")]),e._v(" "),s("h3",{attrs:{id:"edits-to-the-sample-ssdt"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#edits-to-the-sample-ssdt"}},[e._v("#")]),e._v(" Edits to the sample SSDT")]),e._v(" "),s("p",[e._v("Now that we have our ACPI path, lets grab our SSDT and get to work:")]),e._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-RTC0.dsl",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-RTC0.dsl"),s("OutboundLink")],1)])]),e._v(" "),s("p",[e._v("By default, this uses "),s("code",[e._v("PCI0.LPCB")]),e._v(" for the pathing. you'll want to rename accordingly.")]),e._v(" "),s("p",[e._v("Following the example from above, we'll be renaming it to "),s("code",[e._v("PCI0.LPC")]),e._v(":")]),e._v(" "),s("p",[s("strong",[e._v("Before")]),e._v(":")]),e._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v("External (_SB_.PCI0.LPCB, DeviceObj) <- Rename this\n\nScope (_SB.PCI0.LPCB) <- Rename this\n")])])]),s("p",[s("img",{attrs:{src:a(375),alt:""}})]),e._v(" "),s("p",[e._v("Following the example pathing we found, the SSDT should look something like this:")]),e._v(" "),s("p",[s("strong",[e._v("After")]),e._v(":")]),e._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v("External (_SB_.PCI0.LPC, DeviceObj) <- Renamed\n\nScope (_SB.PCI0.LPC) <- Renamed\n")])])]),s("p",[s("img",{attrs:{src:a(376),alt:""}})]),e._v(" "),s("h3",{attrs:{id:"compiling-the-ssdt"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#compiling-the-ssdt"}},[e._v("#")]),e._v(" Compiling the SSDT")]),e._v(" "),s("p",[e._v("With the SSDT done, you're now "),s("RouterLink",{attrs:{to:"/Manual/compile.html"}},[e._v("ready to compile the SSDT!")])],1),e._v(" "),s("h2",{attrs:{id:"wrapping-up"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#wrapping-up"}},[e._v("#")]),e._v(" Wrapping up")]),e._v(" "),s("p",[e._v("Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:")]),e._v(" "),s("ul",[s("li",[s("RouterLink",{attrs:{to:"/cleanup.html"}},[s("strong",[e._v("Cleanup")])])],1)])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/39.09a7c895.js b/assets/js/40.bfef93ef.js similarity index 96% rename from assets/js/39.09a7c895.js rename to assets/js/40.bfef93ef.js index 885f78b..de4375c 100644 --- a/assets/js/39.09a7c895.js +++ b/assets/js/40.bfef93ef.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[39],{432:function(e,t,r){"use strict";r.r(t);var a=r(25),o=Object(a.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"fixing-embedded-controllers-prebuilt"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#fixing-embedded-controllers-prebuilt"}},[e._v("#")]),e._v(" Fixing Embedded Controllers: Prebuilt")]),e._v(" "),r("p",[e._v("By far the easiest way to fix your Embedded Controller is just downloading one of the files below:")]),e._v(" "),r("p",[r("strong",[e._v("Desktop")]),e._v(":")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-EC-USBX-DESKTOP.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-EC-USBX-DESKTOP"),r("OutboundLink")],1),e._v(" "),r("ul",[r("li",[e._v("For Skylake desktops and newer and AMD CPU based systems")])])]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-EC-DESKTOP.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-EC-DESKTOP"),r("OutboundLink")],1),e._v(" "),r("ul",[r("li",[e._v("For Broadwell desktops and older")])])])]),e._v(" "),r("p",[r("strong",[e._v("Laptops")]),e._v(":")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-EC-USBX-LAPTOP.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-EC-USBX-LAPTOP.aml"),r("OutboundLink")],1),e._v(" "),r("ul",[r("li",[e._v("For Skylake laptops and newer")])])]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-EC-LAPTOP.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-EC-LAPTOP.aml"),r("OutboundLink")],1),e._v(" "),r("ul",[r("li",[e._v("For Broadwell laptops and older")])])])]),e._v(" "),r("p",[e._v("The main things to note with this method:")]),e._v(" "),r("ul",[r("li",[e._v("Quite Bloated\n"),r("ul",[r("li",[e._v("There's ACPI naming for every type, this means there's added delays in boot times")])])]),e._v(" "),r("li",[e._v("Doesn't really teach you anything\n"),r("ul",[r("li",[e._v("For most, this doesn't matter. But to some knowing what makes your hackintosh tick is part of the journey")])])])]),e._v(" "),r("h2",{attrs:{id:"wrapping-up"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#wrapping-up"}},[e._v("#")]),e._v(" Wrapping up")]),e._v(" "),r("p",[e._v("Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:")]),e._v(" "),r("ul",[r("li",[r("RouterLink",{attrs:{to:"/cleanup.html"}},[r("strong",[e._v("Cleanup")])])],1)])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[40],{440:function(e,t,r){"use strict";r.r(t);var a=r(25),o=Object(a.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"fixing-embedded-controllers-prebuilt"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#fixing-embedded-controllers-prebuilt"}},[e._v("#")]),e._v(" Fixing Embedded Controllers: Prebuilt")]),e._v(" "),r("p",[e._v("By far the easiest way to fix your Embedded Controller is just downloading one of the files below:")]),e._v(" "),r("p",[r("strong",[e._v("Desktop")]),e._v(":")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-EC-USBX-DESKTOP.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-EC-USBX-DESKTOP"),r("OutboundLink")],1),e._v(" "),r("ul",[r("li",[e._v("For Skylake desktops and newer and AMD CPU based systems")])])]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-EC-DESKTOP.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-EC-DESKTOP"),r("OutboundLink")],1),e._v(" "),r("ul",[r("li",[e._v("For Broadwell desktops and older")])])])]),e._v(" "),r("p",[r("strong",[e._v("Laptops")]),e._v(":")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-EC-USBX-LAPTOP.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-EC-USBX-LAPTOP.aml"),r("OutboundLink")],1),e._v(" "),r("ul",[r("li",[e._v("For Skylake laptops and newer")])])]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-EC-LAPTOP.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-EC-LAPTOP.aml"),r("OutboundLink")],1),e._v(" "),r("ul",[r("li",[e._v("For Broadwell laptops and older")])])])]),e._v(" "),r("p",[e._v("The main things to note with this method:")]),e._v(" "),r("ul",[r("li",[e._v("Quite Bloated\n"),r("ul",[r("li",[e._v("There's ACPI naming for every type, this means there's added delays in boot times")])])]),e._v(" "),r("li",[e._v("Doesn't really teach you anything\n"),r("ul",[r("li",[e._v("For most, this doesn't matter. But to some knowing what makes your hackintosh tick is part of the journey")])])])]),e._v(" "),r("h2",{attrs:{id:"wrapping-up"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#wrapping-up"}},[e._v("#")]),e._v(" Wrapping up")]),e._v(" "),r("p",[e._v("Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:")]),e._v(" "),r("ul",[r("li",[r("RouterLink",{attrs:{to:"/cleanup.html"}},[r("strong",[e._v("Cleanup")])])],1)])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/40.c3270c9c.js b/assets/js/40.c3270c9c.js deleted file mode 100644 index ce039f9..0000000 --- a/assets/js/40.c3270c9c.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[40],{433:function(e,t,o){"use strict";o.r(t);var r=o(25),n=Object(r.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("h1",{attrs:{id:"fixing-embedded-controllers-ssdttime"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#fixing-embedded-controllers-ssdttime"}},[e._v("#")]),e._v(" Fixing Embedded Controllers: SSDTTime")]),e._v(" "),o("p",[e._v("The second involves using SSDTTime which automates most of the process. See here on how to use it: "),o("RouterLink",{attrs:{to:"/ssdt-methods/ssdt-easy.html"}},[e._v("SSDTs: Easy Way")])],1),e._v(" "),o("p",[e._v("To get the SSDT-EC on desktops, run the following:")]),e._v(" "),o("ul",[o("li",[o("code",[e._v("7. Dump DSDT")]),e._v(" then run "),o("code",[e._v("2. FakeEC")])])]),e._v(" "),o("p",[e._v("To get the SSDT-EC on laptops, run the following:")]),e._v(" "),o("ul",[o("li",[o("code",[e._v("7. Dump DSDT")]),e._v(" then run "),o("code",[e._v("3. FakeEC Laptop")])])]),e._v(" "),o("p",[e._v("This will provide you with some files, the main one you care about is SSDT-EC."),o("strong",[e._v("aml")]),e._v(". The DSDT and .dsl are only left for referencing or verification.")]),e._v(" "),o("p",[e._v("The main things to note with this method:")]),e._v(" "),o("ul",[o("li",[e._v("Doesn't work on HEDT and server hardware(ie. X99 and X299)\n"),o("ul",[o("li",[e._v("While the majority following this guide are likely on consumer hardware, those with fancier hardware will need to either use the "),o("a",{attrs:{href:"#prebuilts"}},[e._v("Prebuilt")]),e._v(" or "),o("a",{attrs:{href:"#manual"}},[e._v("Manual")]),e._v(" method")])])]),e._v(" "),o("li",[e._v("Doesn't provide you the USBX property to fix power\n"),o("ul",[o("li",[e._v("This can easily be fixed by using this prebuilt file in addition to SSDT-EC: "),o("a",{attrs:{href:"https://github.com/dortania/OpenCore-Post-Install/blob/master/extra-files/SSDT-USBX.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-USBX.aml"),o("OutboundLink")],1)]),e._v(" "),o("li",[e._v("Note USBX is only needed for Skylake and newer")])])]),e._v(" "),o("li",[e._v("Doesn't really teach you anything\n"),o("ul",[o("li",[e._v("For most, this doesn't matter. But to some knowing what makes your hackintosh tick is part of the journey")])])])]),e._v(" "),o("h2",{attrs:{id:"wrapping-up"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#wrapping-up"}},[e._v("#")]),e._v(" Wrapping up")]),e._v(" "),o("p",[e._v("Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:")]),e._v(" "),o("ul",[o("li",[o("RouterLink",{attrs:{to:"/cleanup.html"}},[o("strong",[e._v("Cleanup")])])],1)])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/41.059296f9.js b/assets/js/41.059296f9.js new file mode 100644 index 0000000..e196b41 --- /dev/null +++ b/assets/js/41.059296f9.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[41],{441:function(e,t,o){"use strict";o.r(t);var n=o(25),r=Object(n.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("h1",{attrs:{id:"fixing-embedded-controllers-ssdttime"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#fixing-embedded-controllers-ssdttime"}},[e._v("#")]),e._v(" Fixing Embedded Controllers: SSDTTime")]),e._v(" "),o("p",[e._v("The second involves using SSDTTime which automates most of the process. See here on how to use it: "),o("RouterLink",{attrs:{to:"/ssdt-methods/ssdt-easy.html"}},[e._v("SSDTs: Easy Way")])],1),e._v(" "),o("p",[e._v("To get the SSDT-EC on desktops, run the following:")]),e._v(" "),o("ul",[o("li",[o("code",[e._v("7. Dump DSDT")]),e._v(" then run "),o("code",[e._v("2. FakeEC")])])]),e._v(" "),o("p",[e._v("To get the SSDT-EC on laptops, run the following:")]),e._v(" "),o("ul",[o("li",[o("code",[e._v("7. Dump DSDT")]),e._v(" then run "),o("code",[e._v("3. FakeEC Laptop")])])]),e._v(" "),o("p",[e._v("This will provide you with some files, the main one you care about is SSDT-EC."),o("strong",[e._v("aml")]),e._v(". The DSDT and .dsl are only left for referencing or verification.")]),e._v(" "),o("p",[e._v("The main things to note with this method:")]),e._v(" "),o("ul",[o("li",[e._v("Doesn't provide you the USBX property to fix power\n"),o("ul",[o("li",[e._v("This can easily be fixed by using this prebuilt file in addition to SSDT-EC: "),o("a",{attrs:{href:"https://github.com/dortania/OpenCore-Post-Install/blob/master/extra-files/SSDT-USBX.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-USBX.aml"),o("OutboundLink")],1)]),e._v(" "),o("li",[e._v("Note USBX is only needed for Skylake and newer")])])]),e._v(" "),o("li",[e._v("Doesn't really teach you anything\n"),o("ul",[o("li",[e._v("For most, this doesn't matter. But to some knowing what makes your hackintosh tick is part of the journey")])])])]),e._v(" "),o("h2",{attrs:{id:"wrapping-up"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#wrapping-up"}},[e._v("#")]),e._v(" Wrapping up")]),e._v(" "),o("p",[e._v("Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:")]),e._v(" "),o("ul",[o("li",[o("RouterLink",{attrs:{to:"/cleanup.html"}},[o("strong",[e._v("Cleanup")])])],1)])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/41.937d62a5.js b/assets/js/42.b0e74cdf.js similarity index 96% rename from assets/js/41.937d62a5.js rename to assets/js/42.b0e74cdf.js index 21b7945..bd3a5fc 100644 --- a/assets/js/41.937d62a5.js +++ b/assets/js/42.b0e74cdf.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[41],{434:function(e,t,i){"use strict";i.r(t);var a=i(25),r=Object(a.a)({},(function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[i("h1",{attrs:{id:"fixing-imei-manual"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#fixing-imei-manual"}},[e._v("#")]),e._v(" Fixing IMEI: Manual")]),e._v(" "),i("ul",[i("li",[i("a",{attrs:{href:"#finding-the-acpi-device"}},[e._v("Finding the ACPI device")])]),e._v(" "),i("li",[i("a",{attrs:{href:"#edits-to-the-sample-ssdt"}},[e._v("Edits to the sample SSDT")])]),e._v(" "),i("li",[i("a",{attrs:{href:"#compiling-the-ssdt"}},[e._v("Compiling the SSDT")])]),e._v(" "),i("li",[i("a",{attrs:{href:"#wrapping-up"}},[e._v("Wrapping up")])])]),e._v(" "),i("h2",{attrs:{id:"finding-the-acpi-device"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#finding-the-acpi-device"}},[e._v("#")]),e._v(" Finding the ACPI device")]),e._v(" "),i("p",[e._v("Finding the ACPI pathing is quite easy actually, first open your decompiled DSDT you got from "),i("RouterLink",{attrs:{to:"/Manual/dump.html"}},[e._v("Dumping the DSDT")]),e._v(" and "),i("RouterLink",{attrs:{to:"/Manual/compile.html"}},[e._v("Decompiling and Compiling")]),e._v(" with either maciASL(if in macOS) or any other text editor if in Windows or Linux(VSCode has an "),i("a",{attrs:{href:"https://marketplace.visualstudio.com/items?itemName=Thog.vscode-asl",target:"_blank",rel:"noopener noreferrer"}},[e._v("ACPI extension"),i("OutboundLink")],1),e._v(" that can also help).")],1),e._v(" "),i("p",[e._v("Next, search for the following devices:")]),e._v(" "),i("ul",[i("li",[i("code",[e._v("IMEI")])]),e._v(" "),i("li",[i("code",[e._v("HECI")])]),e._v(" "),i("li",[i("code",[e._v("MEI")])])]),e._v(" "),i("p",[e._v("If none of the 3 show up, you'll need to create an SSDT-IMEI.")]),e._v(" "),i("p",[i("strong",[e._v("If one of these 3 devices show up")]),e._v(", you do not need SSDT-IMEI! You can simply skip this page.")]),e._v(" "),i("p",[e._v("The rest of this page will however assume none of those 3 devices showed up.")]),e._v(" "),i("h2",{attrs:{id:"compiling-the-ssdt"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#compiling-the-ssdt"}},[e._v("#")]),e._v(" Compiling the SSDT")]),e._v(" "),i("p",[e._v("So there's actually no edits required to SSDT-IMEI, you can either grab the source code and compile yourself or use the prebuilt")]),e._v(" "),i("ul",[i("li",[i("p",[i("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-IMEI-S.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("Prebuilt SSDT-IMEI"),i("OutboundLink")],1)])]),e._v(" "),i("li",[i("p",[i("a",{attrs:{href:"https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-IMEI.dsl",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-IMEI's source code"),i("OutboundLink")],1)])])]),e._v(" "),i("p",[e._v("With the SSDT done, you're now "),i("RouterLink",{attrs:{to:"/Manual/compile.html"}},[e._v("ready to compile the SSDT!")])],1),e._v(" "),i("h2",{attrs:{id:"wrapping-up"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#wrapping-up"}},[e._v("#")]),e._v(" Wrapping up")]),e._v(" "),i("p",[e._v("Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:")]),e._v(" "),i("ul",[i("li",[i("RouterLink",{attrs:{to:"/cleanup.html"}},[i("strong",[e._v("Cleanup")])])],1)])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[42],{442:function(e,t,i){"use strict";i.r(t);var a=i(25),r=Object(a.a)({},(function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[i("h1",{attrs:{id:"fixing-imei-manual"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#fixing-imei-manual"}},[e._v("#")]),e._v(" Fixing IMEI: Manual")]),e._v(" "),i("ul",[i("li",[i("a",{attrs:{href:"#finding-the-acpi-device"}},[e._v("Finding the ACPI device")])]),e._v(" "),i("li",[i("a",{attrs:{href:"#edits-to-the-sample-ssdt"}},[e._v("Edits to the sample SSDT")])]),e._v(" "),i("li",[i("a",{attrs:{href:"#compiling-the-ssdt"}},[e._v("Compiling the SSDT")])]),e._v(" "),i("li",[i("a",{attrs:{href:"#wrapping-up"}},[e._v("Wrapping up")])])]),e._v(" "),i("h2",{attrs:{id:"finding-the-acpi-device"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#finding-the-acpi-device"}},[e._v("#")]),e._v(" Finding the ACPI device")]),e._v(" "),i("p",[e._v("Finding the ACPI pathing is quite easy actually, first open your decompiled DSDT you got from "),i("RouterLink",{attrs:{to:"/Manual/dump.html"}},[e._v("Dumping the DSDT")]),e._v(" and "),i("RouterLink",{attrs:{to:"/Manual/compile.html"}},[e._v("Decompiling and Compiling")]),e._v(" with either maciASL(if in macOS) or any other text editor if in Windows or Linux(VSCode has an "),i("a",{attrs:{href:"https://marketplace.visualstudio.com/items?itemName=Thog.vscode-asl",target:"_blank",rel:"noopener noreferrer"}},[e._v("ACPI extension"),i("OutboundLink")],1),e._v(" that can also help).")],1),e._v(" "),i("p",[e._v("Next, search for the following devices:")]),e._v(" "),i("ul",[i("li",[i("code",[e._v("IMEI")])]),e._v(" "),i("li",[i("code",[e._v("HECI")])]),e._v(" "),i("li",[i("code",[e._v("MEI")])])]),e._v(" "),i("p",[e._v("If none of the 3 show up, you'll need to create an SSDT-IMEI.")]),e._v(" "),i("p",[i("strong",[e._v("If one of these 3 devices show up")]),e._v(", you do not need SSDT-IMEI! You can simply skip this page.")]),e._v(" "),i("p",[e._v("The rest of this page will however assume none of those 3 devices showed up.")]),e._v(" "),i("h2",{attrs:{id:"compiling-the-ssdt"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#compiling-the-ssdt"}},[e._v("#")]),e._v(" Compiling the SSDT")]),e._v(" "),i("p",[e._v("So there's actually no edits required to SSDT-IMEI, you can either grab the source code and compile yourself or use the prebuilt")]),e._v(" "),i("ul",[i("li",[i("p",[i("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-IMEI-S.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("Prebuilt SSDT-IMEI"),i("OutboundLink")],1)])]),e._v(" "),i("li",[i("p",[i("a",{attrs:{href:"https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-IMEI.dsl",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-IMEI's source code"),i("OutboundLink")],1)])])]),e._v(" "),i("p",[e._v("With the SSDT done, you're now "),i("RouterLink",{attrs:{to:"/Manual/compile.html"}},[e._v("ready to compile the SSDT!")])],1),e._v(" "),i("h2",{attrs:{id:"wrapping-up"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#wrapping-up"}},[e._v("#")]),e._v(" Wrapping up")]),e._v(" "),i("p",[e._v("Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:")]),e._v(" "),i("ul",[i("li",[i("RouterLink",{attrs:{to:"/cleanup.html"}},[i("strong",[e._v("Cleanup")])])],1)])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/42.974e3b97.js b/assets/js/43.d512c6f3.js similarity index 93% rename from assets/js/42.974e3b97.js rename to assets/js/43.d512c6f3.js index 779f972..650f474 100644 --- a/assets/js/42.974e3b97.js +++ b/assets/js/43.d512c6f3.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[42],{435:function(t,e,r){"use strict";r.r(e);var a=r(25),i=Object(a.a)({},(function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"fixing-imei-prebuilt"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#fixing-imei-prebuilt"}},[t._v("#")]),t._v(" Fixing IMEI: Prebuilt")]),t._v(" "),r("p",[t._v("By far the easiest method, all you need to do is download the following file:")]),t._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-IMEI.aml",target:"_blank",rel:"noopener noreferrer"}},[t._v("SSDT-IMEI.aml"),r("OutboundLink")],1)])]),t._v(" "),r("h2",{attrs:{id:"wrapping-up"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#wrapping-up"}},[t._v("#")]),t._v(" Wrapping up")]),t._v(" "),r("p",[t._v("Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:")]),t._v(" "),r("ul",[r("li",[r("RouterLink",{attrs:{to:"/cleanup.html"}},[r("strong",[t._v("Cleanup")])])],1)])])}),[],!1,null,null,null);e.default=i.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[43],{443:function(t,e,r){"use strict";r.r(e);var a=r(25),i=Object(a.a)({},(function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"fixing-imei-prebuilt"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#fixing-imei-prebuilt"}},[t._v("#")]),t._v(" Fixing IMEI: Prebuilt")]),t._v(" "),r("p",[t._v("By far the easiest method, all you need to do is download the following file:")]),t._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-IMEI.aml",target:"_blank",rel:"noopener noreferrer"}},[t._v("SSDT-IMEI.aml"),r("OutboundLink")],1)])]),t._v(" "),r("h2",{attrs:{id:"wrapping-up"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#wrapping-up"}},[t._v("#")]),t._v(" Wrapping up")]),t._v(" "),r("p",[t._v("Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:")]),t._v(" "),r("ul",[r("li",[r("RouterLink",{attrs:{to:"/cleanup.html"}},[r("strong",[t._v("Cleanup")])])],1)])])}),[],!1,null,null,null);e.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/43.eb33c31c.js b/assets/js/44.51770613.js similarity index 95% rename from assets/js/43.eb33c31c.js rename to assets/js/44.51770613.js index 00829e0..120fa2e 100644 --- a/assets/js/43.eb33c31c.js +++ b/assets/js/44.51770613.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[43],{436:function(e,t,i){"use strict";i.r(t);var s=i(25),a=Object(s.a)({},(function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[i("h1",{attrs:{id:"fixing-imei-ssdt-imei"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#fixing-imei-ssdt-imei"}},[e._v("#")]),e._v(" Fixing IMEI (SSDT-IMEI)")]),e._v(" "),i("ul",[i("li",[i("a",{attrs:{href:"#fixing-imei-ssdt-imei"}},[e._v("Fixing IMEI (SSDT-IMEI)")]),e._v(" "),i("ul",[i("li",[i("a",{attrs:{href:"#what-this-ssdt-does"}},[e._v("What this SSDT does")])]),e._v(" "),i("li",[i("a",{attrs:{href:"#methods-to-make-this-ssdt"}},[e._v("Methods to make this SSDT")])])])])]),e._v(" "),i("h2",{attrs:{id:"what-this-ssdt-does"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#what-this-ssdt-does"}},[e._v("#")]),e._v(" What this SSDT does")]),e._v(" "),i("p",[e._v("The purpose of SSDT-IMEI is:")]),e._v(" "),i("ul",[i("li",[e._v("When mixing Ivy Bridge CPUs with 6 series motherboard, we get an issue where the IMEI device becomes incompatible with macOS. Specifically the device-id won't be recognized and this is a very important issue as macOS relies on the IMEI device for iGPU drivers.\n"),i("ul",[i("li",[e._v("The same applies when mixing Sandy Bridge motherboards with 7 series motherboards")])])]),e._v(" "),i("li",[e._v("An extra issue that may pop up is that the IMEI won't appear in ACPI, which can lead to more issues as macOS expects there to be an ACPI device to apply device-id's. So to resolve, we'll want to verify if we have an IMEI device, and if not create a new device.")])]),e._v(" "),i("h2",{attrs:{id:"methods-to-make-this-ssdt"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#methods-to-make-this-ssdt"}},[e._v("#")]),e._v(" Methods to make this SSDT")]),e._v(" "),i("p",[e._v("For the IMEI fix, there are 2 methods you can choose from:")]),e._v(" "),i("ul",[i("li",[i("RouterLink",{attrs:{to:"/Universal/imei-methods/prebuilt.html"}},[e._v("Prebuilt")]),e._v(" "),i("ul",[i("li",[e._v("The prebuilt are a bit bloated. It's recommended to use the method below.")])])],1),e._v(" "),i("li",[i("RouterLink",{attrs:{to:"/Universal/imei-methods/manual.html"}},[e._v("Manual")])],1)])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[44],{444:function(e,t,i){"use strict";i.r(t);var s=i(25),a=Object(s.a)({},(function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[i("h1",{attrs:{id:"fixing-imei-ssdt-imei"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#fixing-imei-ssdt-imei"}},[e._v("#")]),e._v(" Fixing IMEI (SSDT-IMEI)")]),e._v(" "),i("ul",[i("li",[i("a",{attrs:{href:"#fixing-imei-ssdt-imei"}},[e._v("Fixing IMEI (SSDT-IMEI)")]),e._v(" "),i("ul",[i("li",[i("a",{attrs:{href:"#what-this-ssdt-does"}},[e._v("What this SSDT does")])]),e._v(" "),i("li",[i("a",{attrs:{href:"#methods-to-make-this-ssdt"}},[e._v("Methods to make this SSDT")])])])])]),e._v(" "),i("h2",{attrs:{id:"what-this-ssdt-does"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#what-this-ssdt-does"}},[e._v("#")]),e._v(" What this SSDT does")]),e._v(" "),i("p",[e._v("The purpose of SSDT-IMEI is:")]),e._v(" "),i("ul",[i("li",[e._v("When mixing Ivy Bridge CPUs with 6 series motherboard, we get an issue where the IMEI device becomes incompatible with macOS. Specifically the device-id won't be recognized and this is a very important issue as macOS relies on the IMEI device for iGPU drivers.\n"),i("ul",[i("li",[e._v("The same applies when mixing Sandy Bridge motherboards with 7 series motherboards")])])]),e._v(" "),i("li",[e._v("An extra issue that may pop up is that the IMEI won't appear in ACPI, which can lead to more issues as macOS expects there to be an ACPI device to apply device-id's. So to resolve, we'll want to verify if we have an IMEI device, and if not create a new device.")])]),e._v(" "),i("h2",{attrs:{id:"methods-to-make-this-ssdt"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#methods-to-make-this-ssdt"}},[e._v("#")]),e._v(" Methods to make this SSDT")]),e._v(" "),i("p",[e._v("For the IMEI fix, there are 2 methods you can choose from:")]),e._v(" "),i("ul",[i("li",[i("RouterLink",{attrs:{to:"/Universal/imei-methods/prebuilt.html"}},[e._v("Prebuilt")]),e._v(" "),i("ul",[i("li",[e._v("The prebuilt are a bit bloated. It's recommended to use the method below.")])])],1),e._v(" "),i("li",[i("RouterLink",{attrs:{to:"/Universal/imei-methods/manual.html"}},[e._v("Manual")])],1)])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/44.5c67e15a.js b/assets/js/45.0a48e2aa.js similarity index 90% rename from assets/js/44.5c67e15a.js rename to assets/js/45.0a48e2aa.js index 07f9bea..a3f13ce 100644 --- a/assets/js/44.5c67e15a.js +++ b/assets/js/45.0a48e2aa.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[44],{437:function(t,s,e){"use strict";e.r(s);var i=e(25),o=Object(i.a)({},(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"fixing-irq-conflicts-ssdt-hpet-oc-patches-plist"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#fixing-irq-conflicts-ssdt-hpet-oc-patches-plist"}},[t._v("#")]),t._v(" Fixing IRQ Conflicts (SSDT-HPET + OC_Patches.plist)")]),t._v(" "),e("p",[t._v("So you miss having those fancy hot-patches from Clover like FixIPIC, FixTMR, FixRTC, FixHPET, etc")]),t._v(" "),e("p",[t._v("Well 1 very small problem, figuring out IRQ patching is a massive headache. "),e("strong",[t._v("I highly recommend you use SSDTTime")]),t._v(". So head over to "),e("RouterLink",{attrs:{to:"/ssdt-methods/ssdt-easy.html"}},[t._v("SSDT: Easy Way")]),t._v(" on how to make it.(use option "),e("code",[t._v("C")]),t._v(" to omit conflicting legacy IRQs)")],1)])}),[],!1,null,null,null);s.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[45],{446:function(t,s,e){"use strict";e.r(s);var i=e(25),o=Object(i.a)({},(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"fixing-irq-conflicts-ssdt-hpet-oc-patches-plist"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#fixing-irq-conflicts-ssdt-hpet-oc-patches-plist"}},[t._v("#")]),t._v(" Fixing IRQ Conflicts (SSDT-HPET + OC_Patches.plist)")]),t._v(" "),e("p",[t._v("So you miss having those fancy hot-patches from Clover like FixIPIC, FixTMR, FixRTC, FixHPET, etc")]),t._v(" "),e("p",[t._v("Well 1 very small problem, figuring out IRQ patching is a massive headache. "),e("strong",[t._v("I highly recommend you use SSDTTime")]),t._v(". So head over to "),e("RouterLink",{attrs:{to:"/ssdt-methods/ssdt-easy.html"}},[t._v("SSDT: Easy Way")]),t._v(" on how to make it.(use option "),e("code",[t._v("C")]),t._v(" to omit conflicting legacy IRQs)")],1)])}),[],!1,null,null,null);s.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/45.000b96c8.js b/assets/js/46.ad4481ef.js similarity index 95% rename from assets/js/45.000b96c8.js rename to assets/js/46.ad4481ef.js index fe779ce..b8f6dae 100644 --- a/assets/js/45.000b96c8.js +++ b/assets/js/46.ad4481ef.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[45],{439:function(t,e,a){"use strict";a.r(e);var n=a(25),o=Object(n.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"fixing-nvram-prebuilt"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#fixing-nvram-prebuilt"}},[t._v("#")]),t._v(" Fixing NVRAM: Prebuilt")]),t._v(" "),a("p",[t._v("By far the easiest method, all you need to do is download the following file:")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-PMC.aml",target:"_blank",rel:"noopener noreferrer"}},[t._v("SSDT-PMC.aml"),a("OutboundLink")],1)])]),t._v(" "),a("p",[t._v("Main things to note with this method:")]),t._v(" "),a("ul",[a("li",[t._v("Bit Bloated\n"),a("ul",[a("li",[t._v("There's ACPI naming for most common paths, this means there's added delays in boot times(though unnoticeable to most as it's generally less than 0.5 seconds longer)")])])]),t._v(" "),a("li",[t._v("Doesn't really teach you anything\n"),a("ul",[a("li",[t._v("For most, this doesn't matter. But to some knowing what makes your hackintosh tick is part of the journey")])])])]),t._v(" "),a("h2",{attrs:{id:"wrapping-up"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#wrapping-up"}},[t._v("#")]),t._v(" Wrapping up")]),t._v(" "),a("p",[t._v("Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/cleanup.html"}},[a("strong",[t._v("Cleanup")])])],1)])])}),[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[46],{447:function(t,e,a){"use strict";a.r(e);var n=a(25),o=Object(n.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"fixing-nvram-prebuilt"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#fixing-nvram-prebuilt"}},[t._v("#")]),t._v(" Fixing NVRAM: Prebuilt")]),t._v(" "),a("p",[t._v("By far the easiest method, all you need to do is download the following file:")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-PMC.aml",target:"_blank",rel:"noopener noreferrer"}},[t._v("SSDT-PMC.aml"),a("OutboundLink")],1)])]),t._v(" "),a("p",[t._v("Main things to note with this method:")]),t._v(" "),a("ul",[a("li",[t._v("Bit Bloated\n"),a("ul",[a("li",[t._v("There's ACPI naming for most common paths, this means there's added delays in boot times(though unnoticeable to most as it's generally less than 0.5 seconds longer)")])])]),t._v(" "),a("li",[t._v("Doesn't really teach you anything\n"),a("ul",[a("li",[t._v("For most, this doesn't matter. But to some knowing what makes your hackintosh tick is part of the journey")])])])]),t._v(" "),a("h2",{attrs:{id:"wrapping-up"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#wrapping-up"}},[t._v("#")]),t._v(" Wrapping up")]),t._v(" "),a("p",[t._v("Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/cleanup.html"}},[a("strong",[t._v("Cleanup")])])],1)])])}),[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/46.222d23e4.js b/assets/js/47.8d5a17e4.js similarity index 93% rename from assets/js/46.222d23e4.js rename to assets/js/47.8d5a17e4.js index 2ad55d9..83bcf19 100644 --- a/assets/js/46.222d23e4.js +++ b/assets/js/47.8d5a17e4.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[46],{440:function(t,e,o){"use strict";o.r(e);var s=o(25),n=Object(s.a)({},(function(){var t=this,e=t.$createElement,o=t._self._c||e;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("h1",{attrs:{id:"fixing-nvram-ssdt-pmc"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#fixing-nvram-ssdt-pmc"}},[t._v("#")]),t._v(" Fixing NVRAM (SSDT-PMC)")]),t._v(" "),o("p",[t._v("The second involves using SSDTTime which automates most of the process. See here on how to use it: "),o("RouterLink",{attrs:{to:"/ssdt-methods/ssdt-easy.html"}},[t._v("SSDTs: Easy Way")])],1),t._v(" "),o("p",[t._v("To get the SSDT-PMC, run the following:")]),t._v(" "),o("ul",[o("li",[o("code",[t._v("7. Dump DSDT")]),t._v(" then run "),o("code",[t._v("5. PMC")])])]),t._v(" "),o("p",[t._v("This will provide you with some files, the main one you care about is SSDT-PMC."),o("strong",[t._v("aml")]),t._v(". The DSDT and .dsl are only left for referencing or verification.")]),t._v(" "),o("p",[t._v("The main things to note with this method:")]),t._v(" "),o("ul",[o("li",[t._v("Doesn't really teach you anything\n"),o("ul",[o("li",[t._v("For most, this doesn't matter. But to some knowing what makes your hackintosh tick is part of the journey")])])])]),t._v(" "),o("h2",{attrs:{id:"wrapping-up"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#wrapping-up"}},[t._v("#")]),t._v(" Wrapping up")]),t._v(" "),o("p",[t._v("Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:")]),t._v(" "),o("ul",[o("li",[o("RouterLink",{attrs:{to:"/cleanup.html"}},[o("strong",[t._v("Cleanup")])])],1)])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[47],{448:function(t,e,o){"use strict";o.r(e);var s=o(25),n=Object(s.a)({},(function(){var t=this,e=t.$createElement,o=t._self._c||e;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("h1",{attrs:{id:"fixing-nvram-ssdt-pmc"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#fixing-nvram-ssdt-pmc"}},[t._v("#")]),t._v(" Fixing NVRAM (SSDT-PMC)")]),t._v(" "),o("p",[t._v("The second involves using SSDTTime which automates most of the process. See here on how to use it: "),o("RouterLink",{attrs:{to:"/ssdt-methods/ssdt-easy.html"}},[t._v("SSDTs: Easy Way")])],1),t._v(" "),o("p",[t._v("To get the SSDT-PMC, run the following:")]),t._v(" "),o("ul",[o("li",[o("code",[t._v("7. Dump DSDT")]),t._v(" then run "),o("code",[t._v("5. PMC")])])]),t._v(" "),o("p",[t._v("This will provide you with some files, the main one you care about is SSDT-PMC."),o("strong",[t._v("aml")]),t._v(". The DSDT and .dsl are only left for referencing or verification.")]),t._v(" "),o("p",[t._v("The main things to note with this method:")]),t._v(" "),o("ul",[o("li",[t._v("Doesn't really teach you anything\n"),o("ul",[o("li",[t._v("For most, this doesn't matter. But to some knowing what makes your hackintosh tick is part of the journey")])])])]),t._v(" "),o("h2",{attrs:{id:"wrapping-up"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#wrapping-up"}},[t._v("#")]),t._v(" Wrapping up")]),t._v(" "),o("p",[t._v("Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:")]),t._v(" "),o("ul",[o("li",[o("RouterLink",{attrs:{to:"/cleanup.html"}},[o("strong",[t._v("Cleanup")])])],1)])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/47.46ce7b70.js b/assets/js/48.a117fcc0.js similarity index 94% rename from assets/js/47.46ce7b70.js rename to assets/js/48.a117fcc0.js index cf55b45..d2557f8 100644 --- a/assets/js/47.46ce7b70.js +++ b/assets/js/48.a117fcc0.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[47],{441:function(t,s,e){"use strict";e.r(s);var a=e(25),i=Object(a.a)({},(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"fixing-nvram-ssdt-pmc"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#fixing-nvram-ssdt-pmc"}},[t._v("#")]),t._v(" Fixing NVRAM (SSDT-PMC)")]),t._v(" "),e("ul",[e("li",[e("a",{attrs:{href:"#what-this-ssdt-does"}},[t._v("What this SSDT does")])]),t._v(" "),e("li",[e("a",{attrs:{href:"#methods-to-make-this-ssdt"}},[t._v("Methods to make this SSDT")])])]),t._v(" "),e("h2",{attrs:{id:"what-this-ssdt-does"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#what-this-ssdt-does"}},[t._v("#")]),t._v(" What this SSDT does")]),t._v(" "),e("p",[t._v('This SSDT is required for all "true" 300 series motherboards(Z370 is excluded), it specifically brings back NVRAM support and requires very little configuration for the end user.')]),t._v(" "),e("ul",[e("li",[t._v("B360")]),t._v(" "),e("li",[t._v("B365")]),t._v(" "),e("li",[t._v("H310")]),t._v(" "),e("li",[t._v("H370")]),t._v(" "),e("li",[t._v("Z390")])]),t._v(" "),e("p",[t._v("10th gen motherboards "),e("strong",[t._v("do not")]),t._v(" need this SSDT, NVRAM's native on these platforms.")]),t._v(" "),e("h2",{attrs:{id:"methods-to-make-this-ssdt"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#methods-to-make-this-ssdt"}},[t._v("#")]),t._v(" Methods to make this SSDT")]),t._v(" "),e("p",[t._v("The main ways to make this SSDT:")]),t._v(" "),e("ul",[e("li",[e("RouterLink",{attrs:{to:"/Universal/nvram-methods/prebuilt.html"}},[t._v("Prebuilt")])],1),t._v(" "),e("li",[e("RouterLink",{attrs:{to:"/Universal/nvram-methods/ssdttime.html"}},[t._v("SSDTTime")])],1),t._v(" "),e("li",[e("RouterLink",{attrs:{to:"/Universal/nvram-methods/manual.html"}},[t._v("Manual")])],1)])])}),[],!1,null,null,null);s.default=i.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[48],{449:function(t,s,e){"use strict";e.r(s);var a=e(25),i=Object(a.a)({},(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"fixing-nvram-ssdt-pmc"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#fixing-nvram-ssdt-pmc"}},[t._v("#")]),t._v(" Fixing NVRAM (SSDT-PMC)")]),t._v(" "),e("ul",[e("li",[e("a",{attrs:{href:"#what-this-ssdt-does"}},[t._v("What this SSDT does")])]),t._v(" "),e("li",[e("a",{attrs:{href:"#methods-to-make-this-ssdt"}},[t._v("Methods to make this SSDT")])])]),t._v(" "),e("h2",{attrs:{id:"what-this-ssdt-does"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#what-this-ssdt-does"}},[t._v("#")]),t._v(" What this SSDT does")]),t._v(" "),e("p",[t._v('This SSDT is required for all "true" 300 series motherboards(Z370 is excluded), it specifically brings back NVRAM support and requires very little configuration for the end user.')]),t._v(" "),e("ul",[e("li",[t._v("B360")]),t._v(" "),e("li",[t._v("B365")]),t._v(" "),e("li",[t._v("H310")]),t._v(" "),e("li",[t._v("H370")]),t._v(" "),e("li",[t._v("Z390")])]),t._v(" "),e("p",[t._v("10th gen motherboards "),e("strong",[t._v("do not")]),t._v(" need this SSDT, NVRAM's native on these platforms.")]),t._v(" "),e("h2",{attrs:{id:"methods-to-make-this-ssdt"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#methods-to-make-this-ssdt"}},[t._v("#")]),t._v(" Methods to make this SSDT")]),t._v(" "),e("p",[t._v("The main ways to make this SSDT:")]),t._v(" "),e("ul",[e("li",[e("RouterLink",{attrs:{to:"/Universal/nvram-methods/prebuilt.html"}},[t._v("Prebuilt")])],1),t._v(" "),e("li",[e("RouterLink",{attrs:{to:"/Universal/nvram-methods/ssdttime.html"}},[t._v("SSDTTime")])],1),t._v(" "),e("li",[e("RouterLink",{attrs:{to:"/Universal/nvram-methods/manual.html"}},[t._v("Manual")])],1)])])}),[],!1,null,null,null);s.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/48.778817a8.js b/assets/js/49.466af66e.js similarity index 95% rename from assets/js/48.778817a8.js rename to assets/js/49.466af66e.js index 4f8a8e7..cf3a24b 100644 --- a/assets/js/48.778817a8.js +++ b/assets/js/49.466af66e.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[48],{443:function(e,t,r){"use strict";r.r(t);var a=r(25),n=Object(a.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"fixing-power-management-prebuilt"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#fixing-power-management-prebuilt"}},[e._v("#")]),e._v(" Fixing Power Management: Prebuilt")]),e._v(" "),r("p",[e._v("By far the easiest way to get SSDT-PLUG is just downloading the below file:")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-PLUG-DRTNIA.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-PLUG-DRTNIA.aml"),r("OutboundLink")],1)])]),e._v(" "),r("p",[e._v("This prebuilt file is just a precompiled version of "),r("a",{attrs:{href:"https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-PLUG.dsl",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-PLUG"),r("OutboundLink")],1),e._v(" provided by Acidanthera.")]),e._v(" "),r("p",[e._v("The main things to note with this method:")]),e._v(" "),r("ul",[r("li",[e._v("Quite Bloated\n"),r("ul",[r("li",[e._v("There's ACPI naming for every type, this means there's added delays in boot times(though unnoticeable to most as it's generally 0.5 seconds longer)")])])]),e._v(" "),r("li",[e._v("Doesn't really teach you anything\n"),r("ul",[r("li",[e._v("For most, this doesn't matter. But to some knowing what makes your hackintosh tick is part of the journey")])])])]),e._v(" "),r("h2",{attrs:{id:"wrapping-up"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#wrapping-up"}},[e._v("#")]),e._v(" Wrapping up")]),e._v(" "),r("p",[e._v("Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:")]),e._v(" "),r("ul",[r("li",[r("RouterLink",{attrs:{to:"/cleanup.html"}},[r("strong",[e._v("Cleanup")])])],1)])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[49],{452:function(e,t,r){"use strict";r.r(t);var a=r(25),n=Object(a.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"fixing-power-management-prebuilt"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#fixing-power-management-prebuilt"}},[e._v("#")]),e._v(" Fixing Power Management: Prebuilt")]),e._v(" "),r("p",[e._v("By far the easiest way to get SSDT-PLUG is just downloading the below file:")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-PLUG-DRTNIA.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-PLUG-DRTNIA.aml"),r("OutboundLink")],1)])]),e._v(" "),r("p",[e._v("This prebuilt file is just a precompiled version of "),r("a",{attrs:{href:"https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-PLUG.dsl",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-PLUG"),r("OutboundLink")],1),e._v(" provided by Acidanthera.")]),e._v(" "),r("p",[e._v("The main things to note with this method:")]),e._v(" "),r("ul",[r("li",[e._v("Quite Bloated\n"),r("ul",[r("li",[e._v("There's ACPI naming for every type, this means there's added delays in boot times(though unnoticeable to most as it's generally 0.5 seconds longer)")])])]),e._v(" "),r("li",[e._v("Doesn't really teach you anything\n"),r("ul",[r("li",[e._v("For most, this doesn't matter. But to some knowing what makes your hackintosh tick is part of the journey")])])])]),e._v(" "),r("h2",{attrs:{id:"wrapping-up"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#wrapping-up"}},[e._v("#")]),e._v(" Wrapping up")]),e._v(" "),r("p",[e._v("Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:")]),e._v(" "),r("ul",[r("li",[r("RouterLink",{attrs:{to:"/cleanup.html"}},[r("strong",[e._v("Cleanup")])])],1)])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/49.e405ef52.js b/assets/js/49.e405ef52.js deleted file mode 100644 index 0ca72d8..0000000 --- a/assets/js/49.e405ef52.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[49],{444:function(e,t,o){"use strict";o.r(t);var a=o(25),r=Object(a.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("h1",{attrs:{id:"fixing-power-management-ssdttime"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#fixing-power-management-ssdttime"}},[e._v("#")]),e._v(" Fixing Power Management: SSDTTime")]),e._v(" "),o("p",[e._v("The second involves using SSDTTime which automates most of the process. See here on how to use it: "),o("RouterLink",{attrs:{to:"/ssdt-methods/ssdt-easy.html"}},[e._v("SSDTs: Easy Way")])],1),e._v(" "),o("p",[e._v("To get the SSDT-PLUG, run the following:")]),e._v(" "),o("ul",[o("li",[o("code",[e._v("7. Dump DSDT")]),e._v(" then run "),o("code",[e._v("3. PluginType")])])]),e._v(" "),o("p",[e._v("This will provide you with some files, the main one you care about is SSDT-PLUG."),o("strong",[e._v("aml")]),e._v(". The DSDT and .dsl are only left for referencing or verification.")]),e._v(" "),o("p",[e._v("The main things to note with this method:")]),e._v(" "),o("ul",[o("li",[e._v("Doesn't work on HEDT and server hardware(ie. X99 and X299)\n"),o("ul",[o("li",[e._v("While the majority following this guide are likely on consumer hardware, those with fancier hardware will need to either use the "),o("a",{attrs:{href:"#prebuilts"}},[e._v("Prebuilt")]),e._v(" or "),o("a",{attrs:{href:"#manual"}},[e._v("Manual")]),e._v(" method")])])]),e._v(" "),o("li",[e._v("Doesn't really teach you anything\n"),o("ul",[o("li",[e._v("For most, this doesn't matter. But to some knowing what makes your hackintosh tick is part of the journey")])])])]),e._v(" "),o("h2",{attrs:{id:"wrapping-up"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#wrapping-up"}},[e._v("#")]),e._v(" Wrapping up")]),e._v(" "),o("p",[e._v("Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:")]),e._v(" "),o("ul",[o("li",[o("RouterLink",{attrs:{to:"/cleanup.html"}},[o("strong",[e._v("Cleanup")])])],1)])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/5.83388ab5.js b/assets/js/5.83388ab5.js new file mode 100644 index 0000000..a4dd574 --- /dev/null +++ b/assets/js/5.83388ab5.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[5],{317:function(t,e,a){t.exports=a.p+"assets/img/lpc.bfa9cf23.png"},318:function(t,e,a){t.exports=a.p+"assets/img/pci0.4477f361.png"},380:function(t,e,a){t.exports=a.p+"assets/img/ACPI000E.f11d4625.png"},381:function(t,e,a){t.exports=a.p+"assets/img/PNP0B00.cd0c5876.png"},382:function(t,e,a){t.exports=a.p+"assets/img/ssdt-before.b9b19f9b.png"},383:function(t,e,a){t.exports=a.p+"assets/img/ssdt-after.3d0ae705.png"},434:function(t,e,a){"use strict";a.r(e);var s=a(25),n=Object(s.a)({},(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"fixing-system-clocks-manual"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#fixing-system-clocks-manual"}},[t._v("#")]),t._v(" Fixing System Clocks: Manual")]),t._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#determining-which-ssdt-you-need"}},[t._v("Determining which SSDT you need")])]),t._v(" "),s("li",[s("a",{attrs:{href:"#rtc0-method"}},[t._v("RTC0 Method")]),t._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#finding-the-acpi-path"}},[t._v("Finding the ACPI path")])]),t._v(" "),s("li",[s("a",{attrs:{href:"#edits-to-the-sample-ssdt"}},[t._v("Edits to the sample SSDT")])]),t._v(" "),s("li",[s("a",{attrs:{href:"#compiling-the-ssdt"}},[t._v("Compiling the SSDT")])])])]),t._v(" "),s("li",[s("a",{attrs:{href:"#wrapping-up"}},[t._v("Wrapping up")])])]),t._v(" "),s("h2",{attrs:{id:"determining-which-ssdt-you-need"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#determining-which-ssdt-you-need"}},[t._v("#")]),t._v(" Determining which SSDT you need")]),t._v(" "),s("ul",[s("li",[s("strong",[t._v("Note")]),t._v(": X99 and X299 see "),s("RouterLink",{attrs:{to:"/Universal/awac-methods/manual-hedt.html"}},[t._v("here")])],1)]),t._v(" "),s("p",[t._v("Finding which SSDT you need is quite easy actually, first open your decompiled DSDT you got from "),s("RouterLink",{attrs:{to:"/Manual/dump.html"}},[t._v("Dumping the DSDT")]),t._v(" and "),s("RouterLink",{attrs:{to:"/Manual/compile.html"}},[t._v("Decompiling and Compiling")]),t._v(" with either maciASL(if in macOS) or any other text editor if in Windows or Linux(VSCode has an "),s("a",{attrs:{href:"https://marketplace.visualstudio.com/items?itemName=Thog.vscode-asl",target:"_blank",rel:"noopener noreferrer"}},[t._v("ACPI extension"),s("OutboundLink")],1),t._v(" that can also help).")],1),t._v(" "),s("p",[t._v("Next search for "),s("code",[t._v("ACPI000E")]),t._v(". You should get something similar:")]),t._v(" "),s("p",[s("img",{attrs:{src:a(380),alt:""}})]),t._v(" "),s("p",[t._v("The above tells us a few things:")]),t._v(" "),s("ul",[s("li",[t._v("We in fact do have an AWAC clock\n"),s("ul",[s("li",[t._v("If nothing shows up, you don't need to do anything for AWAC or RTC")])])]),t._v(" "),s("li",[t._v("It can be easily disabled with STAS(if not, you can skip to here: "),s("a",{attrs:{href:"#rtc0-method"}},[t._v("RTC0 Method")]),t._v(")\n"),s("ul",[s("li",[s("code",[t._v("_STA")]),t._v(" is the device status, with "),s("code",[t._v("Zero")]),t._v(" meaning it won't show up")])])])]),t._v(" "),s("p",[t._v("But to double check, next search for "),s("code",[t._v("PNP0B00")]),t._v(":")]),t._v(" "),s("p",[s("img",{attrs:{src:a(381),alt:""}})]),t._v(" "),s("p",[t._v("And looks at that, we can in fact disable our AWAC and enable the RTC! If not skip to here: "),s("a",{attrs:{href:"#rtc0-method"}},[t._v("RTC0 Method")])]),t._v(" "),s("p",[t._v("Now it's as simple as grabbing "),s("a",{attrs:{href:"https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-AWAC.dsl",target:"_blank",rel:"noopener noreferrer"}},[t._v("SSDT-AWAC.dsl"),s("OutboundLink")],1),t._v(" and "),s("a",{attrs:{href:"#compiling-the-ssdt"}},[t._v("compile")]),t._v(", no changes needed You can also use the below SSDT to the same effect:")]),t._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-AWAC.aml",target:"_blank",rel:"noopener noreferrer"}},[t._v("SSDT-AWAC.aml"),s("OutboundLink")],1)])]),t._v(" "),s("h2",{attrs:{id:"rtc0-method"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#rtc0-method"}},[t._v("#")]),t._v(" RTC0 Method")]),t._v(" "),s("p",[t._v("This method is for those who either don't have a "),s("code",[t._v("PNP0B00")]),t._v(" device to re-enable or have no easy way(via STAS variable).")]),t._v(" "),s("h3",{attrs:{id:"finding-the-acpi-path"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#finding-the-acpi-path"}},[t._v("#")]),t._v(" Finding the ACPI path")]),t._v(" "),s("p",[t._v("Assuming you've gotten your DSDT already opened from earlier, search for the following:")]),t._v(" "),s("ul",[s("li",[t._v("Finding the LowPinCount path:\n"),s("ul",[s("li",[t._v("Search "),s("code",[t._v("Name (_ADR, 0x001F0000)")])])])]),t._v(" "),s("li",[t._v("Finding the PCI path:\n"),s("ul",[s("li",[t._v("Search "),s("code",[t._v("PNP0A08")]),t._v(" (If multiple show up, use the first one)")])])])]),t._v(" "),s("p",[t._v("You should get something like the following show up:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",{staticStyle:{"text-align":"center"}},[t._v("LPC Pathing")]),t._v(" "),s("th",{staticStyle:{"text-align":"center"}},[t._v("PCI Pathing")])])]),t._v(" "),s("tbody",[s("tr",[s("td",{staticStyle:{"text-align":"center"}},[s("img",{attrs:{src:a(317),alt:""}})]),t._v(" "),s("td",{staticStyle:{"text-align":"center"}},[s("img",{attrs:{src:a(318),alt:""}})])])])]),t._v(" "),s("p",[t._v("From the above, we can see we have both "),s("code",[t._v("PCI0")]),t._v(" and "),s("code",[t._v("LPC")]),t._v(". Now we can head to the next stage")]),t._v(" "),s("h3",{attrs:{id:"edits-to-the-sample-ssdt"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#edits-to-the-sample-ssdt"}},[t._v("#")]),t._v(" Edits to the sample SSDT")]),t._v(" "),s("p",[t._v("Now that we have our ACPI path, lets grab our SSDT and get to work:")]),t._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-RTC0.dsl",target:"_blank",rel:"noopener noreferrer"}},[t._v("SSDT-RTC0.dsl"),s("OutboundLink")],1)])]),t._v(" "),s("p",[t._v("By default, this uses "),s("code",[t._v("PCI0.LPCB")]),t._v(" for the pathing. you'll want to rename accordingly.")]),t._v(" "),s("p",[t._v("Following the example from above, we'll be renaming it to "),s("code",[t._v("PCI0.LPC")]),t._v(":")]),t._v(" "),s("p",[s("strong",[t._v("Before")]),t._v(":")]),t._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[t._v("External (_SB_.PCI0.LPCB, DeviceObj) <- Rename this\n\nScope (_SB.PCI0.LPCB) <- Rename this\n")])])]),s("p",[s("img",{attrs:{src:a(382),alt:""}})]),t._v(" "),s("p",[t._v("Following the example pathing we found, the SSDT should look something like this:")]),t._v(" "),s("p",[s("strong",[t._v("After")]),t._v(":")]),t._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[t._v("External (_SB_.PCI0.LPC, DeviceObj) <- Renamed\n\nScope (_SB.PCI0.LPC) <- Renamed\n")])])]),s("p",[s("img",{attrs:{src:a(383),alt:""}})]),t._v(" "),s("h3",{attrs:{id:"compiling-the-ssdt"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#compiling-the-ssdt"}},[t._v("#")]),t._v(" Compiling the SSDT")]),t._v(" "),s("p",[t._v("With the SSDT done, you're now "),s("RouterLink",{attrs:{to:"/Manual/compile.html"}},[t._v("ready to compile the SSDT!")])],1),t._v(" "),s("h2",{attrs:{id:"wrapping-up"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#wrapping-up"}},[t._v("#")]),t._v(" Wrapping up")]),t._v(" "),s("p",[t._v("Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:")]),t._v(" "),s("ul",[s("li",[s("RouterLink",{attrs:{to:"/cleanup.html"}},[s("strong",[t._v("Cleanup")])])],1)])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/50.4fd286f7.js b/assets/js/50.4fd286f7.js new file mode 100644 index 0000000..92afe68 --- /dev/null +++ b/assets/js/50.4fd286f7.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[50],{451:function(e,t,o){"use strict";o.r(t);var n=o(25),s=Object(n.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("h1",{attrs:{id:"fixing-power-management-ssdttime"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#fixing-power-management-ssdttime"}},[e._v("#")]),e._v(" Fixing Power Management: SSDTTime")]),e._v(" "),o("p",[e._v("The second involves using SSDTTime which automates most of the process. See here on how to use it: "),o("RouterLink",{attrs:{to:"/ssdt-methods/ssdt-easy.html"}},[e._v("SSDTs: Easy Way")])],1),e._v(" "),o("p",[e._v("To get the SSDT-PLUG, run the following:")]),e._v(" "),o("ul",[o("li",[o("code",[e._v("7. Dump DSDT")]),e._v(" then run "),o("code",[e._v("3. PluginType")])])]),e._v(" "),o("p",[e._v("This will provide you with some files, the main one you care about is SSDT-PLUG."),o("strong",[e._v("aml")]),e._v(". The DSDT and .dsl are only left for referencing or verification.")]),e._v(" "),o("p",[e._v("The main things to note with this method:")]),e._v(" "),o("ul",[o("li",[e._v("Doesn't really teach you anything\n"),o("ul",[o("li",[e._v("For most, this doesn't matter. But to some knowing what makes your hackintosh tick is part of the journey")])])])]),e._v(" "),o("h2",{attrs:{id:"wrapping-up"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#wrapping-up"}},[e._v("#")]),e._v(" Wrapping up")]),e._v(" "),o("p",[e._v("Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:")]),e._v(" "),o("ul",[o("li",[o("RouterLink",{attrs:{to:"/cleanup.html"}},[o("strong",[e._v("Cleanup")])])],1)])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/assets/js/50.12928cf7.js b/assets/js/51.07d8948f.js similarity index 64% rename from assets/js/50.12928cf7.js rename to assets/js/51.07d8948f.js index 39ac204..59240a1 100644 --- a/assets/js/50.12928cf7.js +++ b/assets/js/51.07d8948f.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[50],{445:function(t,e,s){"use strict";s.r(e);var a=s(25),o=Object(a.a)({},(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"fixing-power-management-ssdt-plug"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#fixing-power-management-ssdt-plug"}},[t._v("#")]),t._v(" Fixing Power Management (SSDT-PLUG)")]),t._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#fixing-power-management-ssdt-plug"}},[t._v("Fixing Power Management (SSDT-PLUG)")]),t._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#what-this-ssdt-does"}},[t._v("What this SSDT does")])]),t._v(" "),s("li",[s("a",{attrs:{href:"#methods-to-make-this-ssdt"}},[t._v("Methods to make this SSDT")])])])])]),t._v(" "),s("h2",{attrs:{id:"what-this-ssdt-does"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#what-this-ssdt-does"}},[t._v("#")]),t._v(" What this SSDT does")]),t._v(" "),s("p",[t._v("The purpose of SSDT-PLUG is to allow the kernel's XCPM(XNU's CPU Power Management) to manage our CPU's power management. It's pretty self explanatory why you'd want this.")]),t._v(" "),s("p",[s("strong",[t._v("Note")]),t._v(": SSDT-PLUG is only compatible with Intel's Haswell and newer CPUs, Sandy Bridge and Ivy Bridge will need to follow the "),s("a",{attrs:{href:"https://dortania.github.io/OpenCore-Post-Install/universal/pm.html#sandy-and-ivy-bridge-power-management",target:"_blank",rel:"noopener noreferrer"}},[t._v("ssdtPRgen method"),s("OutboundLink")],1),t._v("(in post-install) while AMD users should not use this(unless attempting to attach AGPM which is outside the scope of Dortania's guides)")]),t._v(" "),s("h2",{attrs:{id:"methods-to-make-this-ssdt"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#methods-to-make-this-ssdt"}},[t._v("#")]),t._v(" Methods to make this SSDT")]),t._v(" "),s("p",[t._v("For SSDT-PLUG, there are 3 methods you can choose from:")]),t._v(" "),s("ul",[s("li",[s("RouterLink",{attrs:{to:"/Universal/plug-methods/prebuilt.html"}},[t._v("Prebuilt")])],1),t._v(" "),s("li",[s("RouterLink",{attrs:{to:"/Universal/plug-methods/ssdttime.html"}},[t._v("SSDTTime")])],1),t._v(" "),s("li",[s("RouterLink",{attrs:{to:"/Universal/plug-methods/manual.html"}},[t._v("Manual")])],1)])])}),[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[51],{453:function(t,e,s){"use strict";s.r(e);var a=s(25),o=Object(a.a)({},(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"fixing-power-management-ssdt-plug"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#fixing-power-management-ssdt-plug"}},[t._v("#")]),t._v(" Fixing Power Management (SSDT-PLUG)")]),t._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#fixing-power-management-ssdt-plug"}},[t._v("Fixing Power Management (SSDT-PLUG)")]),t._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#what-this-ssdt-does"}},[t._v("What this SSDT does")])]),t._v(" "),s("li",[s("a",{attrs:{href:"#methods-to-make-this-ssdt"}},[t._v("Methods to make this SSDT")])])])])]),t._v(" "),s("h2",{attrs:{id:"what-this-ssdt-does"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#what-this-ssdt-does"}},[t._v("#")]),t._v(" What this SSDT does")]),t._v(" "),s("p",[t._v("The purpose of SSDT-PLUG is to allow the kernel's XCPM(XNU's CPU Power Management) to manage our CPU's power management. It's pretty self explanatory why you'd want this.")]),t._v(" "),s("p",[s("strong",[t._v("Note")]),t._v(": SSDT-PLUG is only compatible with Intel's Haswell and newer CPUs, Sandy Bridge and Ivy Bridge will need to follow the "),s("a",{attrs:{href:"https://dortania.github.io/OpenCore-Post-Install/universal/pm.html#sandy-and-ivy-bridge-power-management",target:"_blank",rel:"noopener noreferrer"}},[t._v("ssdtPRgen method"),s("OutboundLink")],1),t._v("(in post-install) while AMD users should not use this(unless attempting to attach AGPM which is outside the scope of Dortania's guides)")]),t._v(" "),s("ul",[s("li",[t._v("Ivy Bridge-E(HEDT/server) however is supported by XCPM")])]),t._v(" "),s("h2",{attrs:{id:"methods-to-make-this-ssdt"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#methods-to-make-this-ssdt"}},[t._v("#")]),t._v(" Methods to make this SSDT")]),t._v(" "),s("p",[t._v("For SSDT-PLUG, there are 3 methods you can choose from:")]),t._v(" "),s("ul",[s("li",[s("RouterLink",{attrs:{to:"/Universal/plug-methods/prebuilt.html"}},[t._v("Prebuilt")])],1),t._v(" "),s("li",[s("RouterLink",{attrs:{to:"/Universal/plug-methods/ssdttime.html"}},[t._v("SSDTTime")])],1),t._v(" "),s("li",[s("RouterLink",{attrs:{to:"/Universal/plug-methods/manual.html"}},[t._v("Manual")])],1)])])}),[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/51.8cea099a.js b/assets/js/52.6d3d80ab.js similarity index 93% rename from assets/js/51.8cea099a.js rename to assets/js/52.6d3d80ab.js index b655ea6..c148718 100644 --- a/assets/js/51.8cea099a.js +++ b/assets/js/52.6d3d80ab.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[51],{447:function(t,e,r){"use strict";r.r(e);var a=r(25),n=Object(a.a)({},(function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"fixing-usb-prebuilt"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#fixing-usb-prebuilt"}},[t._v("#")]),t._v(" Fixing USB: Prebuilt")]),t._v(" "),r("p",[t._v("By far the easiest method, all you need to do is download the following file:")]),t._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-RHUB.aml",target:"_blank",rel:"noopener noreferrer"}},[t._v("SSDT-RHUB.aml"),r("OutboundLink")],1)])]),t._v(" "),r("h2",{attrs:{id:"wrapping-up"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#wrapping-up"}},[t._v("#")]),t._v(" Wrapping up")]),t._v(" "),r("p",[t._v("Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:")]),t._v(" "),r("ul",[r("li",[r("RouterLink",{attrs:{to:"/cleanup.html"}},[r("strong",[t._v("Cleanup")])])],1)])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[52],{455:function(t,e,r){"use strict";r.r(e);var a=r(25),n=Object(a.a)({},(function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"fixing-usb-prebuilt"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#fixing-usb-prebuilt"}},[t._v("#")]),t._v(" Fixing USB: Prebuilt")]),t._v(" "),r("p",[t._v("By far the easiest method, all you need to do is download the following file:")]),t._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-RHUB.aml",target:"_blank",rel:"noopener noreferrer"}},[t._v("SSDT-RHUB.aml"),r("OutboundLink")],1)])]),t._v(" "),r("h2",{attrs:{id:"wrapping-up"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#wrapping-up"}},[t._v("#")]),t._v(" Wrapping up")]),t._v(" "),r("p",[t._v("Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:")]),t._v(" "),r("ul",[r("li",[r("RouterLink",{attrs:{to:"/cleanup.html"}},[r("strong",[t._v("Cleanup")])])],1)])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/53.b7a62b8d.js b/assets/js/53.b7a62b8d.js new file mode 100644 index 0000000..4814025 --- /dev/null +++ b/assets/js/53.b7a62b8d.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[53],{456:function(t,e,o){"use strict";o.r(e);var s=o(25),i=Object(s.a)({},(function(){var t=this,e=t.$createElement,o=t._self._c||e;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("h1",{attrs:{id:"fixing-rhub-ssdttime"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#fixing-rhub-ssdttime"}},[t._v("#")]),t._v(" Fixing RHUB: SSDTTime")]),t._v(" "),o("p",[t._v("The second involves using SSDTTime which automates most of the process. See here on how to use it: "),o("RouterLink",{attrs:{to:"/ssdt-methods/ssdt-easy.html"}},[t._v("SSDTs: Easy Way")])],1),t._v(" "),o("p",[t._v("To get the SSDT-RHUB, run the following:")]),t._v(" "),o("ul",[o("li",[o("code",[t._v("7. Dump DSDT")]),t._v(" then run "),o("code",[t._v("7. USB Reset")])])]),t._v(" "),o("p",[t._v("This will provide you with some files, the main one you care about is SSDT-USB-Rest."),o("strong",[t._v("aml")]),t._v("(Same file as SSDT-RHUB). The DSDT and .dsl are only left for referencing or verification.")]),t._v(" "),o("p",[t._v("The main things to note with this method:")]),t._v(" "),o("ul",[o("li",[t._v("Doesn't really teach you anything\n"),o("ul",[o("li",[t._v("For most, this doesn't matter. But to some knowing what makes your hackintosh tick is part of the journey")])])])]),t._v(" "),o("h2",{attrs:{id:"wrapping-up"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#wrapping-up"}},[t._v("#")]),t._v(" Wrapping up")]),t._v(" "),o("p",[t._v("Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:")]),t._v(" "),o("ul",[o("li",[o("RouterLink",{attrs:{to:"/cleanup.html"}},[o("strong",[t._v("Cleanup")])])],1)])])}),[],!1,null,null,null);e.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/52.f12bfb37.js b/assets/js/54.8619e447.js similarity index 80% rename from assets/js/52.f12bfb37.js rename to assets/js/54.8619e447.js index 2fe1d3e..ad3a3ef 100644 --- a/assets/js/52.f12bfb37.js +++ b/assets/js/54.8619e447.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[52],{448:function(t,s,e){"use strict";e.r(s);var a=e(25),i=Object(a.a)({},(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"fixing-usb"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#fixing-usb"}},[t._v("#")]),t._v(" Fixing USB")]),t._v(" "),e("ul",[e("li",[e("a",{attrs:{href:"#what-this-ssdt-does"}},[t._v("What this SSDT does")])]),t._v(" "),e("li",[e("a",{attrs:{href:"#methods-to-make-this-ssdt"}},[t._v("Methods to make this SSDT")])])]),t._v(" "),e("h2",{attrs:{id:"what-this-ssdt-does"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#what-this-ssdt-does"}},[t._v("#")]),t._v(" What this SSDT does")]),t._v(" "),e("p",[t._v("So on 400 series motherboards, certain OEMs have broken the ACPI spec and this results in issues when booting into macOS. To fix this, we'll want to turn off the RHUB device and force macOS to manually rebuild the ports.")]),t._v(" "),e("p",[t._v("The following platforms will require fixing:")]),t._v(" "),e("ul",[e("li",[t._v("Mobile Icelake(currently Dell and Lenovo are the 2 known with this issue)")]),t._v(" "),e("li",[t._v("Asus Z490 (Gigabyte and AsRock users are fine, whether MSI currently this is unknown)")])]),t._v(" "),e("h2",{attrs:{id:"methods-to-make-this-ssdt"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#methods-to-make-this-ssdt"}},[t._v("#")]),t._v(" Methods to make this SSDT")]),t._v(" "),e("p",[t._v("For the RHUB fix, there are 2 methods you can choose from:")]),t._v(" "),e("ul",[e("li",[e("RouterLink",{attrs:{to:"/Universal/rhub-methods/prebuilt.html"}},[t._v("Prebuilt")])],1),t._v(" "),e("li",[e("RouterLink",{attrs:{to:"/Universal/rhub-methods/manual.html"}},[t._v("Manual")])],1)])])}),[],!1,null,null,null);s.default=i.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[54],{457:function(t,s,e){"use strict";e.r(s);var a=e(25),i=Object(a.a)({},(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"fixing-usb"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#fixing-usb"}},[t._v("#")]),t._v(" Fixing USB")]),t._v(" "),e("ul",[e("li",[e("a",{attrs:{href:"#what-this-ssdt-does"}},[t._v("What this SSDT does")])]),t._v(" "),e("li",[e("a",{attrs:{href:"#methods-to-make-this-ssdt"}},[t._v("Methods to make this SSDT")])])]),t._v(" "),e("h2",{attrs:{id:"what-this-ssdt-does"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#what-this-ssdt-does"}},[t._v("#")]),t._v(" What this SSDT does")]),t._v(" "),e("p",[t._v("So on 400 series motherboards, certain OEMs have broken the ACPI spec and this results in issues when booting into macOS. To fix this, we'll want to turn off the RHUB device and force macOS to manually rebuild the ports.")]),t._v(" "),e("p",[t._v("The following platforms will require fixing:")]),t._v(" "),e("ul",[e("li",[t._v("Mobile Icelake(currently Dell and Lenovo are the 2 known with this issue)")]),t._v(" "),e("li",[t._v("Asus Z490 (Gigabyte and AsRock users are fine, whether MSI currently this is unknown)")])]),t._v(" "),e("h2",{attrs:{id:"methods-to-make-this-ssdt"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#methods-to-make-this-ssdt"}},[t._v("#")]),t._v(" Methods to make this SSDT")]),t._v(" "),e("p",[t._v("For the RHUB fix, there are 3 methods you can choose from:")]),t._v(" "),e("ul",[e("li",[e("RouterLink",{attrs:{to:"/Universal/rhub-methods/prebuilt.html"}},[t._v("Prebuilt")])],1),t._v(" "),e("li",[e("RouterLink",{attrs:{to:"/Universal/plug-methods/ssdttime.html"}},[t._v("SSDTTime")])],1),t._v(" "),e("li",[e("RouterLink",{attrs:{to:"/Universal/rhub-methods/manual.html"}},[t._v("Manual")])],1)])])}),[],!1,null,null,null);s.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/53.6b9b7188.js b/assets/js/55.552c0e09.js similarity index 96% rename from assets/js/53.6b9b7188.js rename to assets/js/55.552c0e09.js index 9bec1d6..b508e00 100644 --- a/assets/js/53.6b9b7188.js +++ b/assets/js/55.552c0e09.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[53],{450:function(t,s,e){"use strict";e.r(s);var i=e(25),a=Object(i.a)({},(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"fixing-smbus-support-ssdt-sbus-mchc"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#fixing-smbus-support-ssdt-sbus-mchc"}},[t._v("#")]),t._v(" Fixing SMBus support (SSDT-SBUS-MCHC)")]),t._v(" "),e("ul",[e("li",[e("a",{attrs:{href:"#what-this-ssdt-does"}},[t._v("What this SSDT does")])]),t._v(" "),e("li",[e("a",{attrs:{href:"#methods-to-make-this-ssdt"}},[t._v("Methods to make this SSDT")])])]),t._v(" "),e("h2",{attrs:{id:"what-this-ssdt-does"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#what-this-ssdt-does"}},[t._v("#")]),t._v(" What this SSDT does")]),t._v(" "),e("p",[t._v("This section of the guide refers to fixing AppleSMBus support in macOS, what is AppleSMBus? Well this mainly handles the System Management Bus, which has many functions like:")]),t._v(" "),e("ul",[e("li",[t._v("AppleSMBusController\n"),e("ul",[e("li",[t._v("Aids with correct temperature, fan, voltage, ICH, etc readings")])])]),t._v(" "),e("li",[t._v("AppleSMBusPCI\n"),e("ul",[e("li",[t._v("Same idea as AppleSMBusController except for low bandwidth PCI devices")])])]),t._v(" "),e("li",[t._v("Memory Reporting\n"),e("ul",[e("li",[t._v("Aids in proper memory reporting and can aid in getting better kernel panic details if memory related")])])]),t._v(" "),e("li",[t._v("Other things SMBus does: "),e("a",{attrs:{href:"https://en.wikipedia.org/wiki/System_Management_Bus",target:"_blank",rel:"noopener noreferrer"}},[t._v("SMBus wiki"),e("OutboundLink")],1)])]),t._v(" "),e("p",[t._v("For install purposes, this SSDT isn't needed but for post-install it's recommended to put the final touches on your hack.")]),t._v(" "),e("h2",{attrs:{id:"methods-to-make-this-ssdt"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#methods-to-make-this-ssdt"}},[t._v("#")]),t._v(" Methods to make this SSDT")]),t._v(" "),e("p",[t._v("To make this SSDT, you only got 1 method: Doing it manually")]),t._v(" "),e("ul",[e("li",[e("RouterLink",{attrs:{to:"/Universal/smbus-methods/manual.html"}},[t._v("Manual")])],1)])])}),[],!1,null,null,null);s.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[55],{459:function(t,s,e){"use strict";e.r(s);var i=e(25),a=Object(i.a)({},(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"fixing-smbus-support-ssdt-sbus-mchc"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#fixing-smbus-support-ssdt-sbus-mchc"}},[t._v("#")]),t._v(" Fixing SMBus support (SSDT-SBUS-MCHC)")]),t._v(" "),e("ul",[e("li",[e("a",{attrs:{href:"#what-this-ssdt-does"}},[t._v("What this SSDT does")])]),t._v(" "),e("li",[e("a",{attrs:{href:"#methods-to-make-this-ssdt"}},[t._v("Methods to make this SSDT")])])]),t._v(" "),e("h2",{attrs:{id:"what-this-ssdt-does"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#what-this-ssdt-does"}},[t._v("#")]),t._v(" What this SSDT does")]),t._v(" "),e("p",[t._v("This section of the guide refers to fixing AppleSMBus support in macOS, what is AppleSMBus? Well this mainly handles the System Management Bus, which has many functions like:")]),t._v(" "),e("ul",[e("li",[t._v("AppleSMBusController\n"),e("ul",[e("li",[t._v("Aids with correct temperature, fan, voltage, ICH, etc readings")])])]),t._v(" "),e("li",[t._v("AppleSMBusPCI\n"),e("ul",[e("li",[t._v("Same idea as AppleSMBusController except for low bandwidth PCI devices")])])]),t._v(" "),e("li",[t._v("Memory Reporting\n"),e("ul",[e("li",[t._v("Aids in proper memory reporting and can aid in getting better kernel panic details if memory related")])])]),t._v(" "),e("li",[t._v("Other things SMBus does: "),e("a",{attrs:{href:"https://en.wikipedia.org/wiki/System_Management_Bus",target:"_blank",rel:"noopener noreferrer"}},[t._v("SMBus wiki"),e("OutboundLink")],1)])]),t._v(" "),e("p",[t._v("For install purposes, this SSDT isn't needed but for post-install it's recommended to put the final touches on your hack.")]),t._v(" "),e("h2",{attrs:{id:"methods-to-make-this-ssdt"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#methods-to-make-this-ssdt"}},[t._v("#")]),t._v(" Methods to make this SSDT")]),t._v(" "),e("p",[t._v("To make this SSDT, you only got 1 method: Doing it manually")]),t._v(" "),e("ul",[e("li",[e("RouterLink",{attrs:{to:"/Universal/smbus-methods/manual.html"}},[t._v("Manual")])],1)])])}),[],!1,null,null,null);s.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/56.a13c7147.js b/assets/js/56.a13c7147.js new file mode 100644 index 0000000..a4f1e3f --- /dev/null +++ b/assets/js/56.a13c7147.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[56],{461:function(t,e,a){"use strict";a.r(e);var r=a(25),n=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"fixing-uncore-bridges-manual"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#fixing-uncore-bridges-manual"}},[t._v("#")]),t._v(" Fixing Uncore Bridges: Manual")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#finding-the-acpi-path"}},[t._v("Finding the ACPI path")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#edits-to-the-sample-ssdt"}},[t._v("Edits to the sample SSDT")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#compiling-the-ssdt"}},[t._v("Compiling the SSDT")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#wrapping-up"}},[t._v("Wrapping up")])])]),t._v(" "),a("h2",{attrs:{id:"download-the-ssdt"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#download-the-ssdt"}},[t._v("#")]),t._v(" Download the SSDT")]),t._v(" "),a("p",[t._v("Super simple, just grab the SSDT and compile:")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-UNC0.dsl",target:"_blank",rel:"noopener noreferrer"}},[t._v("SSDT-UNC0.dsl"),a("OutboundLink")],1)])]),t._v(" "),a("p",[t._v("See here how to compile: "),a("RouterLink",{attrs:{to:"/Manual/compile.html"}},[t._v("Compiling ACPI")])],1),t._v(" "),a("h2",{attrs:{id:"wrapping-up"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#wrapping-up"}},[t._v("#")]),t._v(" Wrapping up")]),t._v(" "),a("p",[t._v("Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/cleanup.html"}},[a("strong",[t._v("Cleanup")])])],1)])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/56.b131e2a9.js b/assets/js/56.b131e2a9.js deleted file mode 100644 index f73de55..0000000 --- a/assets/js/56.b131e2a9.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[56],{455:function(t,e,s){"use strict";s.r(e);var o=s(25),l=Object(o.a)({},(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"how-to-create-ssdts"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#how-to-create-ssdts"}},[t._v("#")]),t._v(" How to create SSDTs")]),t._v(" "),s("p",[t._v("Creating SSDTs mainly fall into 3 camps:")]),t._v(" "),s("ul",[s("li",[s("RouterLink",{attrs:{to:"/ssdt-methods/ssdt-prebuilt.html"}},[t._v("Prebuilt SSDTs")]),t._v(" "),s("ul",[s("li",[t._v("They're universal but don't teach much")])])],1),t._v(" "),s("li",[s("RouterLink",{attrs:{to:"/ssdt-methods/ssdt-easy.html"}},[t._v("Automated tools")]),t._v(" "),s("ul",[s("li",[t._v("Mainly seen with SSDTTime, work much better than prebuilts as there's less bloat however doesn't teach you much")])])],1),t._v(" "),s("li",[s("RouterLink",{attrs:{to:"/ssdt-methods/ssdt-long.html"}},[t._v("Manually creating them")]),t._v(" "),s("ul",[s("li",[t._v("Will always work, be much cleaner and get to learn about the process")]),t._v(" "),s("li",[t._v("However requires you to deal with code")])])],1)]),t._v(" "),s("p",[t._v("If you're not comfortable with editing and compiling code, we recommend the "),s("RouterLink",{attrs:{to:"/ssdt-methods/ssdt-prebuilt.html"}},[t._v("prebuilt option")])],1)])}),[],!1,null,null,null);e.default=l.exports}}]); \ No newline at end of file diff --git a/assets/js/57.8a120dc0.js b/assets/js/57.8a120dc0.js new file mode 100644 index 0000000..b4e4538 --- /dev/null +++ b/assets/js/57.8a120dc0.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[57],{462:function(e,t,r){"use strict";r.r(t);var a=r(25),n=Object(a.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"fixing-uncore-bridges-prebuilt"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#fixing-uncore-bridges-prebuilt"}},[e._v("#")]),e._v(" Fixing Uncore Bridges: Prebuilt")]),e._v(" "),r("p",[e._v("By far the easiest method, all you need to do is download the following file:")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-UNC0.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-UNC0.aml"),r("OutboundLink")],1)])]),e._v(" "),r("h2",{attrs:{id:"wrapping-up"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#wrapping-up"}},[e._v("#")]),e._v(" Wrapping up")]),e._v(" "),r("p",[e._v("Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:")]),e._v(" "),r("ul",[r("li",[r("RouterLink",{attrs:{to:"/cleanup.html"}},[r("strong",[e._v("Cleanup")])])],1)])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/57.fc8600de.js b/assets/js/57.fc8600de.js deleted file mode 100644 index e109f0c..0000000 --- a/assets/js/57.fc8600de.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[57],{456:function(t,e,a){"use strict";a.r(e);var r=a(25),o=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"pre-built-ssdts"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#pre-built-ssdts"}},[t._v("#")]),t._v(" Pre-Built SSDTs")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#power-management"}},[t._v("Power Management")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#b550-fix"}},[t._v("B550 fix")])])])]),t._v(" "),a("li",[a("a",{attrs:{href:"#embedded-controllers"}},[t._v("Embedded Controllers")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#trackpad"}},[t._v("Trackpad")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#backlight"}},[t._v("Backlight")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#system-clockawac"}},[t._v("System Clock(AWAC)")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#nvrampmc"}},[t._v("NVRAM(PMC)")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#usbrhub"}},[t._v("USB(RHUB)")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#imei"}},[t._v("IMEI")])])]),t._v(" "),a("p",[t._v("This is mainly for users who are having troubles either compiling, decompiling or understanding the overall process of ACPI. The main reasons you'd want to avoid is for the following:")]),t._v(" "),a("ul",[a("li",[t._v("Slowing down the boot process\n"),a("ul",[a("li",[t._v("Mainly because these SSDTs have to go through every possible pathing")]),t._v(" "),a("li",[t._v("At most, this only adds 2 seconds to the boot process, and does not affect macOS itself")])])]),t._v(" "),a("li",[t._v("Doesn't always work\n"),a("ul",[a("li",[t._v("The SSDTs provided can only handle so many situations, and some may in fact not work")]),t._v(" "),a("li",[t._v("Mainly seen with SSDT-AWAC, as it assumes there is a way the RTC can be easily enabled")])])]),t._v(" "),a("li",[t._v("Teaches nothing\n"),a("ul",[a("li",[t._v("This is the "),a("strong",[t._v("biggest")]),t._v(" issue as you have no real idea on how to troubleshoot or how to make these files down the line")])])])]),t._v(" "),a("p",[t._v("Please refer to "),a("RouterLink",{attrs:{to:"/ssdt-platform.html"}},[t._v("Choosing the SSDTs")]),t._v(" page for which your system needs.")],1),t._v(" "),a("h2",{attrs:{id:"power-management"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#power-management"}},[t._v("#")]),t._v(" Power Management")]),t._v(" "),a("p",[t._v("For Haswell and newer:")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-PLUG-DRTNIA.aml",target:"_blank",rel:"noopener noreferrer"}},[t._v("SSDT-PLUG-DRTNIA"),a("OutboundLink")],1)])]),t._v(" "),a("p",[t._v("For Ivy Bridge and older, see the "),a("a",{attrs:{href:"https://dortania.github.io/OpenCore-Post-Install/universal/pm.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("Optimizing Power Management page"),a("OutboundLink")],1),t._v(". This will be done "),a("em",[t._v("after")]),t._v(" install. AMD CPU users "),a("strong",[t._v("do not")]),t._v(" need any SSDTs for power management.")]),t._v(" "),a("h3",{attrs:{id:"b550-and-a520-fix"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#b550-and-a520-fix"}},[t._v("#")]),t._v(" B550 and A520 Fix")]),t._v(" "),a("p",[t._v("For AMD B550 and A520 users, you "),a("strong",[t._v("must")]),t._v(" include this SSDT to boot:")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-CPUR.aml",target:"_blank",rel:"noopener noreferrer"}},[t._v("SSDT-CPUR"),a("OutboundLink")],1)])]),t._v(" "),a("p",[t._v("Note that X570 and older boards do not need this SSDT.")]),t._v(" "),a("h2",{attrs:{id:"embedded-controllers"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#embedded-controllers"}},[t._v("#")]),t._v(" Embedded Controllers")]),t._v(" "),a("p",[t._v("For desktops:")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-EC-USBX-DESKTOP.aml",target:"_blank",rel:"noopener noreferrer"}},[t._v("SSDT-EC-USBX-DESKTOP"),a("OutboundLink")],1),t._v(" "),a("ul",[a("li",[t._v("For Skylake and newer and all AMD systems.")])])]),t._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-EC-DESKTOP.aml",target:"_blank",rel:"noopener noreferrer"}},[t._v("SSDT-EC-DESKTOP"),a("OutboundLink")],1),t._v(" "),a("ul",[a("li",[t._v("For Broadwell and older.")])])])]),t._v(" "),a("p",[t._v("For laptops:")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-EC-USBX-LAPTOP.aml",target:"_blank",rel:"noopener noreferrer"}},[t._v("SSDT-EC-USBX-LAPTOP"),a("OutboundLink")],1),t._v(" "),a("ul",[a("li",[t._v("For Skylake and newer.")])])]),t._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-EC-LAPTOP.aml",target:"_blank",rel:"noopener noreferrer"}},[t._v("SSDT-EC-LAPTOP"),a("OutboundLink")],1),t._v(" "),a("ul",[a("li",[t._v("For Broadwell and older.")])])])]),t._v(" "),a("h2",{attrs:{id:"trackpad"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#trackpad"}},[t._v("#")]),t._v(" Trackpad")]),t._v(" "),a("p",[t._v("Used for enabling Windows only features in macOS with I2C trackpads, do note that the below patches will more than likely break Windows booting via OpenCore(this issue is mitigated if booting by BIOS instead). We "),a("strong",[t._v("highly")]),t._v(" encourage you to make one yourself to prevent any issues down the line: "),a("RouterLink",{attrs:{to:"/Laptops/trackpad.html"}},[t._v("Trackpad GPI0")])],1),t._v(" "),a("p",[t._v("Note that PS2 keyboards and trackpads shouldn't need this SSDT+Patch.")]),t._v(" "),a("ul",[a("li",[a("p",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-XOSI.aml",target:"_blank",rel:"noopener noreferrer"}},[t._v("SSDT-XOSI"),a("OutboundLink")],1)])]),t._v(" "),a("li",[a("p",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/XOSI-Rename.plist",target:"_blank",rel:"noopener noreferrer"}},[t._v("XOSI-Rename.plist"),a("OutboundLink")],1)]),t._v(" "),a("ul",[a("li",[t._v("Note you'll need to add this into your config.plist under "),a("code",[t._v("ACPI -> Patch")]),t._v(":")])])])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Comment")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("String")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Change _OSI to XOSI")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[t._v("Enabled")]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("Boolean")]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("YES")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[t._v("Count")]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("Number")]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("0")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[t._v("Limit")]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("Number")]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("0")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[t._v("Find")]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("Data")]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("5f4f5349")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[t._v("Replace")]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("Data")]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("584f5349")])])])]),t._v(" "),a("h2",{attrs:{id:"backlight"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#backlight"}},[t._v("#")]),t._v(" Backlight")]),t._v(" "),a("p",[t._v("For laptops and all-in-one desktops, fixies brightness control support")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-PNLF.aml",target:"_blank",rel:"noopener noreferrer"}},[t._v("SSDT-PNLF"),a("OutboundLink")],1),t._v(" "),a("ul",[a("li",[t._v("For most users.")])])]),t._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-PNLF-CFL.aml",target:"_blank",rel:"noopener noreferrer"}},[t._v("SSDT-PNLF-CFL"),a("OutboundLink")],1),t._v(" "),a("ul",[a("li",[t._v("For Coffee Lake and newer.")])])])]),t._v(" "),a("h2",{attrs:{id:"system-clock-awac"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#system-clock-awac"}},[t._v("#")]),t._v(" System Clock(AWAC)")]),t._v(" "),a("p",[t._v("Mainly needed for newer systems running AWAC based system clocks, mainly relevant for Z390 and newer(Gigabyte and AsRock however did back-port it to Z370 with a BIOS update)")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-AWAC.aml",target:"_blank",rel:"noopener noreferrer"}},[t._v("SSDT-AWAC"),a("OutboundLink")],1)])]),t._v(" "),a("p",[t._v("The biggest issue with this prebuilt is that we're just guessing you both have an AWAC clock and that it can be turned off, I "),a("strong",[t._v("highly")]),t._v(" encourage you to make one yourself to really know whether you both need this and if it's going to work: "),a("RouterLink",{attrs:{to:"/Universal/awac.html"}},[t._v("AWAC vs RTC")])],1),t._v(" "),a("h2",{attrs:{id:"nvram-pmc"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#nvram-pmc"}},[t._v("#")]),t._v(" NVRAM(PMC)")]),t._v(" "),a("p",[t._v("Needed to bring back NVRAM support for Z390 , "),a("strong",[t._v("DO NOT USE ON Z370 or older or Z490 and newer")])]),t._v(" "),a("p",[t._v("Note: Comet Lake, Ice Lake and newer do not need this.")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-PMC.aml",target:"_blank",rel:"noopener noreferrer"}},[t._v("SSDT-PMC"),a("OutboundLink")],1)])]),t._v(" "),a("p",[t._v("Reminder only the following need this SSDT:")]),t._v(" "),a("ul",[a("li",[t._v("B360")]),t._v(" "),a("li",[t._v("B365")]),t._v(" "),a("li",[t._v("H310")]),t._v(" "),a("li",[t._v("H370")]),t._v(" "),a("li",[t._v("Z390")])]),t._v(" "),a("h2",{attrs:{id:"usb-rhub"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#usb-rhub"}},[t._v("#")]),t._v(" USB(RHUB)")]),t._v(" "),a("p",[t._v("Needed for 10th gen Asus motherboards, Gigabyte and AsRock motherboards don't need this:")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-RHUB.aml",target:"_blank",rel:"noopener noreferrer"}},[t._v("SSDT-RHUB.aml"),a("OutboundLink")],1)])]),t._v(" "),a("h2",{attrs:{id:"imei"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#imei"}},[t._v("#")]),t._v(" IMEI")]),t._v(" "),a("p",[t._v("Required when pairing either:")]),t._v(" "),a("ul",[a("li",[a("p",[t._v("Sandy Bridge CPU with 7 series motherboard")]),t._v(" "),a("ul",[a("li",[t._v("ie. B75, Q75, Z75, H77, Q77, Z77")])])]),t._v(" "),a("li",[a("p",[t._v("Ivy Bridge CPU with 6 series motherboard")]),t._v(" "),a("ul",[a("li",[t._v("ie. H61, B65, Q65, P67, H67, Q67, Z68")])])])]),t._v(" "),a("p",[t._v("Simply grab the following SSDT:")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-IMEI.aml",target:"_blank",rel:"noopener noreferrer"}},[t._v("SSDT-IMEI.aml"),a("OutboundLink")],1)])])])}),[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/58.1c2d4fe0.js b/assets/js/58.1c2d4fe0.js new file mode 100644 index 0000000..9a95483 --- /dev/null +++ b/assets/js/58.1c2d4fe0.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[58],{463:function(t,s,e){"use strict";e.r(s);var i=e(25),a=Object(i.a)({},(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"fixing-uncore-bridges-ssdt-unc0"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#fixing-uncore-bridges-ssdt-unc0"}},[t._v("#")]),t._v(" Fixing Uncore Bridges (SSDT-UNC0)")]),t._v(" "),e("ul",[e("li",[e("a",{attrs:{href:"#what-this-ssdt-does"}},[t._v("What this SSDT does")])]),t._v(" "),e("li",[e("a",{attrs:{href:"#methods-to-make-this-ssdt"}},[t._v("Methods to make this SSDT")])])]),t._v(" "),e("h2",{attrs:{id:"what-this-ssdt-does"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#what-this-ssdt-does"}},[t._v("#")]),t._v(" What this SSDT does")]),t._v(" "),e("p",[t._v("This SSDT is required for all X99 and many X79 boards, it specifically disables unused devices in ACPI ensuing IOPCIFamily doesn't kernel panic. This requires very little configuration for the end user.")]),t._v(" "),e("ul",[e("li",[t._v("X79")]),t._v(" "),e("li",[t._v("C602")]),t._v(" "),e("li",[t._v("X99")]),t._v(" "),e("li",[t._v("C612")])]),t._v(" "),e("h2",{attrs:{id:"methods-to-make-this-ssdt"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#methods-to-make-this-ssdt"}},[t._v("#")]),t._v(" Methods to make this SSDT")]),t._v(" "),e("p",[t._v("The main ways to make this SSDT:")]),t._v(" "),e("ul",[e("li",[e("RouterLink",{attrs:{to:"/Universal/unc0-methods/prebuilt.html"}},[t._v("Prebuilt")])],1),t._v(" "),e("li",[e("RouterLink",{attrs:{to:"/Universal/unc0-methods/manual.html"}},[t._v("Manual")])],1)])])}),[],!1,null,null,null);s.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/58.f9416685.js b/assets/js/58.f9416685.js deleted file mode 100644 index a0724a3..0000000 --- a/assets/js/58.f9416685.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[58],{457:function(t,e,a){"use strict";a.r(e);var r=a(25),n=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"what-ssdts-do-each-platform-need"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#what-ssdts-do-each-platform-need"}},[t._v("#")]),t._v(" What SSDTs do each platform need")]),t._v(" "),a("p",[t._v("Please see the "),a("strong",[t._v("specific ACPI section of your config.plist")]),t._v(", all SSDTs needed are covered there with a brief explainer. But here's a very quick TL;DR:")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#what-ssdts-do-each-platform-need"}},[t._v("What SSDTs do each platform need")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#desktop"}},[t._v("Desktop")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#laptop"}},[t._v("Laptop")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#ssdt-creation"}},[t._v("SSDT Creation")])])])])]),t._v(" "),a("h2",{attrs:{id:"desktop"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#desktop"}},[t._v("#")]),t._v(" Desktop")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"center"}},[t._v("Platforms")]),t._v(" "),a("th",{staticStyle:{"text-align":"center"}},[a("strong",[t._v("CPU")])]),t._v(" "),a("th",{staticStyle:{"text-align":"center"}},[a("strong",[t._v("EC")])]),t._v(" "),a("th",{staticStyle:{"text-align":"center"}},[a("strong",[t._v("AWAC")])]),t._v(" "),a("th",{staticStyle:{"text-align":"center"}},[a("strong",[t._v("NVRAM")])]),t._v(" "),a("th",{staticStyle:{"text-align":"center"}},[a("strong",[t._v("USB")])])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Penryn")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"2"}},[t._v("N/A")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"6"}},[a("a",{attrs:{href:"./Universal/ec-fix"}},[t._v("SSDT-EC")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"8"}},[t._v("N/A")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"8"}},[t._v("N/A")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"9"}},[t._v("N/A")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Lynnfield and Clarkdale")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("SandyBridge")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"2"}},[a("a",{attrs:{href:"https://dortania.github.io/OpenCore-Post-Install/universal/pm.html#sandy-and-ivy-bridge-power-management",target:"_blank",rel:"noopener noreferrer"}},[t._v("CPU-PM"),a("OutboundLink")],1),t._v(" (Run in Post-Install)")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Ivy Bridge")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Haswell")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"6"}},[a("a",{attrs:{href:"./Universal/plug"}},[t._v("SSDT-PLUG")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Broadwell")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Skylake")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"6"}},[a("a",{attrs:{href:"./Universal/ec-fix"}},[t._v("SSDT-EC-USBX")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Kaby Lake")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Coffee Lake")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"2"}},[a("a",{attrs:{href:"./Universal/awac"}},[t._v("SSDT-AWAC")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[a("a",{attrs:{href:"./Universal/nvram"}},[t._v("SSDT-PMC")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Comet Lake")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"3"}},[t._v("N/A")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[a("a",{attrs:{href:"./Universal/rhub"}},[t._v("SSDT-RHUB")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("AMD (15/16h)")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("N/A")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("N/A")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("N/A")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("AMD (17h)")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-CPUR.aml",target:"_blank",rel:"noopener noreferrer"}},[t._v("SSDT-CPUR for B550 and A520"),a("OutboundLink")],1)]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("N/A")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("N/A")])])])]),t._v(" "),a("h2",{attrs:{id:"high-end-desktop"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#high-end-desktop"}},[t._v("#")]),t._v(" High End Desktop")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"center"}},[t._v("Platforms")]),t._v(" "),a("th",{staticStyle:{"text-align":"center"}},[a("strong",[t._v("CPU")])]),t._v(" "),a("th",{staticStyle:{"text-align":"center"}},[a("strong",[t._v("EC")])]),t._v(" "),a("th",{staticStyle:{"text-align":"center"}},[a("strong",[t._v("AWAC")])])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Nehalem and Westmere")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("N/A")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"2"}},[a("a",{attrs:{href:"./Universal/ec-fix"}},[t._v("SSDT-EC")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"4"}},[t._v("N/A")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Ivy Bridge-E")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"4"}},[a("a",{attrs:{href:"./Universal/plug"}},[t._v("SSDT-PLUG")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Haswell-E")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"3"}},[a("a",{attrs:{href:"./Universal/ec-fix"}},[t._v("SSDT-EC-USBX")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Broadwell-E")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Skylake-X")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[a("a",{attrs:{href:"./Universal/awac"}},[t._v("SSDT-AWAC")])])])])]),t._v(" "),a("h2",{attrs:{id:"laptop"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#laptop"}},[t._v("#")]),t._v(" Laptop")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"center"}},[t._v("Platforms")]),t._v(" "),a("th",{staticStyle:{"text-align":"center"}},[a("strong",[t._v("CPU")])]),t._v(" "),a("th",{staticStyle:{"text-align":"center"}},[a("strong",[t._v("EC")])]),t._v(" "),a("th",{staticStyle:{"text-align":"center"}},[a("strong",[t._v("Backlight")])]),t._v(" "),a("th",{staticStyle:{"text-align":"center"}},[a("strong",[t._v("I2C Trackpad")])]),t._v(" "),a("th",{staticStyle:{"text-align":"center"}},[a("strong",[t._v("AWAC")])]),t._v(" "),a("th",{staticStyle:{"text-align":"center"}},[a("strong",[t._v("USB")])]),t._v(" "),a("th",{staticStyle:{"text-align":"center"}},[a("strong",[t._v("IRQ")])])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Clarksfield and Arrandale")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("N/A")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"5"}},[a("a",{attrs:{href:"./Universal/ec-fix"}},[t._v("SSDT-EC")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"7"}},[a("a",{attrs:{href:"./Laptops/backlight"}},[t._v("SSDT-PNLF")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"3"}},[t._v("N/A")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"8"}},[t._v("N/A")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"10"}},[t._v("N/A")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"5"}},[a("a",{attrs:{href:"./Universal/irq"}},[t._v("IRQ SSDT")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("SandyBridge")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"2"}},[a("a",{attrs:{href:"https://dortania.github.io/OpenCore-Post-Install/universal/pm.html#sandy-and-ivy-bridge-power-management",target:"_blank",rel:"noopener noreferrer"}},[t._v("CPU-PM"),a("OutboundLink")],1),t._v(" (Run in Post-Install)")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Ivy Bridge")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Haswell")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"8"}},[a("a",{attrs:{href:"./Universal/plug"}},[t._v("SSDT-PLUG")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"8"}},[a("a",{attrs:{href:"./Laptops/trackpad"}},[t._v("SSDT-GPI0")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Broadwell")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Skylake")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"6"}},[a("a",{attrs:{href:"./Universal/ec-fix"}},[t._v("SSDT-EC-USBX")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"6"}},[t._v("N/A")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Kaby Lake")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Coffee Lake (8th Gen) and Whiskey Lake")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"4"}},[a("a",{attrs:{href:"./Laptops/backlight"}},[t._v("SSDT-PNLF-CFL")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Coffee Lake (9th Gen)")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"3"}},[a("a",{attrs:{href:"./Universal/awac"}},[t._v("SSDT-AWAC")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Comet Lake")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Ice Lake")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[a("a",{attrs:{href:"./Universal/rhub"}},[t._v("SSDT-RHUB")])])])])]),t._v(" "),a("p",[t._v("Continuing:")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"center"}},[t._v("Platforms")]),t._v(" "),a("th",{staticStyle:{"text-align":"center"}},[a("strong",[t._v("NVRAM")])]),t._v(" "),a("th",{staticStyle:{"text-align":"center"}},[a("strong",[t._v("IMEI")])])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Clarksfield and Arrandale")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"8"}},[t._v("N/A")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("N/A")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Sandy Bridge")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"2"}},[a("a",{attrs:{href:"./Universal/imei"}},[t._v("SSDT-IMEI")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Ivy Bridge")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Haswell")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"8"}},[t._v("N/A")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Broadwell")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Skylake")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Kaby Lake")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Coffee Lake (8th Gen) and Whiskey Lake")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Coffee Lake (9th Gen)")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[a("a",{attrs:{href:"./Universal/nvram"}},[t._v("SSDT-PMC")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Comet Lake")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"2"}},[t._v("N/A")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Ice Lake")])])])]),t._v(" "),a("h2",{attrs:{id:"ssdt-creation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#ssdt-creation"}},[t._v("#")]),t._v(" "),a("RouterLink",{attrs:{to:"/ssdt-methods/ssdt-methods.html"}},[t._v("SSDT Creation")])],1)])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/54.6c45889c.js b/assets/js/59.0f525a48.js similarity index 95% rename from assets/js/54.6c45889c.js rename to assets/js/59.0f525a48.js index 009ffbd..ab88bf2 100644 --- a/assets/js/54.6c45889c.js +++ b/assets/js/59.0f525a48.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[54],{452:function(e,t,o){"use strict";o.r(t);var n=o(25),i=Object(n.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("h1",{attrs:{id:"cleanup"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#cleanup"}},[e._v("#")]),e._v(" Cleanup")]),e._v(" "),o("p",[e._v("So you've made all your SSDTs but now there's one thing left: Adding them to Opencore")]),e._v(" "),o("p",[e._v("The 2 main locations:")]),e._v(" "),o("ul",[o("li",[e._v("EFI/OC/ACPI (Only ."),o("strong",[e._v("aml")]),e._v(" files, reminder to "),o("RouterLink",{attrs:{to:"/Manual/compile.html"}},[e._v("compile your SSDTs")]),e._v(")")],1),e._v(" "),o("li",[e._v("config.plist -> ACPI -> Add")])]),e._v(" "),o("p",[e._v("You can save yourself some work with the config.plist by running Cmd/Ctrl+R in ProperTree. "),o("strong",[e._v("Reminder do not add your DSDT.aml to your EFI")])]),e._v(" "),o("p",[e._v("For those who do not yet have a config.plist, you'll want to next head back to your respective OpenCore guides and create the config.plist:")]),e._v(" "),o("ul",[o("li",[o("a",{attrs:{href:"https://dortania.github.io/OpenCore-Install-Guide/",target:"_blank",rel:"noopener noreferrer"}},[e._v("OpenCore Install guide"),o("OutboundLink")],1)])]),e._v(" "),o("p",[e._v("Users of "),o("code",[e._v("FixHPET")]),e._v(" will also need to merge oc_patches.plist into their config.plist")]),e._v(" "),o("p",[e._v("Steps to do this:")]),e._v(" "),o("ul",[o("li",[e._v("Open both files,")]),e._v(" "),o("li",[e._v("Delete the "),o("code",[e._v("ACPI -> Patch")]),e._v(" section from config.plist")]),e._v(" "),o("li",[e._v("Copy the "),o("code",[e._v("ACPI -> Patch")]),e._v(" section from patches.plist")]),e._v(" "),o("li",[e._v("Paste into where old patches were in config.plist")])])])}),[],!1,null,null,null);t.default=i.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[59],{464:function(e,t,o){"use strict";o.r(t);var n=o(25),i=Object(n.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("h1",{attrs:{id:"cleanup"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#cleanup"}},[e._v("#")]),e._v(" Cleanup")]),e._v(" "),o("p",[e._v("So you've made all your SSDTs but now there's one thing left: Adding them to Opencore")]),e._v(" "),o("p",[e._v("The 2 main locations:")]),e._v(" "),o("ul",[o("li",[e._v("EFI/OC/ACPI (Only ."),o("strong",[e._v("aml")]),e._v(" files, reminder to "),o("RouterLink",{attrs:{to:"/Manual/compile.html"}},[e._v("compile your SSDTs")]),e._v(")")],1),e._v(" "),o("li",[e._v("config.plist -> ACPI -> Add")])]),e._v(" "),o("p",[e._v("You can save yourself some work with the config.plist by running Cmd/Ctrl+R in ProperTree. "),o("strong",[e._v("Reminder do not add your DSDT.aml to your EFI")])]),e._v(" "),o("p",[e._v("For those who do not yet have a config.plist, you'll want to next head back to your respective OpenCore guides and create the config.plist:")]),e._v(" "),o("ul",[o("li",[o("a",{attrs:{href:"https://dortania.github.io/OpenCore-Install-Guide/",target:"_blank",rel:"noopener noreferrer"}},[e._v("OpenCore Install guide"),o("OutboundLink")],1)])]),e._v(" "),o("p",[e._v("Users of "),o("code",[e._v("FixHPET")]),e._v(" will also need to merge oc_patches.plist into their config.plist")]),e._v(" "),o("p",[e._v("Steps to do this:")]),e._v(" "),o("ul",[o("li",[e._v("Open both files,")]),e._v(" "),o("li",[e._v("Delete the "),o("code",[e._v("ACPI -> Patch")]),e._v(" section from config.plist")]),e._v(" "),o("li",[e._v("Copy the "),o("code",[e._v("ACPI -> Patch")]),e._v(" section from patches.plist")]),e._v(" "),o("li",[e._v("Paste into where old patches were in config.plist")])])])}),[],!1,null,null,null);t.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/5.15232ddf.js b/assets/js/6.ebe90b89.js similarity index 94% rename from assets/js/5.15232ddf.js rename to assets/js/6.ebe90b89.js index 7e4cee8..e4faa69 100644 --- a/assets/js/5.15232ddf.js +++ b/assets/js/6.ebe90b89.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[5],{377:function(e,t,a){e.exports=a.p+"assets/img/pnp.8c2387eb.png"},378:function(e,t,a){e.exports=a.p+"assets/img/ec.dd4b7c64.png"},379:function(e,t,a){e.exports=a.p+"assets/img/ssdt-before.b846f355.png"},380:function(e,t,a){e.exports=a.p+"assets/img/ssdt-after.7996c4b7.png"},381:function(e,t,a){e.exports=a.p+"assets/img/sta.e2d0aed0.png"},431:function(e,t,a){"use strict";a.r(t);var s=a(25),r=Object(s.a)({},(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[s("h1",{attrs:{id:"fixing-embedded-controllers-manual"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#fixing-embedded-controllers-manual"}},[e._v("#")]),e._v(" Fixing Embedded Controllers: Manual")]),e._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#fixing-embedded-controllers-manual"}},[e._v("Fixing Embedded Controllers: Manual")]),e._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#finding-the-acpi-path"}},[e._v("Finding the ACPI path")]),e._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#dsdt"}},[e._v("DSDT")])]),e._v(" "),s("li",[s("a",{attrs:{href:"#devicemanager"}},[e._v("DeviceManager")])])])]),e._v(" "),s("li",[s("a",{attrs:{href:"#edits-to-the-sample-ssdt"}},[e._v("Edits to the sample SSDT")])]),e._v(" "),s("li",[s("a",{attrs:{href:"#edge-cases"}},[e._v("Edge Cases")]),e._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#multiple-pnp0c09s-show-up"}},[e._v("Multiple PNP0C09's show up")])]),e._v(" "),s("li",[s("a",{attrs:{href:"#no-pnp0c09-show-up"}},[e._v("No PNP0C09 show up")])]),e._v(" "),s("li",[s("a",{attrs:{href:"#pnp0c09-already-named-ec"}},[e._v("PNP0C09 already named "),s("code",[e._v("EC")])])]),e._v(" "),s("li",[s("a",{attrs:{href:"#pnp0c09-already-has-an-_sta-method"}},[e._v("PNP0C09 already has an "),s("code",[e._v("_STA")]),e._v(" method")])])])]),e._v(" "),s("li",[s("a",{attrs:{href:"#compiling-the-ssdt"}},[e._v("Compiling the SSDT")])]),e._v(" "),s("li",[s("a",{attrs:{href:"#wrapping-up"}},[e._v("Wrapping up")])])])])]),e._v(" "),s("p",[e._v("TO-DO:")]),e._v(" "),s("ul",[s("li",[e._v("Finish Edge cases and sample SSDT edits")])]),e._v(" "),s("h2",{attrs:{id:"finding-the-acpi-path"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#finding-the-acpi-path"}},[e._v("#")]),e._v(" Finding the ACPI path")]),e._v(" "),s("p",[e._v("To find the ACPI pathing, you have 2 methods:")]),e._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#DSDT"}},[e._v("DSDT")])]),e._v(" "),s("li",[s("a",{attrs:{href:"#devicemanager"}},[e._v("DeviceManager")])])]),e._v(" "),s("h3",{attrs:{id:"dsdt"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#dsdt"}},[e._v("#")]),e._v(" DSDT")]),e._v(" "),s("p",[e._v("Finding the ACPI pathing is quite easy actually, first open your decompiled DSDT you got from "),s("RouterLink",{attrs:{to:"/Manual/dump.html"}},[e._v("Dumping the DSDT")]),e._v(" and "),s("RouterLink",{attrs:{to:"/Manual/compile.html"}},[e._v("Decompiling and Compiling")]),e._v(" with either maciASL(if in macOS) or any other text editor if in Windows or Linux(VSCode has an "),s("a",{attrs:{href:"https://marketplace.visualstudio.com/items?itemName=Thog.vscode-asl",target:"_blank",rel:"noopener noreferrer"}},[e._v("ACPI extension"),s("OutboundLink")],1),e._v(" that can also help).")],1),e._v(" "),s("p",[e._v("Next, search for "),s("code",[e._v("PNP0C09")]),e._v(". You should get something similar:")]),e._v(" "),s("p",[s("img",{attrs:{src:a(377),alt:""}})]),e._v(" "),s("p",[e._v("From the above example we see 2 main things:")]),e._v(" "),s("ul",[s("li",[e._v("Name of our embedded controller\n"),s("ul",[s("li",[e._v("In this case being "),s("code",[e._v("EC0")])])])]),e._v(" "),s("li",[e._v("Pathing of our embedded controller\n"),s("ul",[s("li",[s("code",[e._v("PC00.LPC0")])])])])]),e._v(" "),s("p",[e._v("But now we get into edge case territory, what fun!")]),e._v(" "),s("p",[e._v("The main ones to check for are:")]),e._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#fixing-embedded-controllers-manual"}},[e._v("Fixing Embedded Controllers: Manual")]),e._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#finding-the-acpi-path"}},[e._v("Finding the ACPI path")]),e._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#dsdt"}},[e._v("DSDT")])]),e._v(" "),s("li",[s("a",{attrs:{href:"#devicemanager"}},[e._v("DeviceManager")])])])]),e._v(" "),s("li",[s("a",{attrs:{href:"#edits-to-the-sample-ssdt"}},[e._v("Edits to the sample SSDT")])]),e._v(" "),s("li",[s("a",{attrs:{href:"#edge-cases"}},[e._v("Edge Cases")]),e._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#multiple-pnp0c09s-show-up"}},[e._v("Multiple PNP0C09's show up")])]),e._v(" "),s("li",[s("a",{attrs:{href:"#no-pnp0c09-show-up"}},[e._v("No PNP0C09 show up")])]),e._v(" "),s("li",[s("a",{attrs:{href:"#pnp0c09-already-named-ec"}},[e._v("PNP0C09 already named "),s("code",[e._v("EC")])])]),e._v(" "),s("li",[s("a",{attrs:{href:"#pnp0c09-already-has-an-_sta-method"}},[e._v("PNP0C09 already has an "),s("code",[e._v("_STA")]),e._v(" method")])])])]),e._v(" "),s("li",[s("a",{attrs:{href:"#compiling-the-ssdt"}},[e._v("Compiling the SSDT")])]),e._v(" "),s("li",[s("a",{attrs:{href:"#wrapping-up"}},[e._v("Wrapping up")])])])])]),e._v(" "),s("p",[e._v("If none of the above apply to you, you're ready for the next section:")]),e._v(" "),s("h3",{attrs:{id:"devicemanager"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#devicemanager"}},[e._v("#")]),e._v(" DeviceManager")]),e._v(" "),s("p",[e._v("If you already have Windows installed on this machine, finding the EC pathing is fairly easy.")]),e._v(" "),s("p",[e._v("Start by opening up Device Manager in Windows and looking for a device named "),s("code",[e._v("Embedded Controller")]),e._v(". Once found, click on it and select the "),s("code",[e._v("BIOS device Name")]),e._v(" entry. You should get something like this:")]),e._v(" "),s("p",[s("img",{attrs:{src:a(378),alt:""}})]),e._v(" "),s("p",[e._v("From the above, we can see that our pathing is "),s("code",[e._v("SB.PC00.LPC0.EC0")])]),e._v(" "),s("p",[e._v("Now with the pathing, you can head here: "),s("a",{attrs:{href:"#edits-to-the-sample-ssdt"}},[e._v("Edits to the sample SSDT")])]),e._v(" "),s("h2",{attrs:{id:"edits-to-the-sample-ssdt"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#edits-to-the-sample-ssdt"}},[e._v("#")]),e._v(" Edits to the sample SSDT")]),e._v(" "),s("p",[e._v("Now that we have our ACPI path, lets grab our SSDT and get to work:")]),e._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-EC-USBX.dsl",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-EC-USBX"),s("OutboundLink")],1),e._v(" "),s("ul",[s("li",[e._v("For Skylake and newer and all AMD systems")])])]),e._v(" "),s("li",[s("a",{attrs:{href:"https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-EC.dsl",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-EC"),s("OutboundLink")],1),e._v(" "),s("ul",[s("li",[e._v("For Broadwell and older")])])])]),e._v(" "),s("p",[e._v("Now when opening this SSDT, you'll notice a few things. Mainly:")]),e._v(" "),s("ul",[s("li",[e._v("Some code is commented out\n"),s("ul",[s("li",[e._v("This is code for disabling our EC")]),e._v(" "),s("li",[e._v("Laptops users "),s("strong",[e._v("SHOULD NOT")]),e._v(" uncomment this")])])]),e._v(" "),s("li",[e._v("There's a new EC called "),s("code",[e._v("Device (EC)")]),e._v(" "),s("ul",[s("li",[s("strong",[e._v("DO NOT RENAME THIS")]),e._v(", this will be the EC we give to macOS")])])])]),e._v(" "),s("p",[s("strong",[e._v("Before")]),e._v(":")]),e._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v("External (_SB_.PCI0.LPCB, DeviceObj) <- Rename this\n\nScope (_SB.PCI0.LPCB) <- Rename this\n")])])]),s("p",[s("img",{attrs:{src:a(379),alt:""}})]),e._v(" "),s("p",[e._v("Following the example pathing we found, the SSDT should look something like this:")]),e._v(" "),s("p",[s("strong",[e._v("After")]),e._v(":")]),e._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v("External (_SB_.PC00.LPC0, DeviceObj) <- Renamed\n\nScope (_SB.PC00.LPC0) <- Renamed\n")])])]),s("p",[s("img",{attrs:{src:a(380),alt:""}})]),e._v(" "),s("h2",{attrs:{id:"edge-cases"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#edge-cases"}},[e._v("#")]),e._v(" Edge Cases")]),e._v(" "),s("h3",{attrs:{id:"multiple-pnp0c09-s-show-up"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#multiple-pnp0c09-s-show-up"}},[e._v("#")]),e._v(" Multiple PNP0C09's show up")]),e._v(" "),s("p",[e._v("When multiple PNP0C09 show up, we need to next check for the following properties:")]),e._v(" "),s("ul",[s("li",[s("code",[e._v("_HID")]),e._v(" (Hardware ID)")]),e._v(" "),s("li",[s("code",[e._v("_CRS")]),e._v(" (Current Resource Settings)")]),e._v(" "),s("li",[s("code",[e._v("_GPE")]),e._v(" (General Purpose Events)")])]),e._v(" "),s("p",[e._v("What these signify is whether this PNP0C09 device is real or not, as per the "),s("a",{attrs:{href:"https://uefi.org/sites/default/files/resources/ACPI_6_3_final_Jan30.pdf",target:"_blank",rel:"noopener noreferrer"}},[e._v("ACPI spec"),s("OutboundLink")],1),e._v(". So one's matching the above criteria are the one's we want to disable.")]),e._v(" "),s("ul",[s("li",[e._v("Note: If _STA shows up as well, you'll need to go here: "),s("a",{attrs:{href:"#pnp0c09-already-has-an-sta-method"}},[e._v("PNP0C09 already has an "),s("code",[e._v("_STA")]),e._v(" method")])])]),e._v(" "),s("h3",{attrs:{id:"no-pnp0c09-show-up"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#no-pnp0c09-show-up"}},[e._v("#")]),e._v(" No PNP0C09 show up")]),e._v(" "),s("p",[e._v('When this happens, you\'ll only need to create a "dummy" EC for macOS.')]),e._v(" "),s("p",[e._v('Try searching for any devices named: "LPCB", "LPC0", "LPC", "SBRG", "PX40". If you have any of these, try using the LPC pathing of each of those device in place of the Embedded Controller\'s pathing.')]),e._v(" "),s("p",[e._v("Note that "),s("strong",[e._v("DO NOT")]),e._v(' uncomment the EC disaling code as there are no devices that are considered "EC" in your machine.')]),e._v(" "),s("h3",{attrs:{id:"pnp0c09-already-named-ec"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#pnp0c09-already-named-ec"}},[e._v("#")]),e._v(" PNP0C09 already named "),s("code",[e._v("EC")])]),e._v(" "),s("p",[e._v("Congrats! No need to create an SSDT-EC! However you will still want USBX if you're skylake or newer.")]),e._v(" "),s("p",[e._v("Prebuilt can be grabbed here: "),s("a",{attrs:{href:"https://github.com/dortania/OpenCore-Post-Install/blob/master/extra-files/SSDT-USBX.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-USBX.aml"),s("OutboundLink")],1)]),e._v(" "),s("h3",{attrs:{id:"pnp0c09-already-has-an-sta-method"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#pnp0c09-already-has-an-sta-method"}},[e._v("#")]),e._v(" PNP0C09 already has an "),s("code",[e._v("_STA")]),e._v(" method")]),e._v(" "),s("p",[e._v("This is the equivalent of not having an EC as we can't control it with our SSDT-EC, instead we'll need to create a \"dummy\" EC for macOS. You'll still want to find the PCI and LPC pathing for this device. So follow the guide as if you were creating a laptop SSDT-EC/USBX.")]),e._v(" "),s("p",[e._v("Example of an EC with STA already:")]),e._v(" "),s("p",[s("img",{attrs:{src:a(381),alt:"Credit to rottenpants466"}})]),e._v(" "),s("h2",{attrs:{id:"compiling-the-ssdt"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#compiling-the-ssdt"}},[e._v("#")]),e._v(" Compiling the SSDT")]),e._v(" "),s("p",[e._v("With the SSDT done, you're now "),s("RouterLink",{attrs:{to:"/Manual/compile.html"}},[e._v("ready to compile the SSDT!")])],1),e._v(" "),s("h2",{attrs:{id:"wrapping-up"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#wrapping-up"}},[e._v("#")]),e._v(" Wrapping up")]),e._v(" "),s("p",[e._v("Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:")]),e._v(" "),s("ul",[s("li",[s("RouterLink",{attrs:{to:"/cleanup.html"}},[s("strong",[e._v("Cleanup")])])],1)])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[6],{384:function(e,t,a){e.exports=a.p+"assets/img/pnp.8c2387eb.png"},385:function(e,t,a){e.exports=a.p+"assets/img/ec.dd4b7c64.png"},386:function(e,t,a){e.exports=a.p+"assets/img/ssdt-before.b846f355.png"},387:function(e,t,a){e.exports=a.p+"assets/img/ssdt-after.7996c4b7.png"},388:function(e,t,a){e.exports=a.p+"assets/img/sta.e2d0aed0.png"},439:function(e,t,a){"use strict";a.r(t);var s=a(25),r=Object(s.a)({},(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[s("h1",{attrs:{id:"fixing-embedded-controllers-manual"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#fixing-embedded-controllers-manual"}},[e._v("#")]),e._v(" Fixing Embedded Controllers: Manual")]),e._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#fixing-embedded-controllers-manual"}},[e._v("Fixing Embedded Controllers: Manual")]),e._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#finding-the-acpi-path"}},[e._v("Finding the ACPI path")]),e._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#dsdt"}},[e._v("DSDT")])]),e._v(" "),s("li",[s("a",{attrs:{href:"#devicemanager"}},[e._v("DeviceManager")])])])]),e._v(" "),s("li",[s("a",{attrs:{href:"#edits-to-the-sample-ssdt"}},[e._v("Edits to the sample SSDT")])]),e._v(" "),s("li",[s("a",{attrs:{href:"#edge-cases"}},[e._v("Edge Cases")]),e._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#multiple-pnp0c09s-show-up"}},[e._v("Multiple PNP0C09's show up")])]),e._v(" "),s("li",[s("a",{attrs:{href:"#no-pnp0c09-show-up"}},[e._v("No PNP0C09 show up")])]),e._v(" "),s("li",[s("a",{attrs:{href:"#pnp0c09-already-named-ec"}},[e._v("PNP0C09 already named "),s("code",[e._v("EC")])])]),e._v(" "),s("li",[s("a",{attrs:{href:"#pnp0c09-already-has-an-_sta-method"}},[e._v("PNP0C09 already has an "),s("code",[e._v("_STA")]),e._v(" method")])])])]),e._v(" "),s("li",[s("a",{attrs:{href:"#compiling-the-ssdt"}},[e._v("Compiling the SSDT")])]),e._v(" "),s("li",[s("a",{attrs:{href:"#wrapping-up"}},[e._v("Wrapping up")])])])])]),e._v(" "),s("p",[e._v("TO-DO:")]),e._v(" "),s("ul",[s("li",[e._v("Finish Edge cases and sample SSDT edits")])]),e._v(" "),s("h2",{attrs:{id:"finding-the-acpi-path"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#finding-the-acpi-path"}},[e._v("#")]),e._v(" Finding the ACPI path")]),e._v(" "),s("p",[e._v("To find the ACPI pathing, you have 2 methods:")]),e._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#DSDT"}},[e._v("DSDT")])]),e._v(" "),s("li",[s("a",{attrs:{href:"#devicemanager"}},[e._v("DeviceManager")])])]),e._v(" "),s("h3",{attrs:{id:"dsdt"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#dsdt"}},[e._v("#")]),e._v(" DSDT")]),e._v(" "),s("p",[e._v("Finding the ACPI pathing is quite easy actually, first open your decompiled DSDT you got from "),s("RouterLink",{attrs:{to:"/Manual/dump.html"}},[e._v("Dumping the DSDT")]),e._v(" and "),s("RouterLink",{attrs:{to:"/Manual/compile.html"}},[e._v("Decompiling and Compiling")]),e._v(" with either maciASL(if in macOS) or any other text editor if in Windows or Linux(VSCode has an "),s("a",{attrs:{href:"https://marketplace.visualstudio.com/items?itemName=Thog.vscode-asl",target:"_blank",rel:"noopener noreferrer"}},[e._v("ACPI extension"),s("OutboundLink")],1),e._v(" that can also help).")],1),e._v(" "),s("p",[e._v("Next, search for "),s("code",[e._v("PNP0C09")]),e._v(". You should get something similar:")]),e._v(" "),s("p",[s("img",{attrs:{src:a(384),alt:""}})]),e._v(" "),s("p",[e._v("From the above example we see 2 main things:")]),e._v(" "),s("ul",[s("li",[e._v("Name of our embedded controller\n"),s("ul",[s("li",[e._v("In this case being "),s("code",[e._v("EC0")])])])]),e._v(" "),s("li",[e._v("Pathing of our embedded controller\n"),s("ul",[s("li",[s("code",[e._v("PC00.LPC0")])])])])]),e._v(" "),s("p",[e._v("But now we get into edge case territory, what fun!")]),e._v(" "),s("p",[e._v("The main ones to check for are:")]),e._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#fixing-embedded-controllers-manual"}},[e._v("Fixing Embedded Controllers: Manual")]),e._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#finding-the-acpi-path"}},[e._v("Finding the ACPI path")]),e._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#dsdt"}},[e._v("DSDT")])]),e._v(" "),s("li",[s("a",{attrs:{href:"#devicemanager"}},[e._v("DeviceManager")])])])]),e._v(" "),s("li",[s("a",{attrs:{href:"#edits-to-the-sample-ssdt"}},[e._v("Edits to the sample SSDT")])]),e._v(" "),s("li",[s("a",{attrs:{href:"#edge-cases"}},[e._v("Edge Cases")]),e._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#multiple-pnp0c09s-show-up"}},[e._v("Multiple PNP0C09's show up")])]),e._v(" "),s("li",[s("a",{attrs:{href:"#no-pnp0c09-show-up"}},[e._v("No PNP0C09 show up")])]),e._v(" "),s("li",[s("a",{attrs:{href:"#pnp0c09-already-named-ec"}},[e._v("PNP0C09 already named "),s("code",[e._v("EC")])])]),e._v(" "),s("li",[s("a",{attrs:{href:"#pnp0c09-already-has-an-_sta-method"}},[e._v("PNP0C09 already has an "),s("code",[e._v("_STA")]),e._v(" method")])])])]),e._v(" "),s("li",[s("a",{attrs:{href:"#compiling-the-ssdt"}},[e._v("Compiling the SSDT")])]),e._v(" "),s("li",[s("a",{attrs:{href:"#wrapping-up"}},[e._v("Wrapping up")])])])])]),e._v(" "),s("p",[e._v("If none of the above apply to you, you're ready for the next section:")]),e._v(" "),s("h3",{attrs:{id:"devicemanager"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#devicemanager"}},[e._v("#")]),e._v(" DeviceManager")]),e._v(" "),s("p",[e._v("If you already have Windows installed on this machine, finding the EC pathing is fairly easy.")]),e._v(" "),s("p",[e._v("Start by opening up Device Manager in Windows and looking for a device named "),s("code",[e._v("Embedded Controller")]),e._v(". Once found, click on it and select the "),s("code",[e._v("BIOS device Name")]),e._v(" entry. You should get something like this:")]),e._v(" "),s("p",[s("img",{attrs:{src:a(385),alt:""}})]),e._v(" "),s("p",[e._v("From the above, we can see that our pathing is "),s("code",[e._v("SB.PC00.LPC0.EC0")])]),e._v(" "),s("p",[e._v("Now with the pathing, you can head here: "),s("a",{attrs:{href:"#edits-to-the-sample-ssdt"}},[e._v("Edits to the sample SSDT")])]),e._v(" "),s("h2",{attrs:{id:"edits-to-the-sample-ssdt"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#edits-to-the-sample-ssdt"}},[e._v("#")]),e._v(" Edits to the sample SSDT")]),e._v(" "),s("p",[e._v("Now that we have our ACPI path, lets grab our SSDT and get to work:")]),e._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-EC-USBX.dsl",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-EC-USBX"),s("OutboundLink")],1),e._v(" "),s("ul",[s("li",[e._v("For Skylake and newer and all AMD systems")])])]),e._v(" "),s("li",[s("a",{attrs:{href:"https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-EC.dsl",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-EC"),s("OutboundLink")],1),e._v(" "),s("ul",[s("li",[e._v("For Broadwell and older")])])])]),e._v(" "),s("p",[e._v("Now when opening this SSDT, you'll notice a few things. Mainly:")]),e._v(" "),s("ul",[s("li",[e._v("Some code is commented out\n"),s("ul",[s("li",[e._v("This is code for disabling our EC")]),e._v(" "),s("li",[e._v("Laptops users "),s("strong",[e._v("SHOULD NOT")]),e._v(" uncomment this")])])]),e._v(" "),s("li",[e._v("There's a new EC called "),s("code",[e._v("Device (EC)")]),e._v(" "),s("ul",[s("li",[s("strong",[e._v("DO NOT RENAME THIS")]),e._v(", this will be the EC we give to macOS")])])])]),e._v(" "),s("p",[s("strong",[e._v("Before")]),e._v(":")]),e._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v("External (_SB_.PCI0.LPCB, DeviceObj) <- Rename this\n\nScope (_SB.PCI0.LPCB) <- Rename this\n")])])]),s("p",[s("img",{attrs:{src:a(386),alt:""}})]),e._v(" "),s("p",[e._v("Following the example pathing we found, the SSDT should look something like this:")]),e._v(" "),s("p",[s("strong",[e._v("After")]),e._v(":")]),e._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v("External (_SB_.PC00.LPC0, DeviceObj) <- Renamed\n\nScope (_SB.PC00.LPC0) <- Renamed\n")])])]),s("p",[s("img",{attrs:{src:a(387),alt:""}})]),e._v(" "),s("h2",{attrs:{id:"edge-cases"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#edge-cases"}},[e._v("#")]),e._v(" Edge Cases")]),e._v(" "),s("h3",{attrs:{id:"multiple-pnp0c09-s-show-up"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#multiple-pnp0c09-s-show-up"}},[e._v("#")]),e._v(" Multiple PNP0C09's show up")]),e._v(" "),s("p",[e._v("When multiple PNP0C09 show up, we need to next check for the following properties:")]),e._v(" "),s("ul",[s("li",[s("code",[e._v("_HID")]),e._v(" (Hardware ID)")]),e._v(" "),s("li",[s("code",[e._v("_CRS")]),e._v(" (Current Resource Settings)")]),e._v(" "),s("li",[s("code",[e._v("_GPE")]),e._v(" (General Purpose Events)")])]),e._v(" "),s("p",[e._v("What these signify is whether this PNP0C09 device is real or not, as per the "),s("a",{attrs:{href:"https://uefi.org/sites/default/files/resources/ACPI_6_3_final_Jan30.pdf",target:"_blank",rel:"noopener noreferrer"}},[e._v("ACPI spec"),s("OutboundLink")],1),e._v(". So one's matching the above criteria are the one's we want to disable.")]),e._v(" "),s("ul",[s("li",[e._v("Note: If _STA shows up as well, you'll need to go here: "),s("a",{attrs:{href:"#pnp0c09-already-has-an-sta-method"}},[e._v("PNP0C09 already has an "),s("code",[e._v("_STA")]),e._v(" method")])])]),e._v(" "),s("h3",{attrs:{id:"no-pnp0c09-show-up"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#no-pnp0c09-show-up"}},[e._v("#")]),e._v(" No PNP0C09 show up")]),e._v(" "),s("p",[e._v('When this happens, you\'ll only need to create a "dummy" EC for macOS.')]),e._v(" "),s("p",[e._v('Try searching for any devices named: "LPCB", "LPC0", "LPC", "SBRG", "PX40". If you have any of these, try using the LPC pathing of each of those device in place of the Embedded Controller\'s pathing.')]),e._v(" "),s("p",[e._v("Note that "),s("strong",[e._v("DO NOT")]),e._v(' uncomment the EC disaling code as there are no devices that are considered "EC" in your machine.')]),e._v(" "),s("h3",{attrs:{id:"pnp0c09-already-named-ec"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#pnp0c09-already-named-ec"}},[e._v("#")]),e._v(" PNP0C09 already named "),s("code",[e._v("EC")])]),e._v(" "),s("p",[e._v("Congrats! No need to create an SSDT-EC! However you will still want USBX if you're skylake or newer.")]),e._v(" "),s("p",[e._v("Prebuilt can be grabbed here: "),s("a",{attrs:{href:"https://github.com/dortania/OpenCore-Post-Install/blob/master/extra-files/SSDT-USBX.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-USBX.aml"),s("OutboundLink")],1)]),e._v(" "),s("h3",{attrs:{id:"pnp0c09-already-has-an-sta-method"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#pnp0c09-already-has-an-sta-method"}},[e._v("#")]),e._v(" PNP0C09 already has an "),s("code",[e._v("_STA")]),e._v(" method")]),e._v(" "),s("p",[e._v("This is the equivalent of not having an EC as we can't control it with our SSDT-EC, instead we'll need to create a \"dummy\" EC for macOS. You'll still want to find the PCI and LPC pathing for this device. So follow the guide as if you were creating a laptop SSDT-EC/USBX.")]),e._v(" "),s("p",[e._v("Example of an EC with STA already:")]),e._v(" "),s("p",[s("img",{attrs:{src:a(388),alt:"Credit to rottenpants466"}})]),e._v(" "),s("h2",{attrs:{id:"compiling-the-ssdt"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#compiling-the-ssdt"}},[e._v("#")]),e._v(" Compiling the SSDT")]),e._v(" "),s("p",[e._v("With the SSDT done, you're now "),s("RouterLink",{attrs:{to:"/Manual/compile.html"}},[e._v("ready to compile the SSDT!")])],1),e._v(" "),s("h2",{attrs:{id:"wrapping-up"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#wrapping-up"}},[e._v("#")]),e._v(" Wrapping up")]),e._v(" "),s("p",[e._v("Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:")]),e._v(" "),s("ul",[s("li",[s("RouterLink",{attrs:{to:"/cleanup.html"}},[s("strong",[e._v("Cleanup")])])],1)])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/55.0a415820.js b/assets/js/60.6b94dd68.js similarity index 92% rename from assets/js/55.0a415820.js rename to assets/js/60.6b94dd68.js index 600db5b..4817e96 100644 --- a/assets/js/55.0a415820.js +++ b/assets/js/60.6b94dd68.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[55],{454:function(e,t,s){"use strict";s.r(t);var a=s(25),o=Object(a.a)({},(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[s("h1",{attrs:{id:"ssdts-the-long-way"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#ssdts-the-long-way"}},[e._v("#")]),e._v(" SSDTs: The long way")]),e._v(" "),s("p",[e._v("Well sadly some things are not handled by SSDTTime, well have no fear as making SSDTs is super easy. The basic process:")]),e._v(" "),s("ul",[s("li",[e._v("Dump DSDT(the one SSDTTime did for use will work)")]),e._v(" "),s("li",[e._v("Decompile DSDT")]),e._v(" "),s("li",[e._v("Make SSDTs based of of it(You'll need either MaciASL or a text editor for this)")]),e._v(" "),s("li",[e._v("Compile SSDTs")])]),e._v(" "),s("p",[e._v("Now continue forth and master the ways of ACPI!")])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[60],{469:function(e,t,s){"use strict";s.r(t);var a=s(25),o=Object(a.a)({},(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[s("h1",{attrs:{id:"ssdts-the-long-way"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#ssdts-the-long-way"}},[e._v("#")]),e._v(" SSDTs: The long way")]),e._v(" "),s("p",[e._v("Well sadly some things are not handled by SSDTTime, well have no fear as making SSDTs is super easy. The basic process:")]),e._v(" "),s("ul",[s("li",[e._v("Dump DSDT(the one SSDTTime did for use will work)")]),e._v(" "),s("li",[e._v("Decompile DSDT")]),e._v(" "),s("li",[e._v("Make SSDTs based of of it(You'll need either MaciASL or a text editor for this)")]),e._v(" "),s("li",[e._v("Compile SSDTs")])]),e._v(" "),s("p",[e._v("Now continue forth and master the ways of ACPI!")])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/61.30f2914f.js b/assets/js/61.30f2914f.js new file mode 100644 index 0000000..da5e691 --- /dev/null +++ b/assets/js/61.30f2914f.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[61],{468:function(t,e,s){"use strict";s.r(e);var o=s(25),r=Object(o.a)({},(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"how-to-create-ssdts"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#how-to-create-ssdts"}},[t._v("#")]),t._v(" How to create SSDTs")]),t._v(" "),s("p",[t._v("Creating SSDTs mainly fall into 3 camps:")]),t._v(" "),s("ul",[s("li",[s("RouterLink",{attrs:{to:"/ssdt-methods/ssdt-prebuilt.html"}},[t._v("Prebuilt SSDTs")]),t._v(" "),s("ul",[s("li",[t._v("They're universal but don't teach much")]),t._v(" "),s("li",[t._v("For most users, we recommend this as it does not require any compling")])])],1),t._v(" "),s("li",[s("RouterLink",{attrs:{to:"/ssdt-methods/ssdt-easy.html"}},[t._v("Automated tools")]),t._v(" "),s("ul",[s("li",[t._v("Mainly seen with SSDTTime, work much better than prebuilts as there's less bloat however doesn't teach you much")])])],1),t._v(" "),s("li",[s("RouterLink",{attrs:{to:"/ssdt-methods/ssdt-long.html"}},[t._v("Manually creating them")]),t._v(" "),s("ul",[s("li",[t._v("Will always work, be much cleaner and get to learn about the process")]),t._v(" "),s("li",[t._v("However requires you to deal with code")])])],1)]),t._v(" "),s("p",[t._v("If you're not comfortable with editing and compiling code, we recommend the "),s("RouterLink",{attrs:{to:"/ssdt-methods/ssdt-prebuilt.html"}},[t._v("prebuilt option")])],1)])}),[],!1,null,null,null);e.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/62.71b9e256.js b/assets/js/62.71b9e256.js new file mode 100644 index 0000000..62ffe60 --- /dev/null +++ b/assets/js/62.71b9e256.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[62],{465:function(e,t,a){"use strict";a.r(t);var r=a(25),l=Object(r.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"pre-built-ssdts"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#pre-built-ssdts"}},[e._v("#")]),e._v(" Pre-Built SSDTs")]),e._v(" "),a("p",[e._v("Simply select your hardware type and generation, then download the associated files. Once downloaded, place them in your EFI under EFI/OC/ACPI and head back to "),a("a",{attrs:{href:"https://dortania.github.io/OpenCore-Install-Guide/config.plist/",target:"_blank",rel:"noopener noreferrer"}},[e._v("config.plist Setup"),a("OutboundLink")],1)]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#intel-desktop-ssdts"}},[e._v("Intel Desktop SSDTs")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#desktop-penryn-lynnfield-and-clarkdale"}},[e._v("Penryn, Lynnfield and Clarkdale")])]),e._v(" "),a("li",[a("a",{attrs:{href:"#desktop-sandy-and-ivy-bridge"}},[e._v("Sandy and Ivy Bridge")])]),e._v(" "),a("li",[a("a",{attrs:{href:"#desktop-haswell-and-broadwell"}},[e._v("Haswell and Broadwell")])]),e._v(" "),a("li",[a("a",{attrs:{href:"#desktop-skylake-and-kaby-lake"}},[e._v("Skylake and Kaby Lake")])]),e._v(" "),a("li",[a("a",{attrs:{href:"#desktop-coffee-lake"}},[e._v("Coffee Lake")])]),e._v(" "),a("li",[a("a",{attrs:{href:"#desktop-comet-lake"}},[e._v("Comet Lake")])])])]),e._v(" "),a("li",[a("a",{attrs:{href:"#intel-laptop-ssdts"}},[e._v("Intel Laptop SSDTs")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#laptop-clarksfield-and-arrandale"}},[e._v("Clarksfield and Arrandale")])]),e._v(" "),a("li",[a("a",{attrs:{href:"#laptop-sandy-and-ivy-bridge"}},[e._v("Sandy and Ivy Bridge")])]),e._v(" "),a("li",[a("a",{attrs:{href:"#laptop-haswell-and-broadwell"}},[e._v("Haswell and Broadwell")])]),e._v(" "),a("li",[a("a",{attrs:{href:"#laptop-skylake-and-kaby-lake"}},[e._v("Skylake and Kaby Lake")])]),e._v(" "),a("li",[a("a",{attrs:{href:"#laptop-coffee-lake8th-gen"}},[e._v("Coffee Lake(8th gen)")])]),e._v(" "),a("li",[a("a",{attrs:{href:"#laptop-coffee-and-comet-lake-9th-and-10th-gen"}},[e._v("Coffee and Comet Lake(9th and 10th gen)")])]),e._v(" "),a("li",[a("a",{attrs:{href:"#laptop-ice-lake"}},[e._v("Ice Lake")])])])]),e._v(" "),a("li",[a("a",{attrs:{href:"#intel-hedt-ssdts"}},[e._v("Intel HEDT SSDTs")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#nehalem-and-westmere"}},[e._v("Nehalem and Westmere")])]),e._v(" "),a("li",[a("a",{attrs:{href:"#sandy-and-ivy-bridge-e"}},[e._v("Sandy and Ivy Bridge-E")])]),e._v(" "),a("li",[a("a",{attrs:{href:"#haswell-and-broadwell-e"}},[e._v("Haswell and Broadwell-E")])]),e._v(" "),a("li",[a("a",{attrs:{href:"#skylake-and-cascade-lake-x-w"}},[e._v("Skylake and Cascade Lake-X/W")])])])]),e._v(" "),a("li",[a("a",{attrs:{href:"#amd-ssdts"}},[e._v("AMD SSDTs")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#amd-bulldozer-jaguar"}},[e._v("Bulldozer/Jaguar")])]),e._v(" "),a("li",[a("a",{attrs:{href:"#amd-zen"}},[e._v("Zen")])])])])]),e._v(" "),a("h2",{attrs:{id:"intel-desktop-ssdts"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#intel-desktop-ssdts"}},[e._v("#")]),e._v(" Intel Desktop SSDTs")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#desktop-penryn-lynnfield-and-clarkdale"}},[e._v("Penryn, Lynnfield and Clarkdale")])]),e._v(" "),a("li",[a("a",{attrs:{href:"#desktop-sandy-and-ivy-bridge"}},[e._v("Sandy and Ivy Bridge")])]),e._v(" "),a("li",[a("a",{attrs:{href:"#desktop-haswell-and-broadwell"}},[e._v("Haswell and Broadwell")])]),e._v(" "),a("li",[a("a",{attrs:{href:"#desktop-skylake-and-kaby-lake"}},[e._v("Skylake and Kaby Lake")])]),e._v(" "),a("li",[a("a",{attrs:{href:"#desktop-coffee-lake"}},[e._v("Coffee Lake")])]),e._v(" "),a("li",[a("a",{attrs:{href:"#desktop-comet-lake"}},[e._v("Comet Lake")])])]),e._v(" "),a("h3",{attrs:{id:"desktop-penryn-lynnfield-and-clarkdale"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#desktop-penryn-lynnfield-and-clarkdale"}},[e._v("#")]),e._v(" Desktop Penryn, Lynnfield and Clarkdale")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("SSDTs required")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-EC-DESKTOP.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-EC-DESKTOP"),a("OutboundLink")],1)])]),e._v(" "),a("p",[e._v("Once downloaded, place them into your EFI folder under EFI/OC/ACPI and head back to the install guide")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://dortania.github.io/OpenCore-Install-Guide/config.plist/",target:"_blank",rel:"noopener noreferrer"}},[e._v("config.plist Setup"),a("OutboundLink")],1)])])]),e._v(" "),a("details",{staticClass:"custom-block details"},[a("summary",[e._v("In-depth info on the SSDTs")]),e._v(" "),a("p",[e._v("SSDT-EC:")]),e._v(" "),a("ul",[a("li",[e._v("Used for disabling your real Embedded controller and creating a fake one for macOS to play with")])])]),e._v(" "),a("h3",{attrs:{id:"desktop-sandy-and-ivy-bridge"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#desktop-sandy-and-ivy-bridge"}},[e._v("#")]),e._v(" Desktop Sandy and Ivy Bridge")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("SSDTs required")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-EC-DESKTOP.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-EC-DESKTOP"),a("OutboundLink")],1)]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-IMEI.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-IMEI"),a("OutboundLink")],1),e._v(" "),a("ul",[a("li",[e._v("Required for Sandy Bridge CPU with 7 series motherboard\n"),a("ul",[a("li",[e._v("ie. B75, Q75, Z75, H77, Q77, Z77")])])]),e._v(" "),a("li",[e._v("Required Ivy Bridge CPU with 6 series motherboard\n"),a("ul",[a("li",[e._v("ie. H61, B65, Q65, P67, H67, Q67, Z68")])])])])])]),e._v(" "),a("p",[e._v("Once downloaded, place them into your EFI folder under EFI/OC/ACPI and head back to the install guide")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://dortania.github.io/OpenCore-Install-Guide/config.plist/",target:"_blank",rel:"noopener noreferrer"}},[e._v("config.plist Setup"),a("OutboundLink")],1)])])]),e._v(" "),a("details",{staticClass:"custom-block details"},[a("summary",[e._v("In-depth info on the SSDTs")]),e._v(" "),a("p",[e._v("SSDT-EC:")]),e._v(" "),a("ul",[a("li",[e._v("Used for disabling your real Embedded controller and creating a fake one for macOS to play with")])]),e._v(" "),a("p",[e._v("SSDT-IMEI")]),e._v(" "),a("ul",[a("li",[e._v("Used for creating an IMEI device when one is not present in ACPI\\\n"),a("ul",[a("li",[e._v("Required for Sandy Bridge CPU with 7 series motherboard\n"),a("ul",[a("li",[e._v("ie. B75, Q75, Z75, H77, Q77, Z77")])])]),e._v(" "),a("li",[e._v("Required Ivy Bridge CPU with 6 series motherboard\n"),a("ul",[a("li",[e._v("ie. H61, B65, Q65, P67, H67, Q67, Z68")])])])])])])]),e._v(" "),a("h3",{attrs:{id:"desktop-haswell-and-broadwell"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#desktop-haswell-and-broadwell"}},[e._v("#")]),e._v(" Desktop Haswell and Broadwell")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("SSDTs required")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-PLUG-DRTNIA.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-PLUG-DRTNIA"),a("OutboundLink")],1)]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-EC-DESKTOP.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-EC-DESKTOP"),a("OutboundLink")],1)])]),e._v(" "),a("p",[e._v("Once downloaded, place them into your EFI folder under EFI/OC/ACPI and head back to the install guide")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://dortania.github.io/OpenCore-Install-Guide/config.plist/",target:"_blank",rel:"noopener noreferrer"}},[e._v("config.plist Setup"),a("OutboundLink")],1)])])]),e._v(" "),a("details",{staticClass:"custom-block details"},[a("summary",[e._v("In-depth info on the SSDTs")]),e._v(" "),a("p",[e._v("SSDT-PLUG:")]),e._v(" "),a("ul",[a("li",[e._v("Used for enabling Apple's XCPM in macOS, allowing for far better CPU power management")])]),e._v(" "),a("p",[e._v("SSDT-EC:")]),e._v(" "),a("ul",[a("li",[e._v("Used for disabling your real Embedded controller and creating a fake one for macOS to play with")])])]),e._v(" "),a("h3",{attrs:{id:"desktop-skylake-and-kaby-lake"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#desktop-skylake-and-kaby-lake"}},[e._v("#")]),e._v(" Desktop Skylake and Kaby Lake")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("SSDTs required")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-PLUG-DRTNIA.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-PLUG-DRTNIA"),a("OutboundLink")],1)]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-EC-USBX-DESKTOP.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-EC-USBX-DESKTOP"),a("OutboundLink")],1)])]),e._v(" "),a("p",[e._v("Once downloaded, place them into your EFI folder under EFI/OC/ACPI and head back to the install guide")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://dortania.github.io/OpenCore-Install-Guide/config.plist/",target:"_blank",rel:"noopener noreferrer"}},[e._v("config.plist Setup"),a("OutboundLink")],1)])])]),e._v(" "),a("details",{staticClass:"custom-block details"},[a("summary",[e._v("In-depth info on the SSDTs")]),e._v(" "),a("p",[e._v("SSDT-PLUG:")]),e._v(" "),a("ul",[a("li",[e._v("Used for enabling Apple's XCPM in macOS, allowing for far better CPU power management")])]),e._v(" "),a("p",[e._v("SSDT-EC-USBX:")]),e._v(" "),a("ul",[a("li",[e._v("Used for disabling your real Embedded controller and creating a fake one for macOS to play with")]),e._v(" "),a("li",[e._v("USBX portion is used for injection USB power properties missing on Skylake and newer")])])]),e._v(" "),a("h3",{attrs:{id:"desktop-coffee-lake"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#desktop-coffee-lake"}},[e._v("#")]),e._v(" Desktop Coffee Lake")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("SSDTs required")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-PLUG-DRTNIA.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-PLUG-DRTNIA"),a("OutboundLink")],1)]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-EC-USBX-DESKTOP.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-EC-USBX-DESKTOP"),a("OutboundLink")],1)]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-AWAC.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-AWAC"),a("OutboundLink")],1)]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-PMC.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-PMC"),a("OutboundLink")],1)])]),e._v(" "),a("p",[e._v("Once downloaded, place them into your EFI folder under EFI/OC/ACPI and head back to the install guide")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://dortania.github.io/OpenCore-Install-Guide/config.plist/",target:"_blank",rel:"noopener noreferrer"}},[e._v("config.plist Setup"),a("OutboundLink")],1)])])]),e._v(" "),a("details",{staticClass:"custom-block details"},[a("summary",[e._v("In-depth info on the SSDTs")]),e._v(" "),a("p",[e._v("SSDT-PLUG:")]),e._v(" "),a("ul",[a("li",[e._v("Used for enabling Apple's XCPM in macOS, allowing for far better CPU power management")])]),e._v(" "),a("p",[e._v("SSDT-EC-USBX:")]),e._v(" "),a("ul",[a("li",[e._v("Used for disabling your real Embedded controller and creating a fake one for macOS to play with")]),e._v(" "),a("li",[e._v("USBX portion is used for injection USB power properties missing on Skylake and newer")])]),e._v(" "),a("p",[e._v("SSDT-AWAC:")]),e._v(" "),a("ul",[a("li",[e._v("Used to enable the legacy RTC clock in macOS, as the newer AWAC clock is unsupported")])]),e._v(" "),a("p",[e._v("SSDT-PMC:")]),e._v(" "),a("ul",[a("li",[e._v('Used to enable native NVRAM on "true" 300 series motherboards\n'),a("ul",[a("li",[e._v("ie. B360, B365, H310, H370, Z390")]),e._v(" "),a("li",[e._v("Note Z370 is not included")])])])])]),e._v(" "),a("h3",{attrs:{id:"desktop-comet-lake"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#desktop-comet-lake"}},[e._v("#")]),e._v(" Desktop Comet Lake")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("SSDTs required")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-PLUG-DRTNIA.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-PLUG-DRTNIA"),a("OutboundLink")],1)]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-EC-USBX-DESKTOP.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-EC-USBX-DESKTOP"),a("OutboundLink")],1)]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-AWAC.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-AWAC"),a("OutboundLink")],1)]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-RHUB.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-RHUB"),a("OutboundLink")],1),e._v(" "),a("ul",[a("li",[e._v("Specifically for Asus's 400 series motherboards, Gigabyte and others do not need SSDT-RHUB")])])])]),e._v(" "),a("p",[e._v("Once downloaded, place them into your EFI folder under EFI/OC/ACPI and head back to the install guide")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://dortania.github.io/OpenCore-Install-Guide/config.plist/",target:"_blank",rel:"noopener noreferrer"}},[e._v("config.plist Setup"),a("OutboundLink")],1)])])]),e._v(" "),a("details",{staticClass:"custom-block details"},[a("summary",[e._v("In-depth info on the SSDTs")]),e._v(" "),a("p",[e._v("SSDT-PLUG:")]),e._v(" "),a("ul",[a("li",[e._v("Used for enabling Apple's XCPM in macOS, allowing for far better CPU power management")])]),e._v(" "),a("p",[e._v("SSDT-EC-USBX:")]),e._v(" "),a("ul",[a("li",[e._v("Used for disabling your real Embedded controller and creating a fake one for macOS to play with")]),e._v(" "),a("li",[e._v("USBX portion is used for injection USB power properties missing on Skylake and newer")])]),e._v(" "),a("p",[e._v("SSDT-AWAC:")]),e._v(" "),a("ul",[a("li",[e._v("Used to enable the legacy RTC clock in macOS, as the newer AWAC clock is unsupported")])]),e._v(" "),a("p",[e._v("SSDT-RHUB:")]),e._v(" "),a("ul",[a("li",[e._v("Used to reset USB controllers on Asus's 400 series motherboards due to poor ACPI implementation from the OEM\n"),a("ul",[a("li",[e._v("Note Gigabyte, MSI, AsRock, etc do not need this SSDT. Only Asus")])])])])]),e._v(" "),a("h2",{attrs:{id:"intel-laptop-ssdts"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#intel-laptop-ssdts"}},[e._v("#")]),e._v(" Intel Laptop SSDTs")]),e._v(" "),a("h3",{attrs:{id:"laptop-clarksfield-and-arrandale"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#laptop-clarksfield-and-arrandale"}},[e._v("#")]),e._v(" Laptop Clarksfield and Arrandale")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("SSDTs required")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-EC-LAPTOP.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-EC-LAPTOP"),a("OutboundLink")],1)]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-PNLF.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-PNLF"),a("OutboundLink")],1)]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-XOSI.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-XOSI"),a("OutboundLink")],1)])]),e._v(" "),a("p",[e._v("Once downloaded, place them into your EFI folder under EFI/OC/ACPI and head back to the install guide")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://dortania.github.io/OpenCore-Install-Guide/config.plist/",target:"_blank",rel:"noopener noreferrer"}},[e._v("config.plist Setup"),a("OutboundLink")],1)])])]),e._v(" "),a("details",{staticClass:"custom-block details"},[a("summary",[e._v("In-depth info on the SSDTs")]),e._v(" "),a("p",[e._v("SSDT-EC:")]),e._v(" "),a("ul",[a("li",[e._v("Used for disabling your real Embedded controller and creating a fake one for macOS to play with")])]),e._v(" "),a("p",[e._v("SSDT-PNLF:")]),e._v(" "),a("ul",[a("li",[e._v("Used for controlling the backlight on internal displays such as AIOs and laptops")])]),e._v(" "),a("p",[e._v("SSDT-XOSI:")]),e._v(" "),a("ul",[a("li",[e._v("Enables many Windows-only functionality in macOS\n"),a("ul",[a("li",[e._v("Requires XOSI patch(covered later on)")])])])])]),e._v(" "),a("h3",{attrs:{id:"laptop-sandy-and-ivy-bridge"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#laptop-sandy-and-ivy-bridge"}},[e._v("#")]),e._v(" Laptop Sandy and Ivy Bridge")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("SSDTs required")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-EC-LAPTOP.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-EC-LAPTOP"),a("OutboundLink")],1)]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-IMEI.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-IMEI"),a("OutboundLink")],1),e._v(" "),a("ul",[a("li",[e._v("Required for Sandy Bridge CPU with 7 series motherboard\n"),a("ul",[a("li",[e._v("ie. B75, Q75, Z75, H77, Q77, Z77")])])]),e._v(" "),a("li",[e._v("Required Ivy Bridge CPU with 6 series motherboard\n"),a("ul",[a("li",[e._v("ie. H61, B65, Q65, P67, H67, Q67, Z68")])])])])]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-PNLF.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-PNLF"),a("OutboundLink")],1)]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-XOSI.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-XOSI"),a("OutboundLink")],1)])]),e._v(" "),a("p",[e._v("Once downloaded, place them into your EFI folder under EFI/OC/ACPI and head back to the install guide")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://dortania.github.io/OpenCore-Install-Guide/config.plist/",target:"_blank",rel:"noopener noreferrer"}},[e._v("config.plist Setup"),a("OutboundLink")],1)])])]),e._v(" "),a("details",{staticClass:"custom-block details"},[a("summary",[e._v("In-depth info on the SSDTs")]),e._v(" "),a("p",[e._v("SSDT-EC:")]),e._v(" "),a("ul",[a("li",[e._v("Used for disabling your real Embedded controller and creating a fake one for macOS to play with")])]),e._v(" "),a("p",[e._v("SSDT-IMEI")]),e._v(" "),a("ul",[a("li",[e._v("Used for creating an IMEI device when one is not present in ACPI\n"),a("ul",[a("li",[e._v("Required for Sandy Bridge CPU with 7 series motherboard\n"),a("ul",[a("li",[e._v("ie. B75, Q75, Z75, H77, Q77, Z77")])])]),e._v(" "),a("li",[e._v("Required Ivy Bridge CPU with 6 series motherboard\n"),a("ul",[a("li",[e._v("ie. H61, B65, Q65, P67, H67, Q67, Z68")])])])])])]),e._v(" "),a("p",[e._v("SSDT-PNLF:")]),e._v(" "),a("ul",[a("li",[e._v("Used for controlling the backlight on internal displays such as AIOs and laptops")])]),e._v(" "),a("p",[e._v("SSDT-XOSI:")]),e._v(" "),a("ul",[a("li",[e._v("Enables many Windows-only functionality in macOS\n"),a("ul",[a("li",[e._v("Requires XOSI patch(covered later on)")])])])])]),e._v(" "),a("h3",{attrs:{id:"laptop-haswell-and-broadwell"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#laptop-haswell-and-broadwell"}},[e._v("#")]),e._v(" Laptop Haswell and Broadwell")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("SSDTs required")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-PLUG-DRTNIA.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-PLUG-DRTNIA"),a("OutboundLink")],1)]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-EC-LAPTOP.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-EC-LAPTOP"),a("OutboundLink")],1)]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-PNLF.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-PNLF"),a("OutboundLink")],1)]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-XOSI.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-XOSI"),a("OutboundLink")],1)])]),e._v(" "),a("p",[e._v("Once downloaded, place them into your EFI folder under EFI/OC/ACPI and head back to the install guide")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://dortania.github.io/OpenCore-Install-Guide/config.plist/",target:"_blank",rel:"noopener noreferrer"}},[e._v("config.plist Setup"),a("OutboundLink")],1)])])]),e._v(" "),a("details",{staticClass:"custom-block details"},[a("summary",[e._v("In-depth info on the SSDTs")]),e._v(" "),a("p",[e._v("SSDT-PLUG:")]),e._v(" "),a("ul",[a("li",[e._v("Used for enabling Apple's XCPM in macOS, allowing for far better CPU power management")])]),e._v(" "),a("p",[e._v("SSDT-EC:")]),e._v(" "),a("ul",[a("li",[e._v("Used for disabling your real Embedded controller and creating a fake one for macOS to play with")])]),e._v(" "),a("p",[e._v("SSDT-PNLF:")]),e._v(" "),a("ul",[a("li",[e._v("Used for controlling the backlight on internal displays such as AIOs and laptops")])]),e._v(" "),a("p",[e._v("SSDT-XOSI:")]),e._v(" "),a("ul",[a("li",[e._v("Enables many Windows-only functionality in macOS\n"),a("ul",[a("li",[e._v("Requires XOSI patch(covered later on)")])])])])]),e._v(" "),a("h3",{attrs:{id:"laptop-skylake-and-kaby-lake"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#laptop-skylake-and-kaby-lake"}},[e._v("#")]),e._v(" Laptop Skylake and Kaby Lake")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("SSDTs required")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-PLUG-DRTNIA.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-PLUG-DRTNIA"),a("OutboundLink")],1)]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-EC-USBX-LAPTOP.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-EC-USBX-LAPTOP"),a("OutboundLink")],1)]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-PNLF.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-PNLF"),a("OutboundLink")],1)]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-XOSI.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-XOSI"),a("OutboundLink")],1)])]),e._v(" "),a("p",[e._v("Once downloaded, place them into your EFI folder under EFI/OC/ACPI and head back to the install guide")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://dortania.github.io/OpenCore-Install-Guide/config.plist/",target:"_blank",rel:"noopener noreferrer"}},[e._v("config.plist Setup"),a("OutboundLink")],1)])])]),e._v(" "),a("details",{staticClass:"custom-block details"},[a("summary",[e._v("In-depth info on the SSDTs")]),e._v(" "),a("p",[e._v("SSDT-PLUG:")]),e._v(" "),a("ul",[a("li",[e._v("Used for enabling Apple's XCPM in macOS, allowing for far better CPU power management")])]),e._v(" "),a("p",[e._v("SSDT-EC-USBX:")]),e._v(" "),a("ul",[a("li",[e._v("Used for disabling your real Embedded controller and creating a fake one for macOS to play with")]),e._v(" "),a("li",[e._v("USBX portion is used for injection USB power properties missing on Skylake and newer")])]),e._v(" "),a("p",[e._v("SSDT-PNLF:")]),e._v(" "),a("ul",[a("li",[e._v("Used for controlling the backlight on internal displays such as AIOs and laptops")])]),e._v(" "),a("p",[e._v("SSDT-XOSI:")]),e._v(" "),a("ul",[a("li",[e._v("Enables many Windows-only functionality in macOS\n"),a("ul",[a("li",[e._v("Requires XOSI patch(covered later on)")])])])])]),e._v(" "),a("h3",{attrs:{id:"laptop-coffee-lake-8th-gen"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#laptop-coffee-lake-8th-gen"}},[e._v("#")]),e._v(" Laptop Coffee Lake(8th gen)")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("SSDTs required")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-PLUG-DRTNIA.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-PLUG-DRTNIA"),a("OutboundLink")],1)]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-EC-USBX-LAPTOP.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-EC-USBX-LAPTOP"),a("OutboundLink")],1)]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-AWAC.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-AWAC"),a("OutboundLink")],1)]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-PNLF-CFL.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-PNLF-CFL"),a("OutboundLink")],1)]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-XOSI.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-XOSI"),a("OutboundLink")],1)])]),e._v(" "),a("p",[e._v("Once downloaded, place them into your EFI folder under EFI/OC/ACPI and head back to the install guide")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://dortania.github.io/OpenCore-Install-Guide/config.plist/",target:"_blank",rel:"noopener noreferrer"}},[e._v("config.plist Setup"),a("OutboundLink")],1)])])]),e._v(" "),a("details",{staticClass:"custom-block details"},[a("summary",[e._v("In-depth info on the SSDTs")]),e._v(" "),a("p",[e._v("SSDT-PLUG:")]),e._v(" "),a("ul",[a("li",[e._v("Used for enabling Apple's XCPM in macOS, allowing for far better CPU power management")])]),e._v(" "),a("p",[e._v("SSDT-EC-USBX:")]),e._v(" "),a("ul",[a("li",[e._v("Used for disabling your real Embedded controller and creating a fake one for macOS to play with")]),e._v(" "),a("li",[e._v("USBX portion is used for injection USB power properties missing on Skylake and newer")])]),e._v(" "),a("p",[e._v("SSDT-AWAC:")]),e._v(" "),a("ul",[a("li",[e._v("Used to enable the legacy RTC clock in macOS, as the newer AWAC clock is unsupported")])]),e._v(" "),a("p",[e._v("SSDT-PNLF:")]),e._v(" "),a("ul",[a("li",[e._v("Used for controlling the backlight on internal displays such as AIOs and laptops")])]),e._v(" "),a("p",[e._v("SSDT-XOSI:")]),e._v(" "),a("ul",[a("li",[e._v("Enables many Windows-only functionality in macOS\n"),a("ul",[a("li",[e._v("Requires XOSI patch(covered later on)")])])])])]),e._v(" "),a("h3",{attrs:{id:"laptop-coffee-and-comet-lake-9th-and-10th-gen"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#laptop-coffee-and-comet-lake-9th-and-10th-gen"}},[e._v("#")]),e._v(" Laptop Coffee and Comet Lake(9th and 10th gen)")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("SSDTs required")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-PLUG-DRTNIA.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-PLUG-DRTNIA"),a("OutboundLink")],1)]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-EC-USBX-LAPTOP.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-EC-USBX-LAPTOP"),a("OutboundLink")],1)]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-AWAC.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-AWAC"),a("OutboundLink")],1)]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-PMC.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-PMC"),a("OutboundLink")],1),e._v(" "),a("ul",[a("li",[e._v("Only for 9th gen laptops, 10th gen can ignore")])])]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-PNLF-CFL.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-PNLF-CFL"),a("OutboundLink")],1)]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-XOSI.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-XOSI"),a("OutboundLink")],1)])]),e._v(" "),a("p",[e._v("Once downloaded, place them into your EFI folder under EFI/OC/ACPI and head back to the install guide")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://dortania.github.io/OpenCore-Install-Guide/config.plist/",target:"_blank",rel:"noopener noreferrer"}},[e._v("config.plist Setup"),a("OutboundLink")],1)])])]),e._v(" "),a("details",{staticClass:"custom-block details"},[a("summary",[e._v("In-depth info on the SSDTs")]),e._v(" "),a("p",[e._v("SSDT-PLUG:")]),e._v(" "),a("ul",[a("li",[e._v("Used for enabling Apple's XCPM in macOS, allowing for far better CPU power management")])]),e._v(" "),a("p",[e._v("SSDT-EC-USBX:")]),e._v(" "),a("ul",[a("li",[e._v("Used for disabling your real Embedded controller and creating a fake one for macOS to play with")]),e._v(" "),a("li",[e._v("USBX portion is used for injection USB power properties missing on Skylake and newer")])]),e._v(" "),a("p",[e._v("SSDT-AWAC:")]),e._v(" "),a("ul",[a("li",[e._v("Used to enable the legacy RTC clock in macOS, as the newer AWAC clock is unsupported")])]),e._v(" "),a("p",[e._v("SSDT-PMC:")]),e._v(" "),a("ul",[a("li",[e._v('Used to enable native NVRAM on "true" 300 series motherboards\n'),a("ul",[a("li",[e._v("Only for 9th gen laptops")])])])]),e._v(" "),a("p",[e._v("SSDT-PNLF:")]),e._v(" "),a("ul",[a("li",[e._v("Used for controlling the backlight on internal displays such as AIOs and laptops")])]),e._v(" "),a("p",[e._v("SSDT-XOSI:")]),e._v(" "),a("ul",[a("li",[e._v("Enables many Windows-only functionality in macOS\n"),a("ul",[a("li",[e._v("Requires XOSI patch(covered later on)")])])])])]),e._v(" "),a("h3",{attrs:{id:"laptop-ice-lake"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#laptop-ice-lake"}},[e._v("#")]),e._v(" Laptop Ice Lake")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("SSDTs required")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-PLUG-DRTNIA.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-PLUG-DRTNIA"),a("OutboundLink")],1)]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-EC-USBX-LAPTOP.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-EC-USBX-LAPTOP"),a("OutboundLink")],1)]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-AWAC.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-AWAC"),a("OutboundLink")],1)]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-RHUB.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-RHUB"),a("OutboundLink")],1)]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-PNLF-CFL.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-PNLF-CFL"),a("OutboundLink")],1)]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-XOSI.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-XOSI"),a("OutboundLink")],1)])]),e._v(" "),a("p",[e._v("Once downloaded, place them into your EFI folder under EFI/OC/ACPI and head back to the install guide")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://dortania.github.io/OpenCore-Install-Guide/config.plist/",target:"_blank",rel:"noopener noreferrer"}},[e._v("config.plist Setup"),a("OutboundLink")],1)])])]),e._v(" "),a("details",{staticClass:"custom-block details"},[a("summary",[e._v("In-depth info on the SSDTs")]),e._v(" "),a("p",[e._v("SSDT-PLUG:")]),e._v(" "),a("ul",[a("li",[e._v("Used for enabling Apple's XCPM in macOS, allowing for far better CPU power management")])]),e._v(" "),a("p",[e._v("SSDT-EC-USBX:")]),e._v(" "),a("ul",[a("li",[e._v("Used for disabling your real Embedded controller and creating a fake one for macOS to play with")]),e._v(" "),a("li",[e._v("USBX portion is used for injection USB power properties missing on Skylake and newer")])]),e._v(" "),a("p",[e._v("SSDT-AWAC:")]),e._v(" "),a("ul",[a("li",[e._v("Used to enable the legacy RTC clock in macOS, as the newer AWAC clock is unsupported")])]),e._v(" "),a("p",[e._v("SSDT-RHUB:")]),e._v(" "),a("ul",[a("li",[e._v("Used to reset USB controllers on Ice Lake laptops due to poor OEM ACPI implementation\n"),a("ul",[a("li",[e._v("Mainly seen on Dell laptops")])])])]),e._v(" "),a("p",[e._v("SSDT-PNLF:")]),e._v(" "),a("ul",[a("li",[e._v("Used for controlling the backlight on internal displays such as AIOs and laptops")])]),e._v(" "),a("p",[e._v("SSDT-XOSI:")]),e._v(" "),a("ul",[a("li",[e._v("Enables many Windows-only functionality in macOS\n"),a("ul",[a("li",[e._v("Requires XOSI patch(covered later on)")])])])])]),e._v(" "),a("h2",{attrs:{id:"intel-hedt-ssdts"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#intel-hedt-ssdts"}},[e._v("#")]),e._v(" Intel HEDT SSDTs")]),e._v(" "),a("h3",{attrs:{id:"nehalem-and-westmere"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#nehalem-and-westmere"}},[e._v("#")]),e._v(" Nehalem and Westmere")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("SSDTs required")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-EC-DESKTOP.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-EC-DESKTOP"),a("OutboundLink")],1)])]),e._v(" "),a("p",[e._v("Once downloaded, place them into your EFI folder under EFI/OC/ACPI and head back to the install guide")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://dortania.github.io/OpenCore-Install-Guide/config.plist/",target:"_blank",rel:"noopener noreferrer"}},[e._v("config.plist Setup"),a("OutboundLink")],1)])])]),e._v(" "),a("details",{staticClass:"custom-block details"},[a("summary",[e._v("In-depth info on the SSDTs")]),e._v(" "),a("p",[e._v("SSDT-EC:")]),e._v(" "),a("ul",[a("li",[e._v("Used for disabling your real Embedded controller and creating a fake one for macOS to play with")])]),e._v(" "),a("h3",{attrs:{id:"sandy-and-ivy-bridge-e"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sandy-and-ivy-bridge-e"}},[e._v("#")]),e._v(" Sandy and Ivy Bridge-E")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("SSDTs required")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-PLUG-DRTNIA.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-PLUG-DRTNIA"),a("OutboundLink")],1)]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-EC-DESKTOP.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-EC-DESKTOP"),a("OutboundLink")],1)]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-UNC0.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-UNC0"),a("OutboundLink")],1)])]),e._v(" "),a("p",[e._v("Once downloaded, place them into your EFI folder under EFI/OC/ACPI and head back to the install guide")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://dortania.github.io/OpenCore-Install-Guide/config.plist/",target:"_blank",rel:"noopener noreferrer"}},[e._v("config.plist Setup"),a("OutboundLink")],1)])])])]),e._v(" "),a("details",{staticClass:"custom-block details"},[a("summary",[e._v("In-depth info on the SSDTs")]),e._v(" "),a("p",[e._v("SSDT-PLUG:")]),e._v(" "),a("ul",[a("li",[e._v("Used for enabling Apple's XCPM in macOS, allowing for far better CPU power management")])]),e._v(" "),a("p",[e._v("SSDT-EC:")]),e._v(" "),a("ul",[a("li",[e._v("Used for disabling your real Embedded controller and creating a fake one for macOS to play with")])]),e._v(" "),a("p",[e._v("SSDT-UNC0:")]),e._v(" "),a("ul",[a("li",[e._v("Used to ensure unused or missing uncore bridges are properly disabled, otherwise kernel panic in IOPCIFamily in macOS Big Sur")])])]),e._v(" "),a("h3",{attrs:{id:"haswell-and-broadwell-e"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#haswell-and-broadwell-e"}},[e._v("#")]),e._v(" Haswell and Broadwell-E")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("SSDTs required")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-PLUG-DRTNIA.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-PLUG-DRTNIA"),a("OutboundLink")],1)]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-EC-USBX-DESKTOP.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-EC-USBX-DESKTOP"),a("OutboundLink")],1)]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-RTC0-RANGE-HEDT.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-RTC0-RANGE-HEDT"),a("OutboundLink")],1)]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-UNC0.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-UNC0"),a("OutboundLink")],1)])]),e._v(" "),a("p",[e._v("Once downloaded, place them into your EFI folder under EFI/OC/ACPI and head back to the install guide")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://dortania.github.io/OpenCore-Install-Guide/config.plist/",target:"_blank",rel:"noopener noreferrer"}},[e._v("config.plist Setup"),a("OutboundLink")],1)])])]),e._v(" "),a("details",{staticClass:"custom-block details"},[a("summary",[e._v("In-depth info on the SSDTs")]),e._v(" "),a("p",[e._v("SSDT-PLUG:")]),e._v(" "),a("ul",[a("li",[e._v("Used for enabling Apple's XCPM in macOS, allowing for far better CPU power management")])]),e._v(" "),a("p",[e._v("SSDT-EC-USBX:")]),e._v(" "),a("ul",[a("li",[e._v("Used for disabling your real Embedded controller and creating a fake one for macOS to play with")]),e._v(" "),a("li",[e._v("USBX portion is used for injection USB power properties missing on Skylake and newer")])]),e._v(" "),a("p",[e._v("SSDT-RTC0-RANGE-HEDT:")]),e._v(" "),a("ul",[a("li",[e._v("Used to enable the legacy RTC clock in macOS, as the newer AWAC clock is unsupported\n"),a("ul",[a("li",[e._v("Added benefit is to resolve early halts in macOS Big Sur's booting due to poor ACPI implementation")])])])]),e._v(" "),a("p",[e._v("SSDT-UNC0:")]),e._v(" "),a("ul",[a("li",[e._v("Used to ensure unused or missing uncore bridges are properly disabled, otherwise kernel panic in IOPCIFamily in macOS Big Sur")])])]),e._v(" "),a("h3",{attrs:{id:"skylake-and-cascade-lake-x-w"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#skylake-and-cascade-lake-x-w"}},[e._v("#")]),e._v(" Skylake and Cascade Lake-X/W")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("SSDTs required")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-PLUG-DRTNIA.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-PLUG-DRTNIA"),a("OutboundLink")],1)]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-EC-USBX-DESKTOP.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-EC-USBX-DESKTOP"),a("OutboundLink")],1)]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-RTC0-RANGE-HEDT.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-RTC0-RANGE-HEDT"),a("OutboundLink")],1)])]),e._v(" "),a("p",[e._v("Once downloaded, place them into your EFI folder under EFI/OC/ACPI and head back to the install guide")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://dortania.github.io/OpenCore-Install-Guide/config.plist/",target:"_blank",rel:"noopener noreferrer"}},[e._v("config.plist Setup"),a("OutboundLink")],1)])])]),e._v(" "),a("details",{staticClass:"custom-block details"},[a("summary",[e._v("In-depth info on the SSDTs")]),e._v(" "),a("p",[e._v("SSDT-PLUG:")]),e._v(" "),a("ul",[a("li",[e._v("Used for enabling Apple's XCPM in macOS, allowing for far better CPU power management")])]),e._v(" "),a("p",[e._v("SSDT-EC-USBX:")]),e._v(" "),a("ul",[a("li",[e._v("Used for disabling your real Embedded controller and creating a fake one for macOS to play with")]),e._v(" "),a("li",[e._v("USBX portion is used for injection USB power properties missing on Skylake and newer")])]),e._v(" "),a("p",[e._v("SSDT-RTC0-RANGE-HEDT:")]),e._v(" "),a("ul",[a("li",[e._v("Used to enable the legacy RTC clock in macOS, as the newer AWAC clock is unsupported\n"),a("ul",[a("li",[e._v("Added benefit is to resolve early halts in macOS Big Sur's booting due to poor ACPI implementation")])])])])]),e._v(" "),a("h2",{attrs:{id:"amd-ssdts"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#amd-ssdts"}},[e._v("#")]),e._v(" AMD SSDTs")]),e._v(" "),a("h3",{attrs:{id:"amd-bulldozer-jaguar"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#amd-bulldozer-jaguar"}},[e._v("#")]),e._v(" AMD Bulldozer/Jaguar")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("SSDTs required")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-EC-USBX-DESKTOP.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-EC-USBX-DESKTOP"),a("OutboundLink")],1)])]),e._v(" "),a("p",[e._v("Once downloaded, place them into your EFI folder under EFI/OC/ACPI and head back to the install guide")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://dortania.github.io/OpenCore-Install-Guide/config.plist/",target:"_blank",rel:"noopener noreferrer"}},[e._v("config.plist Setup"),a("OutboundLink")],1)])])]),e._v(" "),a("details",{staticClass:"custom-block details"},[a("summary",[e._v("In-depth info on the SSDTs")]),e._v(" "),a("p",[e._v("SSDT-EC-USBX:")]),e._v(" "),a("ul",[a("li",[e._v("Used for disabling your real Embedded controller and creating a fake one for macOS to play with")]),e._v(" "),a("li",[e._v("USBX portion is used for injection USB power properties missing on Skylake and newer")])])]),e._v(" "),a("h3",{attrs:{id:"amd-zen"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#amd-zen"}},[e._v("#")]),e._v(" AMD Zen")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("SSDTs required")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-EC-USBX-DESKTOP.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-EC-USBX-DESKTOP"),a("OutboundLink")],1)]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-CPUR.aml",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-CPUR"),a("OutboundLink")],1),e._v(" "),a("ul",[a("li",[e._v("Only required for B550, A520 and newer\n"),a("ul",[a("li",[e._v("X570 and older "),a("strong",[e._v("DO NOT")]),e._v(" need SSDT-CPUR")]),e._v(" "),a("li",[e._v("No threadripper machines need this either")])])])])])]),e._v(" "),a("p",[e._v("Once downloaded, place them into your EFI folder under EFI/OC/ACPI and head back to the install guide")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://dortania.github.io/OpenCore-Install-Guide/config.plist/",target:"_blank",rel:"noopener noreferrer"}},[e._v("config.plist Setup"),a("OutboundLink")],1)])])]),e._v(" "),a("details",{staticClass:"custom-block details"},[a("summary",[e._v("In-depth info on the SSDTs")]),e._v(" "),a("p",[e._v("SSDT-EC-USBX:")]),e._v(" "),a("ul",[a("li",[e._v("Used for disabling your real Embedded controller and creating a fake one for macOS to play with")]),e._v(" "),a("li",[e._v("USBX portion is used for injection USB power properties missing on Skylake and newer")])]),e._v(" "),a("p",[e._v("SSDT-CPUR:")]),e._v(" "),a("ul",[a("li",[e._v("Used for fixing CPU definitions in ACPI, as macOS does not properly support the ACPI used in B550 and newer boards")])])])])}),[],!1,null,null,null);t.default=l.exports}}]); \ No newline at end of file diff --git a/assets/js/63.f3fdad4f.js b/assets/js/63.f3fdad4f.js new file mode 100644 index 0000000..81c8ac8 --- /dev/null +++ b/assets/js/63.f3fdad4f.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[63],{466:function(t,e,a){"use strict";a.r(e);var r=a(25),n=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"what-ssdts-do-each-platform-need"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#what-ssdts-do-each-platform-need"}},[t._v("#")]),t._v(" What SSDTs do each platform need")]),t._v(" "),a("p",[t._v("Please see the "),a("strong",[t._v("specific ACPI section of your config.plist")]),t._v(", all SSDTs needed are covered there with a brief explainer. But here's a very quick TL;DR:")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#what-ssdts-do-each-platform-need"}},[t._v("What SSDTs do each platform need")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#desktop"}},[t._v("Desktop")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#high-end-desktop"}},[t._v("High End Desktop")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#laptop"}},[t._v("Laptop")])])])]),t._v(" "),a("li",[a("a",{attrs:{href:"#ssdt-creation"}},[t._v("SSDT Creation")])])]),t._v(" "),a("h2",{attrs:{id:"desktop"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#desktop"}},[t._v("#")]),t._v(" Desktop")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"center"}},[t._v("Platforms")]),t._v(" "),a("th",{staticStyle:{"text-align":"center"}},[a("strong",[t._v("CPU")])]),t._v(" "),a("th",{staticStyle:{"text-align":"center"}},[a("strong",[t._v("EC")])]),t._v(" "),a("th",{staticStyle:{"text-align":"center"}},[a("strong",[t._v("AWAC")])]),t._v(" "),a("th",{staticStyle:{"text-align":"center"}},[a("strong",[t._v("NVRAM")])]),t._v(" "),a("th",{staticStyle:{"text-align":"center"}},[a("strong",[t._v("USB")])])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Penryn")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"2"}},[t._v("N/A")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"6"}},[a("a",{attrs:{href:"./Universal/ec-fix"}},[t._v("SSDT-EC")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"8"}},[t._v("N/A")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"8"}},[t._v("N/A")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"9"}},[t._v("N/A")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Lynnfield and Clarkdale")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("SandyBridge")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"2"}},[a("a",{attrs:{href:"https://dortania.github.io/OpenCore-Post-Install/universal/pm.html#sandy-and-ivy-bridge-power-management",target:"_blank",rel:"noopener noreferrer"}},[t._v("CPU-PM"),a("OutboundLink")],1),t._v(" (Run in Post-Install)")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Ivy Bridge")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Haswell")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"6"}},[a("a",{attrs:{href:"./Universal/plug"}},[t._v("SSDT-PLUG")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Broadwell")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Skylake")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"6"}},[a("a",{attrs:{href:"./Universal/ec-fix"}},[t._v("SSDT-EC-USBX")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Kaby Lake")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Coffee Lake")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"2"}},[a("a",{attrs:{href:"./Universal/awac"}},[t._v("SSDT-AWAC")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[a("a",{attrs:{href:"./Universal/nvram"}},[t._v("SSDT-PMC")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Comet Lake")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"3"}},[t._v("N/A")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[a("a",{attrs:{href:"./Universal/rhub"}},[t._v("SSDT-RHUB")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("AMD (15/16h)")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("N/A")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("N/A")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("N/A")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("AMD (17h)")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[a("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-CPUR.aml",target:"_blank",rel:"noopener noreferrer"}},[t._v("SSDT-CPUR for B550 and A520"),a("OutboundLink")],1)]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("N/A")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("N/A")])])])]),t._v(" "),a("h2",{attrs:{id:"high-end-desktop"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#high-end-desktop"}},[t._v("#")]),t._v(" High End Desktop")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"center"}},[t._v("Platforms")]),t._v(" "),a("th",{staticStyle:{"text-align":"center"}},[a("strong",[t._v("CPU")])]),t._v(" "),a("th",{staticStyle:{"text-align":"center"}},[a("strong",[t._v("EC")])]),t._v(" "),a("th",{staticStyle:{"text-align":"center"}},[a("strong",[t._v("RTC")])]),t._v(" "),a("th",{staticStyle:{"text-align":"center"}},[a("strong",[t._v("PCI")])])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Nehalem and Westmere")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("N/A")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"2"}},[a("RouterLink",{attrs:{to:"/Universal/ec-fix.html"}},[t._v("SSDT-EC")])],1),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"2"}},[t._v("N/A")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("N/A")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Ivy Bridge-E")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"4"}},[a("a",{attrs:{href:"./Universal/plug"}},[t._v("SSDT-PLUG")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"3"}},[a("a",{attrs:{href:"./Universal/unc0"}},[t._v("SSDT-UNC")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Haswell-E")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"3"}},[a("a",{attrs:{href:"./Universal/ec-fix"}},[t._v("SSDT-EC-USBX")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"3"}},[a("a",{attrs:{href:"./Universal/awac"}},[t._v("SSDT-RTC0-RANGE")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Broadwell-E")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Skylake-X")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("N/A")])])])]),t._v(" "),a("h2",{attrs:{id:"laptop"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#laptop"}},[t._v("#")]),t._v(" Laptop")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"center"}},[t._v("Platforms")]),t._v(" "),a("th",{staticStyle:{"text-align":"center"}},[a("strong",[t._v("CPU")])]),t._v(" "),a("th",{staticStyle:{"text-align":"center"}},[a("strong",[t._v("EC")])]),t._v(" "),a("th",{staticStyle:{"text-align":"center"}},[a("strong",[t._v("Backlight")])]),t._v(" "),a("th",{staticStyle:{"text-align":"center"}},[a("strong",[t._v("I2C Trackpad")])]),t._v(" "),a("th",{staticStyle:{"text-align":"center"}},[a("strong",[t._v("AWAC")])]),t._v(" "),a("th",{staticStyle:{"text-align":"center"}},[a("strong",[t._v("USB")])]),t._v(" "),a("th",{staticStyle:{"text-align":"center"}},[a("strong",[t._v("IRQ")])])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Clarksfield and Arrandale")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("N/A")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"5"}},[a("a",{attrs:{href:"./Universal/ec-fix"}},[t._v("SSDT-EC")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"7"}},[a("a",{attrs:{href:"./Laptops/backlight"}},[t._v("SSDT-PNLF")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"3"}},[t._v("N/A")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"8"}},[t._v("N/A")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"10"}},[t._v("N/A")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"5"}},[a("a",{attrs:{href:"./Universal/irq"}},[t._v("IRQ SSDT")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("SandyBridge")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"2"}},[a("a",{attrs:{href:"https://dortania.github.io/OpenCore-Post-Install/universal/pm.html#sandy-and-ivy-bridge-power-management",target:"_blank",rel:"noopener noreferrer"}},[t._v("CPU-PM"),a("OutboundLink")],1),t._v(" (Run in Post-Install)")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Ivy Bridge")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Haswell")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"8"}},[a("a",{attrs:{href:"./Universal/plug"}},[t._v("SSDT-PLUG")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"8"}},[a("a",{attrs:{href:"./Laptops/trackpad"}},[t._v("SSDT-GPI0")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Broadwell")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Skylake")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"6"}},[a("a",{attrs:{href:"./Universal/ec-fix"}},[t._v("SSDT-EC-USBX")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"6"}},[t._v("N/A")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Kaby Lake")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Coffee Lake (8th Gen) and Whiskey Lake")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"4"}},[a("a",{attrs:{href:"./Laptops/backlight"}},[t._v("SSDT-PNLF-CFL")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Coffee Lake (9th Gen)")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"3"}},[a("a",{attrs:{href:"./Universal/awac"}},[t._v("SSDT-AWAC")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Comet Lake")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Ice Lake")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[a("a",{attrs:{href:"./Universal/rhub"}},[t._v("SSDT-RHUB")])])])])]),t._v(" "),a("p",[t._v("Continuing:")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"center"}},[t._v("Platforms")]),t._v(" "),a("th",{staticStyle:{"text-align":"center"}},[a("strong",[t._v("NVRAM")])]),t._v(" "),a("th",{staticStyle:{"text-align":"center"}},[a("strong",[t._v("IMEI")])])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Clarksfield and Arrandale")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"8"}},[t._v("N/A")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("N/A")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Sandy Bridge")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"2"}},[a("a",{attrs:{href:"./Universal/imei"}},[t._v("SSDT-IMEI")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Ivy Bridge")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Haswell")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"8"}},[t._v("N/A")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Broadwell")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Skylake")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Kaby Lake")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Coffee Lake (8th Gen) and Whiskey Lake")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Coffee Lake (9th Gen)")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[a("a",{attrs:{href:"./Universal/nvram"}},[t._v("SSDT-PMC")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Comet Lake")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"},attrs:{rowspan:"2"}},[t._v("N/A")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"center"}},[t._v("Ice Lake")])])])]),t._v(" "),a("h2",{attrs:{id:"ssdt-creation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#ssdt-creation"}},[t._v("#")]),t._v(" "),a("RouterLink",{attrs:{to:"/ssdt-methods/ssdt-methods.html"}},[t._v("SSDT Creation")])],1)])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/59.0ad7cb6f.js b/assets/js/64.c6097e12.js similarity index 98% rename from assets/js/59.0ad7cb6f.js rename to assets/js/64.c6097e12.js index 64fa610..2cdce58 100644 --- a/assets/js/59.0ad7cb6f.js +++ b/assets/js/64.c6097e12.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[59],{458:function(e,r,t){"use strict";t.r(r);var a=t(25),o=Object(a.a)({},(function(){var e=this,r=e.$createElement,t=e._self._c||r;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"troubleshooting"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#troubleshooting"}},[e._v("#")]),e._v(" Troubleshooting")]),e._v(" "),t("ul",[t("li",[t("RouterLink",{attrs:{to:"/troubleshooting.html#fixing-ssdttime-could-not-locate-or-download-iasl"}},[e._v("Fixing SSDTTime: "),t("code",[e._v("Could not locate or download iasl!")])])],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/troubleshooting.html#cant-run-acpidumpefi-from-opencore"}},[e._v("Can't run "),t("code",[e._v("acpidump.efi")])])],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/troubleshooting.html#iasl-warning--unresolved"}},[e._v("iASL warning, # unresolved")])],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/troubleshooting.html#decompiling-error"}},[e._v("Decompiling Error")])],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/troubleshooting.html#invalid-character-0x3d-expecting-asl-keyword-or-name"}},[e._v("Invalid character (0x3D), expecting ASL keyword or name")])],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/troubleshooting.html#syntax-error-unexpected-parseopone-expecting-"}},[e._v("Syntax error, unexpected PARSEOP_ONE, expecting '('")])],1)]),e._v(" "),t("h2",{attrs:{id:"fixing-ssdttime-could-not-locate-or-download-iasl"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#fixing-ssdttime-could-not-locate-or-download-iasl"}},[e._v("#")]),e._v(" Fixing SSDTTime: "),t("code",[e._v("Could not locate or download iasl!")])]),e._v(" "),t("p",[e._v("This is usually due to an outdated version of Python, try either updating Python or add iasl to the scripts folder for SSDTTime:")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"https://bitbucket.org/RehabMan/acpica/downloads/iasl.zip",target:"_blank",rel:"noopener noreferrer"}},[e._v("iasl macOS version"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("a",{attrs:{href:"https://acpica.org/downloads/binary-tools",target:"_blank",rel:"noopener noreferrer"}},[e._v("iasl Windows version"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("a",{attrs:{href:"http://amdosx.kellynet.nl/iasl.zip",target:"_blank",rel:"noopener noreferrer"}},[e._v("iasl Linux version"),t("OutboundLink")],1)])]),e._v(" "),t("h2",{attrs:{id:"can-t-run-acpidump-efi-from-opencore"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#can-t-run-acpidump-efi-from-opencore"}},[e._v("#")]),e._v(" Can't run "),t("code",[e._v("acpidump.efi")]),e._v(" from OpenCore")]),e._v(" "),t("p",[e._v("Grab "),t("a",{attrs:{href:"https://github.com/acidanthera/OpenCorePkg/releases",target:"_blank",rel:"noopener noreferrer"}},[e._v("OpenShell"),t("OutboundLink")],1),e._v(" and add it to EFI/OC/Tools and config.plist -> Misc -> Tools.")]),e._v(" "),t("p",[e._v("Next, call upon OpenCore shell and enter the following:")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("shell> fs0: //replace with proper drive\n\nfs0:\\> dir //to verify this is the right directory\n\n Directory of fs0:\\\n\n 01/01/01 3:30p EFI\n\nfs0:\\> cd EFI\\OC\\Tools //note that its with forward slashes\n\nfs0:\\EFI\\OC\\Tools> acpidump.efi -b -n DSDT -z\n")])])]),t("h2",{attrs:{id:"iasl-warning-unresolved"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#iasl-warning-unresolved"}},[e._v("#")]),e._v(" iASL warning, # unresolved")]),e._v(" "),t("p",[e._v("If you try to decompile your DSDT and get an error similar to this:")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("iASL Warning: There were 19 external control methods found during disassembly, but only 0 were resolved (19 unresolved)\n")])])]),t("p",[e._v("This happens when one ACPI table requires the rest for proper referencing, it does not accept the creation of DSDTs as we're only using it for creating a select few SSDTs. For those who are worried, you can run the following:")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("iasl * [insert all ACPI files here]\n")])])]),t("h2",{attrs:{id:"decompiling-error"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#decompiling-error"}},[e._v("#")]),e._v(" Decompiling Error")]),e._v(" "),t("p",[t("img",{attrs:{src:"/troubleshooting-md/decompile-error.png",alt:""}})]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("Loading Acpi table from file iASLAwjHrs.aml\nAcpi table [DSDT] successfully installed and loaded\nPass 1 parse of [DSDT]\n")])])]),t("p",[e._v("This is a common error on DSDTs that have methods that aren't supported by maciASL, the easiest way is to delete maciASL and make sure you grab it from Acidanthera's repo: "),t("a",{attrs:{href:"https://github.com/acidanthera/MaciASL/releases",target:"_blank",rel:"noopener noreferrer"}},[e._v("maciASL"),t("OutboundLink")],1)]),e._v(" "),t("h2",{attrs:{id:"invalid-character-0x3d-expecting-asl-keyword-or-name"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#invalid-character-0x3d-expecting-asl-keyword-or-name"}},[e._v("#")]),e._v(" Invalid character (0x3D), expecting ASL keyword or name")]),e._v(" "),t("p",[t("img",{attrs:{src:"/troubleshooting-md/invalid-parse.png",alt:""}})]),e._v(" "),t("p",[e._v("Similar to the above error, you're running an outdated copy of maciASL. Make sure you're using the latest from Acidanthera's repo: "),t("a",{attrs:{href:"https://github.com/acidanthera/MaciASL/releases",target:"_blank",rel:"noopener noreferrer"}},[e._v("maciASL"),t("OutboundLink")],1)]),e._v(" "),t("h2",{attrs:{id:"syntax-error-unexpected-parseop-one-expecting"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#syntax-error-unexpected-parseop-one-expecting"}},[e._v("#")]),e._v(" Syntax error, unexpected PARSEOP_ONE, expecting '('")]),e._v(" "),t("p",[t("img",{attrs:{src:"/troubleshooting-md/invalid-parse.png",alt:""}})]),e._v(" "),t("p",[e._v("Similar to the above 2 errors, you're running an outdated copy of maciASL. Make sure you're using the latest from Acidanthera's repo: "),t("a",{attrs:{href:"https://github.com/acidanthera/MaciASL/releases",target:"_blank",rel:"noopener noreferrer"}},[e._v("maciASL"),t("OutboundLink")],1)])])}),[],!1,null,null,null);r.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[64],{467:function(e,r,t){"use strict";t.r(r);var a=t(25),o=Object(a.a)({},(function(){var e=this,r=e.$createElement,t=e._self._c||r;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"troubleshooting"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#troubleshooting"}},[e._v("#")]),e._v(" Troubleshooting")]),e._v(" "),t("ul",[t("li",[t("RouterLink",{attrs:{to:"/troubleshooting.html#fixing-ssdttime-could-not-locate-or-download-iasl"}},[e._v("Fixing SSDTTime: "),t("code",[e._v("Could not locate or download iasl!")])])],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/troubleshooting.html#cant-run-acpidumpefi-from-opencore"}},[e._v("Can't run "),t("code",[e._v("acpidump.efi")])])],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/troubleshooting.html#iasl-warning--unresolved"}},[e._v("iASL warning, # unresolved")])],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/troubleshooting.html#decompiling-error"}},[e._v("Decompiling Error")])],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/troubleshooting.html#invalid-character-0x3d-expecting-asl-keyword-or-name"}},[e._v("Invalid character (0x3D), expecting ASL keyword or name")])],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/troubleshooting.html#syntax-error-unexpected-parseopone-expecting-"}},[e._v("Syntax error, unexpected PARSEOP_ONE, expecting '('")])],1)]),e._v(" "),t("h2",{attrs:{id:"fixing-ssdttime-could-not-locate-or-download-iasl"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#fixing-ssdttime-could-not-locate-or-download-iasl"}},[e._v("#")]),e._v(" Fixing SSDTTime: "),t("code",[e._v("Could not locate or download iasl!")])]),e._v(" "),t("p",[e._v("This is usually due to an outdated version of Python, try either updating Python or add iasl to the scripts folder for SSDTTime:")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"https://bitbucket.org/RehabMan/acpica/downloads/iasl.zip",target:"_blank",rel:"noopener noreferrer"}},[e._v("iasl macOS version"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("a",{attrs:{href:"https://acpica.org/downloads/binary-tools",target:"_blank",rel:"noopener noreferrer"}},[e._v("iasl Windows version"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("a",{attrs:{href:"http://amdosx.kellynet.nl/iasl.zip",target:"_blank",rel:"noopener noreferrer"}},[e._v("iasl Linux version"),t("OutboundLink")],1)])]),e._v(" "),t("h2",{attrs:{id:"can-t-run-acpidump-efi-from-opencore"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#can-t-run-acpidump-efi-from-opencore"}},[e._v("#")]),e._v(" Can't run "),t("code",[e._v("acpidump.efi")]),e._v(" from OpenCore")]),e._v(" "),t("p",[e._v("Grab "),t("a",{attrs:{href:"https://github.com/acidanthera/OpenCorePkg/releases",target:"_blank",rel:"noopener noreferrer"}},[e._v("OpenShell"),t("OutboundLink")],1),e._v(" and add it to EFI/OC/Tools and config.plist -> Misc -> Tools.")]),e._v(" "),t("p",[e._v("Next, call upon OpenCore shell and enter the following:")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("shell> fs0: //replace with proper drive\n\nfs0:\\> dir //to verify this is the right directory\n\n Directory of fs0:\\\n\n 01/01/01 3:30p EFI\n\nfs0:\\> cd EFI\\OC\\Tools //note that its with forward slashes\n\nfs0:\\EFI\\OC\\Tools> acpidump.efi -b -n DSDT -z\n")])])]),t("h2",{attrs:{id:"iasl-warning-unresolved"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#iasl-warning-unresolved"}},[e._v("#")]),e._v(" iASL warning, # unresolved")]),e._v(" "),t("p",[e._v("If you try to decompile your DSDT and get an error similar to this:")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("iASL Warning: There were 19 external control methods found during disassembly, but only 0 were resolved (19 unresolved)\n")])])]),t("p",[e._v("This happens when one ACPI table requires the rest for proper referencing, it does not accept the creation of DSDTs as we're only using it for creating a select few SSDTs. For those who are worried, you can run the following:")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("iasl * [insert all ACPI files here]\n")])])]),t("h2",{attrs:{id:"decompiling-error"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#decompiling-error"}},[e._v("#")]),e._v(" Decompiling Error")]),e._v(" "),t("p",[t("img",{attrs:{src:"/troubleshooting-md/decompile-error.png",alt:""}})]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("Loading Acpi table from file iASLAwjHrs.aml\nAcpi table [DSDT] successfully installed and loaded\nPass 1 parse of [DSDT]\n")])])]),t("p",[e._v("This is a common error on DSDTs that have methods that aren't supported by maciASL, the easiest way is to delete maciASL and make sure you grab it from Acidanthera's repo: "),t("a",{attrs:{href:"https://github.com/acidanthera/MaciASL/releases",target:"_blank",rel:"noopener noreferrer"}},[e._v("maciASL"),t("OutboundLink")],1)]),e._v(" "),t("h2",{attrs:{id:"invalid-character-0x3d-expecting-asl-keyword-or-name"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#invalid-character-0x3d-expecting-asl-keyword-or-name"}},[e._v("#")]),e._v(" Invalid character (0x3D), expecting ASL keyword or name")]),e._v(" "),t("p",[t("img",{attrs:{src:"/troubleshooting-md/invalid-parse.png",alt:""}})]),e._v(" "),t("p",[e._v("Similar to the above error, you're running an outdated copy of maciASL. Make sure you're using the latest from Acidanthera's repo: "),t("a",{attrs:{href:"https://github.com/acidanthera/MaciASL/releases",target:"_blank",rel:"noopener noreferrer"}},[e._v("maciASL"),t("OutboundLink")],1)]),e._v(" "),t("h2",{attrs:{id:"syntax-error-unexpected-parseop-one-expecting"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#syntax-error-unexpected-parseop-one-expecting"}},[e._v("#")]),e._v(" Syntax error, unexpected PARSEOP_ONE, expecting '('")]),e._v(" "),t("p",[t("img",{attrs:{src:"/troubleshooting-md/invalid-parse.png",alt:""}})]),e._v(" "),t("p",[e._v("Similar to the above 2 errors, you're running an outdated copy of maciASL. Make sure you're using the latest from Acidanthera's repo: "),t("a",{attrs:{href:"https://github.com/acidanthera/MaciASL/releases",target:"_blank",rel:"noopener noreferrer"}},[e._v("maciASL"),t("OutboundLink")],1)])])}),[],!1,null,null,null);r.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/6.43dfd2e7.js b/assets/js/7.4e961e07.js similarity index 89% rename from assets/js/6.43dfd2e7.js rename to assets/js/7.4e961e07.js index 90bb042..88cedca 100644 --- a/assets/js/6.43dfd2e7.js +++ b/assets/js/7.4e961e07.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[6],{394:function(e,t,a){e.exports=a.p+"assets/img/pci.81a3ae52.png"},395:function(e,t,a){e.exports=a.p+"assets/img/smbus.d9dd6044.png"},396:function(e,t,a){e.exports=a.p+"assets/img/before-rename.c0ccc637.png"},397:function(e,t,a){e.exports=a.p+"assets/img/after-rename.48bf32ad.png"},398:function(e,t,a){e.exports=a.p+"assets/img/verify.58363d4d.png"},449:function(e,t,a){"use strict";a.r(t);var s=a(25),n=Object(s.a)({},(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[s("h1",{attrs:{id:"fixing-smbus-support-manual"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#fixing-smbus-support-manual"}},[e._v("#")]),e._v(" Fixing SMBus support: Manual")]),e._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#finding-the-acpi-path"}},[e._v("Finding the ACPI path")]),e._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#hackintool"}},[e._v("Hackintool")])]),e._v(" "),s("li",[s("a",{attrs:{href:"#devicemanager"}},[e._v("DeviceManager")])])])]),e._v(" "),s("li",[s("a",{attrs:{href:"#edits-to-the-sample-ssdt"}},[e._v("Edits to the sample SSDT")])]),e._v(" "),s("li",[s("a",{attrs:{href:"#compiling-the-ssdt"}},[e._v("Compiling the SSDT")])]),e._v(" "),s("li",[s("a",{attrs:{href:"#wrapping-up"}},[e._v("Wrapping up")])])]),e._v(" "),s("h2",{attrs:{id:"finding-the-acpi-path"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#finding-the-acpi-path"}},[e._v("#")]),e._v(" Finding the ACPI path")]),e._v(" "),s("p",[e._v("So to find the ACPI pathing of our SMBus, we've got 2 methods:")]),e._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#hackintool"}},[e._v("Hackintool")])]),e._v(" "),s("li",[s("a",{attrs:{href:"#devicemanager"}},[e._v("DeviceManager")])])]),e._v(" "),s("h3",{attrs:{id:"hackintool"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#hackintool"}},[e._v("#")]),e._v(" Hackintool")]),e._v(" "),s("p",[e._v("To find the correct pathing for your devices, grab "),s("a",{attrs:{href:"https://www.tonymacx86.com/threads/release-hackintool-v3-x-x.254559/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Hackintool"),s("OutboundLink")],1),e._v(" ("),s("a",{attrs:{href:"https://github.com/headkaze/Hackintool",target:"_blank",rel:"noopener noreferrer"}},[e._v("Github link"),s("OutboundLink")],1),e._v(") and head to the PCI tab:")]),e._v(" "),s("p",[s("img",{attrs:{src:a(394),alt:""}})]),e._v(" "),s("p",[e._v("Look for the SMBus device under Subclass, then look beside and you'll see the ACPI path(under IOReg Name). To convert , omit "),s("code",[e._v("@...")])]),e._v(" "),s("ul",[s("li",[s("code",[e._v("/PC00@0/SMBS@1F,4")]),e._v(" -> "),s("code",[e._v("PC00.SMBS")])])]),e._v(" "),s("p",[e._v("With the ACPI pathing, you can now head here: "),s("a",{attrs:{href:"#edits-to-the-sample-ssdt"}},[e._v("Edits to the sample SSDT")])]),e._v(" "),s("h3",{attrs:{id:"devicemanager"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#devicemanager"}},[e._v("#")]),e._v(" DeviceManager")]),e._v(" "),s("p",[e._v("If you already have Windows installed on this machine, finding the SMBus pathing is fairly easy.")]),e._v(" "),s("p",[e._v("Start by opening up Device Manager in Windows and looking for a device named "),s("code",[e._v("SMBUS")]),e._v(". Once found, click on it and select the "),s("code",[e._v("BIOS device Name")]),e._v(" entry. You should get something like this:")]),e._v(" "),s("p",[s("img",{attrs:{src:a(395),alt:""}})]),e._v(" "),s("p",[e._v("From the above example, we can see the SMBus is located at:")]),e._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v("PC00.SMBS\n")])])]),s("p",[e._v("With the ACPI pathing, you can now head here: "),s("a",{attrs:{href:"#edits-to-the-sample-ssdt"}},[e._v("Edits to the sample SSDT")])]),e._v(" "),s("h2",{attrs:{id:"edits-to-the-sample-ssdt"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#edits-to-the-sample-ssdt"}},[e._v("#")]),e._v(" Edits to the sample SSDT")]),e._v(" "),s("p",[e._v("Now that we know the ACPI pathing of the SMBus, we can finally start editing the our SSDT.")]),e._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-SBUS-MCHC.dsl",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-SBUS-MCHC.dsl"),s("OutboundLink")],1)])]),e._v(" "),s("p",[e._v("So the important parts we care about are:")]),e._v(" "),s("p",[s("strong",[e._v("Before")]),e._v(":")]),e._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v("External (_SB_.PCI0, DeviceObj) <- Rename this\nExternal (_SB_.PCI0.SBUS.BUS0, DeviceObj) <- Rename this\n\nScope (_SB.PCI0) <- Rename this\n{\n Device (MCHC)\n {\n Name (_ADR, Zero) // _ADR: Address\n }\n}\n\nDevice (_SB.PCI0.SBUS.BUS0) <- Rename this\n")])])]),s("p",[s("img",{attrs:{src:a(396),alt:""}})]),e._v(" "),s("p",[e._v("Following the example SMBus pathing we found, the SSDT should look something like this:")]),e._v(" "),s("p",[s("strong",[e._v("After")]),e._v(":")]),e._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v("External (_SB_.PC00, DeviceObj) <- Renamed\nExternal (_SB_.PC00.SMBS.BUS0, DeviceObj) <- Renamed\n\nScope (_SB.PC00) <- Renamed\n{\n Device (MCHC)\n {\n Name (_ADR, Zero) // _ADR: Address\n }\n}\n\nDevice (_SB.PC00.SMBS.BUS0) <- Renamed\n")])])]),s("p",[s("img",{attrs:{src:a(397),alt:""}})]),e._v(" "),s("h1",{attrs:{id:"compiling-the-ssdt"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#compiling-the-ssdt"}},[e._v("#")]),e._v(" Compiling the SSDT")]),e._v(" "),s("p",[e._v("With the SSDT done, you're now "),s("RouterLink",{attrs:{to:"/Manual/compile.html"}},[e._v("ready to compile the SSDT!")])],1),e._v(" "),s("h1",{attrs:{id:"wrapping-up"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#wrapping-up"}},[e._v("#")]),e._v(" Wrapping up")]),e._v(" "),s("p",[e._v("Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:")]),e._v(" "),s("ul",[s("li",[s("RouterLink",{attrs:{to:"/cleanup.html"}},[s("strong",[e._v("Cleanup")])])],1)]),e._v(" "),s("h1",{attrs:{id:"verify-it-s-working"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#verify-it-s-working"}},[e._v("#")]),e._v(" Verify it's working")]),e._v(" "),s("p",[e._v("Once you've installed macOS, you can actually check whether your SSDT-SBUS-MCHC is working or not in terminal:")]),e._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v('kextstat | grep -E "AppleSMBusController|AppleSMBusPCI"\n')])])]),s("p",[s("img",{attrs:{src:a(398),alt:""}})])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{401:function(e,t,a){e.exports=a.p+"assets/img/pci.81a3ae52.png"},402:function(e,t,a){e.exports=a.p+"assets/img/smbus.d9dd6044.png"},403:function(e,t,a){e.exports=a.p+"assets/img/before-rename.c0ccc637.png"},404:function(e,t,a){e.exports=a.p+"assets/img/after-rename.48bf32ad.png"},405:function(e,t,a){e.exports=a.p+"assets/img/verify.58363d4d.png"},458:function(e,t,a){"use strict";a.r(t);var s=a(25),n=Object(s.a)({},(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[s("h1",{attrs:{id:"fixing-smbus-support-manual"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#fixing-smbus-support-manual"}},[e._v("#")]),e._v(" Fixing SMBus support: Manual")]),e._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#finding-the-acpi-path"}},[e._v("Finding the ACPI path")]),e._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#hackintool"}},[e._v("Hackintool")])]),e._v(" "),s("li",[s("a",{attrs:{href:"#devicemanager"}},[e._v("DeviceManager")])])])]),e._v(" "),s("li",[s("a",{attrs:{href:"#edits-to-the-sample-ssdt"}},[e._v("Edits to the sample SSDT")])]),e._v(" "),s("li",[s("a",{attrs:{href:"#compiling-the-ssdt"}},[e._v("Compiling the SSDT")])]),e._v(" "),s("li",[s("a",{attrs:{href:"#wrapping-up"}},[e._v("Wrapping up")])])]),e._v(" "),s("h2",{attrs:{id:"finding-the-acpi-path"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#finding-the-acpi-path"}},[e._v("#")]),e._v(" Finding the ACPI path")]),e._v(" "),s("p",[e._v("So to find the ACPI pathing of our SMBus, we've got 2 methods:")]),e._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#hackintool"}},[e._v("Hackintool")])]),e._v(" "),s("li",[s("a",{attrs:{href:"#devicemanager"}},[e._v("DeviceManager")])])]),e._v(" "),s("h3",{attrs:{id:"hackintool"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#hackintool"}},[e._v("#")]),e._v(" Hackintool")]),e._v(" "),s("p",[e._v("To find the correct pathing for your devices, grab "),s("a",{attrs:{href:"https://www.tonymacx86.com/threads/release-hackintool-v3-x-x.254559/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Hackintool"),s("OutboundLink")],1),e._v(" ("),s("a",{attrs:{href:"https://github.com/headkaze/Hackintool",target:"_blank",rel:"noopener noreferrer"}},[e._v("Github link"),s("OutboundLink")],1),e._v(") and head to the PCI tab:")]),e._v(" "),s("p",[s("img",{attrs:{src:a(401),alt:""}})]),e._v(" "),s("p",[e._v("Look for the SMBus device under Subclass, then look beside and you'll see the ACPI path(under IOReg Name). To convert , omit "),s("code",[e._v("@...")])]),e._v(" "),s("ul",[s("li",[s("code",[e._v("/PC00@0/SMBS@1F,4")]),e._v(" -> "),s("code",[e._v("PC00.SMBS")])])]),e._v(" "),s("p",[e._v("With the ACPI pathing, you can now head here: "),s("a",{attrs:{href:"#edits-to-the-sample-ssdt"}},[e._v("Edits to the sample SSDT")])]),e._v(" "),s("h3",{attrs:{id:"devicemanager"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#devicemanager"}},[e._v("#")]),e._v(" DeviceManager")]),e._v(" "),s("p",[e._v("If you already have Windows installed on this machine, finding the SMBus pathing is fairly easy.")]),e._v(" "),s("p",[e._v("Start by opening up Device Manager in Windows and looking for a device named "),s("code",[e._v("SMBUS")]),e._v(". Once found, click on it and select the "),s("code",[e._v("BIOS device Name")]),e._v(" entry. You should get something like this:")]),e._v(" "),s("p",[s("img",{attrs:{src:a(402),alt:""}})]),e._v(" "),s("p",[e._v("From the above example, we can see the SMBus is located at:")]),e._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v("PC00.SMBS\n")])])]),s("p",[e._v("With the ACPI pathing, you can now head here: "),s("a",{attrs:{href:"#edits-to-the-sample-ssdt"}},[e._v("Edits to the sample SSDT")])]),e._v(" "),s("h2",{attrs:{id:"edits-to-the-sample-ssdt"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#edits-to-the-sample-ssdt"}},[e._v("#")]),e._v(" Edits to the sample SSDT")]),e._v(" "),s("p",[e._v("Now that we know the ACPI pathing of the SMBus, we can finally start editing the our SSDT.")]),e._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-SBUS-MCHC.dsl",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-SBUS-MCHC.dsl"),s("OutboundLink")],1)])]),e._v(" "),s("p",[e._v("So the important parts we care about are:")]),e._v(" "),s("p",[s("strong",[e._v("Before")]),e._v(":")]),e._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v("External (_SB_.PCI0, DeviceObj) <- Rename this\nExternal (_SB_.PCI0.SBUS.BUS0, DeviceObj) <- Rename this\n\nScope (_SB.PCI0) <- Rename this\n{\n Device (MCHC)\n {\n Name (_ADR, Zero) // _ADR: Address\n }\n}\n\nDevice (_SB.PCI0.SBUS.BUS0) <- Rename this\n")])])]),s("p",[s("img",{attrs:{src:a(403),alt:""}})]),e._v(" "),s("p",[e._v("Following the example SMBus pathing we found, the SSDT should look something like this:")]),e._v(" "),s("p",[s("strong",[e._v("After")]),e._v(":")]),e._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v("External (_SB_.PC00, DeviceObj) <- Renamed\nExternal (_SB_.PC00.SMBS.BUS0, DeviceObj) <- Renamed\n\nScope (_SB.PC00) <- Renamed\n{\n Device (MCHC)\n {\n Name (_ADR, Zero) // _ADR: Address\n }\n}\n\nDevice (_SB.PC00.SMBS.BUS0) <- Renamed\n")])])]),s("p",[s("img",{attrs:{src:a(404),alt:""}})]),e._v(" "),s("h1",{attrs:{id:"compiling-the-ssdt"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#compiling-the-ssdt"}},[e._v("#")]),e._v(" Compiling the SSDT")]),e._v(" "),s("p",[e._v("With the SSDT done, you're now "),s("RouterLink",{attrs:{to:"/Manual/compile.html"}},[e._v("ready to compile the SSDT!")])],1),e._v(" "),s("h1",{attrs:{id:"wrapping-up"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#wrapping-up"}},[e._v("#")]),e._v(" Wrapping up")]),e._v(" "),s("p",[e._v("Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:")]),e._v(" "),s("ul",[s("li",[s("RouterLink",{attrs:{to:"/cleanup.html"}},[s("strong",[e._v("Cleanup")])])],1)]),e._v(" "),s("h1",{attrs:{id:"verify-it-s-working"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#verify-it-s-working"}},[e._v("#")]),e._v(" Verify it's working")]),e._v(" "),s("p",[e._v("Once you've installed macOS, you can actually check whether your SSDT-SBUS-MCHC is working or not in terminal:")]),e._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v('kextstat | grep -E "AppleSMBusController|AppleSMBusPCI"\n')])])]),s("p",[s("img",{attrs:{src:a(405),alt:""}})])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/7.ea484509.js b/assets/js/8.8b5715f0.js similarity index 89% rename from assets/js/7.ea484509.js rename to assets/js/8.8b5715f0.js index 54565d2..e11fa14 100644 --- a/assets/js/7.ea484509.js +++ b/assets/js/8.8b5715f0.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{366:function(t,e,a){t.exports=a.p+"assets/img/gpi0.b0e0b8d8.png"},367:function(t,e,a){t.exports=a.p+"assets/img/gpi0-2.8c3726d3.png"},368:function(t,e,a){t.exports=a.p+"assets/img/ssdt-before.b64846c1.png"},369:function(t,e,a){t.exports=a.p+"assets/img/ssdt-after.9ea3604d.png"},419:function(t,e,a){"use strict";a.r(e);var n=a(25),s=Object(n.a)({},(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[n("h1",{attrs:{id:"fixing-trackpads-manual"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#fixing-trackpads-manual"}},[t._v("#")]),t._v(" Fixing Trackpads: Manual")]),t._v(" "),n("ul",[n("li",[n("a",{attrs:{href:"#finding-the-acpi-path"}},[t._v("Finding the ACPI path")])]),t._v(" "),n("li",[n("a",{attrs:{href:"#edits-to-the-sample-ssdt"}},[t._v("Edits to the sample SSDT")])]),t._v(" "),n("li",[n("a",{attrs:{href:"#compiling-the-ssdt"}},[t._v("Compiling the SSDT")])]),t._v(" "),n("li",[n("a",{attrs:{href:"#wrapping-up"}},[t._v("Wrapping up")])])]),t._v(" "),n("h2",{attrs:{id:"finding-the-acpi-path"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#finding-the-acpi-path"}},[t._v("#")]),t._v(" Finding the ACPI path")]),t._v(" "),n("p",[t._v("Finding the ACPI pathing is quite easy actually, first open your decompiled DSDT you got from "),n("RouterLink",{attrs:{to:"/Manual/dump.html"}},[t._v("Dumping the DSDT")]),t._v(" and "),n("RouterLink",{attrs:{to:"/Manual/compile.html"}},[t._v("Decompiling and Compiling")]),t._v(" with either maciASL(if in macOS) or any other text editor if in Windows or Linux(VSCode has an "),n("a",{attrs:{href:"https://marketplace.visualstudio.com/items?itemName=Thog.vscode-asl",target:"_blank",rel:"noopener noreferrer"}},[t._v("ACPI extension"),n("OutboundLink")],1),t._v(" that can also help).")],1),t._v(" "),n("p",[t._v("Next search for "),n("code",[t._v("Device (GPI0)")]),t._v(". Should give you a result similar to this:")]),t._v(" "),n("p",[n("img",{attrs:{src:a(366),alt:""}})]),t._v(" "),n("p",[t._v("What we care about from this is the "),n("code",[t._v("_STA")]),t._v(" method:")]),t._v(" "),n("div",{staticClass:"language- extra-class"},[n("pre",{pre:!0,attrs:{class:"language-text"}},[n("code",[t._v("Method (_STA, 0, NotSerialized)\n{\n If ((GPHD == One))\n {\n Return (0x03)\n }\n\n Return (0x0F)\n}\n")])])]),n("p",[t._v("What we want is for this to always return "),n("code",[t._v("0x0F")]),t._v(" when booting macOS, so we want to make an SSDT that will return "),n("code",[t._v("GPHD == Zero")]),t._v(" in macOS.")]),t._v(" "),n("p",[n("strong",[t._v("NOTE that you may have the other way around where GPHD needs to be set as "),n("code",[t._v("One")]),t._v(" to return "),n("code",[t._v("0x0F")])]),t._v(". And your device name may also be different, don't throw random SSDTs in thinking it'll work")]),t._v(" "),n("p",[t._v("Here's some more examples:")]),t._v(" "),n("p",[n("img",{attrs:{src:a(367),alt:""}})]),t._v(" "),n("p",[t._v("With this example, we can see that we need both "),n("code",[t._v("SBRG")]),t._v(" and "),n("code",[t._v("GPEN")]),t._v(" to return "),n("code",[t._v("One")]),t._v(". If only one is present, it'll create some issues so in our SSDT we'll want to have both of them return "),n("code",[t._v("One")]),t._v(":")]),t._v(" "),n("h2",{attrs:{id:"edits-to-the-sample-ssdt"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#edits-to-the-sample-ssdt"}},[t._v("#")]),t._v(" Edits to the sample SSDT")]),t._v(" "),n("p",[t._v("Now that we have our ACPI path, lets grab our SSDT and get to work:")]),t._v(" "),n("ul",[n("li",[n("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/decompiled/SSDT-GPI0.dsl",target:"_blank",rel:"noopener noreferrer"}},[t._v("SSDT-GPI0.dsl"),n("OutboundLink")],1)])]),t._v(" "),n("p",[t._v("From the second example, we'll want to set both GPEN and SBRG to "),n("code",[t._v("One")]),t._v(" to allow it to operate in macOS:")]),t._v(" "),n("p",[n("strong",[t._v("Before")]),t._v(":")]),t._v(" "),n("div",{staticClass:"language- extra-class"},[n("pre",{pre:!0,attrs:{class:"language-text"}},[n("code",[t._v('If (_OSI ("Darwin"))\n{\n GPEN = One <- Proper variables\n}\n')])])]),n("p",[n("img",{attrs:{src:a(368),alt:""}})]),t._v(" "),n("p",[t._v("Following the example pathing we found, the SSDT should look something like this:")]),t._v(" "),n("p",[n("strong",[t._v("After")]),t._v(":")]),t._v(" "),n("div",{staticClass:"language- extra-class"},[n("pre",{pre:!0,attrs:{class:"language-text"}},[n("code",[t._v('If (_OSI ("Darwin"))\n{\n GPEN = One <- Change to the right variables\n SBRG = One <- Change to the right variables\n}\n')])])]),n("p",[n("img",{attrs:{src:a(369),alt:""}})]),t._v(" "),n("h2",{attrs:{id:"compiling-the-ssdt"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#compiling-the-ssdt"}},[t._v("#")]),t._v(" Compiling the SSDT")]),t._v(" "),n("p",[t._v("With the SSDT done, you're now "),n("RouterLink",{attrs:{to:"/Manual/compile.html"}},[t._v("ready to compile the SSDT!")])],1),t._v(" "),n("h2",{attrs:{id:"wrapping-up"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#wrapping-up"}},[t._v("#")]),t._v(" Wrapping up")]),t._v(" "),n("p",[t._v("Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:")]),t._v(" "),n("ul",[n("li",[n("RouterLink",{attrs:{to:"/cleanup.html"}},[n("strong",[t._v("Cleanup")])])],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[8],{369:function(t,e,a){t.exports=a.p+"assets/img/gpi0.b0e0b8d8.png"},370:function(t,e,a){t.exports=a.p+"assets/img/gpi0-2.8c3726d3.png"},371:function(t,e,a){t.exports=a.p+"assets/img/ssdt-before.b64846c1.png"},372:function(t,e,a){t.exports=a.p+"assets/img/ssdt-after.9ea3604d.png"},425:function(t,e,a){"use strict";a.r(e);var n=a(25),s=Object(n.a)({},(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[n("h1",{attrs:{id:"fixing-trackpads-manual"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#fixing-trackpads-manual"}},[t._v("#")]),t._v(" Fixing Trackpads: Manual")]),t._v(" "),n("ul",[n("li",[n("a",{attrs:{href:"#finding-the-acpi-path"}},[t._v("Finding the ACPI path")])]),t._v(" "),n("li",[n("a",{attrs:{href:"#edits-to-the-sample-ssdt"}},[t._v("Edits to the sample SSDT")])]),t._v(" "),n("li",[n("a",{attrs:{href:"#compiling-the-ssdt"}},[t._v("Compiling the SSDT")])]),t._v(" "),n("li",[n("a",{attrs:{href:"#wrapping-up"}},[t._v("Wrapping up")])])]),t._v(" "),n("h2",{attrs:{id:"finding-the-acpi-path"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#finding-the-acpi-path"}},[t._v("#")]),t._v(" Finding the ACPI path")]),t._v(" "),n("p",[t._v("Finding the ACPI pathing is quite easy actually, first open your decompiled DSDT you got from "),n("RouterLink",{attrs:{to:"/Manual/dump.html"}},[t._v("Dumping the DSDT")]),t._v(" and "),n("RouterLink",{attrs:{to:"/Manual/compile.html"}},[t._v("Decompiling and Compiling")]),t._v(" with either maciASL(if in macOS) or any other text editor if in Windows or Linux(VSCode has an "),n("a",{attrs:{href:"https://marketplace.visualstudio.com/items?itemName=Thog.vscode-asl",target:"_blank",rel:"noopener noreferrer"}},[t._v("ACPI extension"),n("OutboundLink")],1),t._v(" that can also help).")],1),t._v(" "),n("p",[t._v("Next search for "),n("code",[t._v("Device (GPI0)")]),t._v(". Should give you a result similar to this:")]),t._v(" "),n("p",[n("img",{attrs:{src:a(369),alt:""}})]),t._v(" "),n("p",[t._v("What we care about from this is the "),n("code",[t._v("_STA")]),t._v(" method:")]),t._v(" "),n("div",{staticClass:"language- extra-class"},[n("pre",{pre:!0,attrs:{class:"language-text"}},[n("code",[t._v("Method (_STA, 0, NotSerialized)\n{\n If ((GPHD == One))\n {\n Return (0x03)\n }\n\n Return (0x0F)\n}\n")])])]),n("p",[t._v("What we want is for this to always return "),n("code",[t._v("0x0F")]),t._v(" when booting macOS, so we want to make an SSDT that will return "),n("code",[t._v("GPHD == Zero")]),t._v(" in macOS.")]),t._v(" "),n("p",[n("strong",[t._v("NOTE that you may have the other way around where GPHD needs to be set as "),n("code",[t._v("One")]),t._v(" to return "),n("code",[t._v("0x0F")])]),t._v(". And your device name may also be different, don't throw random SSDTs in thinking it'll work")]),t._v(" "),n("p",[t._v("Here's some more examples:")]),t._v(" "),n("p",[n("img",{attrs:{src:a(370),alt:""}})]),t._v(" "),n("p",[t._v("With this example, we can see that we need both "),n("code",[t._v("SBRG")]),t._v(" and "),n("code",[t._v("GPEN")]),t._v(" to return "),n("code",[t._v("One")]),t._v(". If only one is present, it'll create some issues so in our SSDT we'll want to have both of them return "),n("code",[t._v("One")]),t._v(":")]),t._v(" "),n("h2",{attrs:{id:"edits-to-the-sample-ssdt"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#edits-to-the-sample-ssdt"}},[t._v("#")]),t._v(" Edits to the sample SSDT")]),t._v(" "),n("p",[t._v("Now that we have our ACPI path, lets grab our SSDT and get to work:")]),t._v(" "),n("ul",[n("li",[n("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/decompiled/SSDT-GPI0.dsl",target:"_blank",rel:"noopener noreferrer"}},[t._v("SSDT-GPI0.dsl"),n("OutboundLink")],1)])]),t._v(" "),n("p",[t._v("From the second example, we'll want to set both GPEN and SBRG to "),n("code",[t._v("One")]),t._v(" to allow it to operate in macOS:")]),t._v(" "),n("p",[n("strong",[t._v("Before")]),t._v(":")]),t._v(" "),n("div",{staticClass:"language- extra-class"},[n("pre",{pre:!0,attrs:{class:"language-text"}},[n("code",[t._v('If (_OSI ("Darwin"))\n{\n GPEN = One <- Proper variables\n}\n')])])]),n("p",[n("img",{attrs:{src:a(371),alt:""}})]),t._v(" "),n("p",[t._v("Following the example pathing we found, the SSDT should look something like this:")]),t._v(" "),n("p",[n("strong",[t._v("After")]),t._v(":")]),t._v(" "),n("div",{staticClass:"language- extra-class"},[n("pre",{pre:!0,attrs:{class:"language-text"}},[n("code",[t._v('If (_OSI ("Darwin"))\n{\n GPEN = One <- Change to the right variables\n SBRG = One <- Change to the right variables\n}\n')])])]),n("p",[n("img",{attrs:{src:a(372),alt:""}})]),t._v(" "),n("h2",{attrs:{id:"compiling-the-ssdt"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#compiling-the-ssdt"}},[t._v("#")]),t._v(" Compiling the SSDT")]),t._v(" "),n("p",[t._v("With the SSDT done, you're now "),n("RouterLink",{attrs:{to:"/Manual/compile.html"}},[t._v("ready to compile the SSDT!")])],1),t._v(" "),n("h2",{attrs:{id:"wrapping-up"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#wrapping-up"}},[t._v("#")]),t._v(" Wrapping up")]),t._v(" "),n("p",[t._v("Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:")]),t._v(" "),n("ul",[n("li",[n("RouterLink",{attrs:{to:"/cleanup.html"}},[n("strong",[t._v("Cleanup")])])],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/assets/js/9.3378e246.js b/assets/js/9.3378e246.js deleted file mode 100644 index f05d519..0000000 --- a/assets/js/9.3378e246.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[9],{363:function(e,t,a){e.exports=a.p+"assets/img/devicemanager.770a10fc.png"},364:function(e,t,a){e.exports=a.p+"assets/img/ssdt-before.f71c9e04.png"},365:function(e,t,a){e.exports=a.p+"assets/img/ssdt-after.28584bc4.png"},414:function(e,t,a){"use strict";a.r(t);var s=a(25),i=Object(s.a)({},(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[s("h1",{attrs:{id:"fixing-backlight-manual"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#fixing-backlight-manual"}},[e._v("#")]),e._v(" Fixing Backlight: Manual")]),e._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#finding-the-acpi-path"}},[e._v("Finding the ACPI path")])]),e._v(" "),s("li",[s("a",{attrs:{href:"#edits-to-the-sample-ssdt"}},[e._v("Edits to the sample SSDT")])]),e._v(" "),s("li",[s("a",{attrs:{href:"#compiling-the-ssdt"}},[e._v("Compiling the SSDT")])]),e._v(" "),s("li",[s("a",{attrs:{href:"#wrapping-up"}},[e._v("Wrapping up")])])]),e._v(" "),s("h2",{attrs:{id:"finding-the-acpi-path"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#finding-the-acpi-path"}},[e._v("#")]),e._v(" Finding the ACPI path")]),e._v(" "),s("p",[e._v("For this guide, we're gonna assume Windows is already on this laptop, as otherwise creating this SSDT is a bit more difficult.")]),e._v(" "),s("p",[e._v("Now open DeviceManager, and head to the following:")]),e._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v("Device Manager -> Display Adapters -> Properties -> Details > BIOS device name\n")])])]),s("ul",[s("li",[e._v('Note some GPU ACPI pathing may be hiding under "BIOS device name"')])]),e._v(" "),s("p",[s("img",{attrs:{src:a(363),alt:"Credit to 1Revenger1 for the image"}})]),e._v(" "),s("p",[e._v("From the above example, we can see our display is hooked up to "),s("code",[e._v("PCI0.GFX0")])]),e._v(" "),s("h2",{attrs:{id:"edits-to-the-sample-ssdt"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#edits-to-the-sample-ssdt"}},[e._v("#")]),e._v(" Edits to the sample SSDT")]),e._v(" "),s("p",[e._v("Now that we have our ACPI path, lets grab our SSDT and get to work:")]),e._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"https://github.com/acidanthera/WhateverGreen/blob/master/Manual/SSDT-PNLF.dsl",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-PNLF.dsl"),s("OutboundLink")],1)]),e._v(" "),s("li",[s("a",{attrs:{href:"https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/decompiled/SSDT-PNLF-CFL.dsl.zip",target:"_blank",rel:"noopener noreferrer"}},[e._v("SSDT-PNLF-CFL.dsl"),s("OutboundLink")],1),e._v(" "),s("ul",[s("li",[e._v("For Coffee Lake and newer")])])])]),e._v(" "),s("p",[e._v("By default, this uses "),s("code",[e._v("PCI0.GFX0")]),e._v(" for the pathing. you'll want to rename accordingly. For this example, we'll assume your pathing is "),s("code",[e._v("PCI0.GPU0")]),e._v(":")]),e._v(" "),s("p",[s("strong",[e._v("Before")]),e._v(":")]),e._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v("External (_SB_.PCI0.GFX0, DeviceObj) <- Rename this\n\nScope (_SB.PCI0.GFX0) <- Rename this\n\nDevice(_SB.PCI0.GFX0.PNLF) <- Rename this\n")])])]),s("p",[s("img",{attrs:{src:a(364),alt:""}})]),e._v(" "),s("p",[e._v("Following the example pathing we found, the SSDT should look something like this:")]),e._v(" "),s("p",[s("strong",[e._v("After")]),e._v(":")]),e._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v("External (_SB_.PCI0.GPU0, DeviceObj) <- Renamed\n\nScope (_SB.PCI0.GPU0) <- Renamed\n\nDevice(_SB.PCI0.GPU0.PNLF) <- Renamed\n")])])]),s("p",[s("img",{attrs:{src:a(365),alt:""}})]),e._v(" "),s("h2",{attrs:{id:"compiling-the-ssdt"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#compiling-the-ssdt"}},[e._v("#")]),e._v(" Compiling the SSDT")]),e._v(" "),s("p",[e._v("With the SSDT done, you're now "),s("RouterLink",{attrs:{to:"/Manual/compile.html"}},[e._v("ready to compile the SSDT!")])],1),e._v(" "),s("h2",{attrs:{id:"wrapping-up"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#wrapping-up"}},[e._v("#")]),e._v(" Wrapping up")]),e._v(" "),s("p",[e._v("Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:")]),e._v(" "),s("ul",[s("li",[s("RouterLink",{attrs:{to:"/cleanup.html"}},[s("strong",[e._v("Cleanup")])])],1)])])}),[],!1,null,null,null);t.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/8.66357795.js b/assets/js/9.7cf39e99.js similarity index 88% rename from assets/js/8.66357795.js rename to assets/js/9.7cf39e99.js index 06ba432..11d5c61 100644 --- a/assets/js/8.66357795.js +++ b/assets/js/9.7cf39e99.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[8],{329:function(t,e,a){t.exports=a.p+"assets/img/lpc.bfa9cf23.png"},330:function(t,e,a){t.exports=a.p+"assets/img/pci0.4477f361.png"},382:function(t,e,a){t.exports=a.p+"assets/img/ssdt-before.6ddf7dfa.png"},383:function(t,e,a){t.exports=a.p+"assets/img/ssdt-after.971e8c4d.png"},438:function(t,e,a){"use strict";a.r(e);var i=a(25),s=Object(i.a)({},(function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[i("h1",{attrs:{id:"fixing-nvram-manual"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#fixing-nvram-manual"}},[t._v("#")]),t._v(" Fixing NVRAM: Manual")]),t._v(" "),i("ul",[i("li",[i("a",{attrs:{href:"#finding-the-acpi-path"}},[t._v("Finding the ACPI path")])]),t._v(" "),i("li",[i("a",{attrs:{href:"#edits-to-the-sample-ssdt"}},[t._v("Edits to the sample SSDT")])]),t._v(" "),i("li",[i("a",{attrs:{href:"#compiling-the-ssdt"}},[t._v("Compiling the SSDT")])]),t._v(" "),i("li",[i("a",{attrs:{href:"#wrapping-up"}},[t._v("Wrapping up")])])]),t._v(" "),i("h2",{attrs:{id:"finding-the-acpi-path"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#finding-the-acpi-path"}},[t._v("#")]),t._v(" Finding the ACPI path")]),t._v(" "),i("p",[t._v("Finding the ACPI pathing is quite easy actually, first open your decompiled DSDT you got from "),i("RouterLink",{attrs:{to:"/Manual/dump.html"}},[t._v("Dumping the DSDT")]),t._v(" and "),i("RouterLink",{attrs:{to:"/Manual/compile.html"}},[t._v("Decompiling and Compiling")]),t._v(" with either maciASL(if in macOS) or any other text editor if in Windows or Linux(VSCode has an "),i("a",{attrs:{href:"https://marketplace.visualstudio.com/items?itemName=Thog.vscode-asl",target:"_blank",rel:"noopener noreferrer"}},[t._v("ACPI extension"),i("OutboundLink")],1),t._v(" that can also help).")],1),t._v(" "),i("p",[t._v("Next, search for the following:")]),t._v(" "),i("ul",[i("li",[t._v("Finding the LowPinCount path:\n"),i("ul",[i("li",[t._v("Search "),i("code",[t._v("Name (_ADR, 0x001F0000)")])])])]),t._v(" "),i("li",[t._v("Finding the PCI path:\n"),i("ul",[i("li",[t._v("Search "),i("code",[t._v("PNP0A08")]),t._v(" (If multiple show up, use the first one)")])])])]),t._v(" "),i("p",[t._v("You should get something like the following show up:")]),t._v(" "),i("table",[i("thead",[i("tr",[i("th",{staticStyle:{"text-align":"center"}},[t._v("LPC Pathing")]),t._v(" "),i("th",{staticStyle:{"text-align":"center"}},[t._v("PCI Pathing")])])]),t._v(" "),i("tbody",[i("tr",[i("td",{staticStyle:{"text-align":"center"}},[i("img",{attrs:{src:a(329),alt:""}})]),t._v(" "),i("td",{staticStyle:{"text-align":"center"}},[i("img",{attrs:{src:a(330),alt:""}})])])])]),t._v(" "),i("p",[t._v("Now with the pathing, you can head here: "),i("a",{attrs:{href:"#edits-to-the-sample-ssdt"}},[t._v("Edits to the sample SSDT")])]),t._v(" "),i("h2",{attrs:{id:"edits-to-the-sample-ssdt"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#edits-to-the-sample-ssdt"}},[t._v("#")]),t._v(" Edits to the sample SSDT")]),t._v(" "),i("p",[t._v("Now that we have our ACPI path, lets grab our SSDT and get to work:")]),t._v(" "),i("ul",[i("li",[i("a",{attrs:{href:"https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-PMC.dsl",target:"_blank",rel:"noopener noreferrer"}},[t._v("SSDT-PMC.dsl"),i("OutboundLink")],1)])]),t._v(" "),i("p",[t._v("By default, this uses "),i("code",[t._v("PCI0.LPCB")]),t._v(" for the pathing. you'll want to rename accordingly.")]),t._v(" "),i("p",[t._v("Following the example from above, we'll be renaming it to "),i("code",[t._v("PCI0.LPC")]),t._v(":")]),t._v(" "),i("p",[i("strong",[t._v("Before")]),t._v(":")]),t._v(" "),i("div",{staticClass:"language- extra-class"},[i("pre",{pre:!0,attrs:{class:"language-text"}},[i("code",[t._v("External (_SB_.PCI0.LPCB, DeviceObj) <- Rename this\n\nScope (_SB.PCI0.LPCB) <- Rename this\n")])])]),i("p",[i("img",{attrs:{src:a(382),alt:""}})]),t._v(" "),i("p",[t._v("Following the example pathing we found, the SSDT should look something like this:")]),t._v(" "),i("p",[i("strong",[t._v("After")]),t._v(":")]),t._v(" "),i("div",{staticClass:"language- extra-class"},[i("pre",{pre:!0,attrs:{class:"language-text"}},[i("code",[t._v("External (_SB_.PCI0.LPC, DeviceObj) <- Renamed\n\nScope (_SB.PCI0.LPC) <- Renamed\n")])])]),i("p",[i("img",{attrs:{src:a(383),alt:""}})]),t._v(" "),i("h2",{attrs:{id:"compiling-the-ssdt"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#compiling-the-ssdt"}},[t._v("#")]),t._v(" Compiling the SSDT")]),t._v(" "),i("p",[t._v("With the SSDT done, you're now "),i("RouterLink",{attrs:{to:"/Manual/compile.html"}},[t._v("ready to compile the SSDT!")])],1),t._v(" "),i("h2",{attrs:{id:"wrapping-up"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#wrapping-up"}},[t._v("#")]),t._v(" Wrapping up")]),t._v(" "),i("p",[t._v("Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:")]),t._v(" "),i("ul",[i("li",[i("RouterLink",{attrs:{to:"/cleanup.html"}},[i("strong",[t._v("Cleanup")])])],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[9],{317:function(t,e,a){t.exports=a.p+"assets/img/lpc.bfa9cf23.png"},318:function(t,e,a){t.exports=a.p+"assets/img/pci0.4477f361.png"},389:function(t,e,a){t.exports=a.p+"assets/img/ssdt-before.6ddf7dfa.png"},390:function(t,e,a){t.exports=a.p+"assets/img/ssdt-after.971e8c4d.png"},445:function(t,e,a){"use strict";a.r(e);var i=a(25),s=Object(i.a)({},(function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[i("h1",{attrs:{id:"fixing-nvram-manual"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#fixing-nvram-manual"}},[t._v("#")]),t._v(" Fixing NVRAM: Manual")]),t._v(" "),i("ul",[i("li",[i("a",{attrs:{href:"#finding-the-acpi-path"}},[t._v("Finding the ACPI path")])]),t._v(" "),i("li",[i("a",{attrs:{href:"#edits-to-the-sample-ssdt"}},[t._v("Edits to the sample SSDT")])]),t._v(" "),i("li",[i("a",{attrs:{href:"#compiling-the-ssdt"}},[t._v("Compiling the SSDT")])]),t._v(" "),i("li",[i("a",{attrs:{href:"#wrapping-up"}},[t._v("Wrapping up")])])]),t._v(" "),i("h2",{attrs:{id:"finding-the-acpi-path"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#finding-the-acpi-path"}},[t._v("#")]),t._v(" Finding the ACPI path")]),t._v(" "),i("p",[t._v("Finding the ACPI pathing is quite easy actually, first open your decompiled DSDT you got from "),i("RouterLink",{attrs:{to:"/Manual/dump.html"}},[t._v("Dumping the DSDT")]),t._v(" and "),i("RouterLink",{attrs:{to:"/Manual/compile.html"}},[t._v("Decompiling and Compiling")]),t._v(" with either maciASL(if in macOS) or any other text editor if in Windows or Linux(VSCode has an "),i("a",{attrs:{href:"https://marketplace.visualstudio.com/items?itemName=Thog.vscode-asl",target:"_blank",rel:"noopener noreferrer"}},[t._v("ACPI extension"),i("OutboundLink")],1),t._v(" that can also help).")],1),t._v(" "),i("p",[t._v("Next, search for the following:")]),t._v(" "),i("ul",[i("li",[t._v("Finding the LowPinCount path:\n"),i("ul",[i("li",[t._v("Search "),i("code",[t._v("Name (_ADR, 0x001F0000)")])])])]),t._v(" "),i("li",[t._v("Finding the PCI path:\n"),i("ul",[i("li",[t._v("Search "),i("code",[t._v("PNP0A08")]),t._v(" (If multiple show up, use the first one)")])])])]),t._v(" "),i("p",[t._v("You should get something like the following show up:")]),t._v(" "),i("table",[i("thead",[i("tr",[i("th",{staticStyle:{"text-align":"center"}},[t._v("LPC Pathing")]),t._v(" "),i("th",{staticStyle:{"text-align":"center"}},[t._v("PCI Pathing")])])]),t._v(" "),i("tbody",[i("tr",[i("td",{staticStyle:{"text-align":"center"}},[i("img",{attrs:{src:a(317),alt:""}})]),t._v(" "),i("td",{staticStyle:{"text-align":"center"}},[i("img",{attrs:{src:a(318),alt:""}})])])])]),t._v(" "),i("p",[t._v("Now with the pathing, you can head here: "),i("a",{attrs:{href:"#edits-to-the-sample-ssdt"}},[t._v("Edits to the sample SSDT")])]),t._v(" "),i("h2",{attrs:{id:"edits-to-the-sample-ssdt"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#edits-to-the-sample-ssdt"}},[t._v("#")]),t._v(" Edits to the sample SSDT")]),t._v(" "),i("p",[t._v("Now that we have our ACPI path, lets grab our SSDT and get to work:")]),t._v(" "),i("ul",[i("li",[i("a",{attrs:{href:"https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-PMC.dsl",target:"_blank",rel:"noopener noreferrer"}},[t._v("SSDT-PMC.dsl"),i("OutboundLink")],1)])]),t._v(" "),i("p",[t._v("By default, this uses "),i("code",[t._v("PCI0.LPCB")]),t._v(" for the pathing. you'll want to rename accordingly.")]),t._v(" "),i("p",[t._v("Following the example from above, we'll be renaming it to "),i("code",[t._v("PCI0.LPC")]),t._v(":")]),t._v(" "),i("p",[i("strong",[t._v("Before")]),t._v(":")]),t._v(" "),i("div",{staticClass:"language- extra-class"},[i("pre",{pre:!0,attrs:{class:"language-text"}},[i("code",[t._v("External (_SB_.PCI0.LPCB, DeviceObj) <- Rename this\n\nScope (_SB.PCI0.LPCB) <- Rename this\n")])])]),i("p",[i("img",{attrs:{src:a(389),alt:""}})]),t._v(" "),i("p",[t._v("Following the example pathing we found, the SSDT should look something like this:")]),t._v(" "),i("p",[i("strong",[t._v("After")]),t._v(":")]),t._v(" "),i("div",{staticClass:"language- extra-class"},[i("pre",{pre:!0,attrs:{class:"language-text"}},[i("code",[t._v("External (_SB_.PCI0.LPC, DeviceObj) <- Renamed\n\nScope (_SB.PCI0.LPC) <- Renamed\n")])])]),i("p",[i("img",{attrs:{src:a(390),alt:""}})]),t._v(" "),i("h2",{attrs:{id:"compiling-the-ssdt"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#compiling-the-ssdt"}},[t._v("#")]),t._v(" Compiling the SSDT")]),t._v(" "),i("p",[t._v("With the SSDT done, you're now "),i("RouterLink",{attrs:{to:"/Manual/compile.html"}},[t._v("ready to compile the SSDT!")])],1),t._v(" "),i("h2",{attrs:{id:"wrapping-up"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#wrapping-up"}},[t._v("#")]),t._v(" Wrapping up")]),t._v(" "),i("p",[t._v("Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:")]),t._v(" "),i("ul",[i("li",[i("RouterLink",{attrs:{to:"/cleanup.html"}},[i("strong",[t._v("Cleanup")])])],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/assets/js/app.1b665f95.js b/assets/js/app.1b665f95.js deleted file mode 100644 index 8c7e434..0000000 --- a/assets/js/app.1b665f95.js +++ /dev/null @@ -1,9 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[0],[]]);!function(t){function e(e){for(var r,a,s=e[0],u=e[1],c=e[2],f=0,p=[];f0?o(r(t),9007199254740991):0}},function(t,e){var n=Array.isArray;t.exports=n},function(t,e,n){var r=n(33),o=n(20);t.exports=function(t){return r(o(t))}},function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},function(t,e,n){var r=n(143),o="object"==typeof self&&self&&self.Object===Object&&self,i=r||o||Function("return this")();t.exports=i},function(t,e,n){var r=n(5),o=n(1),i=n(6),a=Object.defineProperty,s={},u=function(t){throw t};t.exports=function(t,e){if(i(s,t))return s[t];e||(e={});var n=[][t],c=!!i(e,"ACCESSORS")&&e.ACCESSORS,l=i(e,0)?e[0]:u,f=i(e,1)?e[1]:void 0;return s[t]=!!n&&!o((function(){if(c&&!r)return!0;var t={length:-1};c?a(t,1,{enumerable:!0,get:u}):t[1]=1,n.call(t,l,f)}))}},function(t,e,n){var r=n(115),o=n(2),i=function(t){return"function"==typeof t?t:void 0};t.exports=function(t,e){return arguments.length<2?i(r[t])||i(o[t]):r[t]&&r[t][e]||o[t]&&o[t][e]}},function(t,e){t.exports=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t}},function(t,e){t.exports=!1},function(t,e,n){var r=n(5),o=n(79),i=n(35),a=n(15),s=n(34),u=n(6),c=n(110),l=Object.getOwnPropertyDescriptor;e.f=r?l:function(t,e){if(t=a(t),e=s(e,!0),c)try{return l(t,e)}catch(t){}if(u(t,e))return i(!o.f.call(t,e),t[e])}},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(String(t)+" is not a function");return t}},function(t,e,n){var r=n(227),o=n(230);t.exports=function(t,e){var n=o(t,e);return r(n)?n:void 0}},function(t,e,n){"use strict";function r(t,e,n,r,o,i,a,s){var u,c="function"==typeof t?t.options:t;if(e&&(c.render=e,c.staticRenderFns=n,c._compiled=!0),r&&(c.functional=!0),i&&(c._scopeId="data-v-"+i),a?(u=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),o&&o.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(a)},c._ssrRegister=u):o&&(u=s?function(){o.call(this,(c.functional?this.parent:this).$root.$options.shadowRoot)}:o),u)if(c.functional){c._injectStyles=u;var l=c.render;c.render=function(t,e){return u.call(e),l(t,e)}}else{var f=c.beforeCreate;c.beforeCreate=f?[].concat(f,u):[u]}return{exports:t,options:c}}n.d(e,"a",(function(){return r}))},function(t,e,n){"use strict";var r=n(0),o=n(31).filter,i=n(53),a=n(18),s=i("filter"),u=a("filter");r({target:"Array",proto:!0,forced:!s||!u},{filter:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},function(t,e){t.exports=function(t){return null!=t&&"object"==typeof t}},function(t,e,n){var r,o=n(7),i=n(186),a=n(77),s=n(36),u=n(114),c=n(74),l=n(50),f=l("IE_PROTO"),p=function(){},d=function(t){return" + diff --git a/index.html b/index.html index 4884215..6b36cc3 100644 --- a/index.html +++ b/index.html @@ -4,45 +4,46 @@ Getting started with ACPI | Getting Started With ACPI - + - - + + +

# Getting started with ACPI

# A quick explainer on ACPI

So what are DSDTs and SSDTs? Well, these are tables present in your firmware that outline hardware devices like USB controllers, CPU threads, embedded controllers, system clocks and such. A DSDT(Differentiated System Description Table) can be seen as the body holding most of the info with smaller bits of info being passed by the SSDT(Secondary System Description Table). You can think of the DSDT as the building blueprints with SSDTs being sticky notes outlining extra details to the project

You can read more about ACPI and it's spec here: ACPI 6.3 Manual (opens new window)

So why do we care about these tables?

macOS can be very picky about the devices present in the DSDT and so our job is to correct it. The main devices that need to be corrected for macOS to work properly:

  • Embedded controllers(EC)
    • All semi-modern intel machines have an EC (usually called H_EC, ECDV, EC0, etc...) exposed in their DSDT, with many AMD systems also having it exposed. These controllers are generally not compatible with macOS and can cause panics, so then need to be hidden from macOS. macOS Catalina requires a device named EC to be present though, so a dummy EC is created.
    • With laptops, the actual embedded controller still needs to be enabled for battery and hotkeys to work, and renaming the EC can additionally cause issues with windows, so creating a fake EC without disabling the real embedded controller is preferable.
  • Plugin type
    • This allows the use of XCPM providing native CPU power management on Intel Haswell and newer CPUs, the SSDT will connect to the first thread of the CPU. Not meant for AMD
  • AWAC system clock.
    • This applies to all 300 series motherboards including many Z370 boards, the specific issue is that newer boards ship with AWAC clock enabled. This is a problem because macOS cannot communicate with AWAC clocks, so this requires us to either force on the legacy RTC clock or if unavailable create a fake one for macOS to play with
  • NVRAM SSDT @@ -55,6 +56,6 @@ ⟶

- + diff --git a/ssdt-methods/ssdt-easy.html b/ssdt-methods/ssdt-easy.html index ced0f4f..ce5a19b 100644 --- a/ssdt-methods/ssdt-easy.html +++ b/ssdt-methods/ssdt-easy.html @@ -4,50 +4,51 @@ SSDTs: The easy way | Getting Started With ACPI - + - - + + +

# SSDTs: The easy way

So here we'll be using a super simple tool made by CorpNewt: SSDTTime (opens new window)

What this tool does is, it dumps your DSDT from your firmware, and then creates SSDTs based off your DSDT. This must be done on the target machine running either Windows or Linux

# So what CAN'T SSDTTime do

  • SSDT-PNLF:
    • Need to be configured to your system
  • SSDT-GPI0:
    • Need to be configured to your system
  • USBX SSDT: -
  • RHUB SSDT: -
    • If you have a 10th gen CPU, you'll need to either use the prebuilt or manually create it.
  • IMEI SSDT: -
    • If you have either a Sandy bridge CPU with 7 series motherboard or Ivy Bridge with 6 series motherboard, you'll need to either use the prebuilt or manually create it.

For users who don't have all the options available to them in SSDTTime, you can follow the "SSDTs: The long way" section. You can still use SSDTTime for SSDTs it does support.

# Running SSDTTime

Run the SSDTTime.bat file as Admin on the target machine and you should see something like this:

What are all these options?:

  • 1. FixHPET - Patch out IRQ Conflicts
    • IRQ patching, mainly needed for X79, X99 and laptop users(use option C to omit conflicting legacy IRQs)
  • 2. FakeEC - OS-aware Fake EC
    • This is the SSDT-EC, required for Catalina users
  • 3. FakeEC Laptop - OS-aware Fake EC
    • This is the SSDT-EC, but the laptop version only Builds Fake EC and leaves the existing EC devices untouched, again required for Catalina users
  • 4. PluginType - Sets plugin-type = 1 on First ProcessorObj
    • This is the SSDT-PLUG, for Intel only
  • 5. PMC - Sets Power Management controller status
    • This is the SSDT-PMC, for Intel true 300+ series only, this device is missing from ACPI in recent boards and helps to bring back NVRAM support.
  • 6. AWAC - Context-Aware AWAC Disable and RTC Fake
    • This is the SSDT-AWAC/RTC0, its purpose is to fix the system clocks found on newer hardware
  • 7. Dump DSDT - Automatically dump the system DSDT
    • Dumps your DSDT from your firmware

What we want to do is select option 4. Dump DSDT first, then select the appropriate option(s) for your system.

What about USBX?

For Skylake and newer plus AMD, you can grab a pre-built file here: SSDT-USBX.aml(opens new window) . This file is plug and play and requires no device configuration, do not use on Broadwell and older.

Troubleshooting note: See General Troubleshooting(opens new window) if you're having issues running SSDTTime

# Adding to OpenCore

Don't forget that SSDTs need to be added to Opencore, reminder that .aml is complied, .dsl is code. Add only the .aml file:

  • EFI/OC/ACPI
  • config.plist -> ACPI -> Add

Reminder that Cmd/Crtl+R with ProperTree pointed at your OC folder will add all your SSDTs, kexts and .efi drivers to the config for you. Do not add your DSDT to OpenCore, its already in your firmware. If you are unsure what this is referring to, go back to the OpenCore guide and select your config based of the architecture of your CPU.

For those who do not yet have a config.plist, you'll want to next head back to your respective OpenCore guides and create the config.plist:

Users of FixHPET will also need to merge oc_patches.plist into their config.plist

Steps to do this:

  • Open both files,
  • Delete the ACPI -> Patch section from config.plist
  • Copy the ACPI -> Patch section from patches.plist
  • Paste into where old patches were in config.plist
Last Updated: 9/1/2020, 5:46:45 PM
Last Updated: 10/16/2020, 9:07:15 PM
- + diff --git a/ssdt-methods/ssdt-long.html b/ssdt-methods/ssdt-long.html index f1c0362..511e036 100644 --- a/ssdt-methods/ssdt-long.html +++ b/ssdt-methods/ssdt-long.html @@ -4,45 +4,46 @@ SSDTs: The long way | Getting Started With ACPI - + - - + + +

# SSDTs: The long way

Well sadly some things are not handled by SSDTTime, well have no fear as making SSDTs is super easy. The basic process:

  • Dump DSDT(the one SSDTTime did for use will work)
  • Decompile DSDT
  • Make SSDTs based of of it(You'll need either MaciASL or a text editor for this)
  • Compile SSDTs

Now continue forth and master the ways of ACPI!

Last Updated: 5/16/2020, 5:36:31 PM
- + diff --git a/ssdt-methods/ssdt-methods.html b/ssdt-methods/ssdt-methods.html index 4f3fefe..6bc767e 100644 --- a/ssdt-methods/ssdt-methods.html +++ b/ssdt-methods/ssdt-methods.html @@ -4,45 +4,46 @@ How to create SSDTs | Getting Started With ACPI - + - - + + +

# How to create SSDTs

Creating SSDTs mainly fall into 3 camps:

  • Prebuilt SSDTs
    • They're universal but don't teach much
    • For most users, we recommend this as it does not require any compling
  • Automated tools
    • Mainly seen with SSDTTime, work much better than prebuilts as there's less bloat however doesn't teach you much
  • Manually creating them
    • Will always work, be much cleaner and get to learn about the process
    • However requires you to deal with code

If you're not comfortable with editing and compiling code, we recommend the prebuilt option

Last Updated: 10/16/2020, 9:07:15 PM
- + diff --git a/ssdt-methods/ssdt-prebuilt.html b/ssdt-methods/ssdt-prebuilt.html index ba85905..6824226 100644 --- a/ssdt-methods/ssdt-prebuilt.html +++ b/ssdt-methods/ssdt-prebuilt.html @@ -4,48 +4,70 @@ Pre-Built SSDTs | Getting Started With ACPI - + - - + + +

# Pre-Built SSDTs

Simply select your hardware type and generation, then download the associated files. Once downloaded, place them in your EFI under EFI/OC/ACPI and head back to config.plist Setup (opens new window)

# Intel Desktop SSDTs

# Desktop Penryn, Lynnfield and Clarkdale

SSDTs required

Once downloaded, place them into your EFI folder under EFI/OC/ACPI and head back to the install guide

In-depth info on the SSDTs

SSDT-EC:

  • Used for disabling your real Embedded controller and creating a fake one for macOS to play with

# Desktop Sandy and Ivy Bridge

SSDTs required

Once downloaded, place them into your EFI folder under EFI/OC/ACPI and head back to the install guide

In-depth info on the SSDTs

SSDT-EC:

  • Used for disabling your real Embedded controller and creating a fake one for macOS to play with

SSDT-IMEI

  • Used for creating an IMEI device when one is not present in ACPI\ +
    • Required for Sandy Bridge CPU with 7 series motherboard +
      • ie. B75, Q75, Z75, H77, Q77, Z77
    • Required Ivy Bridge CPU with 6 series motherboard +
      • ie. H61, B65, Q65, P67, H67, Q67, Z68

# Desktop Haswell and Broadwell

SSDTs required

Once downloaded, place them into your EFI folder under EFI/OC/ACPI and head back to the install guide

In-depth info on the SSDTs

SSDT-PLUG:

  • Used for enabling Apple's XCPM in macOS, allowing for far better CPU power management

SSDT-EC:

  • Used for disabling your real Embedded controller and creating a fake one for macOS to play with

# Desktop Skylake and Kaby Lake

SSDTs required

Once downloaded, place them into your EFI folder under EFI/OC/ACPI and head back to the install guide

In-depth info on the SSDTs

SSDT-PLUG:

  • Used for enabling Apple's XCPM in macOS, allowing for far better CPU power management

SSDT-EC-USBX:

  • Used for disabling your real Embedded controller and creating a fake one for macOS to play with
  • USBX portion is used for injection USB power properties missing on Skylake and newer

# Desktop Coffee Lake

SSDTs required

Once downloaded, place them into your EFI folder under EFI/OC/ACPI and head back to the install guide

In-depth info on the SSDTs

SSDT-PLUG:

  • Used for enabling Apple's XCPM in macOS, allowing for far better CPU power management

SSDT-EC-USBX:

  • Used for disabling your real Embedded controller and creating a fake one for macOS to play with
  • USBX portion is used for injection USB power properties missing on Skylake and newer

SSDT-AWAC:

  • Used to enable the legacy RTC clock in macOS, as the newer AWAC clock is unsupported

SSDT-PMC:

  • Used to enable native NVRAM on "true" 300 series motherboards +
    • ie. B360, B365, H310, H370, Z390
    • Note Z370 is not included

# Desktop Comet Lake

SSDTs required

Once downloaded, place them into your EFI folder under EFI/OC/ACPI and head back to the install guide

In-depth info on the SSDTs

SSDT-PLUG:

  • Used for enabling Apple's XCPM in macOS, allowing for far better CPU power management

SSDT-EC-USBX:

  • Used for disabling your real Embedded controller and creating a fake one for macOS to play with
  • USBX portion is used for injection USB power properties missing on Skylake and newer

SSDT-AWAC:

  • Used to enable the legacy RTC clock in macOS, as the newer AWAC clock is unsupported

SSDT-RHUB:

  • Used to reset USB controllers on Asus's 400 series motherboards due to poor ACPI implementation from the OEM +
    • Note Gigabyte, MSI, AsRock, etc do not need this SSDT. Only Asus

# Intel Laptop SSDTs

# Laptop Clarksfield and Arrandale

SSDTs required

Once downloaded, place them into your EFI folder under EFI/OC/ACPI and head back to the install guide

In-depth info on the SSDTs

SSDT-EC:

  • Used for disabling your real Embedded controller and creating a fake one for macOS to play with

SSDT-PNLF:

  • Used for controlling the backlight on internal displays such as AIOs and laptops

SSDT-XOSI:

  • Enables many Windows-only functionality in macOS +
    • Requires XOSI patch(covered later on)

# Laptop Sandy and Ivy Bridge

SSDTs required

Once downloaded, place them into your EFI folder under EFI/OC/ACPI and head back to the install guide

In-depth info on the SSDTs

SSDT-EC:

  • Used for disabling your real Embedded controller and creating a fake one for macOS to play with

SSDT-IMEI

  • Used for creating an IMEI device when one is not present in ACPI +
    • Required for Sandy Bridge CPU with 7 series motherboard +
      • ie. B75, Q75, Z75, H77, Q77, Z77
    • Required Ivy Bridge CPU with 6 series motherboard +
      • ie. H61, B65, Q65, P67, H67, Q67, Z68

SSDT-PNLF:

  • Used for controlling the backlight on internal displays such as AIOs and laptops

SSDT-XOSI:

  • Enables many Windows-only functionality in macOS +
    • Requires XOSI patch(covered later on)

# Laptop Haswell and Broadwell

SSDTs required

Once downloaded, place them into your EFI folder under EFI/OC/ACPI and head back to the install guide

In-depth info on the SSDTs

SSDT-PLUG:

  • Used for enabling Apple's XCPM in macOS, allowing for far better CPU power management

SSDT-EC:

  • Used for disabling your real Embedded controller and creating a fake one for macOS to play with

SSDT-PNLF:

  • Used for controlling the backlight on internal displays such as AIOs and laptops

SSDT-XOSI:

  • Enables many Windows-only functionality in macOS +
    • Requires XOSI patch(covered later on)

# Laptop Skylake and Kaby Lake

SSDTs required

Once downloaded, place them into your EFI folder under EFI/OC/ACPI and head back to the install guide

In-depth info on the SSDTs

SSDT-PLUG:

  • Used for enabling Apple's XCPM in macOS, allowing for far better CPU power management

SSDT-EC-USBX:

  • Used for disabling your real Embedded controller and creating a fake one for macOS to play with
  • USBX portion is used for injection USB power properties missing on Skylake and newer

SSDT-PNLF:

  • Used for controlling the backlight on internal displays such as AIOs and laptops

SSDT-XOSI:

  • Enables many Windows-only functionality in macOS +
    • Requires XOSI patch(covered later on)

# Laptop Coffee Lake(8th gen)

In-depth info on the SSDTs

SSDT-PLUG:

  • Used for enabling Apple's XCPM in macOS, allowing for far better CPU power management

SSDT-EC-USBX:

  • Used for disabling your real Embedded controller and creating a fake one for macOS to play with
  • USBX portion is used for injection USB power properties missing on Skylake and newer

SSDT-AWAC:

  • Used to enable the legacy RTC clock in macOS, as the newer AWAC clock is unsupported

SSDT-PNLF:

  • Used for controlling the backlight on internal displays such as AIOs and laptops

SSDT-XOSI:

  • Enables many Windows-only functionality in macOS +
    • Requires XOSI patch(covered later on)

# Laptop Coffee and Comet Lake(9th and 10th gen)

SSDTs required

Once downloaded, place them into your EFI folder under EFI/OC/ACPI and head back to the install guide

In-depth info on the SSDTs

SSDT-PLUG:

  • Used for enabling Apple's XCPM in macOS, allowing for far better CPU power management

SSDT-EC-USBX:

  • Used for disabling your real Embedded controller and creating a fake one for macOS to play with
  • USBX portion is used for injection USB power properties missing on Skylake and newer

SSDT-AWAC:

  • Used to enable the legacy RTC clock in macOS, as the newer AWAC clock is unsupported

SSDT-PMC:

  • Used to enable native NVRAM on "true" 300 series motherboards +
    • Only for 9th gen laptops

SSDT-PNLF:

  • Used for controlling the backlight on internal displays such as AIOs and laptops

SSDT-XOSI:

  • Enables many Windows-only functionality in macOS +
    • Requires XOSI patch(covered later on)

# Laptop Ice Lake

In-depth info on the SSDTs

SSDT-PLUG:

  • Used for enabling Apple's XCPM in macOS, allowing for far better CPU power management

SSDT-EC-USBX:

  • Used for disabling your real Embedded controller and creating a fake one for macOS to play with
  • USBX portion is used for injection USB power properties missing on Skylake and newer

SSDT-AWAC:

  • Used to enable the legacy RTC clock in macOS, as the newer AWAC clock is unsupported

SSDT-RHUB:

  • Used to reset USB controllers on Ice Lake laptops due to poor OEM ACPI implementation +
    • Mainly seen on Dell laptops

SSDT-PNLF:

  • Used for controlling the backlight on internal displays such as AIOs and laptops

SSDT-XOSI:

  • Enables many Windows-only functionality in macOS +
    • Requires XOSI patch(covered later on)

# Intel HEDT SSDTs

# Nehalem and Westmere

SSDTs required

Once downloaded, place them into your EFI folder under EFI/OC/ACPI and head back to the install guide

In-depth info on the SSDTs

SSDT-EC:

  • Used for disabling your real Embedded controller and creating a fake one for macOS to play with

# Sandy and Ivy Bridge-E

SSDTs required

Once downloaded, place them into your EFI folder under EFI/OC/ACPI and head back to the install guide

In-depth info on the SSDTs

SSDT-PLUG:

  • Used for enabling Apple's XCPM in macOS, allowing for far better CPU power management

SSDT-EC:

  • Used for disabling your real Embedded controller and creating a fake one for macOS to play with

SSDT-UNC0:

  • Used to ensure unused or missing uncore bridges are properly disabled, otherwise kernel panic in IOPCIFamily in macOS Big Sur

# Haswell and Broadwell-E

SSDTs required

Once downloaded, place them into your EFI folder under EFI/OC/ACPI and head back to the install guide

In-depth info on the SSDTs

SSDT-PLUG:

  • Used for enabling Apple's XCPM in macOS, allowing for far better CPU power management

SSDT-EC-USBX:

  • Used for disabling your real Embedded controller and creating a fake one for macOS to play with
  • USBX portion is used for injection USB power properties missing on Skylake and newer

SSDT-RTC0-RANGE-HEDT:

  • Used to enable the legacy RTC clock in macOS, as the newer AWAC clock is unsupported +
    • Added benefit is to resolve early halts in macOS Big Sur's booting due to poor ACPI implementation

SSDT-UNC0:

  • Used to ensure unused or missing uncore bridges are properly disabled, otherwise kernel panic in IOPCIFamily in macOS Big Sur

# Skylake and Cascade Lake-X/W

SSDTs required

Once downloaded, place them into your EFI folder under EFI/OC/ACPI and head back to the install guide

In-depth info on the SSDTs

SSDT-PLUG:

  • Used for enabling Apple's XCPM in macOS, allowing for far better CPU power management

SSDT-EC-USBX:

  • Used for disabling your real Embedded controller and creating a fake one for macOS to play with
  • USBX portion is used for injection USB power properties missing on Skylake and newer

SSDT-RTC0-RANGE-HEDT:

  • Used to enable the legacy RTC clock in macOS, as the newer AWAC clock is unsupported +
    • Added benefit is to resolve early halts in macOS Big Sur's booting due to poor ACPI implementation

# AMD SSDTs

# AMD Bulldozer/Jaguar

SSDTs required

Once downloaded, place them into your EFI folder under EFI/OC/ACPI and head back to the install guide

In-depth info on the SSDTs

SSDT-EC-USBX:

  • Used for disabling your real Embedded controller and creating a fake one for macOS to play with
  • USBX portion is used for injection USB power properties missing on Skylake and newer

# AMD Zen

SSDTs required

Once downloaded, place them into your EFI folder under EFI/OC/ACPI and head back to the install guide

In-depth info on the SSDTs

SSDT-EC-USBX:

  • Used for disabling your real Embedded controller and creating a fake one for macOS to play with
  • USBX portion is used for injection USB power properties missing on Skylake and newer

SSDT-CPUR:

  • Used for fixing CPU definitions in ACPI, as macOS does not properly support the ACPI used in B550 and newer boards
Last Updated: 10/16/2020, 9:07:15 PM
- + diff --git a/ssdt-platform.html b/ssdt-platform.html index f948fd9..d5be20a 100644 --- a/ssdt-platform.html +++ b/ssdt-platform.html @@ -4,45 +4,46 @@ What SSDTs do each platform need | Getting Started With ACPI - + - - + + +

# What SSDTs do each platform need

Please see the specific ACPI section of your config.plist, all SSDTs needed are covered there with a brief explainer. But here's a very quick TL;DR:

# Desktop

Platforms CPU EC AWAC NVRAM USB
Penryn N/A SSDT-EC N/A N/A N/A
Lynnfield and Clarkdale
SandyBridge CPU-PM (opens new window) (Run in Post-Install)
Ivy Bridge
Haswell SSDT-PLUG
Broadwell
Skylake SSDT-EC-USBX
Kaby Lake
Coffee Lake SSDT-AWAC SSDT-PMC
Comet Lake N/A SSDT-RHUB
AMD (15/16h) N/A N/A N/A
AMD (17h) SSDT-CPUR for B550 and A520 (opens new window) N/A N/A

# High End Desktop

Platforms CPU EC RTC PCI
Nehalem and Westmere N/A SSDT-EC N/A N/A
Ivy Bridge-E SSDT-PLUG SSDT-UNC
Haswell-E SSDT-EC-USBX SSDT-RTC0-RANGE
Broadwell-E
Skylake-X N/A

# Laptop

Platforms CPU EC Backlight I2C Trackpad AWAC USB IRQ
Clarksfield and Arrandale N/A SSDT-EC SSDT-PNLF N/A N/A N/A IRQ SSDT
SandyBridge CPU-PM (opens new window) (Run in Post-Install)
Ivy Bridge
Haswell SSDT-PLUG SSDT-GPI0
Broadwell
Skylake SSDT-EC-USBX N/A
Kaby Lake
Coffee Lake (8th Gen) and Whiskey Lake SSDT-PNLF-CFL
Coffee Lake (9th Gen) SSDT-AWAC
Comet Lake
Ice Lake SSDT-RHUB

Continuing:

Platforms NVRAM IMEI
Clarksfield and Arrandale N/A N/A
Sandy Bridge SSDT-IMEI
Ivy Bridge
Haswell N/A
Broadwell
Skylake
Kaby Lake
Coffee Lake (8th Gen) and Whiskey Lake
Coffee Lake (9th Gen) SSDT-PMC
Comet Lake N/A
Ice Lake

# SSDT Creation

Last Updated: 10/16/2020, 9:07:15 PM
- + diff --git a/troubleshooting.html b/troubleshooting.html index f51dfeb..74e8d16 100644 --- a/troubleshooting.html +++ b/troubleshooting.html @@ -4,45 +4,46 @@ Troubleshooting | Getting Started With ACPI - + - - + + +

# Troubleshooting

# Fixing SSDTTime: Could not locate or download iasl!

This is usually due to an outdated version of Python, try either updating Python or add iasl to the scripts folder for SSDTTime:

# Can't run acpidump.efi from OpenCore

Grab OpenShell (opens new window) and add it to EFI/OC/Tools and config.plist -> Misc -> Tools.

Next, call upon OpenCore shell and enter the following:

shell> fs0: //replace with proper drive
 
 fs0:\> dir //to verify this is the right directory
 
@@ -58,7 +59,7 @@ fs0:\EFI\OC\Tools> acpidump.efi -b -n DSDT -z
 

# Decompiling Error

Loading Acpi table from file iASLAwjHrs.aml
 Acpi table [DSDT] successfully installed and loaded
 Pass 1 parse of [DSDT]
-

This is a common error on DSDTs that have methods that aren't supported by maciASL, the easiest way is to delete maciASL and make sure you grab it from Acidanthera's repo: maciASL(opens new window)

# Invalid character (0x3D), expecting ASL keyword or name

Similar to the above error, you're running an outdated copy of maciASL. Make sure you're using the latest from Acidanthera's repo: maciASL(opens new window)

# Syntax error, unexpected PARSEOP_ONE, expecting '('

Similar to the above 2 errors, you're running an outdated copy of maciASL. Make sure you're using the latest from Acidanthera's repo: maciASL(opens new window)

Last Updated: 7/17/2020, 9:01:14 PM

This is a common error on DSDTs that have methods that aren't supported by maciASL, the easiest way is to delete maciASL and make sure you grab it from Acidanthera's repo: maciASL (opens new window)

# Invalid character (0x3D), expecting ASL keyword or name

Similar to the above error, you're running an outdated copy of maciASL. Make sure you're using the latest from Acidanthera's repo: maciASL (opens new window)

# Syntax error, unexpected PARSEOP_ONE, expecting '('

Similar to the above 2 errors, you're running an outdated copy of maciASL. Make sure you're using the latest from Acidanthera's repo: maciASL (opens new window)

Last Updated: 7/17/2020, 9:01:14 PM
- +