Please enable JavaScript.
Coggle requires JavaScript to display documents.
201.2 - Compilando um kernel Linux (Empacotamento do kernel (make deb-pkg…
201.2 - Compilando um kernel Linux
3 etapas:
2) Compilação
Comandos:
mrproper
= apaga os arquivos e configurações geradas durante a compilação anterior
make clean
= apaga somente os arquivos gerados na compilação anterior e preserva a configuração
make zImage
= gera a imagem no formato zImage
make bzImage
= gera a imagem no formato bzImage
make -j4 bzImage|zImage
= distribui a compilação em 4 processadores
make modules
= para compilar Kernel modular
Diretório da imagem
Arquitetura x86
/usr/src/linux/arch/x86/boot/bzImage
/usr/src/linux/arch/x86/boot/zImage
3) Instalação
O arquivo de imagem deve ser copiado para /boot
#
/boot/vmlinuz-2.6.28-abc
Comandos
make modules_install
Instala os módulos
Cria o diretório de acordo com a versão do kernel
/lib/modules/2.6.28-abc
Cria o arquivo modules.dep
/lib/modules/modules.dep
Arquivo com informações de interdependências dos módulos
1) Configuração
Comandos:
make menuconfig
= chama a interface interativa
ncurses
make config
= cria ou atualiza a configuração por meio de uma interface orientada a perguntas e respostas na linha de comando
make
make oldconfig
= recupera todas as configurações do arquivo .config pré-existente e pergunta apenas sobre novas opções
objetivo: gerar o arquivo
.config
= arquivo com as configurações do Kernel
pré-requisitos
compilador de linguagem C: o GCC
comando make + bibliotecas
Initial ramdisk
Pequeno conjunto de arquivos que é carregado na memória RAM durante o carregamento do kernel
É montado Como se fosse uma partição, sem sistema de arquivos
Principal motivo: fornecer um módulo para montar a partição raiz /
Comandos
mkinitrd
-c
L8mpa a árvore de diretórios da criação anterior)
-k
Versão do kernel
-o
Nome da initial ram que será criada
mkinitrd -c -k 2.6.30 -m xfs:reiserfs:ext3 -o /boot/initrd-2.6.30.gz
-m
Lista de módulos
mkinitramfs
Arquivo de conf
/etc/initramfs-tools/initramfs.conf
Define os módulos que serão carregados, individualmente ou em grupo
-o
Define qual o arquivo Initial Ramdisk
mkinitramfs -o /boot/initramfs-2.6.30 2.6.30
update-initramfs
Atualiza a Initial Ramdisk de acordo com o arquivo de configuração initramfs.conf
Atualizando o bootloader
Lilo
/etc/lilo.conf
o comando
lilo
deve ser executado para carregar as confs após edição do arquivo
Grub
/etc/grub/menu.lst
Aplicação de um patch ao kernel
Patch deve ser aplicado somente em versões imediatamente inferiores
Comando
patch
Deve ser executado dentro do diretório
/usr/src/linux
cd /usr/src/linux
bzcat patch-2.6.30.3.bz2 | patch -p1
zcat patch-2.6.30.3.gz | patch -p1
Revertendo um patch
bzcat patch-2.6.30.3.bz2 | patch -p1 -R
Os patchs devem ser aplicados em sequência (para instalar o 0.10, instalar o 0.8 e 0.9 antes)
Os patchs com 4 números devem ser removidos antes da instalação de outro
Kernel personalizado
make menuconfig
Comando de configuração interativa do kernel
Item marcados com:
M
Será compilado como módulo
([ ])
Só poderão ser compilados internamente
*
Será compilado internamente
(< >)
Poderão se compilados internamente ou como módulos
Em branco
Serão descartados pelo kernel
As configurações serão salvas no arquivo /usr/src/linux/.config
/usr/src/linux/Makefile
Identificará se a kernel é personalizado
EXTRAVERSION
Empacotamento do kernel
make deb-pkg
Pacote Deb compilado
make tar-pkg
Pacote Tar sem compressão
make binrpm-pkg
Pacote rpm compilado
make targz-pkg
Pacote Tar com compressão gzip
make rpm-pkg
Pacote rpm compilado e com código fonte
make tarbz2-pkg
Pacote Tar com compressão bzip2