Как удалить старые драйвера usb-устройств из Windows? Как отключить или включить USB порты в Windows Как сбросить юсб порты.

Добрый день уважаемые читатели блога сайт, сегодня хочу рассказать как удалить данные о USB Флешках в реестре Windows . Эта статья является продолжением статьи . Вся информация о любых USB носителях, когда-либо подключаемых к компьютеру, хранится в системном реестре. Если к компьютеру подключается много флешек разных моделей и производителей, то со временем в реестре скапливается очень много мусора. В результате процесс определения и подключения нового устройства начинает занимать значительное время и тормозит систему.

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

Чистку надо производить с помощью системной программы Regedit. Запускается она так.
Пуск - Выполнить - Regedit

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

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\USBSTOR
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Enum\USBSTOR

Из скринов видно, что подключались так же и хабы и HDD через хаб

Если чистить в ручную не хотите, то есть и бесплатное ПО, например USB Oblivion . Запускаем утилиту

Ставим галку Произвести реальную очистку

Видим, что все завершено и было удалено много записей из реестра. Проверим реестр. Обратите внимание что папку USBSTOR нету.

Ну и на по следок посмотрим программой USBDeview, тоже все чисто.

Вот уважаемые читатели где хранится данные о ваших флешках, так что если, что то нужно удалить то начинайте.

Для резервирования интернет соединения я использую 3G модем Huawei E173, подключенный в USB порт маршрутизатора. Соединение через него всегда поднято в режиме горячего резерва (для переключения на модем достаточно сбросить default route с основного соединения). Но есть одна проблема - периодически модем "зависает" и соединение теряется.

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

Xhci_hcd 0000:02:00.0: WARN Event TRB for slot 1 ep 4 with no TDs queued? xhci_hcd 0000:02:00.0: WARN Event TRB for slot 1 ep 4 with no TDs queued? xhci_hcd 0000:02:00.0: WARN Event TRB for slot 1 ep 4 with no TDs queued? xhci_hcd 0000:02:00.0: ERROR Transfer event TRB DMA ptr not part of current TD xhci_hcd 0000:02:00.0: ERROR Transfer event TRB DMA ptr not part of current TD xhci_hcd 0000:02:00.0: ERROR Transfer event TRB DMA ptr not part of current TD
Перезапуск pppd ничего не дал, похоже модем не отвечает ни на одну команду.

Apr 24 10:02:11 inet chat: abort on (\nBUSY\r) Apr 24 10:02:11 inet chat: abort on (\nERROR\r) Apr 24 10:02:11 inet chat: abort on (\nNO ANSWER\r) Apr 24 10:02:11 inet chat: abort on (\nNO CARRIER\r) Apr 24 10:02:11 inet chat: abort on (\nNO DIALTONE\r) Apr 24 10:02:11 inet chat: abort on (\nRINGING\r\n\r\nRINGING\r) Apr 24 10:02:11 inet chat: send (^MAT^M) Apr 24 10:02:11 inet chat: timeout set to 12 seconds Apr 24 10:02:11 inet chat: expect (OK) Apr 24 10:02:23 inet chat: alarm Apr 24 10:02:23 inet chat: Failed
Попытки переинициализировать модем программно не увенчались успехом, поскольку его устройство (/dev/ttyUSB0) не отвечает на AT команды. Остается только отключить и снова включить модем в порт. Но сначала решил попробовать метод, на который наткнулся недавно в интернете.

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

$ wget https://gist.githubusercontent.com/x2q/5124616/raw -O usbreset.c $ gcc -Wall -static -o usbreset usbreset.c $ sudo install -o root -g root -m 0755 usbreset /usr/local/sbin $ lsusb | grep Huawei Bus 001 Device 002: ID 12d1:1001 Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem $ sudo usbreset /dev/bus/usb/001/002 Error in ioctl: No such device
Несмотря на ошибку в логе появились записи, свидетельствующие о "перезагрузке" модема.

