首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我怎样才能关闭电源到USB端口?

我怎样才能关闭电源到USB端口?
EN

Ask Ubuntu用户
提问于 2018-04-27 19:34:06
回答 1查看 7.3K关注 0票数 5

我用的是Lubuntu 16.04。我有模拟扬声器,从USB插座上获取电源。当我关掉电脑并挂起它时,我希望他们关掉它。我认为这会很容易,但我花了很多时间搜索,但仍然没有解决方案。

我最好的选择似乎是乌胡布特,因为这似乎是在我的硬件上运行的(作者警告说,并不是所有的hubcontrollers都支持这种功能)。我相信这是因为我已经成功地关闭了USB键盘。

所以现在我需要知道应该指定什么来为扬声器关闭USB插座上的电源。这肯定需要一些猜测,因为它们不是真正的USB设备,也不会在lsusb中显示。看看后面的面板和主板手册,我发现插扬声器的四个插座组被描述为USB2.0端口7-10。我的鼠标和摄像头插在同一组插座上。

运行不带参数的uhubctl将提供:

代码语言:javascript
复制
Current status for hub 2-1 [8087:8002, USB 2.00, 8 ports]
Port 1: 0100 power
Port 2: 0100 power
Port 3: 0100 power
Port 4: 0100 power
Port 5: 0100 power
Port 6: 0100 power
Port 7: 0100 power
Port 8: 0100 power
Current status for hub 1-1 [8087:800a, USB 2.00, 6 ports]
Port 1: 0100 power
Port 2: 0100 power
Port 3: 0100 power
Port 4: 0100 power
Port 5: 0100 power
Port 6: 0100 power
Current status for hub 4-5 [174c:3074 ASUS TEK. ASM107x, USB 3.00, 4 ports]
Port 1: 02a0 power 5gbps Rx.Detect
Port 2: 02a0 power 5gbps Rx.Detect
Port 3: 02a0 power 5gbps Rx.Detect
Port 4: 02a0 power 5gbps Rx.Detect
Current status for hub 3-9 [174c:2074 ASUS TEK. ASM107x, USB 2.10, 4 ports]
Port 1: 0100 power
Port 2: 0303 power lowspeed enable connect [047d:2043 NOVATEK Kensington U+P Keyboard]
Port 3: 0100 power
Port 4: 0100 power

这不太有帮助。我的键盘显示,但我的所有其他USB设备-鼠标,希捷硬盘,摄像头-没有提到。

我尝试过各种命令:

代码语言:javascript
复制
uhubctl -a off -p 2 -l 3-9     #Turns off keyboard as expected
uhubctl -a off -p 2 -l 4-5     #ALSO turns off keyboard. Why ?

uhubctl -a off -p 12345678 -l 2-1 #Does not turn anything off
uhubctl -a off -p 123456   -l 1-1 #Does not turn anything off
uhubctl -a off -p 134      -l 4-5 #Does not turn anything off.

这样我就可以关掉键盘。没有列出其他USB设备(尽管它们在那里),它们也不能关闭。

我不知道枢纽名称代表什么,即2-1,1-1,4-5,3-9。也没有任何方法从lsusb推断集线器名称。

lsusb提供:

代码语言:javascript
复制
Bus 002 Device 002: ID 8087:8002 Intel Corp. 
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 008 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 007 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:800a Intel Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 003: ID 174c:3074 ASMedia Technology Inc. ASM1074 SuperSpeed hub
Bus 004 Device 002: ID 0bc2:ab24 Seagate RSS LLC 
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 007: ID 047d:2043 Kensington 
Bus 003 Device 003: ID 174c:2074 ASMedia Technology Inc. ASM1074 High-Speed hub
Bus 003 Device 002: ID 0f62:1001 Acrox Technologies Co., Ltd Targus Mini Trackball Optical Mouse
Bus 003 Device 006: ID 046d:0994 Logitech, Inc. QuickCam Orbit/Sphere AF
Bus 003 Device 004: ID 0b05:180a ASUSTek Computer, Inc. 
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

lsusb -t提供:

代码语言:javascript
复制
/:  Bus 08.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 10000M
/:  Bus 07.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M
/:  Bus 06.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 10000M
/:  Bus 05.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 5000M
    |__ Port 1: Dev 2, If 0, Class=Mass Storage, Driver=uas, 5000M
    |__ Port 5: Dev 3, If 0, Class=Hub, Driver=hub/4p, 5000M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/15p, 480M
    |__ Port 5: Dev 2, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
    |__ Port 9: Dev 3, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 2: Dev 7, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
        |__ Port 2: Dev 7, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M
    |__ Port 10: Dev 4, If 1, Class=Vendor Specific Class, Driver=btusb, 12M
    |__ Port 10: Dev 4, If 2, Class=Vendor Specific Class, Driver=btusb, 12M
    |__ Port 10: Dev 4, If 0, Class=Vendor Specific Class, Driver=btusb, 12M
    |__ Port 10: Dev 4, If 3, Class=Application Specific Interface, Driver=, 12M
    |__ Port 14: Dev 6, If 0, Class=Video, Driver=uvcvideo, 480M
    |__ Port 14: Dev 6, If 1, Class=Video, Driver=uvcvideo, 480M
    |__ Port 14: Dev 6, If 2, Class=Audio, Driver=snd-usb-audio, 480M
    |__ Port 14: Dev 6, If 3, Class=Audio, Driver=snd-usb-audio, 480M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/8p, 480M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/6p, 480M

我可以看到集线器名称和总线/端口号之间有某种关系,但我不能给出一个规则。

我从lsusb中注意到,USB2.0设备似乎使用Intel控制器,而USB3.0和2.1设备似乎使用ASUS控制器。我想知道英特尔芯片是否不支持电源控制,所以我尝试了USB 2.1插座中的扬声器,当它连接到键盘上时,我可以关闭它。不走运。

有谁知道为什么uhubctrl的行为是这样的?

也许uhubctl是一种红鲱鱼,是行不通的。我知道在Ubuntu中还有其他方式来切换电源,但它们似乎依赖于能够确定表示usb套接字的目录。我不知道该怎么做。

EN

回答 1

Ask Ubuntu用户

发布于 2018-04-27 21:31:26

本文作者:

  • uhubctl对USB设备使用与Linux内核相同的寻址方法:b-x.y.z,其中b是USB总线号,而xyz则是从给定总线的根USB集线器开始的集线器链的端口号。这个地址是半稳定的--如果你把USB设备拔出和插回同一个物理端口,它不会改变(S)。
  • 要回答你的第二个问题,我需要引用来自uhubctl自述的

如果您有兼容的USB3.0集线器连接到USB3上游端口,它将被检测为两个独立的虚拟集线器: USB2和USB3,并且您的USB设备将连接到USB2或USB3虚拟集线器,这取决于它们的能力和连接速度。要控制这些集线器的电源,必须在USB2和USB3虚拟集线器上关闭/打开电源,以使更改生效。uhubctl将尝试自动完成此操作(除非您使用选项-e禁用此行为)。

  • 最后,uhubctl将只列出声称支持PPPS (每端口电源交换)的USB集线器。然而,有些集线器声称支持,但实际上不能工作(开关电路在物理上是缺失的)。我肯定是在维护已知工作的所有集线器的列表

如果您碰巧找到与uhubctl一起工作但不是挂牌的集线器,请报告它为这里

票数 8
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1028935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档