linuxlinux-kernellinux-device-driver

What is importance of using GPL license in linux device driver?


What is the exactly benefit of using MODULE_LICENSE("GPL") in linux device driver development?

What will we lack or gain by not using or using it?

Which kernel symbols we will not able to use when we will define MODULE as non GPL?


Solution

  • The big difference is the symbols that are exposed to your module when it is GPL licensed. If you do not have MODULE_LICENSE("GPL") then symbols that are exported via EXPORT_SYMBOL_GPL() will not be visible to your module. This is basically how Linux enforces what work is considered derivative work of Linux and therefore must be licensed under GPL, although the subject of proprietary modules is always a touchy one and I'm not saying if you don't use any GPL exported symbols your code is not a derivative work of Linux. Furthermore, if your module is not GPL licensed via the macro, your kernel will be considered tainted.