- Системное администрирование и мониторинг Linux/Windows серверов и видео CDN
- Статьи по настройке и администрированию Windows/Linux систем
- Включение/выключение питания USB устройств из консоли
- Как перезагрузить USB-устройство из командной строки?
- 16 ответов
- 5 способов исправить неисправное USB-устройство или порт в Linux
- USB не работает в Ubuntu?
- 1. Обнаружено ли ваше устройство в Linux?
- 2. Как проверить свой порт USB
- 3. Исправление сломанного USB-оборудования
- 4. Перезапуск Linux для исправления USB-порта
- 5. Проверка драйверов USB-устройств в Linux
- Устранение неполадок с 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-устройство из командной строки?
Можно ли сбросить подключение 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 подвешенный.
После этого все снова заработало. 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 необходимо выполнить пять шагов:
- Убедитесь, что USB-порт обнаружен
- Произведите необходимый ремонт в порту
- Исправление или ремонт USB-устройств
- Перезагрузите операционную систему Linux
- Подтвердите наличие драйверов устройств
Давайте посмотрим на каждое из них по очереди и узнаем, как работать с хитрыми 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.
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
Источник