macos86 / macos86.github.io

Fork di traduzione Italiana non ufficiale della OpenCore Install Guide
https://macos86.github.io
Other
3 stars 1 forks source link

Sezione ACPI: allegerimento menu #39

Closed tiziodcaio closed 2 years ago

tiziodcaio commented 2 years ago

Sto intanto alleggerendo la repository unendo i 4 file (!) per ogni SSDT in un unico file [ergo, un file per SSDT] (allegerendo in questo modo la struttura della pagina...) vi avviso perché non è detto piaccia. Può parere insensato per i merge, ma in realtà a mio parere allegerisco di molto la lettura e la logica di comprensione (4 file di 2 righe mi pare troppo no? dopo diventa un labirinto!)

tiziodcaio commented 2 years ago

Io le pagine in sè le ho finite, mancano gli ultimi ritocchi... Magari se riesco anche a tradurle sarebbe proprio il top! Ecco un esempio di come verrebbe la compressione (questa è la sorgente in markdown, guarda il msg in versione raw per capirci di più)

Fixing Embedded Controller (SSDT-EC/USBX)

[[toc]]

What this SSDT does

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

So TL;DR:

Methods to make this SSDT

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

Prebuilt

The main things to note with this method:

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

Desktop

Laptops

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:

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

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:

Manual

::: warning TO-DO

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 that can also help).

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

From the above example we see 2 main things:

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

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:

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:

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:

What these signify is whether this PNP0C09 device is real or not, as per the ACPI spec. 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 disabling 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

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: