从驱动层将USB3.0转换为USB2.0


最近有个需求是把USB3.0强制转换成USB2.0,也就是让操作系统把硬件上的3.0识别成2.0 。从网上找到了如下内容,顿时心里暖暖的,特拿来分享一下。

1. Linux下的操作,其中 设备号为 USB3.0 总线设备的设备号,可以通过 lspci -nn | grep xHCI 查出来

It's possible. It involves changing configuration registers in the xHCI controller, so it's obviously chipset-specific. This is how it's done on Linux. I suppose it should be possible to do it on Windows too, but I don't know what utility to use.

To set both ports to USB 2.0 mode:

sudo setpci -H1 -d 8086:1e31 d8.l=0

Right port 3.0 and left port 2.0:

sudo setpci -H1 -d 8086:1e31 d8.l=1

Right port 2.0 and left port 3.0:

sudo setpci -H1 -d 8086:1e31 d8.l=2

Changing the register at d8 (USB3_PSSEN) sets the ports in USB 2.0 mode, but they are still on the xHCI controller. To switch over to EHCI, you also have to change the register at d0 (XUSB2PR). For example to run both ports off the EHCI contoller you have to do this:

sudo setpci -H1 -d 8086:1e31 d8.l=0

sudo setpci -H1 -d 8086:1e31 d0.l=0

The registers are documented in this datasheet, in section 17.1.

http://www.intel.com/content/www/us/en/chipsets/7-series-chipset-pch-datasheet.html.


2.Windows下

下边这条回复简洁明了

pciutils (lspci, setpci) for Windows are available here: https://eternallybored.org/misc/pciutils/

用法跟上边是一样的。

这样 3.0的口硬生生的就变成2.0的了。

  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值