ROS USB — различия между версиями

Материал из Русский WINE
Перейти к: навигация, поиск
м
(USB Core)
 
(не показано 5 промежуточных версии этого же участника)
Строка 25: Строка 25:
 
**OHCI (Open Host Controller Interface Standard) - Все типы передачи реализованы (основная, iso, управления, прерывания)
 
**OHCI (Open Host Controller Interface Standard) - Все типы передачи реализованы (основная, iso, управления, прерывания)
 
**UHCI (Universal Host Controller Interface Standard) - полностью отсутствует. Вполне реализуема, если использовать OHCI-драйвер в качестве основы и драйвер Haiku.
 
**UHCI (Universal Host Controller Interface Standard) - полностью отсутствует. Вполне реализуема, если использовать OHCI-драйвер в качестве основы и драйвер Haiku.
*EHCI (Enhanced Host Controller Interface) - Реализованы два типа передачи: основной и управления. Прерывания и изохронные переводы не осуществляются.
+
*EHCI (Enhanced Host Controller Interface) (USB 2.0)- Реализованы два типа передачи: основной и управления. Прерывания и изохронные переводы не осуществляются.
 
*USBHUB - драйвер для управления портом и концентраторами. Статус реализации неизвестен. Из-за нереализованных типов передачи, устройства, которые используют эти типы будут недоступны.
 
*USBHUB - драйвер для управления портом и концентраторами. Статус реализации неизвестен. Из-за нереализованных типов передачи, устройства, которые используют эти типы будут недоступны.
  
Строка 43: Строка 43:
 
*Базовая поддержка клавиатуры почти реализована.
 
*Базовая поддержка клавиатуры почти реализована.
 
*Для поддержки USB Накопителей необходима доработка драйверов '''mountmgr'''/'''partmgr'''. Так же необходимы '''mountvol''' и многие другие компоненты, отсутствующие в  PnP.
 
*Для поддержки USB Накопителей необходима доработка драйверов '''mountmgr'''/'''partmgr'''. Так же необходимы '''mountvol''' и многие другие компоненты, отсутствующие в  PnP.
 +
 +
===Отсутствующая поддержка===
 +
*поддержка USB Audio – будет реализована в драйвере '''''usbaudio.sys'''''
 +
*поддержка USB Printing – будет реализована в драйвере '''''usbprint.sys'''''
 +
*поддержка USB Serial – будет реализована в драйвере '''''usbser.sys'''''
 +
 +
== Работа над USB ==
 +
*[[ROS USB Vgal|Работа Вадима Галянта над USB]]
 +
