Отключить питание от USB из командной строки?
У меня есть симпатичный маленький USB-индикатор, у которого нет выключателя, он "включен" на время подключения.
У меня вопрос, есть ли способ отключить порт USB, чтобы выключить свет, пока он еще подключен? Желательно, чтобы это можно было сделать из командной строки, но если это вообще возможно, это было бы действительно круто, несмотря ни на что. Я использую Mac и Linux, но мне интересно узнать, возможно ли это в какой-либо ОС, или физическое оборудование не позволяет использовать подобное.
4 ответа
В большинстве случаев USB-аксессуары, такие как вентиляторы и светильники, не являются настоящими USB-устройствами - им просто нужно немного питания 5 В.
USB работает с реальными устройствами так, что у них достаточно энергии для запуска, чтобы их можно было включить. Затем они перечисляют с помощью контроллера USB и запрашивают больше энергии.
Поскольку эти фальшивые USB-устройства на самом деле вообще не общаются с компьютером, единственный способ отключить его - полностью отключить этот USB-порт, что, насколько я знаю, в программном обеспечении обычно невозможно.
Я на самом деле не пробовал это сам, но из исследования, которое я провел по этой теме (чтобы выполнить то же самое, что и вы), вам понадобится:
- Концентратор USB, который поддерживает "переключение питания на порт" - не многие поддерживают это
- Утилита для фактического переключения власти
Взгляните на http://www.gniibe.org/development/ac-power-control-by-USB-hub/index, он делает подобные вещи и включает в себя некоторую справочную информацию по теме, список поддерживаемых концентраторов, таких как а также исходный код C для сборки утилиты.
Я не смог найти ни одного USB-концентратора, который он упомянул в США, и, связавшись со мной, подтвердил, что D-Link DUB-H7 будет работать - вы можете получить его на Amazon, например.
Я еще не нашел способ сделать это в Windows, но, похоже, вы все равно интересуетесь Linux.
7-портовый USB-концентратор D-Link DUB_H7 версии 2 (черный) НЕ имеет переключение питания через порт, он поддерживает только групповое переключение питания.
#lsusb -v
выходные данные показывают дважды концентратор с 4 портами, вот выходные данные для Дескриптора Концентратора:
Hub Descriptor:
bLength 9
bDescriptorType 41
nNbrPorts 4
wHubCharacteristic 0x00e0
Ganged power switching
Ganged overcurrent protection
TT think time 32 FS bits
Port indicators
bPwrOn2PwrGood 50 * 2 milli seconds
bHubContrCurrent 100 milli Ampere
DeviceRemovable 0x00
PortPwrCtrlMask 0xff
Hub Port Status:
Port 1: 0000.0100 power
Port 2: 0000.0100 power
Port 3: 0000.0100 power
Port 4: 0000.0100 power
Попробуйте использовать http://www.nirsoft.net/utils/usbdeview.zip. Этот исполняемый файл отображает все USB-устройства, подключенные к вашему компьютеру, и позволяет вам отключать их по мере необходимости.
Как отмечено из прочитанного мной:
USBDeview - это небольшая утилита, которая перечисляет все USB-устройства, которые в данный момент подключены к вашему компьютеру, а также все USB-устройства, которые вы ранее использовали. Для каждого USB-устройства отображается расширенная информация: имя / описание устройства, тип устройства, серийный номер (для устройств хранения данных), дата / время добавления устройства, VendorID, ProductID и т. Д. USBDeview также позволяет вам удалите устройства USB, которые вы ранее использовали, и отключите устройства USB, которые в данный момент подключены к вашему компьютеру. Вы также можете использовать USBDeview на удаленном компьютере, если вы входите на этот компьютер с правами администратора.