- Системное администрирование и мониторинг Linux/Windows серверов и видео CDN
- Статьи по настройке и администрированию Windows/Linux систем
- Включение/выключение питания USB устройств из консоли
- Управление источником питания USB (вкл / выкл) в Linux
- Короткий ответ:
- Длинный ответ:
- Power OFF and ON USB device in linux (ubuntu)
- Share this:
- Like this:
- Related
- Comments (7)
- Управление питанием USB (вкл./Выкл.) С помощью linux
- Краткий ответ:
- Длинный ответ:
Системное администрирование и мониторинг Linux/Windows серверов и видео CDN
Статьи по настройке и администрированию Windows/Linux систем
- Полезное
- Карта сайта
- Мой сайт-визитка
- Рубрики
- Linux
- VoIP
- Безопасность
- Видеопотоки
- Системы виртуализации
- Системы мониторинга
- Windows
- Интересное
- Сеть и Интернет
- Linux
- Мета
- Войти
- RSS Feed
Включение/выключение питания USB устройств из консоли
Иногда бывают ситуации, когда нужно отключить USB флешку, сделать настройку какой-то программы и потом опять подключить для нормальной работы. Но что делать если эти действия нужно сделать на удаленном сервере, к которому у нас нет физического доступа. Можно обратиться в службу поддержки, но можно и сделать все своими силами «не отходя от кассы». Расскажу как это делается.
Допустим, наша флешка уже втыкнута в USB-порт. Первым делом нужно проверить так ли это.
Как видим, USB-флешка находиться на шине Bus 001. Следовательно нам нужно найти в /sys/bus/usb/devices/ соответствующее USB устройство и выключить питание.
Чтобы копаться в системных устройствах нужны права суперпользователя.
По скольку мы знаем, что наша USB флешка на физической шине с номером 1. Следовательно, нужно отключить питание устройства 1-6, так как именно оно отвечает за первую шину.
Приведенная выше команда, отключит питание устройства на лету. Проверим теперь, так ли это.
Как видим — устройство отключено.
После внесения нужных изменений, подключаем питание USB устройства.
Источник
Управление источником питания USB (вкл / выкл) в Linux
Можно ли в Linux включать / выключать источники питания от USB вручную?
Есть этот внешний USB-вентилятор (тот, который вы используете для охлаждения себя, а не ПК), и было бы неплохо иметь возможность управлять им с терминала, потому что я хочу расположить вентилятор где-то далеко.
Я полагаю, что это также может быть полезно для множества других вещей, потому что есть много игрушек USB. Может быть, очистители воздуха и т. Д. (Я слышал, что они на самом деле не работают).
Заметка. Информация в этом ответе относится к более старым ядрам (до 2.6.32). Смотрите ответ tlwhitec для информации о более новых ядрах.
(Вам может понадобиться изменить usb1 на usb n )
Источник: Документация / usb / power-management.txt.gz
Согласно документам , в ядре 2.6.32 произошли некоторые изменения в управлении питанием USB , которые, похоже, установились в 2.6.38 . Теперь вам нужно дождаться простоя устройства , которое определяется конкретным драйвером устройства. Драйвер должен поддерживать его, иначе устройство никогда не достигнет этого состояния. К сожалению, теперь у пользователя нет шансов форсировать это. Однако, если вам повезло, и ваше устройство может бездействовать, то чтобы отключить это, вам нужно:
или, для ядер около 2.6.38 и выше:
Это буквально означает « приостановить работу» в тот момент, когда устройство бездействует.
Так что, если ваш поклонник не является чем-то «интеллектуальным», который можно рассматривать как устройство и которым управляет драйвер, вам вряд ли повезет с нынешними ядрами.
Я нашел эти решения, которые по крайней мере работают для правильно сконфигурированного чипа-концентратора Terminus FE 1.1 USB:
1.Чтобы отключить питание всех портов USB концентратора, вы можете отсоединить концентратор от ядра, используя:
чтобы снова включить питание — вы можете связать его обратно, используя
2. Переключение питания на каждом порту в отдельности более сложное: я смог использовать hubpower для управления каждым портом — но у него есть и обратная сторона: hubpower сначала отключает usbdevfs, что приводит к отключению всех USB-устройств от системы, по крайней мере, в ubuntu :
С этим ioctl отключенным я смог отключить питание отдельного порта, не отключая все устройства, но питание сразу же включается (вероятно, из-за того, что ядро видит неинициализированное устройство), что заставляет USB-устройство просто выполнить «холодный перезапуск», что я в общем хотел сделать. Мой исправленный Hubpower здесь
PowerTOP от Intel позволяет переключать устройства, такие как USB-периферия, в режиме реального времени. Они называются перестраиваемыми.
- Перейдите на «Tunables».
- Прокрутите вниз до вашего устройства.
- Нажмите Enter, чтобы переключить режим энергосбережения ( хорошо / плохо )
Обратите внимание, что Bad означает, что устройство всегда включено. Переключение на Good выключит устройство по истечении заданного времени неактивного сохранения (по умолчанию 2000 мс).
Посмотрите документы PowerTOP для деталей о том, как сделать эти изменения постоянными.
Он генерирует скрипты конфигурации для вас (в значительной степени, как описано другими авторами в этой теме).
ПРИМЕЧАНИЕ. Эти сценарии не влияют на питание контактов USB (которое всегда включено).
Они только отправляют протокол драйвера для активации и деактивации устройства.
Если вы хотите контролировать питание контактов, вы можете использовать либо поддерживаемый интеллектуальный USB-концентратор, либо, что еще лучше, микроконтроллер .
Вы можете использовать мой инструмент uhubctl для управления питанием USB на порт для совместимых концентраторов USB.
Я хотел сделать это, и с моим оборудованием USB я не мог. Я написал хакерский способ, как это сделать здесь:
Коротко говоря: я использовал USB-реле для открытия / закрытия V CC другого USB-кабеля .
работает на Ubuntu
Питание USB 5v всегда включено (даже когда компьютер выключен, на некоторых компьютерах и на некоторых портах.) Вам, вероятно, потребуется запрограммировать Arduino с помощью какого-либо коммутатора и управлять им через библиотеку последовательного интерфейса от USB, подключенного к компьютер.
Другими словами, комбинация этого учебного руководства и этого учебного пособия по связи через последовательную библиотеку с Arduino подключена через USB.
Причина , почему люди размещать такие вопросы, как это связано с dreaded- в самом деле « ЗЛО „- USB Auto-Приостановить“ функция ».
Автоматическая приостановка отключает питание «незанятого» USB-устройства, и если драйвер устройства не поддерживает эту функцию правильно, устройство может стать недоступным. Таким образом, включение / выключение USB-порта является симптомом проблемы, а не самой проблемой.
Я покажу вам, как ГЛОБАЛЬНО отключить авто-приостановку, избавляя от необходимости вручную включать и выключать порты USB:
Короткий ответ:
Вам НЕ нужно редактировать « autosuspend_delay_ms » по отдельности: USB autosuspend можно отключить глобально и ПРОСТО, используя следующие команды:
В конце «Длинного ответа» следует скриншот из Ubuntu 18.04, показывающий, как были достигнуты мои результаты.
Длинный ответ:
Это правда, что в документации по ядру управления питанием USB указано, что autosuspend не рекомендуется использовать и вместо нее используется autosuspend_delay_ms, которая используется для отключения autosuspend USB:
ОДНАКО мое тестирование показало, что настройка usbcore.autosuspend=-1 в / etc / default / grub, как показано ниже, может использоваться в качестве GLOBAL- переключателя для функции автоподключения USB — вам НЕ нужно редактировать отдельные файлы » autosuspend_delay_ms «.
В том же документе, ссылка на который приведена выше, указано, что значение «0» ВКЛЮЧЕНО, а отрицательное значение ОТКЛЮЧЕНО :
На аннотированном скриншоте Ubuntu 18.04 ниже, иллюстрирующем, как мои результаты были достигнуты (и воспроизводимы), пожалуйста, отметьте, что по умолчанию «0» ( включено ) в autosuspend_delay_ms .
Затем обратите внимание, что после ТОЛЬКО настройки usbcore.autosuspend=-1 в Grub, эти значения теперь отрицательны ( отключены ) после перезагрузки. Это избавит меня от необходимости редактировать отдельные значения и теперь может отключить автоматическое отключение USB.
Надеюсь, что это делает отключение USB-автоподвески немного проще и удобнее для написания сценариев.
Источник
Power OFF and ON USB device in linux (ubuntu)
There are two methods of doing this. So first method is for kernels after 2.6.32, and second for older ones.
To view kernel version, simply enter:
find Your USB device, no mather what it is USB flash drive, Yubikey, USB disk drive:
Which is located at 2-1.1 (tree part where device 5 is located)
First method (newer kernel)
To turn it off simply echo address:
here is result from syslog:
Unfortunately this device was still visible in lsusb, so I turned off whole usb hub there (2-1), and voila, usb device gone.
To enable it, echo same address to “bind” part, for example:
Second method (older kernel)
You need to go to devices:
Addressess will be listed similar:
So go to in our example 2-1.1/power (full path /sys/bus/usb/devices2-1.1/power)
to turn off device:
Share this:
Like this:
Related
Comments (7)
$ sudo echo ‘1-1.2’ > /sys/bus/usb/drivers/usb/unbind
-bash: /sys/bus/usb/drivers/usb/unbind: Permission denied
Thanks, finally got it working! 🙂
Anonymous: your command executes “echo ‘1-1.2′” under sudo, and then tries to write that to /sys/bus/usb/drivers/usb/unbind as the normal user again. Try this: echo ‘1-1.2″ | sudo tee /sys/bus/usb/drivers/usb/unbind
You could also use a switchable USB hub.
but it’s more expensive 🙂
Smart way of leaving a backlink.
I encourage doing opensource projects 🙂
Usually the budget depends on what are the requirements. For a simple “faulty” usb emergency device reset I would use my way (I wouldn’t expect something to break, would I?).
But for day to day planned switch off/on I’d consider such device.
Thanks for sharing Your product.
That’s pretty useful thing, it should have more reliable switching capability and it’s more powerful than a server usb port.
You should consider making a bigger hub, as it seems to be possible to use it as a powersource for usb devices (2Amps of current).
For example external usb 2.5 hdd would already take 2 ports, leaving only one free.
Or make an usb controlled power source switcher with relays, it would perfectly go as a combo with this usb hub device 🙂
Fully agree with you, the best approach depends of the requirements.
Those are cool ideas for improving the product.
Источник
Управление питанием USB (вкл./Выкл.) С помощью linux
Можно ли включать/отключать источники питания с USB вручную с помощью linux?
Там этот внешний USB-вентилятор охлаждения (тот, который вы используете, чтобы остыть, а не ПК), и было бы неплохо управлять им с терминала, потому что я хочу разместить вентилятор где-то далеко.
Я полагаю, это также может быть полезно и для множества других вещей, потому что там много USB-игрушек. Возможно, очистители воздуха и т.д. (Я слышал, что они действительно не работают).
Примечание. Информация в этом ответе актуальна для старых ядер (до 2.6.32). См. ответ tlwhitec для информации о новых ядрах.
(Вам может потребоваться изменить usb1 на usb n)
В соответствии с docs было внесено несколько изменений в управление питанием USB из ядер 2.6.32, которые, по-видимому, оседают в 2.6.38. Теперь вам нужно подождать, пока устройство станет idle, которое определяется конкретным драйвером устройства. Драйверу необходимо его поддерживать, иначе устройство никогда не достигнет этого состояния. К несчастью, теперь у пользователя нет никаких шансов на это. Однако, если вам повезет, и ваше устройство может простаивать, то для его отключения необходимо:
или, для ядер около 2.6.38 и выше:
Это буквально означает, что приостановить в тот момент, когда устройство перестает работать.
Поэтому, если ваш вентилятор не является чем-то “интеллектуальным”, который можно рассматривать как устройство и управляемым драйвером, вам, вероятно, не повезет с текущими ядрами.
Я нашел эти решения, которые, по крайней мере, работают для правильно сконфигурированного микросхемы концентратора Terminus FE 1.1 USB:
1. Чтобы отключить питание всех USB-портов концентратора, вы можете отсоединить концентратор от ядра, используя:
чтобы снова включить питание – вы можете связать его с помощью
2. Мощность переключения на каждом порту индивидуально сложнее: я смог использовать hubpower для управления каждым портом – но он поставляется с недостаток: hubpower сначала отключает usbdevfs, из-за чего все USB-устройства выходят из системы, по крайней мере, на ubuntu:
При отключенном ioctl мне удалось отключить отдельную мощность порта, не отсоединяя все устройства, – но питание сразу возвращается (возможно, из-за того, что ядро видит неинициализированное устройство), что заставляет USB-устройство просто “холодно” перезагрузка “, что я обычно хотел сделать. Мой исправленный hubpower здесь
PowerTOP от Intel позволяет в реальном времени переключать устройства, такие как USB-периферия. Они называются перестраиваемыми.
- Перейдите на “настраиваемые”.
- Прокрутите вниз до своего устройства.
- Нажмите Enter, чтобы переключить режим энергосбережения (Хорошо/Не хорошо)
Обратите внимание, что Bad означает, что устройство всегда включено. Переключение на Хорошо выключит устройство после заданного неактивного времени сохранения (по умолчанию 2000 мс).
См. документацию PowerTOP для получения подробной информации о том, как сделать эти изменения постоянными.
Он генерирует скрипты конфигурации для вас (в значительной степени как описано другими авторами в этой теме).
ПРИМЕЧАНИЕ. Эти сценарии не влияют на питание контактов USB (которое всегда включено).
Они только отправляют протокол драйвера для активации и деактивации устройства.
Если вы хотите контролировать питание контактов, вы можете использовать либо поддерживаемый интеллектуальный USB-концентратор, либо, что еще лучше, микроконтроллер.
Вы можете использовать uhubctl – утилиту командной строки для управления питанием USB на порт для совместимых концентраторов USB.
Раскрытие – я автор uhubctl.
Я хотел сделать это, и с помощью своего USB-оборудования я не смог. Я написал хакерский способ, как это сделать здесь: http://pintant.cat/2012/05/12/power-off-usb-device/. Короче говоря: я использовал USB-реле для открытия/закрытия Vc другого USB-кабеля…
работает для ubuntu
Питание USB 5 В всегда включено (даже когда компьютер выключен, на некоторых компьютерах и на некоторых портах.) Вам, вероятно, потребуется запрограммировать Arduino с каким-то переключателем и управлять им через последовательную библиотеку с USB-подключенного устройства в компьютер.
Другими словами, комбинация this переключает учебник и это руководство по передаче через Serial libary в Arduino, подключенное через USB.
У меня была проблема при подключении моего телефона Android, я не мог заряжать свой телефон, потому что выключатель питания включен, а затем выключен…
PowerTop позволил мне найти этот параметр и был полезен, чтобы исправить проблему (авто значение вызывало проблему):
Причина, по которой люди пишут такие вопросы, связана с тем, что dreaded- действительно “EVIL” – функция “Автоподвеска USB”.
Автоматическая приостановка отключает питание “незанятого” USB-устройства, и если драйвер устройства не поддерживает эту функцию правильно, устройство может стать недоступным. Таким образом, включение/выключение USB-порта является признаком проблемы, а не самой проблемой.
Я покажу вам, как ГЛОБАЛЬНО отключить автоматическую приостановку, избавляя от необходимости вручную переключать порты USB на & выкл:
Краткий ответ:
Вам НЕ нужно редактировать “autosuspend_delay_ms” по отдельности: автоматическое отключение USB можно отключить глобально и НАСТОЯЩЕЕ с помощью следующих команд:
В конце “Длинного ответа” приведен скриншот Ubuntu 18.04, показывающий, как были достигнуты мои результаты.
Длинный ответ:
Действительно, Документация по ядру управления питанием USB заявляет, что автоподвеска не рекомендуется и вместо нее используется autosuspend_delay_ms, используемая для отключения автоподвески USB:
ОДНАКО мое тестирование показало, что настройка usbcore.autosuspend=-1 в /etc/default/grub, как показано ниже, может использоваться в качестве GLOBAL переключателя для автоматической приостановки USB functionality-, которую вы НЕ нужно редактировать отдельные файлы “autosuspend_delay_ms“.
В том же документе, указанном выше, указано, что значение “0” равно ENABLED, а отрицательное значение ОТКЛЮЧЕНО:
На аннотированном скриншоте Ubuntu 18.04 ниже, иллюстрирующем, как мои результаты были достигнуты (и воспроизводимы), обратите внимание, что по умолчанию установлено значение “0” (включено) в autosuspend_delay_ms.
Затем обратите внимание, что после ТОЛЬКО установки usbcore.autosuspend=-1 в Grub эти значения теперь становятся отрицательными (отключенными) после перезагрузки. Это избавит меня от необходимости редактировать отдельные значения и теперь может отключить автоматическое отключение USB.
Надеюсь, что это делает отключение автоподвески USB немного легче и более scriptable-
Источник