Программа может сбросить канал с помощью регистра сброса каналов. Конфигурация канала и маркер данных остаются без изменений. Только банки и биты статусов возвращаются в свое изначальное состояние.
Для полного сброса канала программа должна запретить, а потом разрешить канал.
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.
Если вам потребовалась загрузочная (хотя необязательно) USB флешка для сброса пароля Windows 7, 8 или Windows 10, в этой инструкции вы найдете 2 способа сделать такой накопитель и информацию о том, как им пользоваться (а также некоторые ограничения, присущие каждому из них). Отдельное руководство: (с помощью простой загрузочной флешки с ОС).
Отмечу также, что у меня описан и третий вариант - установочная флешка или диск с дистрибутивом Windows также может быть использован для сброса пароля на уже установленной системе, о чем я писал в статье (должен подойти для всех последних версий ОС, начиная с Windows 7).
Утилитой Online NT Password & Registry Editor я впервые успешно воспользовался около 10 лет назад и с тех пор она не потеряла актуальности, не забывая регулярно обновляться.
Данная бесплатная программа может быть помещена на загрузочную флешку или диск и использоваться для сброса пароля локальной учетной записи (и не только) Windows 7, 8, 8.1 и Windows 10 (а также предыдущих версий ОС от Microsoft). Если же у вас одна из последних версий и при этом используется не локальный, а онлайн аккаунт Microsoft для входа, с помощью Online NT Password & Registry Editor вы все равно сможете получить доступ к компьютеру обходным путем (тоже покажу).
Внимание: сброс пароля на системах, где используется шифрование файлов EFS приведет к тому, что эти файлы станут недоступны для чтения.
А теперь руководство по созданию загрузочной флешки для сброса пароля и инструкция по ее использованию.
Примечание: если по какой-то причине данный способ не сработал, то вы можете загрузить ISO образ данной утилиты и (используется загрузчик SysLinux).
Итак, USB накопитель готов, подключите его к компьютеру, где нужно сбросить пароль или же получить доступ к системе другим способом (если используется учетная запись Microsoft), поставьте и приступите к активным действиям.
После загрузки, на первом экране вам будет предложено выбрать опции (в большинстве случаев можно просто нажать Enter, ничего не выбирая. Если в этом случае возникают проблемы, то используйте одну из опций, путем ввода указанных параметров, например, boot irqpoll (после этого - нажатие Enter), если возникают ошибки, связанные с IRQ.
На втором экране будет показан список разделов, в которых были обнаружены установленные Windows. Вам требуется указать номер этого раздела (есть и другие опции, в детали которых тут вдаваться не буду, тот кто ими пользуется и без меня знает, зачем. А обычным пользователям они не понадобятся).
После того, как программа убедится в наличии необходимых файлов реестра в выбранном Windows и возможности операций записи на жесткий диск, вам будет предложены несколько вариантов, из которых нас интересует Password reset (сброс пароля), который и выбираем путем ввода 1 (единицы).
Со следующего экрана начинается самое интересное. Вы увидите таблицу пользователей, являются ли они администраторами, а также заблокированы или задействованы эти учетные записи. В левой части списка указаны номера RID каждого пользователя. Выбираем нужного путем ввода соответствующего номера и нажатием Enter.
Следующий шаг позволяет выбрать нам несколько действий при вводе соответствующей цифры:
- Сбросить пароль выбранного пользователя
- Разблокировать и задействовать пользователя (Как раз эта возможность позволяет на Windows 8 и 10 с аккаунтом Microsoft получить доступ к компьютеру - просто на предыдущем этапе выберите скрытый аккаунт Администратора и включите его с помощью данного пункта).
- Сделать выбранного пользователя администратором.
Если ничего не выбирать, то по нажатию Enter вы вернетесь к выбору пользователей. Итак, для сброса пароля Windows выбираем 1 и нажимаем Enter.
Вы увидите информацию о том, что пароль был сброшен и снова то же меню, что вы видели на предыдущем шаге. Для выхода нажимаем Enter, при следующем выборе - q , и, наконец, для сохранения сделанных изменений вводим y на запрос.
На этом сброс пароля Windows с помощью загрузочной флешки Online NT Password & Registry Editor завершен, вы можете извлечь ее из компьютера и нажать Ctrl+Alt+Del для перезагрузки (и поставить загрузку с жесткого диска в БИОС).
Для резервирования интернет соединения я использую 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 команд.
Практически каждый пользователь подключает к компьютеру телефон, планшет, ридер, флешки и внешние HDD. При работе с этими устройствами ОС Windows устанавливает их драйвера. По окончании эксплуатации они не удаляются с компьютера (то есть постепенно накапливаются) и так же, как временные файлы, ненужные записи в реестре захламляют систему.
Вдобавок к этому, если устройства отсоединяются от USB порта некорректно (выдёргиваются без программного отключения функцией «Извлечь»), то установленные драйвера не только остаются в системе, но и ещё продолжают функционировать. Из-за чего нередко становятся причиной программного конфликта в процессе подключения другого USB-устройства (система «не видит» девайс, выдаёт ошибки, виснет).
Данная статья поможет вам избежать всех этих неприятностей: расскажет, как удалить драйвер неиспользуемого USB-накопителя или гаджета из операционной системы полностью, как автоматически деинсталлировать все USB-драйвера.
Удаление штатными средствами
Поверхностная очистка
1. Откройте меню «Пуск».
2. Клацните правой кнопкой мышки в появившейся панели «Компьютер». В перечне команд выберите «Свойства».
3. В колонке слева клацните «Диспетчер устройств».
4. В окне диспетчера, в горизонтальном меню, откройте раздел «Вид» и нажмите «Показать скрытые устройства».
5. Откройте директорию «Контроллеры USB».
6. Удалите старый или неиспользуемый драйвер: клацните по его названию правой кнопкой → нажмите «Удалить».
Глубокая очистка
1. Удерживая клавишу «Win», нажмите клавишу «Pause/Break». Или откройте: Пуск → правой кнопкой «Компьютер» → Свойства.
2. В открывшемся окне, в левой панели, кликните «Дополнительные параметры системы».
3. На вкладке «Дополнительно» нажмите кнопку «Переменные среды».
4. В верхнем блоке щёлкните «Создать».
5. В окне «Новая пользовательская переменная»:
- в строке «Имя переменной» введите - devmgr_show_nonpresent_devices;
- в «Значение переменной» - 1.
6. Нажмите «OK» в панели переменной и в окне «Переменные среды».
7. Вернитесь в окно свойств системы (Win+Break) и клацните «Диспетчер устройств».
8. В диспетчере откройте: Вид → Показать скрытые…
9. Нажмите кнопку «Обновить конфигурацию… » (последняя в панели).
10. Иконки неиспользуемых драйверов в диспетчере окрашены в серый цвет (то есть можно удалить этот драйвер). Поочерёдно откройте следующие директории и уберите ненужные элементы (клик правой кнопкой по названию → Удалить):
Драйверы несамонастраиваемых устройств
Совет! В этой директории вы также можете удалить старые драйвера, установленные программами, которые уже деинсталлированы из Windows (например, пакет фаервола Comodo).
В этом разделе устройств отображаются проинсталлированные драйвера флешек, ридеров, винчестеров. Прозрачные иконки объектов говорят о том, что они не используются (не подключены). А значит, от них можно смело избавляться.
11. По завершении очистки перезагрузите ПК.
Автоматическое удаление утилитой USBDeview
1. Скопируйте в адресную строку браузера эту ссылку - http://www.nirsoft.net/utils/usb_devices_view.html#DownloadLinks (официальный сайт утилиты). А затем нажмите «ENTER».
2. На открывшейся странице:
- если у вас 32-разрядная система, клацните первую ссылку «Download USBDeview»;
- если 64-x, вторую - «… for x64 systems».
3. Распакуйте скачанный архив: клацните по нему правой кнопкой → выберите «Извлечь всё… » → в окне «Распаковка… » нажмите «Извлечь».
4. Откройте распакованную папку. Запустите с правами администратора исполняемый файл USBDeview.
5. В окне утилиты отображается список всех установленных в систему драйверов. Красными «фишками» отмечены отключенные элементы.
Чтобы убрать драйвер из Windows, выделите его кликом мышки, а затем нажмите иконку «Корзина» в панели USBDeview. Или щёлкните по нему правой кнопкой и выберите в контекстном меню «Uninstall Selected Devices».
Примечание. Кроме функции удаления, USBDeview предоставляет возможность пользователю отключить/включить драйвер, посмотреть его свойства.
Удаление всех драйверов USB-устройств
Глобальную очистку драйверов можно выполнить утилитой DriveCleanup (ссылка для скачивания - http://uwe-sieber.de/files/drivecleanup.zip).
1. Распакуйте загруженный на компьютер архив.
2. Если у вас Windows 32-разрядная, откройте папку «Win32», если 64-х, соответственно, «x64».
3. Запустите от имени администратора файл «DriveCleanup».
После запуска утилита автоматически выполнит очистку. По завершении процедуры (когда в окне консоли появится сообщение «Press any key») нажмите любую клавишу.
Успехов в настройке системы!