*[http://code.reactos.org/changelog/reactos?cs=72725 Начальный коммит USB-audio]
  
 
==См. также==
 
==См. также==

Текущая версия на 11:27, 2 июня 2019

USB-стек в ReactOS

Данная статья частично является переводом официальной вики. Последнее обновление 08-12-2015


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

ПРИМЕЧАНИЕ: Существует проблема при загрузке ReactOS с жесткого диска/LiveCD при подключенной флешке. Любое подключенное USB-устройство может вызвать критическую ошибку. Во избежание этого отключите все USB-устройства при загрузке системы.

Обзор

Основной целью является написание USB-стека, который будет:

  • использовать стандарт USB v1.1-2.0
  • использовать API WDM (NT 5)
  • совместим со всеми USB-устройствами и драйверами (которые придерживаются стандарта)

Цели

  • Первая цель: USB HID (human input devices) и поддержка USB-накопителей.
  • Вторая цель: поддержка аудио-устройств и др.
  • После: тестирование и отладка.

Из-за сложности и размера работы, точная дата завершения неизвестна.

Статус

USB Core

  • Есть две спецификации стандарта USB 1.1. Их используют мыши, клавиатуры и др.:
    • OHCI (Open Host Controller Interface Standard) - Все типы передачи реализованы (основная, iso, управления, прерывания)
    • UHCI (Universal Host Controller Interface Standard) - полностью отсутствует. Вполне реализуема, если использовать OHCI-драйвер в качестве основы и драйвер Haiku.
  • EHCI (Enhanced Host Controller Interface) (USB 2.0)- Реализованы два типа передачи: основной и управления. Прерывания и изохронные переводы не осуществляются.
  • USBHUB - драйвер для управления портом и концентраторами. Статус реализации неизвестен. Из-за нереализованных типов передачи, устройства, которые используют эти типы будут недоступны.

Поддержка USB-накопителей

Поддержка USB-накопителей реализована в драйвере USBSTOR и полностью работает. Драйвер проверен в WinXP + USBEHCI + USBSTOR. Поддержка USB-накопителей требует контроля передачи информации, осуществляемой в USBEHCI.

Поддержка HID

Фреймворк HID состоит из пяти драйверов:

  • HIDUSB - драйвер интерфейса для шины USB. В настоящее время поддерживаются USB-мыши. Так же реализована базовая поддержка USB-клавиатур.
  • HIDCLASS - драйвер класса для HIDUSB и др. Поддержка мышей и клавиатур будет реализована позже.
  • MOUHID - драйвер мыши для USB HID Standard. Полностью реализован и работает.
  • KBDHID - драйвер клавиатуры для USB HID Standard. Реализован на 90%.
  • HIDPARSE - драйвер для анализа отчетов дескрипторов. Реализован для мышей, для клавиатуры необходима реализация HidParser_TranslateUsage для работы Caps Lock, Num Lock и Scroll Lock.

Что уже работает

  • Поддержка мыши была протестирована в Windows XP с ReactOS-драйверами USBOHCI + HIDUSB + HIDCLASS + MOUHID + HIDPARSE. Стек USB + HID также работает в ReactOS.
  • Базовая поддержка клавиатуры почти реализована.
  • Для поддержки USB Накопителей необходима доработка драйверов mountmgr/partmgr. Так же необходимы mountvol и многие другие компоненты, отсутствующие в PnP.

Отсутствующая поддержка

  • поддержка USB Audio – будет реализована в драйвере usbaudio.sys
  • поддержка USB Printing – будет реализована в драйвере usbprint.sys
  • поддержка USB Serial – будет реализована в драйвере usbser.sys

Работа над USB

См. также

ReactOS
Search.png
Доклады
О ReactOSARWINSSЧеЗа
Информация Новости Выпуски новостейПереводы блоговНовости проектаВидеоReactOS на ХабреUSB от Вадима Галянта
Разработка Руководство по программированиюОтсутствующая функциональностьВетви разработкиКомпоненты системыReactOS и WineПлан работRoadmap ядра by VgalРазработчикиСовместимость с dll WindowsНаиболее значимые изменения за годИспользуемые проектыGoogle Summer of CodeИзвестные проблемы
Порты AMD64ARMXboxPowerPC
Компоненты Файловые системыРежим совместимостиОтчеты об ошибкахПечатьUSBЯдро
Загрузчик Восстановление MBRЗагрузка из GRUBПараметры загрузки
Прочее ARWINSSПриложения в ReactOSОформление ReactOSКоординаторы"Пасхальные яйца"Монетизация
Другое Типы ядерFreeWin95
Помощь
RAM-диск ReactOS по PXEс жесткого диска
Разработка Стиль написания кодаСтандарты RC-файловРабота с документациейВенгерская нотацияGNU Indent • [ Subversion : ветвислияниеиспользование TortoiseSVN ] • Основы переводаОтправка патчей
Репорты Отладка в VirtualBoxОтладка на экранДобавление программы в менеджер приложенийОтправка отчетов
Отладка Com0comGDBKdbgRossym.gdbRoswin.gdbWinDBGРуководство по WinDBGВключение трассировки ядраКоды DPRINTУдалённый отладчик ReactOS
Сборка CMakeRBuildФайлы RBuildАвтоматическое копирование файловСборка MINGW-w64Сборка модулейСреда сборки
Тестирование VirtualBoxVMwareQEMUHyper-VНеобходимый объём дискаПеренос файлов на виртуальный дискУстановка ReactOSУстановка драйверов
Сеть Общие папкиSambaNFS
Игры Установка DirectPlay
Обновление ReactOSЗагрузочная флешкаЧем можно помочь проектуСоздание нового пользователяЗвук и сеть в VirtualBoxСъемка и публикация видеоIRC-каналСторонние компонентыFAQReactOS как рабочая станцияReactOS и UEFI
Обзоры ОболочкаNTVDMWOWCommunity EditionИстория сайтаReactOS ServerКриптографияПО времен XP