Как перезагрузить порты usb linux

Системное администрирование и мониторинг Linux/Windows серверов и видео CDN

Статьи по настройке и администрированию Windows/Linux систем

  • Полезное
    • Карта сайта
    • Мой сайт-визитка
  • Рубрики
    • Linux
      • VoIP
      • Безопасность
      • Видеопотоки
      • Системы виртуализации
      • Системы мониторинга
    • Windows
    • Интересное
    • Сеть и Интернет
  • Мета
    • Войти
    • RSS Feed

Включение/выключение питания USB устройств из консоли

Иногда бывают ситуации, когда нужно отключить USB флешку, сделать настройку какой-то программы и потом опять подключить для нормальной работы. Но что делать если эти действия нужно сделать на удаленном сервере, к которому у нас нет физического доступа. Можно обратиться в службу поддержки, но можно и сделать все своими силами «не отходя от кассы». Расскажу как это делается.

Допустим, наша флешка уже втыкнута в USB-порт. Первым делом нужно проверить так ли это.

Как видим, USB-флешка находиться на шине Bus 001. Следовательно нам нужно найти в /sys/bus/usb/devices/ соответствующее USB устройство и выключить питание.

Чтобы копаться в системных устройствах нужны права суперпользователя.

По скольку мы знаем, что наша USB флешка на физической шине с номером 1. Следовательно, нужно отключить питание устройства 1-6, так как именно оно отвечает за первую шину.

Приведенная выше команда, отключит питание устройства на лету. Проверим теперь, так ли это.

Как видим — устройство отключено.
После внесения нужных изменений, подключаем питание USB устройства.

Источник

Как перезагрузить USB-устройство из командной строки?

Можно ли сбросить подключение USB-устройства без физического отключения / подключения от ПК?

В частности, мое устройство представляет собой цифровую камеру. я использую gphoto2 , но в последнее время я получаю «ошибки чтения устройства», поэтому я хотел бы попытаться выполнить программный сброс соединения.

Из того, что я могу сказать, нет никаких модулей ядра, загружаемых для камеры. Единственный, который выглядит связанным usbhid ,

16 ответов

Сохранить следующее как usbreset.c

Выполните следующие команды в терминале:

Получите идентификатор шины и устройства USB-устройства, которое вы хотите сбросить:

Сделайте нашу скомпилированную программу исполняемой:

Запустите программу с привилегией sudo; сделать необходимую замену а также идентификаторы, найденные путем запуска lsusb команда:

Я раньше не сталкивался с вашими конкретными обстоятельствами, поэтому я не уверен, что этого будет достаточно, но я нашел самый простой способ перезагрузить USB-устройство с помощью этой команды: (Внешние приложения не нужны)

Это именно то, что я использую для сброса моего Kinect, поскольку у libfreenect, похоже, нет API для возврата его в спящий режим. Он у меня на Gentoo box, но ядро ​​должно быть достаточно новым, чтобы использовать ту же структуру пути для sysfs.

Ваш, очевидно, не будет 1-4.6 но вы можете либо извлечь этот путь устройства из журнала ядра ( dmesg ) или вы можете использовать что-то вроде lsusb чтобы получить идентификаторы поставщиков и продуктов, а затем с помощью быстрой команды, подобной этой, перечислить, как пути связаны с различными парами идентификаторов поставщиков / продуктов:

Это сбросит все подключенные порты USB1/2/3 [1]:

Я верю, что это решит вашу проблему. Если вы не хотите сбрасывать все конечные точки USB, вы можете использовать соответствующий идентификатор устройства из /sys/bus/pci/drivers/ehci_hcd

