A.2. Criando o Kernel

Para criar um kernel personalizado (execute todos estes passos como root):

NotaNota
 

Este exemplo usa a 2.4.21-1.1931.2.399.ent como a versão do kernel (a versão do kernel pode variar). Para determiná-la, digite o comando uname -r e substitua 2.4.21-1.1931.2.399.ent pela versão do kernel retornada pelo comando.

  1. Abra uma janela de comandos e vá para o diretório /usr/src/linux-2.4/. Todos os comandos a partir deste ponto devem ser executados neste diretório.

  2. É importante que a criação do kernel comece com a árvore fonte em um estado conhecido. Consequentemente, é recomendado que o comando make mrproper seja executado antes de remover quaisquer arquivos de configuração de criações anteriores que talvez se encontrem dispersos na árvore fonte. Se já houver um arquivo de configuracão como o /usr/src/linux-2.4/.config, faça um back up em um outro diretório, antes de rodar este comando e copiar o arquivo de volta mais tarde.

  3. É recomendado que a configuração do kernel default do Red Hat Enterprise Linux seja usada como um ponto de partida. Para fazer isso, copie o arquivo de configuração da arquitetura do sistema, do diretório /usr/src/linux-2.4/configs/ para o /usr/src/linux-2.4/.config. Se o sistema tem mais de um processador, copie o arquivo que contém a palavra smp. Entretanto, se o sistema tem mais de quatro gigabytes de memória, copie o arquivo que contém a palavra hugemem.

  4. Em seguida, personalize a configuração. O método recomendado é usar o comando make menuconfig para rodar o programa da Configuração do Kernel do Linux. O Sistema X Window não é necessário.

    Após terminar a configuração, selecione Sair (Exit) e selecione Sim (Yes) para salvar o arquivo de configuração do kernel novo (/usr/src/linux-2.4/.config).

    Mesmo que nenhuma alteração tenha sido feita, é necessário executar o comando make menuconfig (ou um dos outros métodos de configuração do kernel) antes de continuar.

    Outros métodos disponíveis para a configuração do kernel incluem:

    • make config — Um programa texto interativo. Os componentes são apresentados em um formato linear e respondidos um de cada vez. Este método não requer o Sistema X Window e não permite alterar as respostas de questões anteriores.

    • make xconfig — Este método requer o Sistema X Window e o pacote tk. Não é recomendado porque não analisa os arquivos de configuração de maneira confiável.

    • make oldconfig — Este é um script não-interativo que lê o arquivo de configuração existente (.config) e pergunta somente questões que não existiam anteriormente.

    NotaNota
     

    Para usar o kmod e os módulos do kernel, responda Sim a kmod support e module version (CONFIG_MODVERSIONS) support durante a configuração.

  5. Após criar o arquivo /usr/src/linux-2.4/.config, use o comando make dep para configurar as dependências corretamente.

  6. Use o comando make clean para preparar a árvore fonte para a criação do kernel.

  7. É recomendado que o kernel personalizado tenha um número de versão modificado, para que o kernel existente não seja sobrescrito. Através do método descrito aqui, é mais fácil recuperar, no caso de um acidente. Veja os detalhes de outras possibilidades no site http://www.redhat.com/mirrors/LDP/HOWTO/Kernel-HOWTO.html ou no arquivo Makefile no /usr/src/linux-2.4/.

    Por default, o /usr/src/linux-2.4/Makefile inclui a palavra custom no fim da linha que começa com EXTRAVERSION. Anexar o trecho de caracteres permite que o sistema tenha o kernel antigo e o kernel novo (versão 2.4.21-1.1931.2.399.entcustom) funcionando no mesmo sistema ao mesmo tempo.

    Se o sistema contém mais de um kernel personalizado, aconselhamos anexar a data no final (ou algum outro identificador).

  8. Nas arquiteturas x86 e AMD64, crie o kernel com o make bzImage. Na arquitetura Itanium, crie o kernel com o make compressed. Nas arquiteturas S/390 e zSeries, crie o kernel com o make image. Para o iSeries e pSeries, crie o kernel com o comando make boot.

  9. Crie todos os módulos configurados com o make modules.

  10. Use o comando make modules_install para instalar os módulos do kernel (mesmo que nada tenha sido realmente criado). Atente para o underscore (_) no comando. Isto instala os módulos do kernel na localidade /lib/modules/<KERNELVERSION>/kernel/drivers (onde KERNELVERSION é a versão especificada no Makefile). Neste exemplo, será /lib/modules/2.4.21-1.1931.2.399.entcustom/kernel/drivers/.

  11. Use make install para copiar o kernel novo e os arquivos a ele associados nos diretórios apropriados.

    Além de instalar os arquivos do kernel no diretório /boot, este comando também executa o script /sbin/new-kernel-pkg que cria uma imagem initrd nova e adiciona novas entradas ao arquivo de configuração do gestor de início.

    Se o sistema tem um adaptador SCSI e o driver SCSI foi compilado como um módulo, ou se o kernel foi criado com o suporte ao ext3 como um módulo (default no Red Hat Enterprise Linux), a imagem initrd é necessária.

  12. Mesmo que sejam feitas alterações à imagem initrd e ao gestor de início, verifique se foram feitas corretamente e certifique-se de usar a versão do kernel personalizado, ao invés do 2.4.21-1.1931.2.399.ent. Consulte a Seção 39.5 e a Seção 39.6 para obter instruções sobre a verificação destas modificações.