NDISwrapper


De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

NDISwrapper es un contenedor de controladores de software gratuito que permite el uso de controladores de dispositivos de red de Windows XP (para dispositivos como tarjetas PCI , módems USB y enrutadores ) en sistemas operativos Linux. NDISwrapper funciona implementando el kernel de Windows y las API de NDIS y vinculando dinámicamente los controladores de red de Windows a esta implementación. Como resultado, solo funciona en sistemas basados ​​en las arquitecturas de conjuntos de instrucciones compatibles con Windows, a saber, IA-32 y x86-64 .

Los controladores nativos para algunos adaptadores de red no están disponibles en Linux, ya que algunos fabricantes mantienen interfaces propietarias y no escriben controladores multiplataforma. NDISwrapper permite el uso de controladores de Windows, que están disponibles para prácticamente todos los adaptadores de red de PC modernos.

Usar

Hay tres pasos: crear un controlador de Linux, instalarlo y usarlo. NDISwrapper se compone de dos partes principales, una herramienta de línea de comandos que se usa en el momento de la instalación y un subsistema de Windows que se usa cuando una aplicación llama al subsistema Wi-Fi.

Como el resultado de una instalación de NDISwrapper debería ser algún tipo de controlador de Linux para poder trabajar con aplicaciones de Linux, la primera acción que realiza el usuario es "compilar" un par o más de archivos de Windows, y la versión de NDISwrapper del DDK de Windows en un módulo del kernel de Linux. Esto se hace con una herramienta llamada "ndiswrapper". El controlador de Linux resultante se instala (a menudo manualmente) en el sistema operativo. Una aplicación de Linux puede enviar una solicitud a este controlador de Linux que automáticamente hace las adaptaciones necesarias para llamar a su, ahora, controlador interno de Windows y DDK.

Para lograr esta "compilación", NDISwrapper requiere al menos los archivos ".inf" y ".sys" que se suministran invariablemente como partes del controlador de Windows. Por ejemplo, si el controlador se llama "mydriver", con los archivos mydriver.inf y mydriver.sys y vendorid: productid 0000: 0000, NDISwrapper instala el controlador en / etc / ndiswrapper / mydriver /. Este directorio contiene tres archivos:

  • 0000: 0000.conf, que contiene información extraída del archivo inf
  • mydriver.inf (el archivo inf original)
  • mydriver.sys (el archivo del controlador)

Fronteras gráficas

Interfaz gráfica Ndisgtk

Hay interfaces gráficas para NDISwrapper, como Ndisgtk y NdisConfig, que permiten que NDISwrapper se instale utilizando una interfaz gráfica de usuario en lugar de comandos de consola.

Arquitectura

NDISwrapper permite que un sistema similar a Unix utilice controladores de Windows de tipo NDIS y WIFI. Fue útil en un momento en el que no había controladores Wi-Fi de Linux para tarjetas Wi-Fi comunes. Está compuesto por:

  • Un controlador NDIS, que es una especie de superposición para los controladores de dispositivos Ethernet .
  • Un administrador de Wi-Fi, para controlar la radio y la parte de seguridad de la tarjeta Wi-Fi. Expone una interfaz de "extensión inalámbrica".
  • Un administrador de USB y un administrador de PnP para hacer posible el uso de una tarjeta Wi-Fi incorporada en memorias USB. El administrador de USB se compone de dos partes, primero una pequeña implementación de USBD (pila USB) y luego un controlador USB simple del modelo de controlador de Windows (WDM) que a su vez se compone de dos partes: La parte frontal recibirá llamadas de la pila USB NDISwrapper (en hecho de llamadas provenientes del controlador original de Windows que normalmente estaban destinadas a la pila USB de Windows) y la parte posterior usa la pila USB de Linux.
  • Un Ntoskrnl mínimo que simula el DDK para:
    • administrar llamadas desde el controlador de Windows.
    • administrar IRP al controlador de Windows (WDM solo por el momento)
    • gestionar los controladores de filtro de una manera simplista
    • cargando / descargando controladores de Windows
  • Un contenedor que convierte llamadas de Linux a Windows y viceversa, también gestiona resultados y códigos de error

Cómo funciona

Ndiswrapper utiliza archivos INF de Windows . [1]

Cuando una aplicación de Linux llama a un dispositivo que está registrado en Linux como un dispositivo NDISwrapper, NDISwrapper determina qué controlador de Windows es el objetivo. Luego convierte la consulta de Linux al lenguaje de Windows, llama al controlador de Windows, espera el resultado y lo traduce al lenguaje de Linux y luego envía el resultado a la aplicación de Linux. Es posible desde un controlador de Linux (NDISwrapper es un controlador de Linux) llamar a un controlador de Windows porque ambos se ejecutan en el mismo espacio de direcciones (el mismo que el kernel de Linux). Si el controlador de Windows está compuesto por controladores en capas (por ejemplo, uno para Ethernet por encima de uno para USB), se llama al controlador de capa superior, y esta capa superior creará nuevas llamadas (IRP en el lenguaje de Windows) llamando al "mini ntoskrnl" . Entonces, el "mini ntoskrnl"Debe saber que existen otros controladores, debe haberlos registrado en su base de datos interna a priori leyendo los archivos ".inf" de Windows.

