jeferson_roseira
(usa Debian)
Enviado em 22/01/2008 - 22:52h
Cara estava olhando o material do curso que fiz
segue o material sobre compilação do Kernel
1 - Vamos instalar os pacotes necessários para realizar a compliação
# apt-get install gcc autoconf libncurses5 libncurses5-dev ncurses-base ncurses-bin ncurses-term
2- Apos baixar a versão do kernel descompacte a fonte do kernel no diretório /usr/src. Caso o kernel desejado não esteja disponivel na sua distro, o repositório oficial do fonte do kernel, para download é
www.kernel.org
# cd /usr/src ( esse é o local onde o kernel esta instalado)
descompacte
# tar -xvjf linux-<kernel-version>.tar.bz2
Obs: ANTES DE IR AVANTE, LEIA O ARQUIVO README!!
3- Podemos editar o Make file, no diretório do fonte do kernel, modificando o valor da váriavel Extraversion para criar um diretório no /lib/modules com um nome personalizado. (OPCIONAL)
# cd /usr/src/<kernel-version>
# vi Makefile
EXTRAVERSION -c1
4- Depois de compilado, ficaria desta maneira:
# ls /lib/modules
<kernel-version>
<kernel-version>-c1
5- Agora, é só seguir os seguintes passos:
# make mrproper
apagar informações de configurações anteriores
# make clean
Remoção de arquivos objetos ( extensão ".o" e ."ko") e dependencias de compilações anteriores.
# make menuconfig
Explicação sobre os Menus
<*> opções que serão incorporadas ao kernel em modo built-in ( dentro de uma única imagem).
< > opções que serão excluidas do novo kernel
CODE MATURITY LEVEL OPTIONS: programas e códigos de drivers em desenvolvimento.
GENERAL SETUP: configurações gerais
LOADABLE MODULE SUPPORT: suporte a módulos no kernel.
PROCESSOR TYPE AND FEATURES: caracteristicas do processador (módulo, família, etc).
POWER MANAGEMENT OPTIONS (ACPI, APM) caracteristicas sobre o gerenciamento de energia.
BUS OPTIONS (PCI, PCMCIA, EISA, MCA, ISA): caracteristicas sobre os principais tipos de barramentos e hotplug.
EXCUTABLE FILE FORMATS: suporte a formatos de binários para execução.
DEVICE DRIVERS: suporte aos diversos tipos de drivers (porta paralela, scsi, rede, som, usb, etc.)
FILE SYSTEMS: suporte a sistemas de arquivos (ext3, fat, ntfs, etc.)
PROFILING SUPPORT: suporte a profiling no kernel (experimental).
KERNEL HACKING: ferramentas para o desenvolvimento do kernel.
SECURITY OPTIONS: opções de suporte de segurança no nível de kernel (SELinux, BSI)
CRYPTOGRAPHIC OPTIONS: suporte aos diversos tipos de criptografia e bashs.
LIBRARY ROUTINES: rotinas de bibliotecas de compilação.
LOAD CONFIGURATIONS TO AN ALTERNATE FILE: salvar a configuração atual em um arquivo alternativo.
EXIT: sair, para salvar as configurações feitas.
6- Apos salvar, continuamos a sequencia de comandos:
# less .config
visualizar o arquivo de configuração gerado pelo make menuconfig
# make
para gerar as dependencias do novo kernel, ou seja, de quais ele irá prescisar de bibliotecas pra compilar o novo kernel e para gerar a imagem do novo kernel.
# make modules_install
copia is módulos compilados para seus respectivos diretórios
7- Depoois de compilado o kernel, será gerado um arquivo da imagem (o bzImage) no diretório /usr/src/linux/arch/i386/boot. copie-o pra o diretório /boot, com o nome de kernel ( o nome é opcional)
# cd /usr/src/<kernel-version>/arch/i386/boot
# cp bzImage /boot/kernel
8- Feitos os procedimentos de compilação, devemos agora associar o arquivo de initrd para o nosso kernel. Esse arquivo é necessário pois é inicializando pelo boot loader na memória antes do kernel inicial. Para isso, prescisamos instalar
o seguinte pacote:
# apt-get install initrd-tools
9- Agora devemos construiir nosso arquivo initrd:
mkinitrs -o /boot/<kernel-version>.img <kernel-version>
onde:
/boot/initrd-<kernel-version>.img È onde ficara o menu initrd, que deverá ser referenciado no boot loadre.
<kernel-version>. Referencia o diretório de módulos do meu Kernel (/lib/modules/<kernel-version>)
** O PROCEDIMENTO PARA COLOCAR ESSA NOVA VERSÃO DO KERNEL NO BOOT LOADER VC SABE NÉ.
Espero que te ajude
qualquer dúvida so perguntar
Jeferson Roseira