DSDT定制修正USB端口,使用UPC函数法

首先进入到windows或者PE系统,打开AiDA64,或 其他可查看USB端口的工具
用USB2.0设备 、USB3.0设备,如果有typec接口,请购买一个Typec的转接头支持USB3.0的
然后分别插入USB接口,并按如下格式记下位置:

前面板上:USB2.0 所在端口在3.1控制器下 编号 Pot1 有的机器是HS01 HS02
前面板下:USB2.0 所在端口在3.1控制器下 编号 Pot2
前面板左:USB2.0 所在端口在3.1控制器下 编号 Pot3
前面板右:USB2.0 所在端口在3.1控制器下 编号 Pot4

后面板上:USB3.0 所在端口 3.0控制器 编号Pot1 有的机器是SS01 及SS02等
后面板下:USB3.0 所在端口 3.0控制器 编号Pot5
后面板左:USB3.0 所在端口 3.0控制器 编号Pot9
后面板右:USB3.0 所在端口 3.0控制器 编号Po10

后面板上:typeCSW  所在端口 3.0控制器 编号Po10
后面板下:TypeCC  所在端口 3.1控制器 编号Po11

蓝牙内建端口  :所在端口在3.1控制器下 编号Pot8
以上是例子,你需要按上面的格式记下你自己实际的
注:TypeCSW和TypeCC的区别,如果你的TypeC端口反向插的时候不会出现在另一个端口那么就是TypeCSW,否则就是TypeCC
记下端口号后,数一下数量是否超过15个,如果超过15个,那么你就要有所取舍,把常用的保留,把不常用的抛弃
还要注意,要保留你蓝牙所在的USB,这个千万别忘了,否则蓝牙就没了

然后打开模版,这个模板分为三部分
第一部分是引用
External (_SB_.PCI0.GP17.XHC_.RHUB.PO10, DeviceObj)  这里的路径要改成你电脑中的路径GP17可能是RP01等,XHC可能是XHCI,PCI0可能是PC00等,PO10也可能是HS01或SS01
第二部分是类型定义

Name (UPC3, Package (0x04)
    {
        0xFF, 0xff 表示开启,有的主板之所以有的usb端口不显示就是因为这个参数为Zero,表示没有启用
        0x03, 0x03 表示类型为USB3,0x09 和 0x0A分别表示typec的两种类型,Zero表示系统默认的usb2
        Zero,
        Zero
    })

如果你没有typec接口那么可以删掉UPCW和UPCC
第三个部分是指定类型

Scope (\_SB.PCI0.GP17.XHC.RHUB.POT1)
    {
        Method (_UPC, 0, Serialized)  // _UPC: USB Port Capabilities
        {
            Return (UPC3) /* \UPC3 */   
        }
    }

接下来通过你之前的测试,首先删掉你不用的第一部分引用,和第二部分类型,以及第三部分指定
然后是修正指定的端口类型,
如果是USB2或USB3,那么Return(UPC3),
如果是蓝牙,那么Return (UPCF)
如果是TypeCC,那么Return (UPCC)
如果是TypeCW,那么Return  (UPSW)

最后一步,将编辑好的SSDT-FixUSB放入到OC的ACPI目录,修改OC配置文件加载SSDT-FixUSB,同时将补丁添加进ACPI补丁中勾选并生效

来源:远景

消息盒子

# 暂无消息 #

只显示最新10条未读和已读信息