NDISwrapper - NDISwrapper
Эта статья поднимает множество проблем. Пожалуйста помоги Улучши это или обсудите эти вопросы на страница обсуждения. (Узнайте, как и когда удалить эти сообщения-шаблоны) (Узнайте, как и когда удалить этот шаблон сообщения)
|
ndiswrapper командная строка | |
Разработчики) | Ян Кишка, Гиридхар Пеммасани, Понтус Фукс |
---|---|
Стабильный выпуск | 1.63 / 3 мая 2020 г. |
Операционная система | Linux на IA-32 и x86-64 только архитектуры |
Тип | Оболочка драйвера |
Лицензия | GNU GPL |
Интернет сайт | Вики по NDISwrapper, Область загрузки NDISwrapper |
NDISwrapper это бесплатно программное обеспечение оболочка драйвера что позволяет использовать Windows XP сетевое устройство драйверы (для таких устройств как Карты PCI, USB-модемы, и маршрутизаторы ) в операционных системах Linux. NDISwrapper работает за счет реализации Windows ядро и NDIS API и динамическое связывание сетевых драйверов Windows с этой реализацией. В результате он работает только в системах, основанных на архитектуры наборов команд поддерживается Windows, а именно IA-32 и x86-64.
Собственные драйверы для некоторых сетевых адаптеров недоступны в Linux, поскольку некоторые производители поддерживают проприетарные интерфейсы и не пишут кроссплатформенные драйверы. NDISwrapper позволяет использовать драйверы Windows, которые доступны практически для всех современных сетевых адаптеров ПК.
Использовать
Есть три шага: создание драйвера Linux, его установка и использование. NDISwrapper состоит из двух основных частей: инструмента командной строки, используемого во время установки, и подсистемы Windows, используемой, когда приложение вызывает подсистему Wi-Fi.
Поскольку результатом установки NDISwrapper должен стать какой-то драйвер Linux для работы с приложениями Linux, первое действие, которое делает пользователь, - это «скомпилировать» пару или более файлов Windows, а версию Windows DDK от NDISwrapper в модуль ядра Linux. Это делается с помощью инструмента ndiswrapper. Полученный драйвер linux затем устанавливается (часто вручную) в ОС. Затем приложение Linux может отправить запрос этому драйверу Linux, который автоматически выполнит необходимые настройки для вызова своего - теперь - внутреннего драйвера Windows и DDK.
Для достижения этой «компиляции» NDISwrapper требует, по крайней мере, файлов «.inf» и «.sys», неизменно поставляемых как части драйвера Windows. Например, если драйвер называется «mydriver» с файлами mydriver.inf и mydriver.sys и vendorid: productid 0000: 0000, то NDISwrapper устанавливает драйвер в / etc / ndiswrapper / mydriver /. Этот каталог содержит три файла:
- 0000: 0000.conf, который содержит информацию, извлеченную из файла inf
- mydriver.inf (исходный файл inf)
- mydriver.sys (файл драйвера)
Графические интерфейсы
Существуют графические интерфейсы для NDISwrapper, такие как Ndisgtk и NdisConfig, которые позволяют устанавливать NDISwrapper с помощью графический интерфейс пользователя а не консольные команды.
Архитектура
NDISwrapper позволяет Unix-подобной системе использовать драйверы Windows типа NDIS и WIFI. Это было полезно в то время, когда не было драйверов Wi-Fi Linux для обычных карт Wi-Fi. Он состоит из:
- Драйвер NDIS, который является своего рода оверлеем для Ethernet драйверы устройств.
- Менеджер Wi-Fi для управления радио и защитной частью карты Wi-Fi. Он предоставляет интерфейс «беспроводного расширения».
- Диспетчер USB и диспетчер PnP, чтобы можно было использовать карту Wi-Fi, встроенную в USB-накопители. Диспетчер USB состоит из двух частей: сначала крошечной реализации USBD (стек USB), а затем простой Модель драйвера Windows (WDM) USB-драйвер, который состоит из двух частей: передняя часть будет принимать вызовы из стека USB NDISwrapper (фактически от вызовов, поступающих из исходного драйвера Windows, которые обычно предназначались для перехода в стек Windows USB) и задняя часть использует стек Linux USB.
- Минимальный Ntoskrnl, имитирующий DDK для:
- управление звонками из драйвера Windows.
- управление IRP для драйвера Windows (пока только WDM)
- упрощенное управление драйверами фильтров
- загрузка / выгрузка драйверов Windows
- Обертка, преобразующая вызовы Linux в Windows и наоборот, а также управляющая результатами и кодами ошибок.
Как это устроено
Ndiswrapper использует Windows INF файлы.[1]
Когда приложение Linux вызывает устройство, которое зарегистрировано в Linux как устройство NDISwrapper, NDISwrapper определяет, какой драйвер Windows нацелен. Затем он преобразует запрос Linux в язык Windows, он вызывает драйвер Windows, ожидает результата и переводит его на язык Linux, а затем отправляет результат обратно в приложение Linux. Это возможно из драйвера Linux (NDISwrapper - это драйвер Linux) вызвать драйвер Windows, потому что они оба выполняются в одном адресном пространстве (таком же, как ядро Linux) .Если драйвер Windows состоит из многоуровневых драйверов (например, один для Ethernet выше другого для USB), это драйвер верхнего уровня, который вызывается , и этот верхний уровень будет создавать новые вызовы (IRP на языке Windows), вызывая «mini ntoskrnl». Таким образом, «mini ntoskrnl» должен знать, что существуют другие драйверы, он должен заранее зарегистрировать их в своей внутренней базе данных, прочитав файлы «.inf» Windows.
Похожие программы
- DriverLoader - это коммерческий инструмент, созданный Linuxant для Linux, который, похоже, предоставляет те же функции, что и NDISwrapper.
- Независимо, но примерно одновременно с проектом NDISwrapper, Билл Пол из Системы Wind River разработал аналогичную систему, известную как Проект зла или же NDISulator, за FreeBSD.[2] С тех пор он был перенесен на DragonFly BSD[3] и NetBSD.[4]
Ограничения
- NDISwrapper полагается на устаревшие «беспроводные расширения», чтобы дать приложениям доступ к Wi-Fi.
- Поскольку NDISwrapper полагается на драйверы Windows; он поддерживает только архитектуры i386 и x86_64.[5]
- NDISwrapper не реализует NDIS 6 (версия для Windows Vista), ограничивая драйверы Windows XP.[6] По состоянию на октябрь 2013 г.[Обновить], ветка кода на сайте проекта находится в разработке с 2006 года,[7] но запрос функции от 2009 остался неназначенным.[8]
- Хотя это не является серьезной проблемой для архитектуры x86 из-за популярности Windows XP x86-32, многие поставщики предпочитают делать 64-разрядные версии драйверов только для Windows Vista, что означает, что системы Linux, использующие архитектуру x86-64, не могут использовать такие сетевые устройства (они не могут использовать ни XP x86-32 NDIS5, потому что они 64-битные системы, ни 64-битные драйверы NDIS6, потому что они не могут использовать NDIS6). По-прежнему можно использовать 64-разрядные драйверы Windows XP, которые реализуют NDIS5,[9] однако для xp64 (NDIS5 / 64 бит) доступно меньше драйверов, чем для XP32 (NDIS5 / 32 бит).
- С 2006 года большинство драйверов Windows совместимы с Фонд драйверов Windows (WDF), который NDISWrapper не может использовать. Это делает NDISWrapper устаревшим, поскольку он поддерживает только предыдущую структуру драйверов WDM.
Смотрите также
- Список проектов прошивок беспроводных роутеров
- кабакэкстракт
- DebWRT
- INF файл
- LibreWRT
- Унифицированное ядро Linux
- ReactOS
Рекомендации
- ^ http://www.linuxquestions.org/questions/linux-hardware-18/which-linux-distro-works-out-of-the-box-with-d-link-usb-wifi-dwl-g122-rev- c1-rt73-590849 /
- ^ Билл Пол (24 января 2004 г.). «Проект Зла: Зло продолжается». freebsd-current (Список рассылки). Архивировано из оригинал 2 июля 2017 г.. Получено 9 сентября, 2014.
- ^ "sys / dev / netif / ndis /". Перекрестная ссылка BSD суперпользователя. DragonFly BSD. 2018-12-08. Получено 2019-03-04.
- ^ NetBSD-SoC: перенос сетевого драйвера FreeBSD NDIS на NetBSD
- ^ "Sourceforge.net: FAQ - ndiswrapper". ndiswrapper.sourceforge.net. 2010-01-20. Получено 2011-08-05.
- ^ "SourceForge.net: FAQ по ndiswrapper". Ndiswrapper.sourceforge.net. 2009-07-12. Получено 2009-09-21.
- ^ "SourceForge.net: ветка кода ndisv6". Ndiswrapper.sourceforge.net. 2013-11-01. Получено 2013-11-01.
- ^ "SourceForge.net: запрос функции ndiswrapper". Ndiswrapper.sourceforge.net. 2009-04-12. Получено 2013-07-28.
- ^ http://sourceforge.net/projects/ndiswrapper/forums/forum/323168/topic/3755985
внешняя ссылка
- NDISwrapper вики
- Область загрузки NDISwrapper
- Установка NDISwrapper - Простое видео, показывающее, как установить NDISwrapper и начать с ним работу.
- Ndisgtk
- NdisConfig
- Проект Зло: Зло продолжается, 2004-01-24, Билл Пол на FreeBSD список рассылки
- Слишком зло, слишком яростно, 2005-04-25, Билл Пол на FreeBSD список рассылки
- Порт драйвера NetBSD NDIS