xxxzc / xps15-9570-macos

macOS Monterey/Ventura on XPS15-9570 with OpenCore
193 stars 27 forks source link

使用Type-C口外接显示器或者扩展坞,使用一段时间后随机时间内出现所以USB设备均不可用的现象,需要Fn+insert休眠后唤醒恢复 #58

Open xxiaocheng opened 3 years ago

xxxzc commented 3 years ago

我测试是如果用扩展坞接usb2.0设备会出现这个问题,应该是苹果的问题,一些新 mbp 上也有这个问题: https://www.macrumors.com/2020/06/17/macbook-pro-usb-2-0-accessory-issues/ https://www.reddit.com/r/mac/comments/gp5b1z/usb_20_issues_on_new_macbook_pro_13_2020/

xxiaocheng commented 3 years ago

我测试是如果用扩展坞接usb2.0设备会出现这个问题,应该是苹果的问题,一些新 mbp 上也有这个问题: https://www.macrumors.com/2020/06/17/macbook-pro-usb-2-0-accessory-issues/ https://www.reddit.com/r/mac/comments/gp5b1z/usb_20_issues_on_new_macbook_pro_13_2020/ 好吧,我连接键盘了用的时候,我再测试下不连接2.0设备是否有问题

OldDream commented 3 years ago

我用绿联的type C hub 拖鼠标和键盘。 先把鼠标键盘插上hub,再把hub接入电脑,小概率出现鼠标有电但挪不动的情况,重插鼠标解决。键盘倒是一直正常。

xxiaocheng commented 3 years ago

我用绿联的type C hub 拖鼠标和键盘。 先把鼠标键盘插上hub,再把hub接入电脑,小概率出现鼠标有电但挪不动的情况,重插鼠标解决。键盘倒是一直正常。

我使用拓展链接鼠标也有过这种情况,鼠标冻住几秒钟但是一会就恢复了

xxxzc commented 3 years ago

@xxiaocheng 麻烦帮忙测试一下,device properties 加上:

                         <key>PciRoot(0x0)/Pci(0x14,0x0)</key>
            <dict>
                <key>device-id</key>
                <data>
                L6EAAA==
                </data>
            </dict>

并且把 USBPorts.kext 换成这个 USBPorts.kext.zip 试试

OldDream commented 3 years ago

@xxiaocheng 麻烦帮忙测试一下,device properties 加上:

                         <key>PciRoot(0x0)/Pci(0x14,0x0)</key>
          <dict>
              <key>device-id</key>
              <data>
              L6EAAA==
              </data>
          </dict>

并且把 USBPorts.kext 换成这个 USBPorts.kext.zip 试试

我试了一下,typeC hub 上的USB接口,可以识别3.0的设备了。

xxxzc commented 3 years ago

@xxiaocheng 麻烦帮忙测试一下,device properties 加上:

                         <key>PciRoot(0x0)/Pci(0x14,0x0)</key>
            <dict>
                <key>device-id</key>
                <data>
                L6EAAA==
                </data>
            </dict>

并且把 USBPorts.kext 换成这个 USBPorts.kext.zip 试试

我试了一下,typeC hub 上的USB接口,可以识别3.0的设备了。

唉 这个方法还是不行,昨天一天hub只连鼠标没掉过,回去再接上键盘又掉了

OldDream commented 3 years ago

我这边倒是很少掉,一星期遇到一两次这样。。hub上接键盘+鼠标,一般就掉一个,没遇到全掉的。。

OldDream commented 3 years ago

说到typeC,我建议尝试使用1.11.2这个版本的bios,我用1.17.1的bios,typeC输出到显示器,一直不太正常。

OldDream commented 3 years ago

这事还跟USB设备有关,我之前极少遇到这个问题,换了个鼠标后频繁出现,用了你上面给的配置之后,暂时没出现过。

OldDream commented 3 years ago

我拿了一个5v2a的充电头,连接到拓展坞的typeC口上,就没这个问题了。。。。

xxxzc commented 3 years ago

@OldDream 我特意买了带电源口的扩展坞,还是不行= =

OldDream commented 3 years ago

@OldDream 我特意买了带电源口的扩展坞,还是不行= =

换个充电器试试,5V2A的头不行,用支持QC甚至PD的头就可以,我这个拓展坞插上外接电源后(QC2.0充电头 18W功率),拓展坞本身的供电走的外部电源(拔掉外部电源拓展坞会重启,表现为外接屏幕会丢信号),绿联的typeC。现在极少出现USB不可用的情况(偶尔会)。

OldDream commented 3 years ago

我用了这个ssdt,到今天还没断过,2天了。。。 https://github.com/LuletterSoul/Dell-XPS15-9570-macOS/blob/master/EFI/CLOVER/ACPI/patched/SSDT-TYPC-9570.aml

OldDream commented 3 years ago

USBPorts.kext 删除四条属性: kUSBSleepPortCurrentLimit kUSBSleepPowerSupply kUSBWakePortCurrentLimit kUSBWakePowerSupply 似乎可以解决这个问题,重建缓存之后到现在24h+,没出现断开的情况。

xxxzc commented 3 years ago

USBPorts.kext 删除四条属性: kUSBSleepPortCurrentLimit kUSBSleepPowerSupply kUSBWakePortCurrentLimit kUSBWakePowerSupply 似乎可以解决这个问题,重建缓存之后到现在24h+,没出现断开的情况。

这个试过了,没用= =

OldDream commented 3 years ago

USBPorts.kext 删除四条属性: kUSBSleepPortCurrentLimit kUSBSleepPowerSupply kUSBWakePortCurrentLimit kUSBWakePowerSupply 似乎可以解决这个问题,重建缓存之后到现在24h+,没出现断开的情况。

这个试过了,没用= =

很玄学。。。我删除之后遇到了一次,然后到现在。。还没遇到第二次。

别试,挂了。。。。

OldDream commented 3 years ago

我又来挣扎了,昨天下午改的,到现在还没出现bug,似乎有效。

上 GRUBShell,直接改bios 设置。

BIOS 1.19.0

设置值: setup_var_3 地址 值 读取值:setup_var_3 地址

地址------val------功能 0x659 0x0 超频锁 0x5BD 0x0 cfgLock 0x13F5 0x0 关串口 0x2 0x1 开启ehci hand-off 0x1b 0x1 开启xhci hand-off OC 配置 不选择 ReleaseUsbOwnership

bios界面 关闭sgx; 虚拟化那边,关掉 IO 相关的那个 + OC 配置 不选择 ---disableIOMapper <<<<<<<<<< 感觉就是这个起了作用

目前开着CSM,否则接外屏启动的时候,内屏黑屏+花屏

改黑了,重置bios自救:关机拔电源按住ctrl + esc ,插电源,不松开,等自动开机,按住不放直到自动重启,松开就ok了。

OldDream commented 3 years ago

我又来挣扎了,昨天下午改的,到现在还没出现bug,似乎有效。

上 GRUBShell,直接改bios 设置。

BIOS 1.19.0

设置值: setup_var_3 地址 值 读取值:setup_var_3 地址

地址------val------功能 0x659 0x0 超频锁 0x5BD 0x0 cfgLock 0x13F5 0x0 关串口 0x2 0x1 开启ehci hand-off 0x1b 0x1 开启xhci hand-off OC 配置 不选择 ReleaseUsbOwnership

bios界面 关闭sgx; 虚拟化那边,关掉 IO 相关的那个 + OC 配置 不选择 ---disableIOMapper <<<<<<<<<< 感觉就是这个起了作用

目前开着CSM,否则接外屏启动的时候,内屏黑屏+花屏

改黑了,重置bios自救:关机拔电源按住ctrl + esc ,插电源,不松开,等自动开机,按住不放直到自动重启,松开就ok了。

WTF,别试了,还是有。刚才遇到了。不过频率挺低的。

M69W commented 2 years ago

提供一点点信息: 最近魔改一个键盘:Thinkpad X1 Tablet gen3改USB 使用 联想 C615 外接

会出现 所有USB 均不可用现象, 但不止macOS,Windows 也会。

如果Windows 下这个键盘直接插入 USB 就一整天正常使用, 这个键盘只要经过 USB拓展 再接入电脑,使用一段时间后随机出现以上现象(必现)。

这个键盘和普通键盘不同:有小红点,触摸板,实体三键。

image image image image image image
M69W commented 2 years ago

type-c 接 便携式显示屏 Thinkpad 键盘 接 右边USB G304 接收器 接 左边USB

在 10.15.7 (19H1713) 使用将近 ~4~ 8个小时,尚未 出现 USB设备不可用现象。 初步认为是 Thinkpad X1 Tablet gen3 (某些设备有多个USB 设备)的导致的, 但 之前用 SK8855(键盘、小红点) 和 其他键盘并没出现不可用现象。

OldDream commented 2 years ago

type-c 接 便携式显示屏 Thinkpad 键盘 接 右边USB G304 接收器 接 左边USB

在 10.15.7 (19H1713) 使用将近 ~4~ 8个小时,尚未 出现 USB设备不可用现象。 初步认为是 Thinkpad X1 Tablet gen3 (某些设备有多个USB 设备)的导致的, 但 之前用 SK8855(键盘、小红点) 和 其他键盘并没出现不可用现象。

总结一下,就是有USBhub或类似于USBhub的设备存在(且通过它接入多个设备),就有极大概率遇到USB全部失灵的问题。

M69W commented 2 years ago

不知道怎么才能找出问题原因,棘手

M69W commented 2 years ago

使用一段时间,尚未重现以上现象。

PS:如果这个设备一定要经过 USB 拓展接入 笔记本 ,那就很头疼了。

OldDream commented 2 years ago

使用一段时间,尚未重现以上现象。

PS:如果这个设备一定要经过 USB 拓展接入 笔记本 ,那就很头疼了。

估计和设备有关。。。需要抓特定的log吗?我应该可以帮忙。。。我这边基本每天都会遇到,尤其是睡眠唤醒后再使用一段时间。

xxxzc commented 2 years ago

@OldDream 我看过很久log了,就是突然会提示获取USB描述符失败,看上去像是电流的问题,但是我调整配置没有用

M69W commented 2 years ago

猜测也可能是 电流不足? image

M69W commented 2 years ago

改USB 供电是否有效 https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/Source/SSDT-EC-USBX.dsl

tofuliang commented 2 years ago

我用的洋垃圾TB16+240W电源,从来没掉过

OldDream commented 2 years ago

从windows下dump出了DSDT文件,从里面CV了一段东西出来,似乎有点用?我下午用了一段时间,似乎没遇到失灵的情况。

If (PCIC (Arg0))
                {
                    Return (PCID (Arg0, Arg1, Arg2, Arg3))
                }
                Return (Buffer (One)
                {
                     0x00                                           
                })

https://github.com/OldDream/bug-demos/blob/main/DSDT/SSDT-USBX.aml https://github.com/OldDream/bug-demos/blob/main/DSDT/dsdt.aml

但也不好说。。之前翻车好几次了。。

xxxzc commented 2 years ago

@OldDream 把 usbx 的 dsm 改成这个吗?

OldDream commented 2 years ago

@OldDream 把 usbx 的 dsm 改成这个吗?

是,改完的效果参考SSDT-USBX.aml。。。具体函数都是从https://github.com/OldDream/bug-demos/blob/main/DSDT/dsdt.aml 搬过来的。似乎还行。。。我这回儿用type-c的hub接着,挺正常的。。

M69W commented 2 years ago

不太懂ACPI 改动的 原理是 什么?

OldDream commented 2 years ago

😂不知道,就是CV搬运。

M69W commented 2 years ago

期待进一步反馈,不然拓展坞没啥用

OldDream commented 2 years ago

期待进一步反馈,不然拓展坞没啥用

gg,老样子

zhiyu-zeng commented 2 years ago

老哥们,有解决办法了吗,每次只要用上拓展坞隔几分钟就断了

M69W commented 2 years ago

老哥们,有解决办法了吗,每次只要用上拓展坞隔几分钟就断了

你的 拓展坞连接的设备里,是不是有多 USB的设备? 如果是,试试单独USB直连电脑看看 有可能是供电不足?

zhiyu-zeng commented 2 years ago

老哥们,有解决办法了吗,每次只要用上拓展坞隔几分钟就断了

你的 拓展坞连接的设备里,是不是有多 USB的设备? 如果是,试试单独USB直连电脑看看 有可能是供电不足?

ok,我试试

huangxu1991 commented 10 months ago

我拿了一个5v2a的充电头,连接到拓展坞的typeC口上,就没这个问题了。。。。

意思是用类似华为充电器给扩展坞供电么?

huangxu1991 commented 10 months ago

环境: Apple M1 Pro macOS 13.2.1 Baseus 扩展坞 问题: 只接了两个 usb 设备:键盘 + 鼠标,键盘非常稳定,从没断过,但是鼠标经常断(底部红色 led 不亮,等几秒后又亮就恢复了),一天七八次都有