zyangc 发表于 2023-3-15 11:54

SSDT-FixUSB手动定制USB成功

本帖最后由 zyangc 于 2023-3-15 16:52 编辑

到官网找到主板使用手册,能看到这张图


能看到USB2.0接口USB56、USB914、USB78,USB后面的数字914就是端口( port9和port14,这个14后面要转换成16进制的)
U32G1_12我的前置usb3.0接口就一个,3.0端口就是( port11),2.0端口就是( port1),
U32G1_34的端口( port13和port14),2.0端口就是( port3和port4)


感谢tsepangching提供代码帮助

DefinitionBlock ("", "SSDT", 1, "toleda", "amihdas1", 0x00003000)
{
    External (_SB_.PCI0.XHC_.RHUB, DeviceObj)    // (from opcode)

    Scope (_SB.PCI0.XHC.RHUB)
    {
      Method (_STA, 0, NotSerialized)// _STA: Status
      {
            If (_OSI ("Darwin")) 在Mac关闭原来的RHUB(有的叫HUBN等)
            {
                Return (Zero)
            }
            Else
            {
                Return (0x0F)
            }
      }
    }

    Device (_SB.PCI0.XHC.RHU0)在下面随便自定义一个喜欢的名称,比如我RHU0
    {
      Name (_ADR, Zero)// _ADR: Address
      Device (HS01) 这里HS01端口名称随便自定义,别和下面重复就行了,不要超过15个
      {
            Name (_ADR, One)// _ADR: Address 这里One是关键 是表示1号端口( port1)
            Method (_UPC, 0, Serialized)// _UPC: USB Port Capabilities
            {
                Name (UPCP, Package (0x04)
                {
                  0xFF,这里0xFF(255)表示启用
                  Zero,这里为定义接口类型,其实不管他也不影响使用
                  Zero,
                  Zero
                })
                Return (UPCP)
            }
      }

      Device (HS02)
      {
            Name (_ADR, 0x0A)// _ADR: Address 这里也是关键0xA 是10号端口( port10)
            Method (_UPC, 0, Serialized)// _UPC: USB Port Capabilities
            {
                Name (UPCP, Package (0x04)
                {
                  0xFF,
                  0xFF,这里0xFF(255)表示内建设备,如内置蓝牙、摄像头等、usb2.0为0(Zero),3.0为3,9和0xa 为C口等
                  Zero,
                  Zero
                })
                Return (UPCP)
            }
      }
   }
}









wangdongfreesky 发表于 2023-3-15 13:40

一定要打上_upc to Zupc的补丁,要不然你的系统里有两个同名的函数,会出问题的,而且那个name_adr没必要带着,RHUB不需要关,可以看一下我的帖子

wangdongfreesky 发表于 2023-3-15 13:47

upcp参数定义在外面,
按照USB类型,定义4种类型,upc3,upcc,upsw,upcf
分别对应USB3 0x03
typec 0x09
typecsw 0x0a
不同的端口返回不同的参数upc3或upcc
device不要使用,而是使用
scope (_sb.pci0.gp17.xhc)
{
    scope (hs01)
    { }
    scope (hs02)
   {}
这样的形式

wangdongfreesky 发表于 2023-3-15 13:51

scope(HS02)
      {
            Method (_UPC, 0, Serialized)// _UPC: USB Port Capabilities
            {
               
                     Return (UPC3)
            }
       }
scope(HS03)
      {
            Method (_UPC, 0, Serialized)// _UPC: USB Port Capabilities
            {
               
                     Return (UPC3)
            }
      }
}

zyangc 发表于 2023-3-15 14:30

wangdongfreesky 发表于 2023-3-15 13:40 https://bbs.pcbeta.com/static/image/common/back.gif
一定要打上_upc to Zupc的补丁,要不然你的系统里有两个同名的函数,会出问题的,而且那个name_adr没必要带 ...

我这不用打_upc to Zupc这个补丁
_sb.pci0.gp17.xhc,我机子没有GP17的,只有_SB_.PC00.XHCI.RHUB

wangdongfreesky 发表于 2023-3-15 15:25

zyangc 发表于 2023-3-15 14:30 https://bbs.pcbeta.com/static/image/common/back.gif
我这不用打_upc to Zupc这个补丁
_sb.pci0.gp17.xhc,我机子没有GP17的,只有_SB_.PC00.XHCI.RHUB

你最好还是打上!

hasimu 发表于 2023-3-15 15:31

