There are more and more drivers or hardware controllers for GNU / Linux distributions, but there may still be some components that lack specific drivers and do not work on our computer. There is a tool that is not current, but has taken a long time but perhaps it is not known so much, which is called ndiswrapper and is used to install Windows drivers in Linux.
Although it seems strange to you if you did not know her, it is possible to do this. Basically ndiswrapper transforms the drivers built to be installed in Windows into a driver ready to be functional in Linux, although this is not recommended and it can give problems, for certain extreme cases it can be very practical and avoid more than one problem with the compatibility of our components.
Specifically, what ndiswrapper allows is to use network card drivers that have been created for Windows and under its API, to encapsulate them in such a way that it can work with the Linux kernel. You can install it on your distro from the repositories, downloading it from the web or with tools like aptitude, from the sources, etc. Once installed we can take network card drivers for Microsoft Windows and look for the .inf file that is included in these.
Then with the .inf file In our distro, we execute the following command, which will create by default a file /etc/modprobe.d/ndiswrapper with the alias that will relate to the drivers. This could cause problems if we already have another card with the same name, so it would have to be modified. Once done the following should work:
ndiswrapper -i nombre_driver.inf ndiswrapper -m modprobe ndiswrapper
We can see the drivers installed with:
Or delete the controller if it does not work or is not correct:
ndiswrapper -r nombre_driver
Just as there is ndiswrapper for network card drivers, there are also other tools for other types of hardware that perform the same function, using closed Windows drivers to be installed in our Linux distro. Another example would be Envyng, in this case for NVIDIA and ATI / AMD GPUs, although this is currently stupid considering that there are both free and private drivers for Linux for these cards ...