- Отключение и подключение USB-устройства из консоли
- Системное администрирование и мониторинг Linux/Windows серверов и видео CDN
- Статьи по настройке и администрированию Windows/Linux систем
- Включение/выключение питания USB устройств из консоли
- Управление питанием USB (вкл./Выкл.) С помощью linux
- Краткий ответ:
- Длинный ответ:
- Управление источником питания USB (вкл / выкл) в Linux
- Короткий ответ:
- Длинный ответ:
Отключение и подключение USB-устройства из консоли
Я счастливый обладатель хуаевейого GPRG/UMTS модема. Работает исправно. Однако, порой подвисает и пропадает из /dev/, подключение, соответственно, отваливается. Спасает физическое извлечение и подключение модема.
Поскольку USB порт на ноуте не бесконечен, интересуюсь: какими командами можно отключить и подключить устройство? Как вариант, включить и выключить питание на USB порте?
Сто раз обсуждалось, ищите по моим комментариям.
Спасибо большое. Мне удалось найти решение.
Однако мне кажется, отсылать грепить три с лишним сотни сообщений в поисках нужного — моветон.
>Я счастливый обладатель хуаевейого GPRG/UMTS модема.
Обсуждалось уже, ЕМНИП.
Не стесняйтесь, вы всё верно прочитали.
> Спасибо большое. Мне удалось найти решение
Если не трудно, добавь в LOR Wiki пожалуйста. Или дай прямую ссылку, сам добавлю
>>Спасибо большое. Мне удалось найти решение.
Ну так опубликуй его здесь, чего ты ждешь-то?
Все решения принято публиковать, береги время других.
Если честно, скрипт исправно включает и выключает питание на устройстве. Однако выводит модем из ступора в среднем через раз, что опечаливает.
Может это связано с тем, что он лишь отключает питание, а сигнал остается?
Ведь есть же устройства, которым питание USB не нужно, но тем не менее есть реакция на plug-unplug.
Может, специалисты подскажут, нельзя ли скриптово эмулировать переподключение всех четырех контактов (если это вообще может отличаться от переподключения одного лишь питания).
Если не трудно, добавь в LOR Wiki пожалуйста.
Нет, сигнал тут не при чём. Возможно надо задержку побольше поставить. Пока, тфу-тфу, не зависал и не было возможности поэкспериментировать.
Хотя, возможно, я ошибаюсь. Сейчас проверил на мыши: при суспенде диод стал гореть тусклее, но по-прежнему горел.
Источник
Системное администрирование и мониторинг 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
Можно ли включать/отключать источники питания с 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-
Источник
Управление источником питания 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-автоподвески немного проще и удобнее для написания сценариев.
Источник