來源:https://www.tonymacx86.com/threads/guide-disabling-discrete-graphics-in-dual-gpu-laptops.163772/
Overview 概述
The purpose of this guide is to show you how to disable the discrete graphics device with DSDT/SSDT edits in “switched” dual-GPU laptops (eg. Intel+Nvidia[Optimus] and Intel+Radeon).
本指南的目的是向您展示如何通過編輯 DSDT/SSDT 禁用可切換雙GPU的筆記本電腦的獨顯(如:Intel+Nvidia[Optimus] 和 Intel+Radeon )。
Because only the Intel device can be used in these laptops, the discrete device is generally left active and using power, contributing to heat, noise, and battery usage. Although the device can usually be disabled in BIOS, it is better to disable it with a custom ACPI setup so the device can still be used when booting Windows.
由於這些筆記本電腦通常只能使用英特爾核顯, 此時獨顯卻仍然保持活動並消耗電力, 導致更大熱量、噪音和電池消耗。儘管通常可以在 BIOS 中禁用該設備, 但最好通過自定義 ACPI 設置以禁用該設備, 這樣在使用 Windows 時仍可使用獨顯。
Although it is a relatively simple patch (sometimes only a one line change), because of the fact that the patch is done to one or more SSDTs, there are many pitfalls to fall into. Also, certain machine/ACPI configurations require different approaches, leading to more complexity. The example DSDT/SSDT set that this guide uses is one of the more complex setups, so it covers most of the issues you might run into with your own.
雖然屏蔽獨顯是一個相對簡單的補丁 (有時只有一行更改), 但由於修補涵蓋一個或多個 SSDT 文件, 因此其中還是會有許多坑。此外, 某些特定機型或ACPI設置需要特定的方法, 以致情況更爲複雜。本指南使用的 DSDT/SSDT 演示的是其中一種較爲複雜的情況, 因此它可能涵蓋了您會遇到的大多數問題。
You should follow this walkthrough with the example before patching your own.
在修補自己的DSDT前, 請通讀全文並用本例進行演練。
The laptop being used for this guide/example is an “Asus UX303LN” with Intel HD4400 + Nvidia. The Clover F4 extracted tables (ACPI/origin directory) are provided in an attachment to this post.
本指南使用 Asus UX303LN 筆記本電腦作爲例子,它內置了Intel HD4400 和 Nvidia 顯卡。本文附件提供了通過 Clover F4 命令提取 (ACPI/origin 目錄)的文件。
Note: There is also a full hotpatch guide (for this same computer) here
注: 對於該型機器,這裏有一份完整的熱補丁指南 (適用於同一臺計算機): https://www.tonymacx86.com/threads/guide-using-clover-to-hotpatch-acpi.200137/
Patching requirements(修補要求)
The goal is quite simple. These machines provide an
_OFF
method, usually in an SSDT, that can be called to power down the discrete device. The easiest fix is to call_OFF
from the corresponding_INI
method. Note that the_OFF
method may be in DSDT or may have a different name (GPOF
,OPOF
,_PS3
, etc.)
目標很簡單。這些計算機通常在 SSDT 中提供了 _OFF
方法 , 調用該方法可以關閉獨顯的電源。最簡單的修補方法是在相應的 _INI
方法中調用 _OFF
。請注意, _OFF
方法可能位於 DSDT 中, 也可能具有不同的名稱 ( GPOF
、OPOF
、_PS3
等)
Certain implementations of
_OFF
cannot be called from_INI
as they access the EC (Embedded Controller) space. For these machines,_OFF
(or a portion of it) must be delayed until_REG
(when Arg0==3 and Arg1==1, see ACPI spec for more information regarding_REG
). In some cases, calling from_REG
is too late and it is either not effective or leads to a crash. In such a case, editing_OFF
to remove EC dependencies is necessary, so it can be called from_INI
. The code that was removed from_OFF
is then inserted into_REG
so the effect is the same although the EC work is done later. This is the case with the example ACPI setup in this guide.
但某些訪問了 EC (嵌入式控制器) 空間的 _OFF
實現不能從 _INI
調用。對於這些機器, _OFF
(或它的一部分) 必須推遲到 _REG
(當 Arg0==3 且 Arg1==1, 請參閱 ACPI 規範中有關 _REG
的細節)。有時, 在 _REG
中調用由於爲時已晚, 以致修補失敗或崩潰。此時, 就必須編輯 _OFF
, 刪除其中依賴 EC 的部分, 比如說把這部分挪到 _INI
裏。即將 _OFF
中刪除的代碼插入到 _REG
中, 因此儘管 EC 代碼執行推遲了一些, 但效果是一樣的。本指南中的 ACPI 設置示例就是這種情況。
Note #1: Not all
_OFF
implementations have EC related code. In that case, no need to move any such code to_REG
as it simply didn’t exist in the first place.
注1: 並非所有 _OFF
實現都具有與 EC 相關的代碼。此時, 無需將本就不存在的此類任何代碼移至 _REG
。
Note: #2: Not all ACPI sets have an
_INI
at the_OFF
path. In that case, you simply add an_INI
that calls off. Easiest to add it just before the_OFF
method:
注2: 並非所有的 ACPI 代碼在 _OFF
路徑上都有 _INI
。此時, 只需添加一個會調用關閉方法的 _INI
。最簡單的辦法是在 _INI
方法最前面添加 _OFF
:
Method(_INI) { _OFF() }
Basic patching 基本補丁
It is important to understand how to extract, disassemble and patch your DSDT/SSDT files, and how to install them for your bootloader, etc. This subject is covered in my guide: http://www.tonymacx86.com/yosemite-laptop-support/152573-guide-patching-laptop-dsdt-ssdts.html. You should be familiar with it before attempting this guide.
瞭解如何提取、反編譯和修補 DSDT/SSDT 文件以及如何爲引導加載程序安裝這些文件及其相關知識非常重要。我的指南中涵蓋了這方面內容。在嘗試本指南之前, 您應該先熟悉上述鏈接中的相關內容。
Because patching for the basics is important, we’ll do that first here before getting started on the patching required for disabling the Nvidia card in the example.
由於基礎修補很重要, 所以, 本例在演示如何通過修補禁用 Nvidia 顯卡之前, 我們首先搞好基礎修補。
This guide will assume that most common rename patches are done in
config.plist/ACPI/DSDT/Patches
. And it will assume thatAutoMerge=true
(relatively new Clover feature, added by RehabMan). These patches and settings are default in the guide plists: https://www.tonymacx86.com/threads/guide-booting-the-os-x-installer-on-laptops-with-clover.148093/
本指南將假定大多數常見的重命名補丁都是在 config.plist/ACPI/DSDT/Patches
中完成的。同時假設 AutoMerge=true
(RehabMan 添加的, 相對較新的 Clover 功能)。這些補丁和設置在本指南的 plists 中是默認的:
In the ACPI patching guide (linked above), the kind of ACPI configuration assumed by this guide is “Partial hotpatch with patched SSDTs”, as described in “Recommended configurations”.
在 ACPI 修補指南 (上述鏈接) 中, 其假定的 ACPI 配置項設置爲 “應用 SSDT 局部熱修復補丁”, 如 “推薦配置” 中所述。
First, the files are extracted (you can simply download the example files), then disassembled with iasl:
首先, 提取文件 (您只需下載示例文件), 然後用 iasl 反彙編:
iasl -da -dl *.aml
After disassembly we can proceed to patch the various files. Because we have common renames in config.plist, and are using
AutoMerge=true
, we only need to apply functional patches not covered by the defaults from config.plist. And there is no need to correct errors in a file when it requires no patching. The file is, instead, simply omitted from ACPI/patched.
反編譯後, 我們可以開始對各種文件進行修補。由於我們在 config. plist 中已經設置了 AutoMerge = true
和常見的重命名補丁, 所以我們只需對 config. plist 默認設置未涵蓋的部分進行修補。而且, 當文件無需修補時, 就不需要更正反編譯文件中的錯誤, 也無需放到 ACPI/patched 文件夾中。
For DSDT.dsl:
以下是適用於 DSDT.dsl 文件的常見補丁:
"Fix PARSEOP_ZERO Error (agressive)"
"Fix ADBG Error"
"Rename _DSM methods to XDSM"
"IRQ Fix"
"SMBUS Fix"
"OS Check Fix (Windows 8)"
"Add IMEI"
"RTC Fix"
"Fix _WAK Arg0 v2"
"ASUS N55SL/VivoBook"
"USB3 _PRW 0x6D (instant wake)"
"Audio Layout 12"
Since our config.plist has the common renames, none of the SSDTs need any patching, except those required to disable the discrete graphics device. At this point, we are ready to look at the SSDTs to determine the patches needed to disable the device.
由於我們的 config. plist 中已經設置了常見的重命名補丁, 因此除了禁用獨顯所需的補丁外, 其它 SSDT 無需作任何修補。此時, 我們已準備好查看 SSDT, 以確定禁用設備所需的修補程序。
Patching for discrete disable 屏蔽獨顯補丁
Remember the goal? Call
_OFF
from_INI
…
還記得目標嗎?在 _INI
裏調用 _OFF
Now… how to find the SSDT that has
_OFF
. We can use grep:
我們可以使用 grep
命令找出含有 _OFF
字符串的 SSDT 文件:
grep -l Method.*_OFF *.dsl
Which shows:
結果顯示:
SSDT-7.dsl
SSDT-8.dsl
Also, it is nice to know where the
_INI
methods are:
同樣,搜索含有 _INI
方法的文件:
grep -l Method.*_INI *.dsl
Which shows:
結果顯示:
DSDT.dsl
SSDT-6.dsl
SSDT-7.dsl
SSDT-8.dsl
Note: SSDT-7 and SSDT-8 are listed again. This is likely where the
_OFF
and associated_INI
are located…
注: SSDT-7 和 SSDT-8 出現了兩次。這很可能就是 _OFF
及其關聯的 _INI
所在的文件。
We could also open each file individually into MaciASL and search for
_OFF
and_INI
, but using grep is a bit easier and faster.
我們也可以用 MaciASL 分別打開每個文件, 並搜索 _OFF
和 _INI
, 但使用 grep
更容易也更快。
When we open SSDT-7.dsl and look for “Method (_INI”, we find this:
當我們打開 SSDT-7.dsl 並查找 “Method (_INI
” 時, 我們發現:
Method (_INI, 0, NotSerialized) // _INI: Initialize
{
Store (Zero, \_SB.PCI0.RP05.PEGP._ADR)
}
This is a typical
_INI
method for a discrete device, and one that we want to patch so it calls_OFF
.
這是獨立設備的一種典型的 _INI
方法, 我們希望對其進行修補, 使其調用 _OFF
。
If we click in the method body, we can see the ACPI “path” that this method lives in. MaciASL shows it on the status bar: SSDT -> \_SB.PCI0.RP05.PEGP -> _INI. Now we know that the path to
_OFF
should also be _SB.PCI0.RP05.PEGP._OFF.
如果我們在方法體中單擊, 我們可以看到此方法所在的 ACPI “路徑”。MaciASL 狀態欄上顯示: SSDT -> \_SB.PCI0.RP05.PEGP -> _INI。現在我們知道, 到 _OFF
的路徑也應該是 \_SB.PCI0.RP05.PEGP._OFF 。
So, we know that
_OFF
is either in SSDT-7.dsl or SSDT-8.dsl. If you open SSDT-7.dsl and look for_OFF
, you find it is a method inside a PowerResource macro. This is not the_OFF
method we want. Open SSDT-8.dsl and look for_OFF
there and you’ll find a regular_OFF
method, which is what we are looking for. So now we know where_OFF
is. We need to know, as it is necessary to review the code for potential EC access.
現在, 我們知道 _OFF
是在 SST-7.dsl 和 SST-8.dsl 裏面。如果打開 SSDT-7.dsl 並查找 _OFF
, 則會發現它是 PowerResource 宏中的一種方法。這不是我們想要的 _OFF
方法。打開 SSDT-8.dsl, 並搜索 _OFF
, 你會發現一個常規的 _OFF
方法, 這就是我們要找的。所以現在我們知道 _OFF
在哪裏了。我們還需檢查代碼, 以瞭解 _OFF
是否含有潛在 EC 訪問。
In SSDT-8.dsl,
_OFF
is defined as follows:
在 SSDT-8.dsl 中, _OFF
定義如下:
Method (_OFF, 0, Serialized) // _OFF: Power Off
{
If (LEqual (CTXT, Zero))
{
\_SB.PCI0.LPCB.EC0.SPIN (0x96, Zero)
If (LNotEqual (GPRF, One))
{
Store (VGAR, VGAB)
}
Store (One, CTXT)
}
SGOF ()
}
If you examine the code, you can see it accesses the EC ( \_SB.PCI0.LPCB.EC0.SPIN (0x96, Zero). This is going to be a problem and will prevent
_OFF
from executing fully when called from_INI
. Keep in mind it is not always this obvious. The code could have called a method not directly related to the EC, which in turn calls a method in the EC (indirect access). So you may need to do some digging. This example was obvious as the method path includes EC0.
如果您檢查代碼, 您可以看到它訪問了 EC (\_SB.PCI0.LPCB.EC0.SPIN (0x96, Zero)。這會導致以後 _INI
調用 _OFF
時無法完整執行的問題。切記, 這種情況有時並不明顯。代碼可以調用一個表面上與 EC 沒有直接聯繫的方法, 但該方法內部最終會調用 EC 中的方法 (間接訪問)。所以你可能需要做一些挖掘。此示例由於方法路徑包括了 EC0 才很明顯 。
The best way to deal with the EC access is to remove the offending code from
_OFF
.
處理 EC 訪問的最佳方法是從 _OFF
中刪除有問題的代碼。
We can do it manually, or use a patch like this:
我們可以手動執行此操作, 也可以使用如下修補程序:
into method label _OFF parent_label \_SB.PCI0.RP05.PEGP code_regex .*EC.* removeall_matched;
The modified
_OFF
method is this:
修改後的 _OFF
方法如下:
Method (_OFF, 0, Serialized) // _OFF: Power Off
{
If (LEqual (CTXT, Zero))
{
If (LNotEqual (GPRF, One))
{
Store (VGAR, VGAB)
}
Store (One, CTXT)
}
SGOF ()
}
After making this change, attempt to compile SSDT-8.dsl. You will notice it has errors. Really, we should have taken care of these errors before making changes. But we can fix them now by applying the “Cleanup/Fix Errors (SSDT)” patch. That removes some of the errors, but there is still one additional error at line 620:
進行此更改後, 嘗試編譯 SSDT-8.dsl。你會注意到它有錯誤。其實, 在修改之前, 我們應該先解決掉這些錯誤。但我們現在可以通過使用 “Cleanup/fibug (SSDT)” 補丁來修復它們。這能將排除一些錯誤, 但在620行仍然有一個錯誤:
Store (TCAP, \_PR.CPU0._PTC ())
This code is invalid, and in fact will be skipped by the ACPI runtime. \_PR.CPU0._PTC is a method, and of course it is not valid to store something “into” a method. We can simply comment this code:
這行代碼無效, 實際上 ACPI 運行過程中會跳過它。因爲 \_PR.CPU0._PTC 是一個方法, 顯然, 將某些內容 “存儲到” 方法中是無效的。我們可以簡單地註釋掉它:
// Store (TCAP, \_PR.CPU0._PTC ())
We should still have the line that we removed, \_SB.PCI0.LPCB.EC0.SPIN (0x96, Zero), executed in
_REG
, so keep that in mind.
切記, 前面我們刪掉的那行代碼 \_SB.PCI0.LPCB.EC0.SPIN (0x96, Zero), 需要在 _ REG
中執行。
Now that we have fixed
_OFF
, let’s call it from_INI
, defined in SSDT-7.dsl.
現在我們已經修復了 _ OFF
, 讓我們在 SSDT-7.dsl 中定義的 _ INI
裏面調用它。
We can apply patch “Disable from _INI (SSDT)”. But our method’s path is slightly different from what is common, so we need to modify the patch. Also, we are calling to
_OFF
which is defined in SSDT-8.dsl, so we need the External declaration.
我們可以使用 "Disable from _INI (SSDT)"補丁。但我們的方法的路徑與常見的方法略有不同, 所以我們需要修改補丁。此外, 我們調用的是 SSDT-8.dsl 裏的 _OFF
, 因此我們需要進行外部聲明。
The modified patch follows:
修改後的補丁如下所示:
into method label _INI parent_label \_SB.PCI0.RP05.PEGP insert
begin
//added to turn nvidia/radeon off\n
External(\_SB.PCI0.RP05.PEGP._OFF, MethodObj)\n
_OFF()\n
end;
After applying this patch, the patched
_INI
now reads:
使用上述補丁後, _INI
代碼如下所示:
Method (_INI, 0, NotSerialized) // _INI: Initialize
{
Store (Zero, \_SB.PCI0.RP05.PEGP._ADR)
//added to turn nvidia/radeon off
External(\_SB.PCI0.RP05.PEGP._OFF, MethodObj)
_OFF()
}
Now we need to turn our attention to DSDT
_REG
. The_REG
method needs to do the EC work that_OFF
used to do before we patched it.
現在, 我們把注意力轉向 DSDT _REG
。_REG
方法需要執行 _OFF
在修補之前所做的 EC 操作。
Here is the original
_REG
(for EC0) in DSDT:
下面是 DSDT 中的原始 _REG
(對於 EC0):
Method (_REG, 2, NotSerialized) // _REG: Region Availability
{
If (LEqual (Arg0, 0x03))
{
Store (Arg1, ECFL)
}
}
There is a patch in my repo to call
_OFF
from_REG
. We can use it as a base for what we need:
我的存儲庫有一個用於 _REG
調用 _OFF
的補丁, 可以把它作爲我們要的補丁的基礎:
into method label _REG parent_hid PNP0C09 insert
begin
//added to turn nvidia/radeon off\n
If (LAnd(LEqual(Arg0,3),LEqual(Arg1,1)))\n
{\n
External(\_SB.PCI0.PEG0.PEGP._OFF, MethodObj)\n
\_SB.PCI0.PEG0.PEGP._OFF()\n
}\n
end;
Instead of calling
_OFF
, we want it to call SPIN as the original_OFF
did.
我們不希望它調用 _OFF
, 而是像原來的 _OFF
一樣調用 SPIN。
The modified patch is:
修改後的補丁代碼如下:
into method label _REG parent_hid PNP0C09 insert
begin
//added to turn nvidia/radeon off\n
If (LAnd(LEqual(Arg0,3),LEqual(Arg1,1)))\n
{\n
\_SB.PCI0.LPCB.EC0.SPIN (0x96, Zero)\n
}\n
end;
The modified
_REG
after patching:
修改後的 _REG
代碼如下:
Method (_REG, 2, NotSerialized) // _REG: Region Availability
{
If (LEqual (Arg0, 0x03))
{
Store (Arg1, ECFL)
}
//added to turn nvidia/radeon off
If (LAnd(LEqual(Arg0,3),LEqual(Arg1,1)))
{
\_SB.PCI0.LPCB.EC0.SPIN (0x96, Zero)
}
}
And that concludes patching. At this point all the patched files can be compiled and placed in ACPI/patched.
這就完成了本篇所要實現的屏蔽獨顯補丁。此時, 可以編譯所有修補過的文件, 並將其放到 ACPI/patched 文件夾。
Only the patched files are placed in ACPI/patched:
ACPI/patched 裏面只需放置以下三個修補過的文件:
DSDT.aml (has core patches,
_REG
patch)(有核心補丁,_REG
補丁)
SSDT-7.aml (has_INI
patch)(有_INI
補丁)
SSDT-8.aml (has_OFF
patch)(有_OFF
補丁)
Note that this example is complex and not all laptops will have the same configuration. For most, the
_INI
and_OFF
associated with the discrete device are in the same SSDT. In that case it is not necessary to use the External declaration. You can use the “Call_OFF
from_INI
(SSDT)” patch directly. Some even have it in DSDT (again you can use the patch directly). And not all_OFF
methods access the EC, so the movement of the EC related code to_REG
is not needed.
請注意, 此示例很複雜, 並非所有筆記本電腦都具有相同的配置。大多數情況下, 與獨立設備關聯的 _INI
和 _OFF
位於同一個 SSDT 中。此時, 不需要使用外部聲明。您可以直接使用 “Call _OFF
from _INI
(SSDT)” 補丁。有時, 甚至 DSDT 中也有它 (同樣, 您可以直接使用補丁)。而且並非所有 _OFF
方法都訪問 EC, 此時不需要將 EC 相關代碼移到 _REG
。
It is also possible that the EC related code is more than one line. All such code should be moved to
_REG
.
也有可能 EC 相關代碼是多行的。所有這些代碼都應移動到 _REG
。
Sleep/Wake Problems 睡眠 / 喚醒問題
Some laptops have issues with sleep/wake or even shutdown/restart with this patch in place. This was the case with the HP ProBook (with Radeon). The fix is to re-enable the card before sleeping and disable it on wake.
在應用上述補丁後, 一些筆記本電腦睡眠 / 喚醒出現問題, 甚至關機 / 重啓也出現了問題。HP ProBook (內置 Radeon顯卡) 的情況就是如此。解決方法是在睡眠前重新啓用該卡, 並在喚醒時再將其禁用。
There is a patch in the repository to accomplish this. It is called “Disable/Enable on _WAK/_PTS (DSDT)”.
存儲庫中有一個稱爲 "Disable/Enable on _WAK/_PTS (DSDT)"補丁用於解決上述問題。
But since this DSDT has
_OFF
/_ON
at a different path than the patch expects, we need to modify it.
但是, 由於此 DSDT 裏面的 _OFF
/_ON
在與實際補丁所預期的路徑不同, 因此我們需要對其進行修改。
Original patch:
原始補丁:
into method label _PTS code_regex ([\s\S]*) replace_matched
begin
External(\\_SB.PCI0.PEG0.PEGP._ON, MethodObj)\n
If (CondRefOf(\\_SB.PCI0.PEG0.PEGP._ON)) { \\_SB.PCI0.PEG0.PEGP._ON() }\n
%1
end;
into method label _WAK code_regex (Return\s+\(.*) replace_matched
begin
External(\\_SB.PCI0.PEG0.PEGP._OFF, MethodObj)\n
If (CondRefOf(\\_SB.PCI0.PEG0.PEGP._OFF)) { \\_SB.PCI0.PEG0.PEGP._OFF() }\n
%1
end;
Modified patch (PEG0 changed to RP05):
將補丁的 PEG0 修改爲 RP05 :
into method label _PTS code_regex ([\s\S]*) replace_matched
begin
External(\\_SB.PCI0.RP05.PEGP._ON, MethodObj)\n
If (CondRefOf(\\_SB.PCI0.RP05.PEGP._ON)) { \\_SB.PCI0.RP05.PEGP._ON() }\n
%1
end;
into method label _WAK code_regex (Return\s+\(.*) replace_matched
begin
External(\\_SB.PCI0.RP05.PEGP._OFF, MethodObj)\n
If (CondRefOf(\\_SB.PCI0.RP05.PEGP._OFF)) { \\_SB.PCI0.RP05.PEGP._OFF() }\n
%1
end;
If your laptop doesn’t have problems with sleep/wake/restart/shutdown with the discrete device disabled, then you do not need this patch. You need to test your laptop first to determine if it is needed.
如果您的筆記本電腦在禁用獨顯時沒有上述睡眠 / 喚醒 / 關機 / 重啓問題, 則不需要此修補程序。您需要先測試您的筆記本電腦, 以確定是否需要它。
Note: If you patched
_OFF
to remove EC related code, and you’re calling_OFF
from_WAK
, you may need to also execute that removed code in_WAK
. One way to do that is to have an XOFF that is the original/un-patched_OFF
that you can call from_WAK
instead of calling the (patched)_OFF
.
注: 如果您修補 _OFF
以刪除與 EC 相關的代碼, 並且正在從 _WAK
調用 _OFF
, 則可能還需要在 _WAK
中執行刪除的代碼。有一個 XOFF 方法, 它實際上是原始/未修補的 _OFF
, 您可以從 _WAK
調用它, 而不是調用 (修補過的) _OFF
。
Older laptops 舊型號筆記本電腦
You will notice that older laptops may not have
_OFF
, or may have an empty_OFF
. In such cases, you may notice that_PS3
is required. In some cases,_PS3
will not work unless the invoke the associated_DSM
with appropriate params. Details are in post #96 of this thread: http://www.tonymacx86.com/yosemite-laptop-support/163772-guide-disabling-discrete-graphics-dual-gpu-laptops-10.html#post1056748
您會注意到, 較舊的筆記本電腦可能沒有 _OFF
, 或 _OFF
可能是空的。此時, 您可能需要關注 _PS3
。有時, 調用_PS3
也不起作用, 除非用特定的參數調用關聯的 _DSM
。詳情參見帖子的 #96 樓:
Problem Reporting 報告問題
If you have problems with your DSDT/SSDTs in patching or fixing errors, please provide all the native files that you’re working with.
如果您在修補或修復 DSDT/SSDT 錯誤方面遇到問題, 請提供您正在處理的所有本機文件
If you attempt to disable your discrete card according to this guide and it is not working, please provide “Problem Reporting” data as per FAQ.
如果您按照本指南嘗試禁用獨顯, 但無效, 請根據下面鏈接給出的 FAQ 指引, 提供數據 。
Read FAQ, “Problem Reporting”. Carefully. Attach all requested files/output.
在提問前, 請務必仔細閱讀 FAQ 裏面的常見問題解答, 並在"報告問題"帖子中添加所有提問所需文件或生成文件。FAQ 常見問題解答
Sample Attachment (Asus ux303ln 原始DSDT/SSDT)
The following files are used as the example ACPI set in this guide:
在下方鏈接下載本文演示的ACPI修補用到的例子文件: