Cada vez hay más drivers o controladores de hardware para las distribuciones GNU/Linux, pero aun puede que haya algunos componentes que carezcan de controladores específicos y no funcionen en nuestro equipo. Existe una herramienta que no es actual, sino que ya lleva tiempo pero quizás no se conozca tanto, que se llama ndiswrapper y sirve para poder instalar drivers de Windows en Linux.
Aunque te parezca raro si no la conocías, es posible hacer esto. Básicamente ndiswrapper transforma los drivers construidos para ser instalados en Windows en un controlador listo para ser funcional en Linux, aunque esto no sea lo más recomendable y pueda dar problemas, para ciertos casos extremos puede resultar muy práctico y evitar más de un problema con la compatibilidad de nuestros componentes.
Concretamente ndiswrapper lo que permite es usar los controladores de tarjetas de red que han sido creados para Windows y bajo su API, para encapsularlos de tal forma que pueda funcionar con el kernel Linux. Puedes instalarlo en tu distro desde los repositorios, descargándolo desde la web o con herramientas como aptitude, desde las fuentes, etc. Una vez instalado podemos coger drivers de tarjetas de red para Microsoft Windows y buscar el archivo .inf que se incluye en estos.
Después con el fichero .inf en nuestra distro, ejecutamos el siguiente comando, que creará por defecto un fichero /etc/modprobe.d/ndiswrapper con el alias que relacionará al drivers. Esto podría generar problemas si ya tenemos otra tarjeta con el mismo nombre, por lo que habría que modificarlo. Una vez realizado lo siguiente debería funcionar:
ndiswrapper -i nombre_driver.inf ndiswrapper -m modprobe ndiswrapper
Podemos ver los drivers instalados con:
ndiswrapper -l
O borrar el controlador si no nos funciona o no es el correcto:
ndiswrapper -r nombre_driver
Igual que existe ndiswrapper para drivers de tarjetas de red, también existen otras herramientas para otro tipo de hardware que realizan la misma función, usar drivers cerrados de Windows para ser instalados en nuestra distro Linux. Otro ejemplo sería Envyng, en este caso para GPUs NVIDIA y ATI/AMD, aunque esto en la actualidad resulta una estupidez teniendo en cuenta que existen drivers tanto libres como privados para Linux de estas tarjetas…
y no existe uno genérico? es decir que funcione para cualquier tipo de driver independientemente de que sea una gpu, una ethernet, una wifi o lo que sea?