O pacote DKMS (Suporte ao Dynamic Kernel Module) ( link ) fornece suporte para a instalação de versões suplementares de módulos do kernel. O pacote compila e instala na árvore do kernel. A desinstalação restaura os módulos anteriores. Por padrão, a instalação é na árvore do kernel atual, mas qualquer árvore do kernel pode ser selecionada com opções de linha de comando. Além disso, o DKMS é chamado automaticamente após a instalação de novos pacotes de imagem do kernel do Ubuntu e, portanto, os módulos adicionados ao DKMS serão automaticamente transportados através de atualizações.Visão geral
Para usar um módulo com o DKMS, coloca-se os arquivos de instalação do módulo (código fonte ou binário) em / usr / src / -, junto com o arquivo de configuração dkms.conf que informa ao DKMS como construir / configurar o módulo e qual é o seu nome. Em cenários mais avançados, instruções de compilação condicional e patch podem ser feitas pelo sistema dkms, mas considerando o seu caso, isso pode não ser necessário.
Acompanhamento
Digamos que você queira instalar um módulo para o seu sofisticado "Awesome Adapter". Você recebe uma fonte
tarball awesome-20091211-v1.1.tgz
.Com o DKMS, dizemos ao DKMS como fazer isso criando um arquivo dkms.conf com as entradas apropriadas. Por exemplo, depois de descompactarmos o tarball:
# cd awesome-20091211-v1.1/
# touch dkms.conf
# create dkms.conf file
# vi dkms.conf
Dentro de
dkms.conf
, podemos adicionar as linhas:
MAKE="make -C src/ KERNELDIR=/lib/modules/${kernelver}/build"
CLEAN="make -C src/ clean"
BUILT_MODULE_NAME=awesome
BUILT_MODULE_LOCATION=src/
PACKAGE_NAME=awesome
PACKAGE_VERSION=1.1
REMAKE_INITRD=yes
Todos os diretórios estão relacionados ao local do arquivo dkms.conf. Isto diz ao DKMS
- O comando para construir o módulo (execute make no diretório src /).
- O comando para limpar a árvore de origem (execute make clean no diretório src /).
- O nome do módulo sem a extensão .o ou .ko. Isso pode realmente ser uma matriz de módulos se vários módulos forem criados, veja man dkms.
- Onde o DKMS pode encontrar o módulo construído.
- O nome e a versão que o DKMS deve associar ao (s) módulo (s).
- Para refazer a imagem initrd depois de instalar o módulo.
Você também pode adicionar opções para chamar scripts antes ou depois de compilar ou instalar, fornecer comandos make (condicionais) adicionais, comandos de patch, etc. O dkms.conf é de fato originado em um shell script, portanto, uma boa quantidade de truques pode ser feito se necessário. Essas opções e mais são descritas na seção dkms.conf no man dkms.
Em seguida, instalamos o módulo no DKMS copiando os arquivos de instalação do módulo para a árvore de origem do kernel / usr / src / - e informamos ao DKMS sobre o novo módulo:
# ls
README dkms.conf lib src
# sudo cp -R . /usr/src/awesome-1.1
# sudo dkms add -m awesome -v 1.1
dkms does its thing...
É isso! O DKMS adicionou agora o nosso módulo à sua lista de módulos para construir para futuras instalações do kernel. Para ter certeza de que funciona e para instalar o módulo em nosso kernel atual, podemos instruir o dkms a construir e instalar o módulo:
# sudo dkms build -m awesome -v 1.1
dkms does its thing.... watch for build errors... you may need to tweak dkms.conf
# sudo dkms install -m awesome -v 1.1
dkms does its thing.... module is copied into current kernel module tree
Com alguma sorte, seu módulo será instalado e reinstalado em futuras atualizações do kernel.
Exemplos
A página de manual do DKMS tem informações úteis sobre a configuração do seu módulo do kernel favorito para uso com o DKMS. Não é uma documentação abrangente, mas responderá a muitas perguntas. Pode ajudá-lo a anotar os seguintes exemplos, mesmo que os módulos utilizados não sejam os que você deseja configurar:
- RocketRaid - Dois exemplos de como configurar o Highpoint RocketRaid condutores RR26xx e RR62x com DKMS.
De: help.ubuntu.com
Mais informações podem ser encontradas aqui:
- DKMS com o driver mais recente Intel E1000E
- DkmsDriverPackage . Tutorial baseado em dois drivers de webcam: r5u870 (Sony Vaio MotionEye) e ov51x-jpeg (Playstation EyeToy e Hercules Deluxe)
- Como usar o driver nVidia do Ubuntu, incluindo o módulo DKMS
- Página man do Ubuntu (Documenta alguns bits oficialmente não documentados.)
- Jornal Linux "Explorando o DKMS (Dynamic Kernel Module Support)"