Programas similares

  • DriverLoader es una herramienta comercial producida por Linuxant para Linux que parece proporcionar la misma funcionalidad que NDISwrapper.
  • Independientemente, pero aproximadamente simultáneamente con el proyecto NDISwrapper, Bill Paul de Wind River Systems desarrolló un sistema similar, conocido como Project Evil o The NDISulator , para FreeBSD . [2] Desde entonces ha sido portado a DragonFly BSD [3] y NetBSD . [4]

Limitaciones

  • NDISwrapper se basa en las "extensiones inalámbricas" de edad avanzada para permitir que las aplicaciones accedan a Wi-Fi.
  • Como NDISwrapper se basa en controladores de Windows; solo admite arquitecturas i386 y x86_64. [5]
  • NDISwrapper aún no implementa NDIS 6 (versión de Windows Vista), lo que limita los controladores a Windows XP. [6] En octubre de 2013 , se ha estado desarrollando una rama de código en el sitio del proyecto desde 2006, [7] pero una solicitud de función de 2009 se ha dejado sin asignar. [8]
Si bien no es un problema importante para la arquitectura x86 debido a la popularidad de Windows XP x86-32, muchos proveedores optan por hacer versiones de controladores de 64 bits solo para Windows Vista, lo que significa que los sistemas Linux que utilizan la arquitectura x86-64 no pueden para usar tales dispositivos de red (no pueden usar XP x86-32 NDIS5 porque son sistemas de 64 bits ni controladores NDIS6 de 64 bits porque no pueden usar NDIS6). Todavía es posible utilizar controladores de Windows XP de 64 bits que implementan NDIS5, [9] sin embargo, hay menos controladores disponibles para xp64 (NDIS5 / 64 bits) que para XP32 (NDIS5 / 32 bits).
  • Desde 2006, la mayoría de los controladores de Windows son compatibles con Windows Driver Foundation (WDF) que NDISWrapper no puede usar. Hace que NDISWrapper sea obsoleto, ya que solo es compatible con el marco del controlador WDM anterior.

Ver también

  • Lista de proyectos de firmware de enrutadores inalámbricos
  • cabextract
  • DebWRT
  • Archivo INF
  • LibreWRT
  • Kernel unificado de Linux
  • ReactOS

Referencias

  1. ^ 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 /
  2. ^ Bill Paul (24 de enero de 2004). "Project Evil: The Evil Continues" . freebsd-current (lista de correo). Archivado desde el original el 2 de julio de 2017 . Consultado el 9 de septiembre de 2014 .
  3. ^ "sys / dev / netif / ndis /" . Referencia cruzada BSD del superusuario . DragonFly BSD . 2018-12-08 . Consultado el 4 de marzo de 2019 .
  4. ^ NetBSD-SoC: Portar el controlador de red NDIS de FreeBSD a NetBSD
  5. ^ "Sourceforge.net: Preguntas frecuentes - ndiswrapper" . ndiswrapper.sourceforge.net. 2010-01-20 . Consultado el 5 de agosto de 2011 .
  6. ^ "SourceForge.net: preguntas frecuentes sobre ndiswrapper" . Ndiswrapper.sourceforge.net. 2009-07-12 . Consultado el 21 de septiembre de 2009 .
  7. ^ "SourceForge.net: rama de código ndisv6" . Ndiswrapper.sourceforge.net. 2013-11-01 . Consultado el 1 de noviembre de 2013 .
  8. ^ "SourceForge.net: solicitud de función ndiswrapper" . Ndiswrapper.sourceforge.net. 2009-04-12 . Consultado el 28 de julio de 2013 .
  9. ^ http://sourceforge.net/projects/ndiswrapper/forums/forum/323168/topic/3755985

enlaces externos

  • Wiki de NDISwrapper
  • Área de descarga de NDISwrapper
  • Instalación de NDISwrapper : un video fácil de seguir que muestra cómo instalar NDISwrapper y comenzar a utilizarlo.
  • Ndisgtk
  • NdisConfig
  • Project Evil: The Evil Continues , 2004-01-24, Bill Paul en una lista de correo de FreeBSD
  • Too Evil, Too Furious , 2005-04-25, Bill Paul en una lista de correo de FreeBSD
  • Puerto del controlador NetBSD NDIS
Obtenido de " https://en.wikipedia.org/w/index.php?title=NDISwrapper&oldid=1000136454 "