这个方法也可以。
但定制usb最简单实用的办法是opencore先放开15个限制,正常启动Mac,然后已经没有USB端口限制的Mac系统下用hackintool生成USBPorts.kext,然后关闭opencore15个限制。
只要不换配置和机型一直稳定有效。特别完美!

wangdongfreesky 发表于 2023-3-15 15:35

hasimu 发表于 2023-3-15 15:31 https://bbs.pcbeta.com/static/image/common/back.gif
这个方法也可以。
但定制usb最简单实用的办法是opencore先放开15个限制,正常启动Mac,然后已经没有USB端口 ...

端口限制补丁已经失效了,必须在win下搜集端口信息再定制

hasimu 发表于 2023-3-15 15:38

wangdongfreesky 发表于 2023-3-15 15:35 https://bbs.pcbeta.com/static/image/common/back.gif
端口限制补丁已经失效了,必须在win下搜集端口信息再定制

其实这个补丁也不需要开启。

zyangc 发表于 2023-3-15 15:41

hasimu 发表于 2023-3-15 15:31 https://bbs.pcbeta.com/static/image/common/back.gif
这个方法也可以。
但定制usb最简单实用的办法是opencore先放开15个限制,正常启动Mac,然后已经没有USB端口 ...

13下USB端口限制都失效了

在折腾核显+独显,就是换机型麻烦,每次要改USBPorts.kext里的机型
H510换H610这样还是有几个USB可以用的

hasimu 发表于 2023-3-15 15:42

zyangc 发表于 2023-3-15 15:41 https://bbs.pcbeta.com/static/image/common/back.gif
13下USB端口限制都失效了

在折腾核显+独显,就是换机型麻烦,每次要改USBPorts.kext里的机型


嗯,我这个USBPorts.kext好像是bigsur的时候生成的,一直没换过。

zyangc 发表于 2023-3-15 16:05

hasimu 发表于 2023-3-15 15:42 https://bbs.pcbeta.com/static/image/common/back.gif
嗯,我这个USBPorts.kext好像是bigsur的时候生成的,一直没换过。

换机型就不行了从IMAC 换到macpro,USB全部失效

火车喵喵 发表于 2023-3-15 16:06

用这个SSDT的方法还需要用到SSDT-USBX嘛?

zyangc 发表于 2023-3-15 16:13

火车喵喵 发表于 2023-3-15 16:06 https://bbs.pcbeta.com/static/image/common/back.gif
用这个SSDT的方法还需要用到SSDT-USBX嘛?

不需要,就一个ssdt,kext都不用

pcxiongwei 发表于 2023-3-15 16:27

zyangc 发表于 2023-3-15 16:05 https://bbs.pcbeta.com/static/image/common/back.gif
换机型就不行了从IMAC 换到macpro,USB全部失效

你换机型失效因为kext里面的机型信息你要跟着改一下才行{:5_296:}

zyangc 发表于 2023-3-15 16:30

wangdongfreesky 发表于 2023-3-15 13:47 https://bbs.pcbeta.com/static/image/common/back.gif
upcp参数定义在外面,
按照USB类型,定义4种类型,upc3,upcc,upsw,upcf
分别对应USB3 0x03


_SB_.PC00.GP17.XHCI.RHUB.HS01
_SB_.PC00.RP01.XHCI.RHUB.HS01
_SB_.PC00.XHCI.RHUB.HS01

试了这三种路径,全部不行

pcxiongwei 发表于 2023-3-15 16:36

送你们一个usb信息查看工具中文的win里面直接查看本机所有usb端口和数据用起来超级方便

zyangc 发表于 2023-3-15 16:37

pcxiongwei 发表于 2023-3-15 16:36 https://bbs.pcbeta.com/static/image/common/back.gif
送你们一个usb信息查看工具中文的win里面直接查看本机所有usb端口和数据用起来超级方便

没有Windows

pcxiongwei 发表于 2023-3-15 16:56


换机型以后usb kext驱动失效直接吧驱动里面的信息文件改成你换的机型的型号就可以用了

wangdongfreesky 发表于 2023-3-15 16:59

zyangc 发表于 2023-3-15 16:30 https://bbs.pcbeta.com/static/image/common/back.gif
_SB_.PC00.GP17.XHCI.RHUB.HS01
_SB_.PC00.RP01.XHCI.RHUB.HS01
_SB_.PC00.XHCI.RHUB.HS01


这哪儿有试的?你看你的dsdt里,或者ssdt里,这路径是明明白白定义的,瞎蒙能行吗?
页: [1] 2 3 4 5 6
查看完整版本: SSDT-FixUSB手动定制USB成功