Dynamic Kernel Module Support (Português)
Da Wikipédia:
- Dynamic Kernel Module Support (DKMS) (em Português: Suporte Dinâmico de Módulo de Kernel) é um programa/framework que permite gerar módulos do kernel do Linux cujos fontes residam fora da árvore de fontes. O conceito é poder ter os módulos automaticamente reconstruídos quando uma nova versão do kernel é instalada.
Isto significa que o usuário não precisa esperar que uma companhia, projeto ou mantenedor de pacotes lancem uma nova versão do módulo. Desde a introdução dos hooks do pacman, a recompilação de módulos do kernel é automaticamente providenciada quando um kernel é atualizado.
Instalação
Instale o pacote dkms e o header para o kernel (ou kernels, se mais de um estiver instalado). Por exemplo, para o kernel padrão linux este deverá ser linux-headers. Outros kernels têm seus respectivos headers.
Um bom número de módulos que residem fora da árvore do kernel tem sua variante para DKMS; alguns deles estão em repositórios oficiais, outros são encontrados no AUR.
Atualizações
Apesar da recompilação de módulos DKMS ser comumente discreta durante uma atualização de kernel, pode ocorrer da recompilação falhar. Você deve prestar uma atenção extra nas saídas do pacman. Isto se aplica em particular se o sistema depende do módulo DKMS para inicializar e/ou se você usar um kernel personalizado que não esteja nos repositórios oficiais.
Para lidar com alterações no kernel, correções de bugs ou adicionar recursos necessários extra, considere atualizar o pacote DKMS antes de reinicializar o sistema.
Uso
Utilização para invocar DKMS manualmente.
É possível usar autocompletar fazendo:
# source /usr/share/bash-completion/completions/dkms
Listar módulos
Para listar a situação atual dos módulos, versões e kernels em árvore:
# dkms status
Recompilar módulos
Recompilar todos os módulos para o kernel atualmente em execução:
# dkms autoinstall
ou para um kernel específico:
# dkms autoinstall -k 3.16.4-1-ARCH
Para compilar um módulo específico para o kernel atualmente em execução:
# dkms install -m nvidia -v 334.21
ou simplesmente:
# dkms install nvidia/334.21
Para compilar um módulo para todos os kernels:
# dkms install nvidia/334.21 --all
Remover módulos
Para remover um módulo (antigos que não foram automaticamente removidos):
# dkms remove -m nvidia -v 331.49 --all
ou simplesmente:
# dkms remove nvidia/331.49 --all
Se o pacote dkms é removido, a informação pertinente a arquivos de compilação de módulos anteriores é perdida. Se é este o caso, navegue por /usr/lib/modules/kernel_release
e /var/lib/dkms/package_name
e remova todos os arquivos e diretórios que não estiverem mais em uso.
Criação de pacote DKMS
Veja DKMS package guidelines (Português).