Linux перезагрузить usb устройство

Системное администрирование и мониторинг 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))

Читайте также:  Как управлять линукс с андроида

Мне нужно было автоматизировать это в скрипте 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 подвешенный.

Читайте также:  Mac os мониторинг трафика

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

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

Следующий пример вывода из 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-устройства обычно не является вербальным или слышимым (в Linux Deepin – это не так), как в 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-порт.

Читайте также:  Windows phone lumia 1020

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

После этого перезапустите Ubuntu.

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

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

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

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

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

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

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

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

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

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

Источник

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