kaeserlin 发表于 2017-9-1 21:09

关于DSDT的USB內建有问

X79平台,在10.12.6睡眠唤醒没有什么问题,就是唤醒之后插的U盘会提示“意外推出”,并且无法自动连接,需要重新拔插一下,相当麻烦,估计是USB方面的问题,想起来我好像没折腾过USB內建的问题,就打开DSDT,准备修改。
奇葩的是我才发现我用的是别人的DSDT,而且我仔细对比了一下,这个DSDT和我使用aida64导出来的DSDT有99.99%相似,好像就只有开头

* Original Table Header:

下面的注释内容全都不一样,它的OEM ID是Apple,我的是Lenovo,并且打了不少我没打过的补丁(倒真是谢谢了,省了不少麻烦)

不过我换回来我没打补丁的DSDT好像也没有任何的变化。

说回正事,关于USB內建的问题。

这是我将自己提取的DSDT里面的EUSB和USBE 分别改成EH01/2后在EH01下添加的代码


                Method (_DSM, 4, NotSerialized)// _DSM: Device-Specific Method
                {
                  Local0 = Package (0x0F)
                        {
                            "device-id",
                            Buffer (0x04)
                            {
                                 0x2D, 0x1D, 0x00, 0x00                        
                            },

                            "built-in",
                            Buffer (One)
                            {
                                 0x00                                          
                            },

                            "device_type",
                            Buffer (0x05)
                            {
                              "EHCI"
                            },

                            "AAPL,clock-id",
                            Buffer (One)
                            {
                                 0x00                                          
                            },

                            "AAPL,current-available",
                            0x05DC,
                            "AAPL,current-extra",
                            0x03E8,
                            "AAPL,current-in-sleep",
                            0x0BB8,
                            Buffer (One)
                            {
                                 0x00                                          
                            }
                        }
                  DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                  Return (Local0)
                }

其中,0x2D, 0x1D, 0x00, 0x00为硬件ID(应该是吧。)

这是我在Win10下的设备管理器里面的截图。




EH02下的代码为

Method (_DSM, 4, NotSerialized)// _DSM: Device-Specific Method
                {
                  Local0 = Package (0x0F)
                        {
                            "device-id",
                            Buffer (0x04)
                            {
                                 0x26, 0x1D, 0x00, 0x00                        
                            },

                            "built-in",
                            Buffer (One)
                            {
                                 0x00                                          
                            },

                            "device_type",
                            Buffer (0x05)
                            {
                              "EHCI"
                            },

                            "AAPL,clock-id",
                            Buffer (One)
                            {
                                 0x00                                          
                            },

                            "AAPL,current-available",
                            0x05DC,
                            "AAPL,current-extra",
                            0x03E8,
                            "AAPL,current-in-sleep",
                            0x0BB8,
                            Buffer (One)
                            {
                                 0x00                                          
                            }
                        }
                  DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                  Return (Local0)
                }


对应Win10下的截图为




保存后添加缺少的Method无错误保存,开机后只有集线器,并且没有显示位置:內建USB这样的字眼,我看别人的好像有相关字眼。





但是我点开插在USB口上的U盘,显示 內建:是




扯了那么多,所以到底是內建成功了还是没成功呢,主要是休眠唤醒“意外推出”的问题依旧没有解决。

所以如果没有内建成功,拜托大神帮忙修改一下DSDT,谢谢。









kaeserlin 发表于 2017-9-1 21:42

最后一张图多了,纠正一下,应该是“磁盘没有正常推出,请先推出XXX......”

kaeserlin 发表于 2017-9-1 23:00

{:5_265:}大神呢

454503002 发表于 2017-9-2 02:35

我的和你一样,内建不了 也是看不到3.0的端口但是可以识别3.0的U盘。但是没有识别导致有时可以关机有时不可以

kaeserlin 发表于 2017-9-2 12:24

自顶一下,麻烦大神们看看啊。

hjfhfhjw 发表于 2017-9-6 20:56

用Clover打个补丁试试,我也是X79主板USB2.0正常,3.0插两次才识别

hjfhfhjw 发表于 2017-9-6 21:02

加这个USBInjectAll.kext

kaeserlin 发表于 2017-9-6 21:16

hjfhfhjw 发表于 2017-9-6 20:56 https://www.pcbeta.com/static/image/common/back.gif
用Clover打个补丁试试,我也是X79主板USB2.0正常,3.0插两次才识别

额,我的USB 3.0拔插是正常的,不过不能用于唤醒电脑,这只是在DSDT里面将EUSB和USBE分别改成EH01/2啊,我已经改过了,使用是正常的,但是我的唤醒会推出U盘。

kaeserlin 发表于 2017-9-7 16:32

没有人回答一下我的问题吗……

Missing_Kings 发表于 2017-9-14 01:01

大在在的粉丝么。。

kaeserlin 发表于 2017-9-14 01:02

Missing_Kings 发表于 2017-9-14 01:01 https://www.pcbeta.com/static/image/common/back.gif
大在在的粉丝么。。

{:5_262:}是的是的

Missing_Kings 发表于 2017-9-14 01:03

应该是要修改 ch01,ch02,xhc 中的_DSM(内建函数)中的参数。我笔记本芯片组是MH87,不知道你的是不是和我一样。是的话,应该是可以和我的通用的。

feelel 发表于 2018-2-11 09:11


看下,有没有用..........................ty

erhuabushuo 发表于 2020-6-12 12:32

原则是什么?USB好像不难用,难的是其他设备占用usb

mendax1234 发表于 2020-6-14 15:43

页: [1]
查看完整版本: 关于DSDT的USB內建有问