Como você mencionou com sucesso fazendo 'recompilar o kernel inteiro' você está pronto para ir sem recompilar o kernel inteiro novamente. A maior parte do usuário não faz a compilação do módulo apenas porque não possui toda a fonte de biblioteca de cabeçalhos disponível. Compilação completa do kernel significa outro arquivo de lib requerido no lugar.
Agora, o que você precisa fazer é emitir:
sudo make prepare
logo após a emissão
sudo make config
ou
sudo make oldconfig
Deixe-me dar-lhe o comando passo a passo (de maneira suja FYI :)
>cd /usr/src/linux-source-X.XX.X
>sudo cp /usr/src/linux-headers-'uname -r'/Module.symvers .
>sudo cp /boot/config-X.xx.x-xx-YYYY .config
As etapas acima são as mesmas para compilar o kernel completo ou somente o módulo mak. Agora, se você precisar fazer apenas o módulo, deixe que o seu make comando 'prepare' ele mesmo, com a mudança necessária dos arquivos lib / config automaticamente interligados para os módulos a serem feitos. Tente dois comandos abaixo:
>sudo make -C /usr/src/linux-headers-'uname -r'/ prepare
>sudo make -C /usr/src/linux-headers-'uname -r'/ M=/usr/src/linux-source-X.xx.X/drivers/directory/of/modules/you/compiling/only prepare modules
Até onde eu me lembro, adicionando 'M' , o comando 'make' para compilar os módulos para o diretório de origem, com 'antes' de preparar os arquivos de lib / header necessários.
Espero que, neste momento, tudo seja feito corretamente e faça a saída sem nenhum erro. Agora você já tem o seu_module.ko pronto para instalar no caminho do módulo do seu sistema.
Tente:
>sudo make -C /usr/src/linux-headers-'uname -r'/ M=/usr/src/linux-source-X.xx.X/drivers/directory/of/modules/you/compiling/only modules_install
ou
sudo make -C /usr/src/linux-headers-
uname -r
/ M=/usr/src/linux-source-X.xx.X/drivers/directory/of/modules/you/compiling/only install
>depmod -a
Espero que seu módulo esteja pronto para
>modeprob your_mod
comando
Se você olhar cuidadosamente em sua mensagem eror criada pelo comando make quando compilar o módulo sozinho, você obterá informações do erro ether no arquivo source syntax / mission lib ou falhando em outro erro como falta de módulos / fonte de dependência.
Compilação feliz :)