Compilando Drivers

De Fórum Debian Wiki

Índice de conteúdo

Compilando Drivers

Antes de construir modulos, compilando através das fontes, para fazer funcionar os diversos periféricos ( Placas de Modens, Rede, Wireless, Video, Tv, etc ) devemos preparar o ambiente instalando um conjunto de ferramentas para compilar.


Baixando os pacotes

O modo mais fácil de baixar os pacotes do source, headers e ferramentas é utilizar o seguinte comando em uma janela de terminal estando com o CD de instalação na unidade:

~# apt-cdrom add
~# aptitude update
~# aptitude install build-essential linux-headers-`uname -r` linux-source-`uname -r | cut -f1 -d-`

Isto deve baixar e instalar os pacotes: Kbuild, Headers e Source do seu Kernel Caso a versão do seu kernel seja 2.6.8 e distro CDD-br então você deve baixar utilizando outra sintaxe:

~# aptitude install kernel-kbuild-2.6.3
~# aptitude install kernel-headers-`uname -r`
~# aptitude install kernel-source-`uname -r | cut -f1 -d-`


Caso baixe o pacote source no site www.kernel.org http://www.kernel.org/pub/linux/kernel/v2.6/, copie ou mova para o diretório /usr/src.

Extraindo o Source

Agora vamos extrair o pacote source, vá até o diretório:

~# cd /usr/src
~# bunzip2 -c linux-source-`uname -r | cut -f1 -d-`.tar.bz2 | tar xvf -

ou no caso do CDD-br com kernel 2.6.8:

~# bunzip2 -c kernel-source-`uname -r | cut -f1 -d-`.tar.bz2 | tar xvf -


Esse comando vai extrair o pacote e criar outro diretório em /usr/src. Criando os links simbolico:

~# cd /usr/src
~# rm linux          ( Removendo antigo link caso exista )          
~# ln -s /usr/src/linux-source-`uname -r | cut -f1 -d-` linux 

caso seja distro CDD-br o link será assim:

~# ln -s /usr/src/kernel-source-`uname -r | cut -f1 -d-`  linux

Crie o outro link no diretório /lib/modules:

~# cd /lib/modules/`uname -r`
~# rm build            ( Removendo antigo link caso exista )
~# ln -s /usr/src/linux-source-`uname -r | cut -f1 -d-` build

caso seja distro CDD-br o link será assim:

~# ln -s /usr/src/kernel-source-`uname -r | cut -f1 -d-`  build

Provávelmente este link simbólico do build em /lib/modules/`uname -r` já exista apontando para o headers, alguns pacotes de drivers ( .tar) passam sem dar erros com esse apontamento outros não.

Preparando Source do Kernel

Agora vamos fazer com que o source do kernel tenha a mesma configuração do kernel ativo:

~# cd /usr/src/linux
~# make mrproper
~# cp /boot/config-`uname -r` .config

Agora edite o arquivo Makefile com:

~# mcedit /usr/src/linux/Makefile

ou se preferir

~# vi /usr/src/linux/Makefile

Altere os dados no parâmetro "EXTRAVERSION" que está no inicio do arquivo:

VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 8
EXTRAVERSION = -x-xxx         ( aqui você completa a versão apresentada no comando uname -r )      

Agora vamos dar início a criação dos arquivos do kernel:

~# cd /usr/src/linux
~# make oldconfig
~# make clean
~# make


Obs: A conclusão deste ultimo comando deve demorar cerca de 1 hora dependendo do tipo do processador.


Concluindo

Não é necessário esperar terminar o make final, pode-se cancelar depois de uns 5 minutos, porém não custa nada esperar terminar. Concluído o procedimento acima, pode-se seguir com a instruções de instalação dos drivers que pode requer a instalação de pacotes adicionais libs e outras dependências, por isso sempre leia o README e ou INSTALL quase sempre presentes nos fontes.

Ferramentas pessoais