- 积分
- 364
- 最后登录
- 2024-1-25
- 精华
- 0
- 阅读权限
- 30
- 主题
- 175
- UID
- 894316
- 帖子
- 625
- PB币
- 1452
- 威望
- 19
- 贡献
- 0
- 技术
- 28
- 活跃
- 434
- UID
- 894316
- 帖子
- 625
- PB币
- 1452
- 贡献
- 0
- 技术
- 28
- 活跃
- 434
|
我的主板h170tn,简约风,仅用到了主板后面的4个usb3.0。我来说下我用纯dsdt方式驱动usb的过程:
1. 获取usb端口信息
准备usb2.0和usb3.0 u盘各一个,因为一个usb接口是对应2.0端口和3.0端口各一个的。在windows下一个一个端口都插一遍,先用usb2.0的盘插,再用usb3.0的盘插。
上一张截图
可以看到端口3,4,11都插着我的东西,端口11是我的BCM94352,此卡的蓝牙是需要占用一个内置的usb2.0端口的。
按照我上面说的 方法,依次插一遍,得到自己主板的端口对应方式:
顺利得到我自己主板的usb端口及对应方式:4个usb插口(暂且定义为:左上,左下,右上,右下)
左上USB对应的2.0端口号是4,3.0端口号是20
左下USB对应的2.0端口号是3,3.0端口号是19
右上USB对应的2.0端口号是2,3.0端口号是18
右下USB对应的2.0端口号是1,3.0端口号是17
2. 观察dsdt
先看下我的dsdt对于usb的定义部分
HS是指的usb2.0端口,SS指的是usb3.0端口,加起来一共是24个端口,正好和我第一张图在windows下显示的端口数量一致。
那么24个端口只有几个有用的,也就是1,2,3,4,11,17,18,19,20这么几个端口。因为我的机箱即便插满usb,用到的端口也就这么9个,甚至都达不到苹果的15个端口限制,所以根本不用去什么解破限制之类的工作,只需要保留有用的端口(共9个),剩下的留空即可,不留空也行,我反正没留空。
3 动手编辑
上面提到有用的端口一共有9个,我保留了10个端口。见图
这里需要注意的是:现在的HS01-05,SS01-05,并不是开始未编辑的端口了,因为端口号没改,但是端口地址或许会发生变化。
举例说,我的usb2.0端口是1-4, 所以HS01-HS04的端口号不用修改,但是我的蓝牙用的是端口11,那么需要把端口11的地址拷贝粘贴到HS05的地址上去,希望下面图片可以帮助你理解。
修改完成后,重启,再拿usb2.0和usb3.0插一遍,总之我的是正常工作了。
上一张usb3.0的拷贝图,速度应该是3.0的速度。
补充一下:这里捎带把ssdt的usb定义部分也合并到了dsdt下。
提取原始的dsdt下,对于端口的定义如下:
- Device (HS11)
- {
- Name (_ADR, 0x0B) // _ADR: Address
- }
复制代码 也就是说仅定义了地址
翻一翻同时提取到的ssdt文件,发现我的ssdt5.aml是对于usb的定义,于是捎带把ssdt合并到dsdt下:
1. 把External放在dsdt的External声明部分
2. 把涉及的方法按照scope的声明范围,对应放到dsdt下面
3. 把对于devide(设备)的定义,拷贝到dsdt对于此device(设备)的定义下,如:
在ssdt下对HS01这个端口有如下定义:
- Scope (\_SB.PCI0.XHC.RHUB.HS01)
- {
- Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities
- {
- Return (GUPC (One))
- }
- Method (_PLD, 0, NotSerialized) // _PLD: Physical Location of Device
- {
- Return (GPLD (One, One))
- }
- }
复制代码 在dsdt下我的 HS01端口是这样定义的:
- Device (HS11)
- {
- Name (_ADR, 0x0B) // _ADR: Address
- }
复制代码 那么合并到一起就变成了这样子:
- Device (HS01)
- {
- Name (_ADR, One) // _ADR: Address
- Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities
- {
- Return (GUPC (One))
- }
- Method (_PLD, 0, NotSerialized) // _PLD: Physical Location of Device
- {
- Return (GPLD (One, One))
- }
- }
复制代码
|
附件: 你需要登录才可以下载或查看附件。没有帐号?注册
|