$ dmesg | tail usb 1-6: New USB device strings: Mfr=3, Product=2, SerialNumber=0 usb 1-6: Product: HUAWEI Mobile usb 1-6: Manufacturer: HUAWEI Technology usb 1-6: configuration #1 chosen from 1 choice option 1-6:1.0: GSM modem (1-port) converter detected usb 1-6: GSM modem (1-port) converter now attached to ttyUSB0 option 1-6:1.1: GSM modem (1-port) converter detected usb 1-6: GSM modem (1-port) converter now attached to ttyUSB1 option 1-6:1.2: GSM modem (1-port) converter detected usb 1-6: GSM modem (1-port) converter now attached to ttyUSB2
Попробуем подключиться к нему и выполнить несколько AT команд.

Программа может сбросить канал с помощью регистра сброса каналов. Конфигурация канала и маркер данных остаются без изменений. Только банки и биты статусов возвращаются в свое изначальное состояние.

Для полного сброса канала программа должна запретить, а потом разрешить канал.

23.11. Доступ к данным каналов

Для записи или чтения из FIFO канала ЦПУ должно выбрать номер канала с помощью регистра UPNUM и записать или считать данные из регистра UPDATX.

23.12. Организация управляющего канала

Управляющая передача состоит из трех фаз:

  • SETUP,
  • данные (IN или OUT),
  • статус (OUT or IN).

Программное обеспечение должно менять маркер после каждой фазы. Изначально маркеры данных устанавливаются следующим образом (только для управляющих каналов):

  • SETUP: Data0,
  • OUT: Data1,
  • IN: Data1 (ожидание изменения маркера данных).

23.13. Управление OUT каналами

Первоначально канал должен быть сконфигурирован и не остановлен. Заметьте: если программное обеспечение переключается в режим приостановки (сброс SOFEN) даже если банк готов к отправке, USB контроллер автоматически выйдет из приостановленного состояния и банк будет отправлен.

Бит TXOUT устанавливается аппаратно, когда текущий банк освобождается. Это приводит к прерыванию, если установлен бит TXOUTE. Бит FIFOCON устанавливается в тоже время. ЦПУ записывает данные в FIFO и сбрасывает бит FIFOCON для разрешения USB контроллеру послать данные. Если OUT канал состоит из нескольких банков, то он также переключается к следующему банку данных. Биты TXOUT and FIFOCON изменяются в соответствии с состоянием нового банка.


23.14. Управление IN каналами

Первоначально канал должен быть сконфигурирован. Перед запросом хостом данных у устройства, программа должна задать режим IN передач, используя бит INMODE:

  • INMODE = 0. В расчет принимается регистр INRQX. Хост контроллер осуществляет запрос данных (INRQX+1) раз через выбранный канал перед остановкой канала. Этот режим позволяет избежать лишних запросов данных через канал.
  • INMODE = 1. USB контроллер постоянно посылает IN запрос данных пока программа не остановит канал.

Запрос данных начинается после сброса бита PFREEZE. Каждый раз, когда текущий банк заполняется, устанавливаются биты RXIN и FIFOCON. Программа может подтвердить получение прерывания сбросив бит RXIN. Программа считывает данные и сбрасывает бит FIFOCON для освобождения текущего банка. Если IN канал состоит из нескольких каналов, сброс FIFOCON приведет к переключению на следующий банк. Биты RXIN and FIFOCON изменяются в соответствии с состоянием нового банка.

23.14.1. Ошибка CRC (только для изохронных каналов)

CRC ошибка может возникнуть при приеме данных, если USB контроллер получает поврежденный пакет. В этой ситуации возникает прерывание STALLEDI/CRCERRI. Это не предотвращает возникновения прерывания RXINI.

Устройство (модем), которое действительно пошло. Иногда он отлично работает, но в других случаях он отказывается подключаться. Единственное решение, которое я нашел, чтобы исправить его, когда оно попадает в плохое состояние, – это физически отключить устройство и подключить его обратно. Однако у меня не всегда есть физический доступ к компьютеру, в который он подключен, M ищет способ сделать это через командную строку.

Эта статья предполагает запуск:

$ sudo modprobe -w -r usb_storage; sudo modprobe usb_storage

Однако я получаю «неизвестный вариант -w». Эта слегка измененная команда:

$ sudo modprobe -r usb_storage

