As Interfaces de Configuracão

Nas instalações RedHat o cerne é instalado em /usr/src/linux. Ali estão todos os arquivos necessários para recompilar o cerne. Como root, você deve ir até este diretório[*] e configurar as opções de compilação. Primeiramente, faça um limpeza dos antigos arquivos-objeto (*.o) digitando

$ make mrproper

A seguir, passe à configuração dos módulos e diretivas de compilação. Basicamente exitem três interfaces para configurar estas opções. A primeira e mais simples é através de scripts do shell. Para configurar de tal modo, faça make config, conforme abaixo

ROOT /usr/src/linux \% make config
rm -f include/asm
( cd include ; ln -sf asm-i386 asm)
/bin/sh scripts/Configure arch/i386/config.in
#
# Using defaults found in arch/i386/defconfig
#
*
* Code maturity level options
*
Prompt for development and/or incomplete code/drivers
(CONFIG_EXPERIMENTAL) [Y/n/?] 
*
* Processor type and features
*
Processor family 
(386,486/Cx486,586/K5/5x86/6x86,Pentium/K6/TSC,PPro/6x86MX) [386] 586
  defined CONFIG_M586
Math emulation (CONFIG_MATH_EMULATION) [Y/n/?] n
MTRR (Memory Type Range Register) support (CONFIG_MTRR) [Y/n/?]

No exemplo acima o usuário terá de responder a uma série de perguntas para configurar a compilação do cerne. Observe que entre colchetes [ ] está a resposta padrão indicada pelo nome ou pela letra maiúscula (Y/n), que será usada teclando-se \fbox{\sf enter}.

O método a seguir é um pouco mais intuitivo e faz uso dos menus do console, conforme a Fig.[*]. O modo de menus é escolhido digitando

$ make menuconfig

Selecionado uma opção apresentada na tela da Fig.[*], o usuário é levado às subseções específicas de cada conjunto de drivers, como por exemplo da escolha do tipo de processador, mostrado na Fig.[*]

Figura 8.1: A aparência do menuconfig
Figura 8.2: O submenu escolhido na Fig. [*]

A última das interfaces de configuração é a interface gráfica. Esta interface é mais amigável que as anteriores e por isso é preferida na maioria das vezes. Entretanto, requer que o modo gráfico esteja funcionando, o que nem sempre acontece num servidor, ou quando se está compilando o cerne remotamente, por exemplo. Ela é chamada por

$ make xconfig

quando aparece a janela da Fig. [*]. Um dos submenus existentes está mostrado na Fig. [*]

Figura 8.3: A aparência do xconfig
Figura 8.4: O submenu general setup do xconfig

Depois de ter passados por todas as janelas de configuração e gravado-as, pode-se partir para a compilação em si. Para tal, comece digitando

$ make dep

que vai averiguar as dependências entre os arquivos. Se tudo correr bem, compile o cerne digitando

make zImage

para fazer um cerne comprimido (gzip) ou

make bzImage

para comprimir ainda mais (bzip2) caso o anterior não seja suficiente[*]. Depois de terminado ($ \sim$ $ 1^{\rm h}30^{\rm m}$ num 486), o novo cerne estará em

/usr/src/linux/arch/i386/boot/zImage ou bzImage

que deverá ser copiado para /boot com um nome que o identifique, por exemplo vmlinuz_set99. Este novo cerne deverá ser identificado na configuração do LILO para que possa ser lido como boot.

Abaixo está um lilo.conf de exemplo, mostrando o cerne original, que neste caso se chama vmlinuz-2.2.5-15 e o recém compilado, arbitrariamente nomeado como vmlinuz_set99. É sempre boa idéia manter o cerne original que funciona (ou você não estaria tão longe) para o caso de algo acontecer errado. Se o novo cerne funcionar, coloque-o em primeiro lugar no /etc/lilo.conf para que seja o padrão.

boot = /dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=600

image = /boot/vmlinuz-2.2.5-15
  label = linux.orig
  root  = /dev/hdb3

image = /boot/vmlinuz_set99
  label = linux.new
  root  = /dev/hdb3

leon 2008-08-19