[翻譯] 禁用雙GPU筆記本電腦的獨顯 Disabling discrete graphics in dual-GPU laptops

來源: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 中, 也可能具有不同的名稱 ( GPOFOPOF_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 that AutoMerge=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修補用到的例子文件:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章