Ошибка с сообщением FATAL: используется модуль usb_storage. Если я пытаюсь убить -9 процессов, отмеченных перед запуском, они отказываются умирать (я думаю, потому что они сильно привязаны к ядру).

Кто-нибудь знает, как это сделать?

ПРИМЕЧАНИЕ. Я перекрестно разместил это на сервере, поскольку я не знал, что было бы более подходящим. Я удалю и / или свяжусь с тем, на кого ответят в первую очередь.

5 Solutions collect form web for “Жесткий сброс USB в Ubuntu 10.04”

У меня Ubuntu 14.04.4. Я понятия не имею, работает ли это в 10.04. Я тестировал его на Cyborg Rumble Pad (и универсальном USB-накопителе).

Сразу после подключения устройства:

Dmesg | grep usb | tail -n 20

Я получаю (возможно, между прочим):

[ 2875.790610] usb 2-1.2: new full-speed USB device number 7 using ehci-pci [ 2875.887485] usb 2-1.2: New USB device found, idVendor=0738, idProduct=cb02 [ 2875.887489] usb 2-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 2875.887490] usb 2-1.2: Product: Cyborg Rumble Pad - PC/Xbox 360 [ 2875.887492] usb 2-1.2: Manufacturer: Saitek [ 2875.887493] usb 2-1.2: SerialNumber: 0CFE6B97

2-1.2 часть – строка 2-1.2 . Он определяет порт USB. Хорошая новость заключается в том, что он не должен меняться, если я не подключу устройство к другому порту, поэтому мне нужно получить строку только один раз.

Затем я иду в нужное место:

Cd /sys/bus/usb/drivers/usb

И вызывать как root (например, sudo bash):

Echo 2-1.2 > unbind ; sleep 3 ; echo 2-1.2 > bind

В результате мой Rumble Pad повторно инициализирует себя, как если бы он был включен и снова. Я также тестировал свой USB-накопитель. Он (его светодиод) ведет себя так, как будто ничего не произошло, но мой KDE реагирует и спрашивает, хочу ли я монтировать.

Все время питание устройства. Этот метод не будет работать, если ваш модем сбрасывается из-за отсутствия питания.

Вы просто ищете устройство, которое хотите сбросить (lsusb):

# lsusb Bus 005 Device 004: ID 0951:1642 Kingston Technology DT101 G2

А потом:

# usbreset /dev/bus/usb/005/004

Почему вы пытаетесь выгрузить модуль usb_storage , когда ваше устройство является модемом USB?

Sudo lshw и найдите запись для вашего USB-модема. Должна быть configuration: строка вроде этого (ваш драйвер будет отличаться, очевидно):

Configuration: ... driver=iwlagn ...

Убедитесь, что модуль загружен (подставляя правильное имя драйвера):

Lsmod | grep iwlagn

То просто выполните:

Sudo modprobe -r iwlagn && sleep 2 && sudo modprobe iwlagn

Мне нравится sleep там на всякий случай, когда устройству требуется некоторое время, чтобы отключить питание.

Это решение «выход», но это может сработать.

  • Получите второй, старый, не очень мощный ПК. Установите Debian на него. Установите на нем usbip .
  • Затем установите usbip на свой сервер.
  • Подключите модем к второму ПК. Настройте usbip на обеих машинах, чтобы модем, подключенный к второму ПК, доступен через VHCI с сервера.
  • Настройте ssh на втором ПК или на других средствах, которые вы можете удалять в него и выдавать команды.
  • Когда устройство выходит из строя, войдите в систему и перезагрузите второй компьютер с помощью команды reboot , а затем, когда он вернется, снова подключитесь к любым средствам, usbip предоставляет usbip (я никогда не использовал usbip). Это должно привести к сбросу устройства. Вероятно, вы могли бы написать это.

Самый простой способ отключить произвольные USB-устройства из командной строки (т. Е. С реальным циклом питания на USB):

  1. Купить 4-портовый USB-концентратор DELOCK 87445 (google для )
  2. Эта аппаратная часть совместима с hub-ctrl.c (google для ). Поэтому произвольные порты могут быть включены / выключены. Дополнительную информацию см. Также по адресу: .