5.7. Como recompilar o kernel?

ATENÇÃO:

Esse documeto foi criado com o intuito de auxiliar o usuário a fazer a recompilação do Kernel, porém devemos lembrar que esse procedimento não é coberto pelo suporte da Conectiva, além de invalidar o suporte.

O procedimento que segue abaixo, se destina à máquina que foi feita uma instalação completa. Caso a sua máquina não esteja com a instalação completa, será necessário instalar alguns pacotes, os quais seguem logo abaixo:

PACOTES DO CONECTIVA 5.0 e 5.1

glibc-2.1.2-11cl

kernel-headers-2.2.14-14cl

glibc-devel-2.1.2-11cl

binutils-2.9.5.0.24-2cl.i386.rpm

egcs-1.1.2-14cl

egcs-c++-1.1.2-14cl

egcs-g77-1.1.2-14cl

egcs-objc-1.1.2-14cl

kernel-source-2.2.14-14cl.i386.rpm

make-3.78.91-1cl.i386.rpm

bin86-0.4-9cl.i386.rpm

ncurses-devel-4.2-21cl.i386.rpm

PACOTES DO CONECTIVA 6.0

gcc-2.95.2-7cl.i386.rpm

gcc-chill-2.95.2-7cl.i386.rpm

gcc-c++-2.95.2-7cl.i386.rpm

gcc-g77-2.95.2-7cl.i386.rpm

gcc-java-2.95.2-7cl.i386.rpm

gcc-objc-2.95.2-7cl.i386.rpm

kernel-headers-2.2.17-14cl.i386.rpm

kernel-source-2.2.17-14cl.i386.rpm

make-3.79-2cl.i386.rpm

bin86-0.4-10cl.i386.rpm

ncurses-devel-5.1-5cl.i386.rpm

binutils-2.10.0.18-1cl.i386.rpm

glibc-2.1.3-18cl.i386.rpm

glibc-devel-2.1.3-18cl.i386.rpm

Para instalar os pacotes:

Monte o CD 1 do Conectiva:

    [root@localhost ]# mount /mnt/cdrom


    [root@localhost ]# cd /mnt/cdrom/conectiva/RPMS


    [root@localhost RPMS]# rpm -ivh nome_pacote


Bom, agora que os pacotes já estão instalados, basta seguir os seguintes passos:

RECOMPILANDO O KERNEL

Segue abaixo os passos para recompilar o kernel:

1- Vá ate o diretório /usr/src/linux

    [root@localhost ]# cd /usr/src/linux


2- Caso esteja recompilando a mesma versão de Kernel que já se encontra na máquina, edite o arquivo Makefile do /usr/src/linux:

    [root@localhost linux] mcedit Makefile


E altere a seguinte linha:

    EXTRAVERSION = -14cl


Para algo como:

    EXTRAVERSION = -user1


Salve o arquivo e digite:

    [root@localhost linux]# make mrproper


Se desejar configurar o kernel tendo como base as configurações feitas pela conectiva, coloque o CDROM de fontes no drive e digite:

    [root@localhost]# mount /mnt/cdrom


    [root@localhost]# rpm2cpio /mnt/cdrom/SRPMS/kernel-2.2.14-14cl.src.rpm | cpio -i kernel-2.2.14-i386.config


    [root@localhost]# mv kernel-2.2.14-i386.config .config


Caso deseje configurar o kernel com as configurações padrão, estes 3 passos não são necessários.

3- Para configurar o Kernel, digite:

    [root@localhost linux]# make menuconfig


Logo após ter digitado esse comando, irá aparecer um menu onde poderá ser escolhido o que o kernel irá carregar como módulo, built-in ou simplesmente não carregará.

Saia e salve as suas alterações.

4- Recompilando o Kernel, digite:

    [root@localhost linux]# make dep


    [root@localhost linux]# make bzImage


    [root@localhost linux]# make modules


    [root@localhost linux]# make modules_install


5- Feito isso ( esse processo irá demorar bastante tempo), a nova imagem do kernel está localizada no diretório /usr/src/linux/arch/i386/boot, vá até esse diretório e copie a nova imagem para o diretório /boot :

    [root@localhost linux]# cd /usr/src/linux/arch/i386/boot


    [root@localhost boot]# cp bzImage /boot/vmlinuz-2.2.14-user1


    [root@localhost boot]# cd /usr/src/linux


    [root@localhost linux]# cp System.map /boot/System.map-2.2.14-user1


    [root@localhost linux]# cd /boot


    [root@localhost boot]# ln -sf System.map-2.2.14-user1 System.map


    [root@localhost boot]# ln -sf vmlinuz-2.2.14-user1 vmlinuz


Ps: O nome user1 é referente ao passo 2.

#### 5.0 e 5.1 ###

6- O próximo passo será a alteração do lilo.conf (arquivo se encontra no /etc), para que seja carregada a imagem recém criada:

MODIFICANDO O ARQUIVO LILO.CONF

Segue abaixo um exemplo de lilo.conf e o que deve ser alterado:

lilo.conf ANTES DA RECOMPILAÇÃO

boot=/dev/hda

map=/boot/map

install=/boot/boot.b

prompt

timeout=50

image=/boot/vmlinuz-2.2.14-14cl

label=linux

root=/dev/hda3

read-only

lilo.conf DEPOIS DA RECOMPILAÇÃO

boot=/dev/hda

map=/boot/map

install=/boot/boot.b

prompt

timeout=50

# A linha 'default=label' referencia qual imagem será a padrão no momento da

#inicialização. Mude conforme o desejado.

default=label

image=/boot/vmlinuz-2.2.14-14cl

label=linux

root=/dev/hda3

read-only

#Abaixo se encontra o nome imagem gerada pela compilação nova

image=/boot/vmlinuz-2.2.14-user1

#Abaixo se encontra o que será digitado no LILO para carregar a nova imagem

label=linux2

#Abaixo se encontra o dispositivo correspondente ao seu HD/Partição

root=/dev/hda3

read-only

Ps: Note que as linhas que são procedidas de # são apenas comentários e não precisam ser incluidas no arquivo, mas caso queira inclui-las, não se esqueça de colocar as # antes das frases de comentário.

7- Pronto, agora basta regravar o lilo :

    [root@localhost ]# lilo


### 6.0 ######

6- Agora, passar para o grub a linha do novo kernel:

Edite o arquivo /boot/grub/menu.lst

    [root@localhost]# mcedit /boot/grub/menu.lst


e adicione as linhas para o nove kernel:

title = Kernel Novo

kernel = (hd0,0)//boot/vmlinuz-2.2.14-user1 root=/dev/hda3

Salve . O arquivo com os kernel antigo e novo ficaria assim:

timeout = 15

default = 0

color = 2

foreground = ffffff

background = 000000

splashimage = (hd0,0)/grub/splash.xpm.gz

title = Conectiva Linux 6.0

kernel = (hd0,0)/vmlinuz-2.2.17-14cl root=/dev/hda7 vga=0x317

title = Kernel novo

kernel = (hd0,0)//boot/vmlinuz-2.2.14-user1 root=/dev/hda3

8- Reinicialize sua máquina e mande carregar a imagem nova.