Примечания: [1]: *hci_hcd Драйверы ядра обычно управляют портами USB. ohci_hcd а также uhci_hcd предназначены для портов USB1.1, ehci_hcd для портов USB2 и xhci_hcd для портов USB3. (см. https://en.wikipedia.org/wiki/Host_controller_interface_(USB,_Firewire))

Читайте также:  Что за ошибка windows error recovery

Мне нужно было автоматизировать это в скрипте Python, поэтому я адаптировал чрезвычайно полезный ответ LiLo к следующему:

В моем случае это был драйвер cp210x (о котором я мог сказать lsmod | grep usbserial ), так что вы можете сохранить приведенный фрагмент как reset_usb.py и затем сделать это:

Это также может быть полезно, если у вас еще нет настройки компилятора переменного тока в вашей системе, но у вас есть Python.

Поскольку частный случай вопроса — это проблема связи gphoto2 с камерой по USB, в gphoto2 есть возможность сбросить USB-соединение:

Возможно, этот вариант не существовал в 2010 году, когда был задан вопрос.

Я использую кувалду, перезагружая модули. Это мой скрипт usb_reset.sh:

И это мой файл службы systemd /usr/lib/systemd/system/usbreset.service, который запускает usb_reset.sh после запуска моего менеджера diplay:

Я создал скрипт Python, который упрощает весь процесс на основе ответов здесь.

Сохраните приведенный ниже скрипт как reset_usb.py или клонируйте этот репозиторий.

Я сделал скрипт Python, который будет сбрасывать определенное устройство USB на основе номера устройства. Вы можете узнать номер устройства из команды lsusb.

В этой строке 004 номер устройства

Самым быстрым способом сброса будет сброс самого контроллера USB. Это заставит udev отменить регистрацию устройства при отключении, и регистрация вернется после того, как вы его включите.

Это должно работать для большинства компьютерных сред. Однако, если вы используете какое-то нестандартное оборудование, вы можете просто перебирать имена устройств. С помощью этого метода вам не нужно узнавать имя устройства по lsusb. Вы также можете включить в автоматизированный скрипт.

Вот скрипт, который будет сбрасывать только соответствующий идентификатор продукта / поставщика.

Кто-нибудь заказывал кувалду? Это воедино из различных других ответов здесь.

Иногда я хочу выполнить эту операцию на определенном устройстве, как указано VID (идентификатор поставщика) и PID (идентификатор продукта). Это скрипт, который я нашел полезным для этой цели, который использует изящную библиотеку libusb.

Затем этот C++ файл resetDeviceConnection должен выполнить эту задачу сброса подключения устройства, как указано в vid и pid.

Я сделал простой скрипт для перезагрузки определенного USB-устройства.

Если вы знаете имя вашего устройства, этот скрипт Python будет работать:

Попробуйте, это отключение программного обеспечения (Eject).

Иногда не работает просто отсоединить устройство для некоторых устройств.

Я хочу удалить или извлечь мой «Genius NetScroll 120».

Тогда я сначала проверь мое подключенное USB-устройство

Хорошо, я нашел свою мышь, она имеет шину 002, устройство 009, idVendor 0458 и idProduct 003a, так что это справочная информация об устройстве мыши.

Это важно, номер шины — это начальный путь к устройству, и я проверю идентификатор продукта и поставщика, чтобы убедиться, что устройство удаляется.

Обратите внимание на папки, проверьте начало с папкой номер 2, я проверю эту, потому что мой Bus — 002, и одну за другой я проверяю каждую папку, содержащую правильные idVendor и idProduct, о моей информации о мыши.

В этом случае я получу информацию с помощью этой команды:

Хорошо, путь /sys/bus/usb/drivers/usb/2-1.3/ совпадает с моей информационной мышью! XDDD.

Пришло время удалить устройство!

Подключите снова USB-устройство, и оно снова работает!

Возможно, это работает и для камеры:

Вслед за ожившим голодным USB 3.0 HDD на 3.4.42 (kernel.org) Linux на моей стороне. dmesg сказал, что это было время ожидания команд после 360 секунд (извините, я не могу скопировать системный журнал здесь, не подключенные сети), и диск завис полностью. Процессы доступа к устройству были заблокированы в ядре и не могут быть уничтожены. NFS подвешенный, ZFS подвешенный, dd подвешенный.

После этого все снова заработало. dmesg рассказал только одну строчку о USB устройство найдено.

Я действительно понятия не имею, что делает следующее подробно. Но это сработало.

Читайте также:  Windows 10 сам установился пароль

Следующий пример вывода из Debian Squeeze с 2.6.32-5-686 Ядро, так что я думаю, что это работает для 2.6 и выше:

Если это не работает, возможно, кто-то еще может выяснить, как отправить реальный сброс на устройство.

Источник

5 способов исправить неисправное USB-устройство или порт в Linux

Вы подключили флэш-накопитель USB, клавиатуру или мышь к ПК с Linux. Но ничего не происходит.

В чем дело? Почему ваш компьютер с Linux не обнаруживает устройство? Это вещь Linux, или ваше устройство USB перестало работать?

USB не работает в Ubuntu?

Дисководы, устройства для чтения карт памяти, телефоны, медиаплееры и мультимедийные периферийные устройства … все они полезны, но если есть проблема с USB-портом или драйверами вашей системы, они не будут работать. Это может быть особенно неприятно, если вы используете клавиатуру Bluetooth (вот почему вы не должны

) или мышь (с USB-ключом), так как это означает поиск альтернативы проводного USB.

Однако это может быть не тот порт, который не работает. Возможно, используемое вами USB-устройство неисправно и не может быть обнаружено.

Решение проблем с USB может быть непростым делом, но нет ничего невозможного в диагностике неисправностей и внесении необходимых исправлений.

Для устранения проблем с USB в Linux необходимо выполнить пять шагов:

  1. Убедитесь, что USB-порт обнаружен
  2. Произведите необходимый ремонт в порту
  3. Исправление или ремонт USB-устройств
  4. Перезагрузите операционную систему Linux
  5. Подтвердите наличие драйверов устройств

Давайте посмотрим на каждое из них по очереди и узнаем, как работать с хитрыми USB-устройствами в Linux.

1. Обнаружено ли ваше устройство в Linux?

Первое, что нужно проверить при подключении USB-устройства к компьютеру с Linux, — это то, что оно обнаруживается. Обнаружение USB-устройства обычно не так устно или слышно, как в Windows или macOS, что означает, что вам часто нужно проверять, что устройство было обнаружено операционной системой.

К счастью, это просто.

Сначала отключите USB-устройство, к которому вы обращаетесь. Затем откройте окно терминала и введите команду «list USB»:

Запишите результаты, затем подключите устройство USB и снова запустите lsusb.

На этот раз в списке должно появиться дополнительное устройство с идентификатором шины, идентификатором устройства, USB-идентификатором и описанием. Если вы не можете понять, что такое дополнительное устройство (у вас может быть внутреннее USB-устройство, возможно, Ethernet), попробуйте другую команду.

Команда dmesg выведет список подключенных USB-устройств в вашей системе. Он также будет включать в себя оборудование, отличное от USB, и, к сожалению, предлагает огромное количество информации. Чтобы противостоять этому, вы можете попробовать

Наконец, вы можете просто положиться на более удобный для пользователя

Это похоже на сочетание команд dmesg и lsusb, в котором перечислены подключенные USB-устройства с достаточным количеством информации для их идентификации.

Итак, есть ли здесь USB-порт, который вы подключили? Если нет, то возможно порт поврежден или возникла проблема с устройством. Точно так же устройство может быть несовместимо с Linux.

2. Как проверить свой порт USB

Если устройство USB не отображается, это может быть связано с проблемой порта USB.

Лучший способ проверить это быстро — просто использовать другой USB-порт на одном компьютере. Если USB-оборудование обнаружено, значит, у вас проблема с другим USB-портом.

Если другой порт USB недоступен, вам нужно попробовать USB-устройство на другом ПК или ноутбуке. Однако это может быть не идеальным вариантом, поскольку в качестве альтернативы у вас может быть только компьютер с Windows или macOS. Поскольку некоторые устройства USB не могут использоваться в Linux, будет трудно определить, является ли это устройством USB или портом USB, который вызывает у вас проблемы.

Для достижения наилучших результатов при поиске и устранении неисправностей USB-устройств, по возможности, используйте Linux-совместимое оборудование. Нет времени установить Linux на другой компьютер? Подумайте о подтверждении состояния вашего USB-оборудования с помощью недорогого Raspberry Pi Zero.

Читайте также:  Удалить ssh key linux

3. Исправление сломанного USB-оборудования

Если ваше USB-оборудование неисправно, у вас есть два варианта: исправить или вернуть.

Исправление обычно включает проверку порта USB, а также устройства, которое в данный момент не работает. Исправления почти всегда будут сосредоточены вокруг USB-кабеля

и порт на вашем компьютере. Однако USB-кабели обычно можно заменить, а порты можно отремонтировать.

Физическая проверка USB-оборудования — это хорошая идея. Кабели должны быть прочными, без каких-либо трещин; пробки должны быть сплошными, с металлическим сечением плотно прикрепленным.

Между тем, порты USB следует проверять, когда компьютер выключен и отключен от сети. Проверьте, что порты надежно установлены; шаткие USB-порты указывают на износ оборудования.

Если порт USB отсоединяется, возможно, вы сможете припаять его на место. Конечно, вы уже должны знать, как паять

; никогда не пытайтесь делать работу самостоятельно, без предварительного опыта.

Кроме того, проверьте наличие пыли и грязи в USB-портах, особенно в задней части ПК, где регулярно собирается пыль. Пыль — враг ПК

так что стоит поддерживать вашу систему в непыльной среде, чтобы повысить производительность. Поскольку пыль может проникнуть в ваш компьютер через разъемы USB, не торопитесь, чтобы эти порты оставались чистыми. Используйте баллончик со сжатым воздухом для рассеивания пыли и грязи.

Вы можете вернуть свое USB-устройство? Если это новое, то, вероятно. Проблема в том, что если он явно не помечен как работающий под Linux, розничный продавец вряд ли примет возврат. Возможно, вам нужно быть немного избирательным с фактами, которыми вы делитесь с ними …

4. Перезапуск Linux для исправления USB-порта

В некоторых случаях, например, при использовании ноутбука, проблемы с питанием могут влиять на его способность обнаруживать USB-устройства. Параметр autosuspend предназначен для снижения энергопотребления на ноутбуках с Linux, но может оказаться контрпродуктивным.

Так что ты можешь сделать?

Во-первых, проверьте, не вызывает ли проблема Autosuspend. Вы можете сделать это, перезагрузив компьютер; если устройство USB работает, то этот порт USB получает питание.

Следующий шаг — убедиться, что это больше не повторится. Следующие приемы командной строки предназначены для Ubuntu 18.10, поэтому проверьте правильность процедуры в предпочитаемом вами дистрибутиве Linux.

Откройте окно терминала и введите:

Это должно вернуть значение 2, Это означает, что автоподдержка включена. Вы можете исправить это, отредактировав файл grub. Войти:

Изменить это на

Нажмите Ctrl + X сохранить файл и выйти. Далее обновите grub:

Когда это завершится, перезапустите Ubuntu.

После перезагрузки войдите в свою учетную запись и снова введите команду cat:

На этот раз возвращаемое значение должно быть -1. Вы отключили автоподключение, поэтому устройства USB, подключенные к вашему ноутбуку, не должны выходить из строя из-за проблем с питанием.

5. Проверка драйверов USB-устройств в Linux

Когда-то устройства USB не часто работали в Linux. Только устройства, произведенные OEM-изготовителями, заинтересованными в Linux (возможно, они использовали его для разработки), могли бы предложить драйвер для Linux.

В наши дни все обстоит иначе: большинство производителей предлагают драйверы для Linux. В большинстве случаев это уже будет доступно в вашей операционной системе Linux через ядро. Вам не нужно устанавливать какие-либо драйверы USB.

Если драйвер недоступен, вы, вероятно, сможете найти его, связавшись с производителем USB-устройства.

Устранение неполадок с USB на Linux: исправлено!

Благодаря встроенным драйверам и широкой поддержке многих типов USB-устройств, будет легко диагностировать проблемы с USB-оборудованием вашего компьютера.

Хотя сломанное оборудование может нуждаться в ремонте или замене, также доступны исправления программного обеспечения.

Если вы недавно обменялись с Windows, проблемы с USB в Linux могут быть проблемой. К счастью, эти проблемы обычно легко решаются, что облегчает переход на Linux

Источник

Оцените статью