Misc Fixes
- Inital lint'ing - Clean up README.md table - Add CONTRIBUTING.md - Add TROUBLESHOOTING.md
6
.gitignore
vendored
@@ -3,6 +3,7 @@
|
|||||||
icons/.DS_Store
|
icons/.DS_Store
|
||||||
icons/.DS_Store
|
icons/.DS_Store
|
||||||
icons/.DS_Store
|
icons/.DS_Store
|
||||||
|
_book/
|
||||||
_book/.gitattributes
|
_book/.gitattributes
|
||||||
_book/.travis.yml
|
_book/.travis.yml
|
||||||
_book/Universal/xosi.md
|
_book/Universal/xosi.md
|
||||||
@@ -13326,3 +13327,8 @@ node_modules/yargs/lib/validation.js
|
|||||||
node_modules/yargs/LICENSE
|
node_modules/yargs/LICENSE
|
||||||
node_modules/yargs/package.json
|
node_modules/yargs/package.json
|
||||||
node_modules/yargs/README.md
|
node_modules/yargs/README.md
|
||||||
|
*.html
|
||||||
|
_book/images/Manual/compile-md/macos-compile.png
|
||||||
|
_book/images/Manual/compile-md/windows-compile.png
|
||||||
|
_book/images/troubleshooting-md/decompile-error.png
|
||||||
|
_book/images/troubleshooting-md/invalid-parse.png
|
||||||
|
|||||||
62
CONTRIBUTING.md
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
# 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!
|
||||||
|
|
||||||
|
* [Contributing via Issues](CONTRIBUTING.md#contributing-via-issues)
|
||||||
|
* [Contributing via PRs](CONTRIBUTING.md#contributing-via-prs)
|
||||||
|
|
||||||
|
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](https://crohnsandcolitis.donorportal.ca/Donation/DonationDetails.aspx?L=en-CA&G=159&F=1097&T=GENER) is one we recommend if you have none on mind.
|
||||||
|
|
||||||
|
## Contributing via Issues
|
||||||
|
|
||||||
|
Contributing via Issues is pretty simple but there are some rules:
|
||||||
|
|
||||||
|
* Keep issues tab dedicated to guides issues only, **no personal hackintosh issues**. It is not a place to discuss installation issues.
|
||||||
|
* 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.
|
||||||
|
|
||||||
|
You can find the issues tab here: [Getting Started With ACPI Issues](https://github.com/dortania/Getting-Started-With-ACPI/issues)
|
||||||
|
|
||||||
|
## Contributing via PRs
|
||||||
|
|
||||||
|
Some guidelines when contributing via PRs:
|
||||||
|
|
||||||
|
* Use your brain (please).
|
||||||
|
* Proofread your submissions.
|
||||||
|
* 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.
|
||||||
|
* We would also appreciate sources for any bigger commits to make it easier on us to verify the info your provide is valid
|
||||||
|
* Images must be hosted locally in the repo under the `/images/` folder
|
||||||
|
* Your PR must be run through a markdown lint and have all issues fixed.
|
||||||
|
* 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.
|
||||||
|
* Tools explicitly banned:
|
||||||
|
* UniBeast, MultiBeast and KextBeast
|
||||||
|
* More info can be found here: [Tonymacx86-stance](https://github.com/khronokernel/Tonymcx86-stance)
|
||||||
|
* Transmac
|
||||||
|
* Know for creating borked USB drives
|
||||||
|
* Niresh Installers
|
||||||
|
* We'd like to avoid piracy with the guides
|
||||||
|
|
||||||
|
### How to Contribute
|
||||||
|
|
||||||
|
Best way to test your commits and make sure they are formatted correctly is downloading `nodejs` and getting the [gitbook-cli](https://github.com/GitbookIO/gitbook-cli) tools and [markdownlint-cli](https://github.com/igorshubovych/markdownlint-cli) tool. When you run `gitbook serve`, 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.
|
||||||
|
|
||||||
|
* [Fork this repo](https://github.com/dortania/Getting-Started-With-ACPI/fork/)
|
||||||
|
* Install the required tools:
|
||||||
|
* `npm install -g markdownlint-cli`
|
||||||
|
* `npm install -g gitbook-cli`
|
||||||
|
* Make your changes.
|
||||||
|
* Build the site:
|
||||||
|
* `gitbook install` (To install all the required gitbook plugins)
|
||||||
|
* `gitbook serve` (Preview the site)
|
||||||
|
* Can be found at `http://localhost:4000`
|
||||||
|
* Check markdown format:
|
||||||
|
* `markdownlint -f *` (To fix any potential issues)
|
||||||
|
|
||||||
|
### Tips
|
||||||
|
|
||||||
|
Some tools that make contributing a bit easier:
|
||||||
|
|
||||||
|
* [Typora](https://typora.io) for real time markdown rendering.
|
||||||
|
* [TextMate](https://macromates.com) for easy and powerful mass find/replace.
|
||||||
|
* [Github Desktop](https://desktop.github.com) for more user friendly GUI.
|
||||||
@@ -9,19 +9,19 @@ So to disable a specific GPU, we need to find a couple things:
|
|||||||
|
|
||||||
## Finding the ACPI Path of the GPU
|
## 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:
|
To find the PCI path of a GPU is fairly simple, best way to find it is running Windows:
|
||||||
|
|
||||||
* Open Device Manager
|
* Open Device Manager
|
||||||
* Select Display Adapters, then right click your GPU and select Properties
|
* Select Display Adapters, then right click your GPU and select Properties
|
||||||
* Under the Details Tab, search for "Location Paths"
|
* Under the Details Tab, search for "Location Paths"
|
||||||
* Note some GPUs may be hiding under "BIOS device name"
|
* Note some GPUs may be hiding under "BIOS device name"
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
The second "ACPI" is what we care about:
|
The second "ACPI" is what we care about:
|
||||||
|
|
||||||
```
|
```
|
||||||
ACPI(_SB_)#ACPI(PC02)#ACPI(BR2A)#ACPI(PEGP)#PCI(0000)#PCI(0000)
|
ACPI(_SB_)#ACPI(PC02)#ACPI(BR2A)#ACPI(PEGP)#PCI(0000)#PCI(0000)
|
||||||
```
|
```
|
||||||
@@ -31,6 +31,7 @@ Now converting this to an ACPI path is quite simple, remove the `#ACPI` and `#PC
|
|||||||
```
|
```
|
||||||
`_SB_.PC02.BR2A.PEGP
|
`_SB_.PC02.BR2A.PEGP
|
||||||
```
|
```
|
||||||
|
|
||||||
And voila! We've found our ACPI path, now that we have everything we're ready to get cooking
|
And voila! We've found our ACPI path, now that we have everything we're ready to get cooking
|
||||||
|
|
||||||
## Making the SSDT
|
## Making the SSDT
|
||||||
@@ -41,6 +42,7 @@ To start grab our [SSDT-GPU-DISABLE](https://github.com/khronokernel/Getting-Sta
|
|||||||
External (_SB_.PCI0.PEG0.PEGP, DeviceObj)
|
External (_SB_.PCI0.PEG0.PEGP, DeviceObj)
|
||||||
Method (_SB.PCI0.PEG0.PEGP._DSM, 4, NotSerialized)
|
Method (_SB.PCI0.PEG0.PEGP._DSM, 4, NotSerialized)
|
||||||
```
|
```
|
||||||
|
|
||||||
For our example, we'll change all mentions of :
|
For our example, we'll change all mentions of :
|
||||||
|
|
||||||
* `PCI0` with `PC02`
|
* `PCI0` with `PC02`
|
||||||
@@ -49,4 +51,3 @@ 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
|
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!](/Manual/compile.md)
|
## [Now you're ready to compile the SSDT!](/Manual/compile.md)
|
||||||
|
|
||||||
|
|||||||
@@ -5,21 +5,21 @@ What we'll be doing is hiding our actual EC and creating a fake Embedded Comtrol
|
|||||||
|
|
||||||
To find out what EC you have, open your decompiled DSDT and search for `PNP0C09`. This should give you a result like this:
|
To find out what EC you have, open your decompiled DSDT and search for `PNP0C09`. This should give you a result like this:
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
As you can see our `PNP0C09` is found within the `Device (EC0)` meaning this is the device we want to hide from macOS(others may find `H_EC`, `ECDV`, etc, everyone's systems will be different). Now grab our SSDT-EC and uncomment the EC0 function(remove the `/*` and `*/` around it):
|
As you can see our `PNP0C09` is found within the `Device (EC0)` meaning this is the device we want to hide from macOS(others may find `H_EC`, `ECDV`, etc, everyone's systems will be different). Now grab our SSDT-EC and uncomment the EC0 function(remove the `/*` and `*/` around it):
|
||||||
|
|
||||||
* [SSDT-EC-USBX](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-EC-USBX.dsl)
|
* [SSDT-EC-USBX](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-EC-USBX.dsl)
|
||||||
* For Skylake and newer and all AMD systems
|
* For Skylake and newer and all AMD systems
|
||||||
* [SSDT-EC](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-EC.dsl)
|
* [SSDT-EC](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-EC.dsl)
|
||||||
* For Broadwell and older
|
* For Broadwell and older
|
||||||
|
|
||||||
```text
|
```text
|
||||||
/* <- REMOVE THIS
|
/* <- REMOVE THIS
|
||||||
External (_SB_.PCI0.LPCB.EC0, DeviceObj) <- Rename this
|
External (_SB_.PCI0.LPCB.EC0, DeviceObj) <- Rename this
|
||||||
|
|
||||||
Scope (\_SB.PCI0.LPCB.EC0) <- Rename this
|
Scope (\_SB.PCI0.LPCB.EC0) <- Rename this
|
||||||
{
|
{
|
||||||
Method (_STA, 0, NotSerialized) // _STA: Status
|
Method (_STA, 0, NotSerialized) // _STA: Status
|
||||||
{
|
{
|
||||||
If (_OSI ("Darwin")) // Darwin = macOS
|
If (_OSI ("Darwin")) // Darwin = macOS
|
||||||
@@ -37,12 +37,12 @@ External (_SB_.PCI0.LPCB.EC0, DeviceObj) <- Rename this
|
|||||||
|
|
||||||
But looking back at the screenshot above we notice something, our ACPI path is different: `PC00.LPC0` vs `PCI0.LPCB`. This is very important especially when you're dealing with Intel consumer vs Intel HEDT vs AMD, `PC00.LPC0` is common on Intel HEDT while `PCI0.SBRG` is common on AMD. And they even come with name variation such as `EC0`, `H_EC`, `PGEC` and `ECDV`, so there can't be a one size fits all SSDT, **always verify your path and device. DO NOT ASSUME**.
|
But looking back at the screenshot above we notice something, our ACPI path is different: `PC00.LPC0` vs `PCI0.LPCB`. This is very important especially when you're dealing with Intel consumer vs Intel HEDT vs AMD, `PC00.LPC0` is common on Intel HEDT while `PCI0.SBRG` is common on AMD. And they even come with name variation such as `EC0`, `H_EC`, `PGEC` and `ECDV`, so there can't be a one size fits all SSDT, **always verify your path and device. DO NOT ASSUME**.
|
||||||
|
|
||||||
* Finding the LowPinCount path:
|
* Finding the LowPinCount path:
|
||||||
* Intel: Search `Name (_ADR, 0x001F0000)`
|
* Intel: Search `Name (_ADR, 0x001F0000)`
|
||||||
* AMD: Search `Name (_ADR, 0x00140003)`
|
* AMD: Search `Name (_ADR, 0x00140003)`
|
||||||
* Finding the PCI path:
|
* Finding the PCI path:
|
||||||
* Intel: Search `PNP0A08` (If multiple show up, use the first one)
|
* Intel: Search `PNP0A08` (If multiple show up, use the first one)
|
||||||
* AMD: Assume `PCI0`(most AMD DSDTs don't declare the PCI path directly)
|
* AMD: Assume `PCI0`(most AMD DSDTs don't declare the PCI path directly)
|
||||||
|
|
||||||
And make sure to scroll to the bottom as the new Fake EC function also need the correct path to replace the old EC. **Do not rename `Device (EC)`**, this is our fake EC we're using for macOS to play with so leave `Device (EC)` alone. **Just change the path!**
|
And make sure to scroll to the bottom as the new Fake EC function also need the correct path to replace the old EC. **Do not rename `Device (EC)`**, this is our fake EC we're using for macOS to play with so leave `Device (EC)` alone. **Just change the path!**
|
||||||
|
|
||||||
@@ -58,7 +58,7 @@ Note if you have an STA Method as well, see below: [STA Edge Case](/Desktops/des
|
|||||||
|
|
||||||
> What happens if no `PNP0C09` show up?
|
> What happens if no `PNP0C09` show up?
|
||||||
|
|
||||||
So what this means: EC faking is not mandatory for booting, instead only **recommended for proper USB power**.
|
So what this means: EC faking is not mandatory for booting, instead only **recommended for proper USB power**.
|
||||||
|
|
||||||
So how do I make an SSDT without an EC? Well we'll only create a Fake EC for macOS to play with, this allows for AppleBusPowerController to load and handle our USB properly. To make the actual SSDT, its *almost* plug and play as no uncommenting needed. The main thing that needs to be changed:
|
So how do I make an SSDT without an EC? Well we'll only create a Fake EC for macOS to play with, this allows for AppleBusPowerController to load and handle our USB properly. To make the actual SSDT, its *almost* plug and play as no uncommenting needed. The main thing that needs to be changed:
|
||||||
|
|
||||||
@@ -67,16 +67,14 @@ So how do I make an SSDT without an EC? Well we'll only create a Fake EC for mac
|
|||||||
|
|
||||||
We want to make sure the SSDT hooks into our DSDT correctly so we need to make sure the ACPI path is correct:
|
We want to make sure the SSDT hooks into our DSDT correctly so we need to make sure the ACPI path is correct:
|
||||||
|
|
||||||
* Finding the LowPinCount path:
|
* Finding the LowPinCount path:
|
||||||
* Intel: Search `Name (_ADR, 0x001F0000)`
|
* Intel: Search `Name (_ADR, 0x001F0000)`
|
||||||
* AMD: Search `Name (_ADR, 0x00140003)`
|
* AMD: Search `Name (_ADR, 0x00140003)`
|
||||||
* Finding the PCI path:
|
* Finding the PCI path:
|
||||||
* Intel: Search `PNP0A08` (If multiple show up, use the first one)
|
* Intel: Search `PNP0A08` (If multiple show up, use the first one)
|
||||||
* AMD: Assume `PCI0`(most AMD DSDTs don't declare the PCI path directly)
|
* AMD: Assume `PCI0`(most AMD DSDTs don't declare the PCI path directly)
|
||||||
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
Once you find out, change `PCI0.LPCB` to your correct path:
|
Once you find out, change `PCI0.LPCB` to your correct path:
|
||||||
|
|
||||||
@@ -118,5 +116,4 @@ The reason for this is that the real EC is considered disabled already.
|
|||||||
|
|
||||||
USBX is universal across all systems, it just creates a USBX device that forces USB power properties. This is crucial for fixing Mics, DACs, Webcams, Bluetooth Dongles and other high power draw devices. This is not mandatory to boot but should be added in post-install if not before. Note that USBX is only used on skylake+ systems, Broadwell and older can ignore and that USBX requires a patched EC to function correctly
|
USBX is universal across all systems, it just creates a USBX device that forces USB power properties. This is crucial for fixing Mics, DACs, Webcams, Bluetooth Dongles and other high power draw devices. This is not mandatory to boot but should be added in post-install if not before. Note that USBX is only used on skylake+ systems, Broadwell and older can ignore and that USBX requires a patched EC to function correctly
|
||||||
|
|
||||||
|
|
||||||
## [Now you're ready to compile the SSDT!](/Manual/compile.md)
|
## [Now you're ready to compile the SSDT!](/Manual/compile.md)
|
||||||
|
|||||||
@@ -2,12 +2,12 @@
|
|||||||
|
|
||||||
So what this SSDT does is create a PNLF device for macOS to play with, specifically one with a hardware ID of `APP0002`. WhateverGreen will handle the rest of the work
|
So what this SSDT does is create a PNLF device for macOS to play with, specifically one with a hardware ID of `APP0002`. WhateverGreen will handle the rest of the work
|
||||||
|
|
||||||
|
|
||||||
No configuration required for most, just drop the prebuilt file into your EFI:
|
No configuration required for most, just drop the prebuilt file into your EFI:
|
||||||
|
|
||||||
* [SSDT-PNLF](https://github.com/khronokernel/Getting-Started-With-ACPI/blob/master/extra-files/SSDT-PNLF.aml)
|
* [SSDT-PNLF](https://github.com/khronokernel/Getting-Started-With-ACPI/blob/master/extra-files/SSDT-PNLF.aml)
|
||||||
* For most users
|
* For most users
|
||||||
* [SSDT-PNLFCFL](https://i.applelife.ru/2019/12/463488_SSDT-PNLFCFL.aml.zip)
|
* [SSDT-PNLFCFL](https://i.applelife.ru/2019/12/463488_SSDT-PNLFCFL.aml.zip)
|
||||||
* For Coffee Lake and newer
|
* For Coffee Lake and newer
|
||||||
|
|
||||||
Note: there are some rare cases where the iGPU is called `GPU0` or `VID`in the DSDT, you can double check by searching for `PCI0.GFX0`, `PCI0.VID` and `PCI0.GPU0`. Whichever shows up is your device
|
Note: there are some rare cases where the iGPU is called `GPU0` or `VID`in the DSDT, you can double check by searching for `PCI0.GFX0`, `PCI0.VID` and `PCI0.GPU0`. Whichever shows up is your device
|
||||||
|
|
||||||
@@ -16,6 +16,7 @@ If Windows has been installed on the device, you can also do the following:
|
|||||||
```text
|
```text
|
||||||
Device Manager -> Display Adapters -> Properties -> Details > BIOS device name
|
Device Manager -> Display Adapters -> Properties -> Details > BIOS device name
|
||||||
```
|
```
|
||||||
|
|
||||||
* Note some GPUs may be hiding under "BIOS device name"
|
* Note some GPUs may be hiding under "BIOS device name"
|
||||||
|
|
||||||

|

|
||||||
|
|||||||
@@ -13,12 +13,12 @@ How this works is that we call the `.off` method found on Optimus GPUs, this is
|
|||||||
|
|
||||||
To start, grab [SSDT-dGPU-Off.dsl](https://github.com/khronokernel/Getting-Started-With-ACPI/blob/master/extra-files/SSDT-dGPU-Off.dsl.zip)
|
To start, grab [SSDT-dGPU-Off.dsl](https://github.com/khronokernel/Getting-Started-With-ACPI/blob/master/extra-files/SSDT-dGPU-Off.dsl.zip)
|
||||||
|
|
||||||
|
|
||||||
Next we need to get on Windows, and head to the following:
|
Next we need to get on Windows, and head to the following:
|
||||||
|
|
||||||
```text
|
```text
|
||||||
Device Manager -> Display Adapters -> dGPU -> Properties -> Details > BIOS device name
|
Device Manager -> Display Adapters -> dGPU -> Properties -> Details > BIOS device name
|
||||||
```
|
```
|
||||||
|
|
||||||
* Note some GPUs may be hiding under "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:
|
This should provided you with an ACPI path for your dGPU, most commonly:
|
||||||
@@ -26,8 +26,7 @@ This should provided you with an ACPI path for your dGPU, most commonly:
|
|||||||
* Nvidia dGPU: `\_SB.PCI0.PEG0.PEGP`
|
* Nvidia dGPU: `\_SB.PCI0.PEG0.PEGP`
|
||||||
* AMD dGPU: `\_SB.PCI0.PEGP.DGFX`
|
* AMD dGPU: `\_SB.PCI0.PEGP.DGFX`
|
||||||
|
|
||||||
|

|
||||||

|
|
||||||
|
|
||||||
Now with that, we'll need to change the ACPI path in the SSDT. Main sections:
|
Now with that, we'll need to change the ACPI path in the SSDT. Main sections:
|
||||||
|
|
||||||
@@ -43,7 +42,6 @@ Once adapted to your config, head to the compile section
|
|||||||
|
|
||||||
* For those with sleep issues, you can refer to the original [Rehabman thread](https://www.tonymacx86.com/threads/guide-disabling-discrete-graphics-in-dual-gpu-laptops.163772/)
|
* For those with sleep issues, you can refer to the original [Rehabman thread](https://www.tonymacx86.com/threads/guide-disabling-discrete-graphics-in-dual-gpu-laptops.163772/)
|
||||||
|
|
||||||
|
|
||||||
## Bumblebee Method
|
## 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.
|
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.
|
||||||
@@ -79,9 +77,9 @@ If ((CondRefOf (\_SB.PCI0.PEG0.PEGP._DSM) && CondRefOf (\_SB.PCI0.PEG0.PEGP._PS3
|
|||||||
|
|
||||||
```text
|
```text
|
||||||
// Card Off
|
// Card Off
|
||||||
\_SB.PCI0.PEG0.PEGP._PS3 ()
|
\_SB.PCI0.PEG0.PEGP._PS3 ()
|
||||||
```
|
```
|
||||||
|
|
||||||
Once adapted to your config, head to the compile section
|
Once adapted to your config, head to the compile section
|
||||||
|
|
||||||
## [Now you're ready to compile the SSDT!](/Manual/compile.md)
|
## [Now you're ready to compile the SSDT!](/Manual/compile.md)
|
||||||
|
|||||||
@@ -1,11 +1,10 @@
|
|||||||
# Fixing Embedded Controller (Laptop)
|
# Fixing Embedded Controller (Laptop)
|
||||||
|
|
||||||
|
|
||||||
To fix the ECs found in laptops, we'll be renaming them to look like the ones macOS expects. The reason for this is that many laptops break when you turn off their EC with an SSDT. So this is why we can't use the fancy SSDTTime to make a patch for us.
|
To fix the ECs found in laptops, we'll be renaming them to look like the ones macOS expects. The reason for this is that many laptops break when you turn off their EC with an SSDT. So this is why we can't use the fancy SSDTTime to make a patch for us.
|
||||||
|
|
||||||
To find out what EC you have, open your decompiled DSDT and search for `PNP0C09`. This should give you a result like this:
|
To find out what EC you have, open your decompiled DSDT and search for `PNP0C09`. This should give you a result like this:
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
As you can see our `PNP0C09` is found within the `Device (EC0)` meaning this is the device we want to rename.
|
As you can see our `PNP0C09` is found within the `Device (EC0)` meaning this is the device we want to rename.
|
||||||
|
|
||||||
@@ -19,14 +18,13 @@ When this happens you need to figure out which is the main and which is not, it'
|
|||||||
|
|
||||||
Note that only the main EC needs renaming, if you only have one `PNP0C09` then it is automatically your main regardless of properties.
|
Note that only the main EC needs renaming, if you only have one `PNP0C09` then it is automatically your main regardless of properties.
|
||||||
|
|
||||||
|
|
||||||
> What if my main `PNP0C09` device is already called `Device (EC)`?
|
> What if my main `PNP0C09` device is already called `Device (EC)`?
|
||||||
|
|
||||||
Mainly relevant for Lenovo and a few other OEMs, when this happens that means that your Embedded Controller is ready to use in macOS! Do make sure that this `Device (EC)` is actually your main EC and not a secondary one.
|
Mainly relevant for Lenovo and a few other OEMs, when this happens that means that your Embedded Controller is ready to use in macOS! Do make sure that this `Device (EC)` is actually your main EC and not a secondary one.
|
||||||
|
|
||||||
**And please verify that the DSDT hasn't already been patched by Clover or OpenCore**, please dump it without booting either of them to be sure or triple check that there aren't any EC renames in your config already
|
**And please verify that the DSDT hasn't already been patched by Clover or OpenCore**, please dump it without booting either of them to be sure or triple check that there aren't any EC renames in your config already
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
For those having issues, you can also check `Device Manager -> Embedded Controller -> BIOS device Name`. Widows will only report the main EC so will save you some headache on that
|
For those having issues, you can also check `Device Manager -> Embedded Controller -> BIOS device Name`. Widows will only report the main EC so will save you some headache on that
|
||||||
|
|
||||||
@@ -41,7 +39,7 @@ As you can see from the table below, we'll be renaming our EC listed in the DSDT
|
|||||||
|change ECDV to EC|45434456|45435f5f|
|
|change ECDV to EC|45434456|45435f5f|
|
||||||
|change PGEC to EC|50474543|45435f5f|
|
|change PGEC to EC|50474543|45435f5f|
|
||||||
|
|
||||||
## Inside your config:
|
## Inside your config
|
||||||
|
|
||||||
| Comment | String | Change XXXX to EC |
|
| Comment | String | Change XXXX to EC |
|
||||||
| :--- | :--- | :--- |
|
| :--- | :--- | :--- |
|
||||||
@@ -51,5 +49,4 @@ As you can see from the table below, we'll be renaming our EC listed in the DSDT
|
|||||||
| Find | Data | xxxxxxxx |
|
| Find | Data | xxxxxxxx |
|
||||||
| Replace | Data | xxxxxxxx |
|
| Replace | Data | xxxxxxxx |
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|||||||
@@ -8,8 +8,7 @@ With most modern laptop DSDTs, there's a variable called `GPEN` or `GPHD` which
|
|||||||
|
|
||||||
So first things we need to do is find out what variable is used to enable our GPI0 device, lets open up our decompiled SSDT and search for `Device (GPI0)`. Should give you a desult similar to this:
|
So first things we need to do is find out what variable is used to enable our GPI0 device, lets open up our decompiled SSDT and search for `Device (GPI0)`. Should give you a desult similar to this:
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
What we care about from this is the `_STA` method:
|
What we care about from this is the `_STA` method:
|
||||||
|
|
||||||
@@ -24,24 +23,25 @@ Method (_STA, 0, NotSerialized)
|
|||||||
Return (0x0F)
|
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.
|
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
|
**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
|
||||||
|
|
||||||
Once you found the variable and what it should be set to, grab a copy of [SSDT-GPI0.dsl](https://github.com/khronokernel/Getting-Started-With-ACPI/blob/master/extra-files/SSDT-GPI0.dsl) and make the required edits. Then clean up with compiling it
|
Once you found the variable and what it should be set to, grab a copy of [SSDT-GPI0.dsl](https://github.com/khronokernel/Getting-Started-With-ACPI/blob/master/extra-files/SSDT-GPI0.dsl) and make the required edits. Then clean up with compiling it
|
||||||
|
|
||||||
|
## More examples
|
||||||
|
|
||||||
## 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`:
|
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`:
|
||||||
|
|
||||||
```
|
```
|
||||||
DefinitionBlock("", "SSDT", 2, "ACDT", "GPI0", 0)
|
DefinitionBlock("", "SSDT", 2, "ACDT", "GPI0", 0)
|
||||||
{
|
{
|
||||||
External(GPEN, FieldUnitObj)
|
External(GPEN, FieldUnitObj)
|
||||||
External(SBRG, FieldUnitObj)
|
External(SBRG, FieldUnitObj)
|
||||||
|
|
||||||
Scope (\)
|
Scope (\)
|
||||||
{
|
{
|
||||||
If (_OSI ("Darwin"))
|
If (_OSI ("Darwin"))
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# Compiling and decompiling ACPI Tables
|
# Compiling and decompiling ACPI Tables
|
||||||
|
|
||||||
See [General Troubleshooting](https://dortania.github.io/OpenCore-Desktop-Guide/troubleshooting/troubleshooting) if you have dumping/compiling errors
|
See [Troubleshooting](/troubleshooting.md) if you have dumping/compiling errors
|
||||||
|
|
||||||
* [macOS Compiling and Decompiling](/Manual/compile.md#macos)
|
* [macOS Compiling and Decompiling](/Manual/compile.md#macos)
|
||||||
* [Windows Compiling and Decompiling](/Manual/compile.md#windows)
|
* [Windows Compiling and Decompiling](/Manual/compile.md#windows)
|
||||||
@@ -15,9 +15,10 @@ For those who prefer the command line, grab [iasl-stable](https://github.com/aci
|
|||||||
```text
|
```text
|
||||||
path/to/iasl.exe path/to/DSDT.aml
|
path/to/iasl.exe path/to/DSDT.aml
|
||||||
```
|
```
|
||||||
|
|
||||||
* If compiled .aml file is provided, a decompiled .dsl file will be given and vice versa.
|
* If compiled .aml file is provided, a decompiled .dsl file will be given and vice versa.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
## Windows
|
## Windows
|
||||||
|
|
||||||
@@ -27,7 +28,7 @@ Compiling and decompiling on windows is fairly simple though, you will need [ias
|
|||||||
path/to/iasl.exe path/to/DSDT.aml
|
path/to/iasl.exe path/to/DSDT.aml
|
||||||
```
|
```
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
* If compiled .aml file is provided, a decompiled .dsl file will be given and vice versa.
|
* If compiled .aml file is provided, a decompiled .dsl file will be given and vice versa.
|
||||||
|
|
||||||
@@ -39,4 +40,4 @@ Compiling and decompiling with Linux is just as simple, you will need a special
|
|||||||
path/to/iasl path/to/DSDT.aml
|
path/to/iasl path/to/DSDT.aml
|
||||||
```
|
```
|
||||||
|
|
||||||
* If compiled .aml file is provided, a decompiled .dsl file will be given and vice versa.
|
* If compiled .aml file is provided, a decompiled .dsl file will be given and vice versa.
|
||||||
|
|||||||
@@ -2,11 +2,9 @@
|
|||||||
|
|
||||||
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:
|
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:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
* [SSDTTime](https://github.com/corpnewt/SSDTTime)
|
* [SSDTTime](https://github.com/corpnewt/SSDTTime)
|
||||||
* Supports both Windows and Linux for DSDT dumping
|
* Supports both Windows and Linux for DSDT dumping
|
||||||
* `4. Dump DSDT - Automatically dump the system DSDT`
|
* `4. Dump DSDT - Automatically dump the system DSDT`
|
||||||
* [MaciASL](https://github.com/acidanthera/MaciASL/releases)
|
* [MaciASL](https://github.com/acidanthera/MaciASL/releases)
|
||||||
* Open the app on the target machine(must already be running macOS) and the system's DSDT will show, then File -> SaveAs `System DSDT`. Make sure the file format is ACPI Machine Language Binary(.AML), this will require the machine to be running macOS
|
* Open the app on the target machine(must already be running macOS) and the system's DSDT will show, then File -> SaveAs `System DSDT`. Make sure the file format is ACPI Machine Language Binary(.AML), this will require the machine to be running macOS
|
||||||
* Do note that all ACPI patches from clover/OpenCore will be applied to the DSDT
|
* Do note that all ACPI patches from clover/OpenCore will be applied to the DSDT
|
||||||
@@ -17,7 +15,7 @@ So to start, we'll need to get a copy of your DSDT from your firmware. The easie
|
|||||||
* [`acpidump.efi`](https://github.com/dortania/OpenCore-Desktop-Guide/tree/master/extra-files/acpidump.efi.zip)
|
* [`acpidump.efi`](https://github.com/dortania/OpenCore-Desktop-Guide/tree/master/extra-files/acpidump.efi.zip)
|
||||||
* 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. Rename the DSDT.dat to DSDT.aml. Tool is provided by [acpica](https://github.com/acpica/acpica/tree/master/source/tools/acpidump)
|
* 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. Rename the DSDT.dat to DSDT.aml. Tool is provided by [acpica](https://github.com/acpica/acpica/tree/master/source/tools/acpidump)
|
||||||
|
|
||||||
If OpenCore is having issues running acpidump, you can call it from the shell with [OpenCoreShell](https://github.com/acidanthera/OpenCoreShell/releases)(reminder to add to both `EFI/OC/Tools` and in your config under `Misc -> Tools` ):
|
If OpenCore is having issues running acpidump, you can call it from the shell with [OpenShell](https://github.com/acidanthera/OpenCorePkg/releases)(reminder to add to both `EFI/OC/Tools` and in your config under `Misc -> Tools` ):
|
||||||
|
|
||||||
```text
|
```text
|
||||||
shell> fs0: // replace with proper drive
|
shell> fs0: // replace with proper drive
|
||||||
@@ -32,4 +30,3 @@ fs0:\> cd EFI\OC\Tools
|
|||||||
|
|
||||||
fs0:\EFI\OC\Tools> acpidump.efi -b -n DSDT -z
|
fs0:\EFI\OC\Tools> acpidump.efi -b -n DSDT -z
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
104
README.md
@@ -36,95 +36,31 @@ Please see the **specific ACPI section of your config.plist**, all SSDTs needed
|
|||||||
|
|
||||||
### Desktop
|
### Desktop
|
||||||
|
|
||||||
**Ivy Bridge:**
|
|
||||||
* [CPU-PM](https://github.com/Piker-Alpha/ssdtPRGen.sh)(Run in Post-Install)
|
|
||||||
* [SSDT-EC](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-EC.dsl)
|
|
||||||
|
|
||||||
**Haswell:**
|
| SSDT | IvyBridge | Haswell/Broadwell | Skylake | KabyLake | CoffeeLake | CometLake | AMD(15/16/17h) |
|
||||||
* [SSDT-PLUG](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-PLUG.dsl)
|
| :--- | :--- | :--- | :--- | :--- | :--- | :--- |
|
||||||
* [SSDT-EC](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-EC.dsl)
|
| **CPU** | [CPU-PM](https://github.com/Piker-Alpha/ssdtPRGen.sh)(Run in Post-Install) | [SSDT-PLUG](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-PLUG.dsl) | [SSDT-PLUG](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-PLUG.dsl) | [SSDT-PLUG](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-PLUG.dsl) | [SSDT-PLUG](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-PLUG.dsl) | [SSDT-PLUG](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-PLUG.dsl) | N/A |
|
||||||
|
| **EC** | [SSDT-EC](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-EC.dsl) | [SSDT-EC](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-EC.dsl) | [SSDT-EC-USBX](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-EC-USBX.dsl) | [SSDT-EC-USBX](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-EC-USBX.dsl) | [SSDT-EC-USBX](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-EC-USBX.dsl) | [SSDT-EC-USBX](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-EC-USBX.dsl) | [SSDT-EC-USBX](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-EC-USBX.dsl) |
|
||||||
|
| **AWAC** | N/A | N/A | N/A | N/A | [SSDT-AWAC](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-AWAC.dsl) | [SSDT-AWAC](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-AWAC.dsl) | N/A |
|
||||||
|
| **NVRAM** | N/A | N/A | N/A | N/A | [SSDT-PMC](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-PMC.dsl) | [SSDT-PMC](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-PMC.dsl) | N/A |
|
||||||
|
|
||||||
**Skylake:**
|
|
||||||
* [SSDT-PLUG](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-PLUG.dsl)
|
|
||||||
* [SSDT-EC-USBX](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-EC-USBX.dsl)
|
|
||||||
|
|
||||||
**Kabylake:**
|
|
||||||
* [SSDT-PLUG](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-PLUG.dsl)
|
|
||||||
* [SSDT-EC-USBX](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-EC-USBX.dsl)
|
|
||||||
|
|
||||||
**Coffeelake:**
|
|
||||||
* [SSDT-PLUG](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-PLUG.dsl)
|
|
||||||
* [SSDT-EC-USBX](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-EC-USBX.dsl)
|
|
||||||
* [SSDT AWAC](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-AWAC.dsl)
|
|
||||||
* [SSDT-PMC](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-PMC.dsl)
|
|
||||||
|
|
||||||
**AMD:**
|
|
||||||
* [SSDT-EC-USBX](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-EC-USBX.dsl)
|
|
||||||
|
|
||||||
### High End Desktop
|
### High End Desktop
|
||||||
|
|
||||||
**Haswell-E:**
|
| SSDT | IvyBridge-E | Haswell-E | Broadwell-E | Skylake-X |
|
||||||
* [SSDT-PLUG](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-PLUG.dsl)
|
| :--- | :--- | :--- | :--- | :--- | :--- | :--- |
|
||||||
* [SSDT-EC](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-EC.dsl)
|
| **CPU** | [CPU-PM](https://github.com/Piker-Alpha/ssdtPRGen.sh)(Run in Post-Install) | [SSDT-PLUG](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-PLUG.dsl) | [SSDT-PLUG](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-PLUG.dsl) | [SSDT-PLUG](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-PLUG.dsl) |
|
||||||
|
| **EC** | [SSDT-EC](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-EC.dsl) | [SSDT-EC](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-EC.dsl) | [SSDT-EC](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-EC.dsl) | [SSDT-EC-USBX](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-EC-USBX.dsl) |
|
||||||
**Broadwell-E:**
|
| **AWAC** | N/A | N/A | N/A | [SSDT-AWAC](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-AWAC.dsl) |
|
||||||
* [SSDT-PLUG](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-PLUG.dsl)
|
|
||||||
* [SSDT-EC](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-EC.dsl)
|
|
||||||
|
|
||||||
**Skylake-X:**
|
|
||||||
* [SSDT-PLUG](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-PLUG.dsl)
|
|
||||||
* [SSDT-EC-USBX](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-EC-USBX.dsl)
|
|
||||||
* [SSDT-AWAC](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-AWAC.dsl)
|
|
||||||
|
|
||||||
### Laptop
|
### Laptop
|
||||||
|
|
||||||
**Ivy Bridge:**
|
| SSDT | IvyBridge | Haswell | Broadwell | Skylake | KabyLake | CoffeeLake(8thGen) | Coffee/Comet/IceLake(9/10thGen) |
|
||||||
* [EC ACPI Patch](/Laptops/laptop-ec.md)
|
| :--- | :--- | :--- | :--- | :--- | :--- | :--- |
|
||||||
* [CPU-PM](https://github.com/Piker-Alpha/ssdtPRGen.sh)
|
| **CPU** | [CPU-PM](https://github.com/Piker-Alpha/ssdtPRGen.sh)(Run in Post-Install) | [SSDT-PLUG](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-PLUG.dsl) | [SSDT-PLUG](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-PLUG.dsl) | [SSDT-PLUG](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-PLUG.dsl) | [SSDT-PLUG](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-PLUG.dsl) | [SSDT-PLUG](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-PLUG.dsl) | [SSDT-PLUG](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-PLUG.dsl) |
|
||||||
* [SSDT-PNLF](https://github.com/acidanthera/WhateverGreen/blob/master/Manual/SSDT-PNLF.dsl)
|
| **EC** | [EC ACPI Patch](/Laptops/laptop-ec.md) | [EC ACPI Patch](/Laptops/laptop-ec.md) | [EC ACPI Patch](/Laptops/laptop-ec.md) | [EC ACPI Patch](/Laptops/laptop-ec.md) + [SSDT-USBX](https://github.com/khronokernel/USB-Map-Guide/blob/master/extra-files/SSDT-USBX.aml) | [EC ACPI Patch](/Laptops/laptop-ec.md) + [SSDT-USBX](https://github.com/khronokernel/USB-Map-Guide/blob/master/extra-files/SSDT-USBX.aml) | [EC ACPI Patch](/Laptops/laptop-ec.md) + [SSDT-USBX](https://github.com/khronokernel/USB-Map-Guide/blob/master/extra-files/SSDT-USBX.aml) | [EC ACPI Patch](/Laptops/laptop-ec.md) + [SSDT-USBX](https://github.com/khronokernel/USB-Map-Guide/blob/master/extra-files/SSDT-USBX.aml) |
|
||||||
* [SSDT-GPI0](https://github.com/hackintosh-guides/vanilla-laptop-guide/tree/master/Misc-files/SSDT-GPIO.aml)
|
| **Backlight** | [SSDT-PNLF](https://github.com/acidanthera/WhateverGreen/blob/master/Manual/SSDT-PNLF.dsl) | [SSDT-PNLF](https://github.com/acidanthera/WhateverGreen/blob/master/Manual/SSDT-PNLF.dsl) | [SSDT-PNLF](https://github.com/acidanthera/WhateverGreen/blob/master/Manual/SSDT-PNLF.dsl) | [SSDT-PNLF](https://github.com/acidanthera/WhateverGreen/blob/master/Manual/SSDT-PNLF.dsl) | [SSDT-PNLF](https://github.com/acidanthera/WhateverGreen/blob/master/Manual/SSDT-PNLF.dsl) | [SSDT-PNLF-CFL](https://i.applelife.ru/2019/12/463488_SSDT-PNLFCFL.aml.zip) | [SSDT-PNLF-CFL](https://i.applelife.ru/2019/12/463488_SSDT-PNLFCFL.aml.zip) |
|
||||||
* [IRQ SSDT](https://github.com/corpnewt/SSDTTime)
|
| **I2C TrackPad** | [SSDT-GPI0](https://github.com/hackintosh-guides/vanilla-laptop-guide/tree/master/Misc-files/SSDT-GPIO.aml) | [SSDT-GPI0](https://github.com/hackintosh-guides/vanilla-laptop-guide/tree/master/Misc-files/SSDT-GPIO.aml) | [SSDT-GPI0](https://github.com/hackintosh-guides/vanilla-laptop-guide/tree/master/Misc-files/SSDT-GPIO.aml) | [SSDT-GPI0](https://github.com/hackintosh-guides/vanilla-laptop-guide/tree/master/Misc-files/SSDT-GPIO.aml) | [SSDT-GPI0](https://github.com/hackintosh-guides/vanilla-laptop-guide/tree/master/Misc-files/SSDT-GPIO.aml) | [SSDT-GPI0](https://github.com/hackintosh-guides/vanilla-laptop-guide/tree/master/Misc-files/SSDT-GPIO.aml) | [SSDT-GPI0](https://github.com/hackintosh-guides/vanilla-laptop-guide/tree/master/Misc-files/SSDT-GPIO.aml) |
|
||||||
|
| **AWAC** | N/A | N/A | N/A | N/A | N/A | N/A | [SSDT-AWAC](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-AWAC.dsl) |
|
||||||
**Haswell:**
|
| **NVRAM** | N/A | N/A | N/A | N/A | N/A | N/A | [SSDT-PMC](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-PMC.dsl) |
|
||||||
* [EC ACPI Patch](/Laptops/laptop-ec.md)
|
| **IRQ Patch** | [IRQ SSDT](https://github.com/corpnewt/SSDTTime) | [IRQ SSDT](https://github.com/corpnewt/SSDTTime) | [IRQ SSDT](https://github.com/corpnewt/SSDTTime) | N/A | N/A | N/A | N/A |
|
||||||
* [SSDT-PLUG](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-PLUG.dsl)
|
|
||||||
* [SSDT-PNLF](https://github.com/acidanthera/WhateverGreen/blob/master/Manual/SSDT-PNLF.dsl)
|
|
||||||
* [SSDT-GPI0](https://github.com/hackintosh-guides/vanilla-laptop-guide/tree/master/Misc-files/SSDT-GPIO.aml)
|
|
||||||
* [IRQ SSDT](https://github.com/corpnewt/SSDTTime)
|
|
||||||
|
|
||||||
**Broadwell:**
|
|
||||||
* [EC ACPI Patch](/Laptops/laptop-ec.md)
|
|
||||||
* [SSDT-PLUG](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-PLUG.dsl)
|
|
||||||
* [SSDT-PNLF](https://github.com/acidanthera/WhateverGreen/blob/master/Manual/SSDT-PNLF.dsl)
|
|
||||||
* [SSDT-GPI0](https://github.com/hackintosh-guides/vanilla-laptop-guide/tree/master/Misc-files/SSDT-GPIO.aml)
|
|
||||||
* [IRQ SSDT](https://github.com/corpnewt/SSDTTime)
|
|
||||||
|
|
||||||
**Skylake:**
|
|
||||||
* [EC ACPI Patch](/Laptops/laptop-ec.md)
|
|
||||||
* [SSDT-PLUG](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-PLUG.dsl)
|
|
||||||
* [SSDT-PNLF](https://github.com/acidanthera/WhateverGreen/blob/master/Manual/SSDT-PNLF.dsl)
|
|
||||||
* [SSDT-GPI0](https://github.com/hackintosh-guides/vanilla-laptop-guide/tree/master/Misc-files/SSDT-GPIO.aml)
|
|
||||||
* [IRQ SSDT](https://github.com/corpnewt/SSDTTime)
|
|
||||||
|
|
||||||
**Kabylake:**
|
|
||||||
* [EC ACPI Patch](/Laptops/laptop-ec.md)
|
|
||||||
* [SSDT-PLUG](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-PLUG.dsl)
|
|
||||||
* [SSDT-PNLF](https://github.com/acidanthera/WhateverGreen/blob/master/Manual/SSDT-PNLF.dsl)
|
|
||||||
* [SSDT-GPI0](https://github.com/hackintosh-guides/vanilla-laptop-guide/tree/master/Misc-files/SSDT-GPIO.aml)
|
|
||||||
* [IRQ SSDT](https://github.com/corpnewt/SSDTTime)
|
|
||||||
|
|
||||||
**Coffeelake(8th Gen):**
|
|
||||||
* [EC ACPI Patch](/Laptops/laptop-ec.md)
|
|
||||||
* [SSDT-PLUG](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-PLUG.dsl)
|
|
||||||
* [SSDT-PNLF](https://github.com/acidanthera/WhateverGreen/blob/master/Manual/SSDT-PNLF.dsl)
|
|
||||||
* [SSDT-GPI0](https://github.com/hackintosh-guides/vanilla-laptop-guide/tree/master/Misc-files/SSDT-GPIO.aml)
|
|
||||||
* [IRQ SSDT](https://github.com/corpnewt/SSDTTime)
|
|
||||||
|
|
||||||
**Coffeelake(9th Gen):**
|
|
||||||
* [EC ACPI Patch](/Laptops/laptop-ec.md)
|
|
||||||
* [SSDT-PLUG](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-PLUG.dsl)
|
|
||||||
* [SSDT AWAC](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-AWAC.dsl)
|
|
||||||
* [SSDT-PMC](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-PMC.dsl)
|
|
||||||
* [SSDT-PNLF](https://github.com/acidanthera/WhateverGreen/blob/master/Manual/SSDT-PNLF.dsl)
|
|
||||||
* [SSDT-GPI0](https://github.com/hackintosh-guides/vanilla-laptop-guide/tree/master/Misc-files/SSDT-GPIO.aml)
|
|
||||||
* [IRQ SSDT](https://github.com/corpnewt/SSDTTime)
|
|
||||||
|
|||||||
@@ -32,3 +32,8 @@
|
|||||||
## Cleanup
|
## Cleanup
|
||||||
|
|
||||||
* [Cleanup](cleanup.md)
|
* [Cleanup](cleanup.md)
|
||||||
|
|
||||||
|
## Misc
|
||||||
|
|
||||||
|
* [Troubleshooting](troubleshooting.md)
|
||||||
|
* [Contributing](CONTRIBUTING.md)
|
||||||
|
|||||||
@@ -7,16 +7,16 @@
|
|||||||
* B365
|
* B365
|
||||||
* H310
|
* H310
|
||||||
* H370
|
* H370
|
||||||
* Z370 (Gigabtye and AsRock boards with newer BIOS versions)
|
* Z370 (Gigabyte and AsRock boards with newer BIOS versions)
|
||||||
* Z390
|
* Z390
|
||||||
* 400 series (Cometlake)
|
* 400 series (Cometlake)
|
||||||
* 495 series (Icelake)
|
* 495 series (Icelake)
|
||||||
|
|
||||||
So on newer Intel 300 series motherboards, manufactueres started pushing for a new type of system clock: **AWAC**( **A** **W**eird **A**ss **C**lock). One small problem, macOS doesn't know what the hell an AWAC clock is instead only familiar with the legacy **RTC**(**R**eal **T**ime **C**lock). So we need to figure out how to bring back the old clock, thats where `SSDT-AWAC` and `SSDT-RTC0` come in:
|
So on newer Intel 300 series motherboards, manufactures started pushing for a new type of system clock: **AWAC**( **A** **W**eird **A**ss **C**lock). One small problem, macOS doesn't know what the hell an AWAC clock is instead only familiar with the legacy **RTC**(**R**eal **T**ime **C**lock). So we need to figure out how to bring back the old clock, thats where `SSDT-AWAC` and `SSDT-RTC0` come in:
|
||||||
|
|
||||||
* [SSDT-AWAC](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-AWAC.dsl)
|
* [SSDT-AWAC](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-AWAC.dsl)
|
||||||
* Disables AWAC and enables RTC
|
* Disables AWAC and enables RTC
|
||||||
* In your DSDT, there's a varaible called `STAS` used for holding either a `One` or `Zero` to determine which clock to use(`One` for RTC and `Zero` for AWAC)
|
* In your DSDT, there's a variable called `STAS` used for holding either a `One` or `Zero` to determine which clock to use(`One` for RTC and `Zero` for AWAC)
|
||||||
|
|
||||||
* [SSDT-RTC0](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-RTC0.dsl)
|
* [SSDT-RTC0](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-RTC0.dsl)
|
||||||
* Used for creating a fake RTC device for macOS to play with
|
* Used for creating a fake RTC device for macOS to play with
|
||||||
@@ -33,7 +33,7 @@ To determine whether you need [SSDT-AWAC](https://github.com/acidanthera/OpenCor
|
|||||||
* If **nothing shows up** then no need to continue and **no need for this SSDT** as you have no AWAC. **Otherwise, continue on!**
|
* If **nothing shows up** then no need to continue and **no need for this SSDT** as you have no AWAC. **Otherwise, continue on!**
|
||||||
* If you get a result then you have an `AWAC` system clock present, then continue with the **next search for `STAS`**:
|
* If you get a result then you have an `AWAC` system clock present, then continue with the **next search for `STAS`**:
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
As you can see we found the `STAS` in our DSDT, this means we're able to force enable our Legacy RTC. In this case, [SSDT-AWAC](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-AWAC.dsl) will be used As-Is with no modifications required. Just need to compile. Note that `STAS` may be found in AWAC first instead of RTC like in our example, this is normal.
|
As you can see we found the `STAS` in our DSDT, this means we're able to force enable our Legacy RTC. In this case, [SSDT-AWAC](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-AWAC.dsl) will be used As-Is with no modifications required. Just need to compile. Note that `STAS` may be found in AWAC first instead of RTC like in our example, this is normal.
|
||||||
|
|
||||||
@@ -41,7 +41,7 @@ For systems where **no `STAS`** shows up **but** you do have `AWAC`, you can use
|
|||||||
|
|
||||||
By default the SSDT uses `LPCB`, you can check what your system uses by just searching for `Name (_ADR, 0x001F0000)`. This address is used for Low Pin Count devices(LPC) but the device name can vary between `LPCB`, `LBC` or `LBC0`:
|
By default the SSDT uses `LPCB`, you can check what your system uses by just searching for `Name (_ADR, 0x001F0000)`. This address is used for Low Pin Count devices(LPC) but the device name can vary between `LPCB`, `LBC` or `LBC0`:
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
## [Now you're ready to compile the SSDT!](/Manual/compile.md)
|
## [Now you're ready to compile the SSDT!](/Manual/compile.md)
|
||||||
|
|||||||
@@ -17,6 +17,6 @@ By default it uses `PCI0.LPCB` for the PCI and LowPinCount path. The device name
|
|||||||
* Finding the PCI path:
|
* Finding the PCI path:
|
||||||
* Intel: Search `PNP0A08` (If multiple show up, use the first one)
|
* Intel: Search `PNP0A08` (If multiple show up, use the first one)
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
## [Now you're ready to compile the SSDT!](/Manual/compile.md)
|
## [Now you're ready to compile the SSDT!](/Manual/compile.md)
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
CPU naming is fairly easy to figure out as well, open your decompiled DSDT and search for `Processor`. This should give you a result like this:
|
CPU naming is fairly easy to figure out as well, open your decompiled DSDT and search for `Processor`. This should give you a result like this:
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
As we can see, the first processor in our list is `PR00`. This is what we'll be applying the `plugin-type=1` property too. Now grab [SSDT-PLUG](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-PLUG.dsl) and replace the default `CPU0` with our `PR00`. There's a couple things to note:
|
As we can see, the first processor in our list is `PR00`. This is what we'll be applying the `plugin-type=1` property too. Now grab [SSDT-PLUG](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-PLUG.dsl) and replace the default `CPU0` with our `PR00`. There's a couple things to note:
|
||||||
|
|
||||||
@@ -13,11 +13,11 @@ So in our final example, we'd have `_SB_.PR00` and `\_SB.PR00`
|
|||||||
|
|
||||||
There are also some edge cases with `Processor`, specifically on HEDT series like X79, X99 and X299. This edge case is that the ACPI path is much longer and not so obvious:
|
There are also some edge cases with `Processor`, specifically on HEDT series like X79, X99 and X299. This edge case is that the ACPI path is much longer and not so obvious:
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
If we then search for instances of `CP00` we find that it's ACPI path is `SB.SCK0.CP00`:
|
If we then search for instances of `CP00` we find that it's ACPI path is `SB.SCK0.CP00`:
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
So for this X299 board, we'd change `\_PR.CPU0` with `\_SB.SCK0.CP00` and `External (_PR_.CPU0, ProcessorObj)` with `External (_SB_.SCK0.CP00, ProcessorObj)`
|
So for this X299 board, we'd change `\_PR.CPU0` with `\_SB.SCK0.CP00` and `External (_PR_.CPU0, ProcessorObj)` with `External (_SB_.SCK0.CP00, ProcessorObj)`
|
||||||
|
|
||||||
|
|||||||
@@ -36,8 +36,7 @@ Device (_SB.PCI0.SBUS.BUS0) <- Rename this
|
|||||||
```
|
```
|
||||||
To find the correct pathing for your devices, grab [Hackintool](https://www.tonymacx86.com/threads/release-hackintool-v3-x-x.254559/) ([Github link](https://github.com/headkaze/Hackintool)) and head to the PCI tab:
|
To find the correct pathing for your devices, grab [Hackintool](https://www.tonymacx86.com/threads/release-hackintool-v3-x-x.254559/) ([Github link](https://github.com/headkaze/Hackintool)) 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 `@...`
|
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`
|
* `/PC00@0/SMBS@1F,4` -> `PC00.SMBS`
|
||||||
|
|||||||
@@ -52,8 +52,9 @@ To find the PCI path of a GPU is fairly simple, best way to find it is running W
|
|||||||
* Under the Details Tab, search for "Location Paths"
|
* Under the Details Tab, search for "Location Paths"
|
||||||
* Note some GPUs may be hiding under "BIOS device name"
|
* Note some GPUs may be hiding under "BIOS device name"
|
||||||
|
|
||||||

|

|
||||||

|
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
The second "ACPI" is what we care about:
|
The second "ACPI" is what we care about:
|
||||||
|
|||||||
@@ -53,9 +53,11 @@ To find the PCI path of a GPU is fairly simple, best way to find it is running W
|
|||||||
|
|
||||||
* Open Device Manager
|
* Open Device Manager
|
||||||
* Select Display Adapters, then right click your GPU and select Properties
|
* Select Display Adapters, then right click your GPU and select Properties
|
||||||
* Under the Details Tab, search for "Loaction Paths"
|
* Under the Details Tab, search for "Location Paths"
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
The second "ACPI" is what we care about:
|
The second "ACPI" is what we care about:
|
||||||
|
|||||||
13269
_book/.gitignore
vendored
@@ -13,8 +13,7 @@ Users of `FixHPET` will also need to merge oc_patches.plist into their config.pl
|
|||||||
|
|
||||||
Steps to do this:
|
Steps to do this:
|
||||||
|
|
||||||
* Open both files,
|
* Open both files,
|
||||||
* Delete the `ACPI -> Patch` section from config.plist
|
* Delete the `ACPI -> Patch` section from config.plist
|
||||||
* Copy the `ACPI -> Patch` section from patches.plist
|
* Copy the `ACPI -> Patch` section from patches.plist
|
||||||
* Paste into where old patches were in config.plist
|
* Paste into where old patches were in config.plist
|
||||||
|
|
||||||
|
|||||||
BIN
images/Desktops/amd.png
Normal file
|
After Width: | Height: | Size: 199 KiB |
BIN
images/Desktops/lpc.png
Normal file
|
After Width: | Height: | Size: 1.2 MiB |
BIN
images/Desktops/nvidia.png
Normal file
|
After Width: | Height: | Size: 69 KiB |
BIN
images/Desktops/pnp.png
Normal file
|
After Width: | Height: | Size: 1.0 MiB |
BIN
images/Laptops/laptop-ec-md/config.png
Normal file
|
After Width: | Height: | Size: 536 KiB |
BIN
images/Laptops/laptop-ec-md/dsdt-pnp.png
Normal file
|
After Width: | Height: | Size: 1.0 MiB |
|
Before Width: | Height: | Size: 407 KiB After Width: | Height: | Size: 407 KiB |
BIN
images/Laptops/trackpad-md/gpi0-2.png
Normal file
|
After Width: | Height: | Size: 624 KiB |
BIN
images/Laptops/trackpad-md/gpi0.png
Normal file
|
After Width: | Height: | Size: 491 KiB |
BIN
images/Manual/compile-md/macos-compile.png
Normal file
|
After Width: | Height: | Size: 968 KiB |
BIN
images/Manual/compile-md/windows-compile.png
Normal file
|
After Width: | Height: | Size: 39 KiB |
BIN
images/Universal/awac-md/lpc.png
Normal file
|
After Width: | Height: | Size: 992 KiB |
BIN
images/Universal/awac-md/stas.png
Normal file
|
After Width: | Height: | Size: 1.1 MiB |
BIN
images/Universal/nvram-md/lpc.png
Normal file
|
After Width: | Height: | Size: 1.2 MiB |
BIN
images/Universal/plug-md/cp00.png
Normal file
|
After Width: | Height: | Size: 1.2 MiB |
BIN
images/Universal/plug-md/processor-2.png
Normal file
|
After Width: | Height: | Size: 993 KiB |
BIN
images/Universal/plug-md/processor.png
Normal file
|
After Width: | Height: | Size: 860 KiB |
BIN
images/Universal/smbus-md/pci.png
Normal file
|
After Width: | Height: | Size: 1.3 MiB |
BIN
images/ssdt-easy-md/ssdttime.png
Normal file
|
After Width: | Height: | Size: 62 KiB |
BIN
images/troubleshooting-md/decompile-error.png
Normal file
|
After Width: | Height: | Size: 175 KiB |
BIN
images/troubleshooting-md/invalid-parse.png
Normal file
|
After Width: | Height: | Size: 125 KiB |
@@ -20,7 +20,7 @@ What this tool does is dumps your DSDT from your firmware, and then creates SSDT
|
|||||||
* **PMC SSDT**:
|
* **PMC SSDT**:
|
||||||
* For fixing 300 series intel NVRAM
|
* For fixing 300 series intel NVRAM
|
||||||
* **USBX SSDT**:
|
* **USBX SSDT**:
|
||||||
* This is included on sample SSDTs but SSDTTime only makes the SSDT-EC part, Skylake and newer users can grab a prebuilt here: [SSDT-USBX.aml](https://github.com/dortania/Opencore-Desktop-Guide/blob//master/extra-files/SSDT-USBX.aml)
|
* This is included on sample SSDTs but SSDTTime only makes the SSDT-EC part, Skylake and newer users can grab a prebuilt here: [SSDT-USBX.aml](https://github.com/dortania/Opencore-Desktop-Guide/blob/master/extra-files/SSDT-USBX.aml)
|
||||||
|
|
||||||
For users who don't have all the options avaible to them in SSDTTime, you can follow the "SSDTs: The long way" section. You can still use SSDTTime for SSDTs it support for you.
|
For users who don't have all the options avaible to them in SSDTTime, you can follow the "SSDTs: The long way" section. You can still use SSDTTime for SSDTs it support for you.
|
||||||
|
|
||||||
@@ -28,7 +28,7 @@ For users who don't have all the options avaible to them in SSDTTime, you can fo
|
|||||||
|
|
||||||
Run the `SSDTTime.bat` file as Admin on the target machine and you should see something like this:
|
Run the `SSDTTime.bat` file as Admin on the target machine and you should see something like this:
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
What are all these options?:
|
What are all these options?:
|
||||||
|
|
||||||
@@ -46,7 +46,7 @@ What we want to do is select option `4. Dump DSDT` first, then select the approp
|
|||||||
|
|
||||||
> What about USBX?
|
> What about USBX?
|
||||||
|
|
||||||
For Skylake and newer plus AMD, you can grab a prebuilt file here: [SSDT-USBX.aml](https://github.com/dortania/Opencore-Desktop-Guide/blob//master/extra-files/SSDT-USBX.aml). This file is plug and play and requires no device configuration, **do not use on Broadwell and older**.
|
For Skylake and newer plus AMD, you can grab a prebuilt file here: [SSDT-USBX.aml](https://github.com/dortania/Opencore-Desktop-Guide/blob/master/extra-files/SSDT-USBX.aml). This file is plug and play and requires no device configuration, **do not use on Broadwell and older**.
|
||||||
|
|
||||||
**Troubleshooting note**: See [General Troubleshooting](https://dortania.github.io/OpenCore-Desktop-Guide/troubleshooting/troubleshooting.html) if you're having issues running SSDTTime
|
**Troubleshooting note**: See [General Troubleshooting](https://dortania.github.io/OpenCore-Desktop-Guide/troubleshooting/troubleshooting.html) if you're having issues running SSDTTime
|
||||||
|
|
||||||
|
|||||||
74
troubleshooting.md
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
# Troubleshooting
|
||||||
|
|
||||||
|
* [Fixing SSDTTime: `Could not locate or download iasl!`](/troubleshooting.md#fixing-ssdttime-could-not-locate-or-download-iasl)
|
||||||
|
* [Can't run `acpidump.efi`](/troubleshooting.md#cant-run-acpidumpefi-from-opencore)
|
||||||
|
* [iASL warning, # unresolved](/troubleshooting.md#iasl-warning--unresolved)
|
||||||
|
* [Decompiling Error](/troubleshooting.md#decompiling-error)
|
||||||
|
* [Invalid character (0x3D), expecting ASL keyword or name](/troubleshooting.md#invalid-character-0x3d-expecting-asl-keyword-or-name)
|
||||||
|
* [Syntax error, unexpected PARSEOP_ONE, expecting '('](/troubleshooting.md#syntax-error-unexpected-parseopone-expecting-)
|
||||||
|
|
||||||
|
## 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:
|
||||||
|
|
||||||
|
* [iasl macOS version](https://bitbucket.org/RehabMan/acpica/downloads/iasl.zip)
|
||||||
|
* [iasl Windows version](https://acpica.org/sites/acpica/files/iasl-win-20180105.zip)
|
||||||
|
* [iasl Linux version](http://amdosx.kellynet.nl/iasl.zip)
|
||||||
|
|
||||||
|
## Can't run `acpidump.efi` from OpenCore
|
||||||
|
|
||||||
|
Grab [OpenShell](https://github.com/acidanthera/OpenCorePkg/releases) and add it to EFI/OC/Tools and config.plist -> Misc -> Tools.
|
||||||
|
|
||||||
|
Next, call upon OpenCore shell and enter the following:
|
||||||
|
|
||||||
|
```text
|
||||||
|
shell> fs0: //replace with proper drive
|
||||||
|
|
||||||
|
fs0:\> dir //to verify this is the right directory
|
||||||
|
|
||||||
|
Directory of fs0:\
|
||||||
|
|
||||||
|
01/01/01 3:30p EFI
|
||||||
|
|
||||||
|
fs0:\> cd EFI\OC\Tools //note that its with forward slashes
|
||||||
|
|
||||||
|
fs0:\EFI\OC\Tools> acpidump.efi -b -n DSDT -z
|
||||||
|
```
|
||||||
|
|
||||||
|
## iASL warning, # unresolved
|
||||||
|
|
||||||
|
If you try to decompile your DSDT and get an error similar to this:
|
||||||
|
|
||||||
|
```text
|
||||||
|
iASL Warning: There were 19 external control methods found during disassembly, but only 0 were resolved (19 unresolved)
|
||||||
|
```
|
||||||
|
|
||||||
|
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:
|
||||||
|
|
||||||
|
```text
|
||||||
|
iasl * [insert all ACPI files here]
|
||||||
|
```
|
||||||
|
|
||||||
|
## Decompiling Error
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
```text
|
||||||
|
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](https://github.com/acidanthera/MaciASL/releases)
|
||||||
|
|
||||||
|
## 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](https://github.com/acidanthera/MaciASL/releases)
|
||||||
|
|
||||||
|
## 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](https://github.com/acidanthera/MaciASL/releases)
|
||||||