O arquivo /usr/src/linux/include/linux/module.h define as licenças aceitáveis para um módulo (ou driver) seja reconhecido como software livre.
- GPL - GNU Public License v2 or later
- GPL v2 - GNU Public License v2
- GPL and additional rights - GNU Public License v2 rights and more
- Dual BSD/GPL - GNU Public License v2 or BSD license choice
- Dual MIT/GPL - GNU Public License v2 or MIT license choice
- Dual MPL/GPL - GNU Public License v2 or Mozilla license choice
- Proprietary - Non free products
Como vocês podem notar, há componentes que podem ser definidos com licenças duplas, contudo quando executado no Linux apenas a GPL é relevante. Algumas razões para definir a licença:
- O modinfo pode mostrar informações para usuários que desejam avaliar as licenças dos módulos sua instalação.
- A comunidade pode ignorar relatórios de bugs dos módulos proprietários.
- Os fabricantes podem fazer o mesmo com suas próprias políticas.
Para inserir a licença, basta colocar no seu código-fonte a macro ”MODULE_LICENCE”. Exemplo:
MODULE_LICENCE("GPL");
Lembre-se que alguns recursos do kernel são disponíveis apenas se seu código é livre.
Um exemplo é o sysfs (através da macro EXPORT_SYMBOL_GPL) que por questões de manutenção e consistência exige que você licencie seu módulo em alguma licença compatível com a GPL.