zyangc
发表于 2023-4-13 08:58
applestar666 发表于 2023-4-13 06:56 https://bbs.pcbeta.com/static/image/common/back.gif
不需要 usbx 电源管理吗
你说的usbx电源管理,是不是这个额外供电啊,把下面的代码添加到SSDT里就好了
Scope (\_SB.PC00.LPCB)
{
Device (USBX)
{
Name (_ADR, Zero)// _ADR: Address
Method (_DSM, 4, NotSerialized)// _DSM: Device-Specific Method
{
If ((Arg2 == Zero))
{
Return (Buffer (One)
{
0x03 // .
})
}
Return (Package (0x08)
{
"kUSBSleepPowerSupply",
0x13EC,
"kUSBSleepPortCurrentLimit",
0x0834,
"kUSBWakePowerSupply",
0x13EC,
"kUSBWakePortCurrentLimit",
0x0834
})
}
}
}
}
}
jiangzhourui
发表于 2023-4-13 09:47
有些官方主板说明书这个数字不对应端口,一般只有华硕的主板是对应的
applestar666
发表于 2023-4-13 10:04
zyangc 发表于 2023-4-13 08:58 https://bbs.pcbeta.com/static/image/common/back.gif
你说的usbx电源管理,是不是这个额外供电啊,把下面的代码添加到SSDT里就好了
对,是这个
zyangc
发表于 2023-4-13 11:08
jiangzhourui 发表于 2023-4-13 09:47 https://bbs.pcbeta.com/static/image/common/back.gif
有些官方主板说明书这个数字不对应端口,一般只有华硕的主板是对应的
是的,另外就是在windows下查看,记录好
londbell
发表于 2023-4-13 14:22
这种做法和USBToolBox相比的优缺点是什么?
wangdongfreesky
发表于 2023-4-13 19:53
londbell 发表于 2023-4-13 14:22 https://bbs.pcbeta.com/static/image/common/back.gif
这种做法和USBToolBox相比的优缺点是什么?
原生驱动,不限机型!修改机型或者大版本升级后,不需要重新制作usbmap或usbport,并且能够修复隐藏端口的问题
danceking
发表于 2023-4-13 20:08
像我这种三个USB控制器的,已经折腾多次,无法SSDT搞定。只好USBPort.kext驱动一下。
lwx1901
发表于 2023-4-14 09:29
本帖最后由 lwx1901 于 2023-4-14 21:06 编辑
(一)楼主的思路正解;另外,USBX为加强通用串行总线控制器电源管理的设备定义,与帖子主题没有直接关系,需要说明的是,不同白果机型的USBX属性是不一样的;
(二)对于10代及以上RHUB集线器在ACPI中定义不规范问题,先屏蔽原机RHUB集线器【不屏蔽会造成开机卡内核无法正常启动系统】并兼顾重新启用定义新集线器RHU0,再按楼主思路重新定义一个RHU0集线器【重新定义RHU0集线器,是为了避免与RHUB发生冲突】;9代及以下RHUB定义符合ACPI规范的机型可参考OC-Little的方法进行USB端口定制;
(三)新定义的RHU0集线器下只需要定义存在且有效的端口,不存在且无效的端口一率不需要再定义,并注意存在且有效的端口总数不要超出15个的限制;
(四)RHU0下每个存在且有效的端口的地址定义_ADR照搬原RHUB下的地址_ADR【如:Name (_ADR, One)】,注意一 一对应且不要重复;
(五)原RHUB下的所有_UPC更名ZUPC完全不需要,原因很简单,_UPC为ACPI语言保留函数,它的作用范围仅在RHUB范围内,同理,RHU0下重新引入_UPC函数也仅作用在RHU0范围内,相互不会产生冲突;
(六)建议加入操作系统判定条件,使改动仅对macOS生效,不对其它操作系统产生影响【如:If (_OSI ("Darwin")){....}】;
(七)已在十代冰湖笔记本上亲自实测确实有效,现已经删掉USBPorts.kext,改用定制编译的SSDT,此方法理论上适用于所有机型;
(八)同理,雷电TypeC口也采用同样原理及方法一并通过ACPI定制端口。
(九)不对之处果友们给予指正。
applestar666
发表于 2023-4-14 09:41
lwx1901 发表于 2023-4-14 09:29 https://bbs.pcbeta.com/static/image/common/back.gif
1、楼主的思路正解;
2、对于10代及以上RHUB集线器在ACPI中定义不规范问题,先屏蔽原机RHUB集线器再按楼主 ...
总结很棒啊,你觉得这种方式和别的 kext 定制的区别在哪呢,或者说好处在哪
lwx1901
发表于 2023-4-14 09:50
本帖最后由 lwx1901 于 2023-4-14 09:52 编辑
applestar666 发表于 2023-4-14 09:41 https://bbs.pcbeta.com/static/image/common/back.gif
总结很棒啊,你觉得这种方式和别的 kext 定制的区别在哪呢,或者说好处在哪
ACPI方式加载解析优先级更高,不受机型改动影响,重新配置EFI引导不需要再定制USB,可以将定制好的SSDT代码以合适的方式刷入整合进BIOS。
applestar666
发表于 2023-4-14 10:00
lwx1901 发表于 2023-4-14 09:50 https://bbs.pcbeta.com/static/image/common/back.gif
ACPI方式加载解析优先级更高,不受机型改动影响,重新配置EFI引导不需要再定制USB,可以将定制好的SSDT代 ...
「可以将定制好的SSDT代码以合适的方式刷入整合进BIOS。」这句话怎么理解呢,怎么整合进 bios
applestar666
发表于 2023-4-14 10:03
lwx1901 发表于 2023-4-14 09:50 https://bbs.pcbeta.com/static/image/common/back.gif
ACPI方式加载解析优先级更高,不受机型改动影响,重新配置EFI引导不需要再定制USB,可以将定制好的SSDT代 ...
为啥找不到你的回复了,是不是整个代码包在 If (_OSI ("Darwin")) 的判断里就行了
lwx1901
发表于 2023-4-14 10:06
本帖最后由 lwx1901 于 2023-4-14 10:08 编辑
applestar666 发表于 2023-4-14 10:00 https://bbs.pcbeta.com/static/image/common/back.gif
「可以将定制好的SSDT代码以合适的方式刷入整合进BIOS。」这句话怎么理解呢,怎么整合进 bios
ACPI的所有表:DSDT SSDT ECDT DMAR 等都是编译好后以aml文件格式集成在BIOS中的,同理,我们定制好的SSDT也可以整合到BIOS中,不需要通过OC来加载解析,上电开机后直接从BIOS调用,优先级最高。我的笔记本的所有定制的必须的SSDT都是已经整合并刷入BIOS中了的。方法不难。
lwx1901
发表于 2023-4-14 10:09
applestar666 发表于 2023-4-14 10:03 https://bbs.pcbeta.com/static/image/common/back.gif
为啥找不到你的回复了,是不是整个代码包在 If (_OSI ("Darwin")) 的判断里就行了
刚才重新编辑补充完善了一下回复帖子,正在审核中嘞
applestar666
发表于 2023-4-14 10:11
lwx1901 发表于 2023-4-14 10:06 https://bbs.pcbeta.com/static/image/common/back.gif
ACPI的所有表:DSDT SSDT ECDT DMAR 等都是编译好后以aml文件格式集成在BIOS中的,同理,我们定制好的S ...
明白了,谢谢,顺便有个困扰我很久的问题,https://bbs.pcbeta.com/viewthread-1963816-1-1.html 大佬能帮忙出谋划策下吗
lwx1901
发表于 2023-4-14 10:16
applestar666 发表于 2023-4-14 10:11 https://bbs.pcbeta.com/static/image/common/back.gif
明白了,谢谢,顺便有个困扰我很久的问题,https://bbs.pcbeta.com/viewthread-1963816-1-1.html 大佬能帮 ...
晚上我传我昨晚定制编译好的SSDT上来,你可以参考一下,现在电脑不在身边,光靠文字表述你不一定能完全明白。
applestar666
发表于 2023-4-14 10:19
lwx1901 发表于 2023-4-14 10:16 https://bbs.pcbeta.com/static/image/common/back.gif
晚上我传我昨晚定制编译好的SSDT上来,你可以参考一下,现在电脑不在身边,光靠文字表述你不一定能完全明 ...
好的好的,但是你使用的 ssdt 跟我的也不通用呀,你觉得问题可能出在哪。
lwx1901
发表于 2023-4-14 10:26
本帖最后由 lwx1901 于 2023-4-14 10:28 编辑
applestar666 发表于 2023-4-14 10:19 https://bbs.pcbeta.com/static/image/common/back.gif
好的好的,但是你使用的 ssdt 跟我的也不通用呀,你觉得问题可能出在哪。
没有正确定制好,我也是一开始出现误区,出现丢失端口的情况,表现为用Hackintool查看有些端口未显示出来,有些端口是显示出来了,但是插上USB物理设备后没有反应,最后排查原因是_ADR端口地址引入不对或重复定义发生冲突所致。现在已经完全调试适配且工作非常OK了。有需要的话到时可以手把手教你。
applestar666
发表于 2023-4-14 10:43
lwx1901 发表于 2023-4-14 10:26 https://bbs.pcbeta.com/static/image/common/back.gif
没有正确定制好,我也是一开始出现误区,出现丢失端口的情况,表现为用Hackintool查看有些端口未显示出来 ...
不是,是我这个帖子的问题,https://bbs.pcbeta.com/viewthread-1963816-1-1.html ,我这个是用 USBPorts.kext 定制出现 USB 偶尔失灵的问题。和楼主的帖子是两个问题,但是觉得大佬的回帖很有条理,很专业,所以想来请教下。
关于楼主的重写 _ugc 方法,我也试过了,成功了,Hackintool 可以正常识别,结果和 USBPorts.kext 定制的一致。
不过我目前还是回退到了 USBPorts.kext定制的方法,因为我发现有个键盘、鼠标的 usb hub 我之前类型给错了,我给成了 USB3.0,应该是 USB 2.0,所以我想试试改了之后这个问题还会不会复现。
lwx1901
发表于 2023-4-14 13:03
applestar666 发表于 2023-4-14 10:43 https://bbs.pcbeta.com/static/image/common/back.gif
不是,是我这个帖子的问题,https://bbs.pcbeta.com/viewthread-1963816-1-1.html ,我这个是用 USBPorts ...
应该不会,有错必纠嘛