LINUX NEWBIE ADMINISTRATOR GUIDE
ver. 0.154 2001-09-02 by Stan, Peter and Marrei Klimas

A última versão deste guia está disponível em http://sunsite.dk/linux-newbie.
Copyright (c) <1999,2000,2001> by Peter and Stan Klimas. Sua resposta, comentários, correções, e melhorias são apreciados. Envie-os para linux_nag@canada.com Este material pode ser distribuído somente sob os termos e condições estabelecidas pela Open Publication License, v1.0, 8 ou posterior http://opencontent.org/openpub/ com as modificações estabelecidas em lnag_licence.html.





Apêndice.
Upgrade do Kernel - versão 1.1.2
11 de Outubro de 1999
Todo o conteúdo desta página foi escrito por Alesh Mustar.
Distribuído sob os termos da General Public Licence http://www.gnu.org/copyleft/gpl.html. Sua apreciação, comentários, correções, e melhorias são apreciados. Comentários específicos para esta página: alesh@jpdesign.net


Conteúdo:
A.1 Introdução
A.2 O que é kernel?
A.3 Por que fazer o upgrade?
A.4 Onde posso conseguir um novo kernel?
A.5 Devo baixar o fonte completo ou somente o patch?
A.6 Preparando o arquivo baixado
   A.6.1 Preparando o patch
   A.6.2 Preparando o fonte completo
A.7 Compilando o novo kernel
   A.7.1 Usando o patch
   A.7.2 Usando o fonte completo
A.8 Instalando o novo kernel
A.9 O que há a respeito do próximo upgrade do kernel?
A.10 Notas para usuários Red Hat
A.11 A respeito do autor
A.12 Mudanças



A. Como fazer o upgrade do seu kernel?

A.1 Introdução

Este documento foi escrito para ajudar os novos usuários de Linux a fazerem o upgrade de seus kernels. Eu usei varias fontes para escrever este documento. A partir dos HOW-TO oficiais ( http://metalab.unc.edu/LDP/HOWTO/ ) até o   Linux Knowledge Base  e outras fontes.

A.2 O que é o kernel?

O kernel age como um mediador entre seus programas e seu hardware. Primeiro, ele faz (ou arranja) o gerenciamento de memória para todos os processos em execução e se assegura que cada um deles consigam compartilhar uma parcela dos ciclos do processador. Adicionalmente, ele provê uma interface adequada para que os programas conversem com o hardware. Certamente existe muito mais a respeito do que é feito pela operação do kernel do que isto, mas estas são as funções básicas importantes que devem ser conhecidas.

A.3 Por que fazer o upgrade?

Existem muitas razoes para fazer o upgrade de seu kernel. Na maioria das vezes é porque você talvez precise de um novo driver de dispositivo para o seu novo antigo hardware(o driver de dispositivo anterior talvez contivesse um bug) ou você precisa fazer o upgrade devido a um bug no kernel(de segurança ou não). Usualmente os novos kernels rodam mais rápidos que os anteriores e são mais estáveis e confiáveis.

A.4 Onde posso conseguir um novo kernel?

Primeiro você precisa conseguir um novo kernel. Com um browser qualquer vá até http://www.kernel.org/ . Ali você encontra uma lista de mirror(sites espelhos). Mirrors são site com (na maioria das vezes) a mesma informação do site principal. Como o site principal está sempre sobrecarregado com downloads escolha um mirror mais próximo de você ou localizado em seu pais. Por exemplo, estando na Noruega, aponte seu browser para http://www.no.kernel.org/ . Note o .no depois do string www. Muitos países tem mirrors para o arquivos de kernel.
Uma vez carregada a pagina do site mirror você encontrará informação a respeito daquela página a qual será mais ou menos a seguinte:
<= inicio da página exemplo=>
The Linux Kernel Archives mirror at Sunsite.uio.no

All transfers are logged. If you don't like this policy please disconnect now.

Welcome to the Linux Kernel Archives. This is an official mirror site for the Linux kernel source. Please see http://www.kernel.org/mirrors/ for information about how to connect to an other kernel-mirror site.

 

Protocol
URL 
HTTP 
http://linux-kernel.uio.no/pub/
FTP 
ftp://linux-kernel.uio.no/pub
What is Linux?Linux is a Unix clone written from scratch by Linus Torvalds with assistance from a loosely-knit team of hackers across the Net. It aims towards POSIX compliance.
...
<=fim da página exemplo=>

Agora escolha um protocolo para fazer a transferencia. Vamos dizer que você escolheu o protocolo HTTP (o mesmo protocolo que seu browser usa).
Seu browser mostrará uma página com uma estrutura de diretório, talvez similar a abaixo:

<= início da página exemplo =>

Index of /pub

Name Last modified Size Description
_________________________________________________________________________________________________________

[DIR] Parent Directory 28-Dec-98 12:06 -
[DIR] linux/ 31-Dec-98 09:57 -
[ ] ls-lR 29-Mar-99 14:56 262k
[DIR] software/ 31-Dec-98 18:25 -

<= fim da página exemplo =>

Observe o diretório linux. Aponte seu browser para ele. Uma página como a abaixo será mostrada.:

<= início da página exemplo =>

Index of /pub/linux

Name Last modified Size Description
_________________________________________________________________________________________________________

[DIR] Parent Directory 29-Mar-99 14:56 -
[DIR] daemons/ 12-Feb-99 01:19 -
[DIR] devel/ 18-Dec-98 19:34 -
[DIR] distributions/ 18-Dec-98 19:34 -
[DIR] docs/ 31-Jan-99 04:01 -
[DIR] kernel/ 18-Mar-99 21:55 -
[DIR] libs/ 18-Dec-98 19:35 -
[DIR] utils/ 31-Jan-99 04:01 -

<= fim da página exemplo =>

Este site contem muitas coisas para serem baixadas mas no momento estamos interessados somente no kernel. Aponte seu browser para o diretório kernel.
Algo como abaixo será mostrado:

<= início da página exemplo =>

Index of /pub/linux/kernel

Name Last modified Size Description
_________________________________________________________________________________________________________

[DIR] Parent Directory 31-Dec-98 09:57 -
[ ] COPYING 13-Mar-94 00:00 18k
[ ] CREDITS 16-Sep-96 00:00 36k
[DIR] Historic/ 18-Dec-98 20:55 -
[DIR] SillySounds/ 18-Dec-96 09:45 -
[DIR] alan/ 18-Mar-99 21:55 -
[DIR] davem/ 29-Jan-99 04:05 -
[DIR] hpa/ 19-Dec-98 02:16 -
[DIR] people/ 18-Mar-99 21:55 -
[DIR] testing/ 27-Mar-99 00:55 -
[DIR] v1.0/ 19-Dec-98 02:19 -
[DIR] v1.1/ 19-Dec-98 03:51 -
[DIR] v1.2/ 19-Dec-98 04:36 -
[DIR] v1.3/ 19-Dec-98 13:21 -
[DIR] v2.0/ 11-Feb-99 16:48 -
[DIR] v2.1/ 11-Feb-99 16:45 -
[DIR] v2.2/ 24-Mar-99 00:27 -
[DIR] whawes/ 18-Dec-98 19:34 -
________________________________________________________________________________________________
 

Linux kernel release 2.0.xx

These are the release notes for linux version 2.0. Read them carefully,
as they tell you what this is all about, explain how to install the
kernel, and what to do if something goes wrong.
...
....

<= fim da página exemplo =>

Para nosso exemplo, levaremos em consideração que enquanto escrevo este documento o kernel séries 2.2.x series é a versão estável. É por isto que nós escolhemos o diretório v2.2/ no servidor.
Como saber qual é a última versão? Na parte inferior da página http://www.kernel.org/ você tem um texto como este :

<= início da página exemplo =>

 

The latest stable version of the Linux kernel is: 
2.2.12 
The latest beta version of the Linux kernel is: 
2.3.20 
The latest prepatch (alpha) version appears to be: 
none 
<= fim da página exemplo =>

Esta é a informação que você precisa para encontrar qual é o último kernel estável e que é aquele recomendado para uso. Como você também pode ver haverá usualmente um arquivo com o nome do tipo LATEST-IS-2.2.12 no topo da listagem do diretório que diz a você qual é a última versão.

Uma vez que estamos no diretório v2.2/ em nosso servidor nós veremos alguma coisa como :

<= início da página exemplo =>

Index of /pub/linux/kernel/v2.2

Name Last modified Size Description
_________________________________________________________________________________________________________

[DIR] Parent Directory 16-Aug-99 09:13 -
[ ] LATEST-IS-2.2.12 26-Aug-99 02:45 0k
[ ] linux-2.2.0.tar.bz2 26-Jan-99 02:41 10.1M
[ ] linux-2.2.0.tar.bz2.s..26-Jan-99 02:41 1k
[CMP] linux-2.2.0.tar.gz 26-Jan-99 02:41 12.5M
[ ] linux-2.2.0.tar.gz.sign26-Jan-99 02:41 1k
[ ] linux-2.2.1.tar.bz2 28-Jan-99 21:56 10.1M
[ ] linux-2.2.1.tar.bz2.s..28-Jan-99 21:56 1k
[CMP] linux-2.2.1.tar.gz 28-Jan-99 21:56 12.5M
[ ] linux-2.2.1.tar.gz.sign28-Jan-99 21:56 1k
[ ] linux-2.2.10.tar.bz2 14-Jun-99 07:33 10.8M
[ ] linux-2.2.10.tar.bz2...14-Jun-99 07:33 1k
[CMP] linux-2.2.10.tar.gz 14-Jun-99 07:33 13.3M
[ ] linux-2.2.10.tar.gz.s..14-Jun-99 07:33 1k
[ ] linux-2.2.11.tar.bz2 10-Aug-99 01:03 11.2M
[ ] linux-2.2.11.tar.bz2...10-Aug-99 01:03 1k
[CMP] linux-2.2.11.tar.gz 10-Aug-99 01:03 13.8M
[ ] linux-2.2.11.tar.gz.s..10-Aug-99 01:03 1k
[ ] linux-2.2.12.tar.bz2 26-Aug-99 02:45 11.5M
[ ] linux-2.2.12.tar.bz2...26-Aug-99 02:45 1k
[CMP] linux-2.2.12.tar.gz 26-Aug-99 02:45 14.2M
[ ] linux-2.2.12.tar.gz.s..26-Aug-99 02:45 1k
[ ] linux-2.2.2.tar.bz2 23-Feb-99 03:58 10.1M
[ ] linux-2.2.2.tar.bz2.s..23-Feb-99 03:58 1k
[CMP] linux-2.2.2.tar.gz 23-Feb-99 03:58 12.5M
[ ] linux-2.2.2.tar.gz.sign23-Feb-99 03:58 1k
[ ] linux-2.2.3.tar.bz2 09-Mar-99 01:42 10.2M
[ ] linux-2.2.3.tar.bz2.s..09-Mar-99 01:42 1k
[CMP] linux-2.2.3.tar.gz 09-Mar-99 01:42 12.6M
[ ] linux-2.2.3.tar.gz.sign09-Mar-99 01:42 1k
[ ] linux-2.2.4.tar.bz2 23-Mar-99 23:33 10.4M
[ ] linux-2.2.4.tar.bz2.s..23-Mar-99 23:33 1k
[CMP] linux-2.2.4.tar.gz 23-Mar-99 23:33 12.8M
[ ] linux-2.2.4.tar.gz.sign23-Mar-99 23:33 1k
[ ] linux-2.2.5.tar.bz2 29-Mar-99 08:54 10.4M
[ ] linux-2.2.5.tar.bz2.s..29-Mar-99 08:54 1k
[CMP] linux-2.2.5.tar.gz 29-Mar-99 08:54 12.9M
[ ] linux-2.2.5.tar.gz.sign29-Mar-99 08:54 1k
[ ] linux-2.2.6.tar.bz2 16-Apr-99 23:46 10.5M
[ ] linux-2.2.6.tar.bz2.s..16-Apr-99 23:46 1k
[CMP] linux-2.2.6.tar.gz 16-Apr-99 23:46 13.0M
[ ] linux-2.2.6.tar.gz.sign16-Apr-99 23:46 1k
[ ] linux-2.2.7.tar.bz2 28-Apr-99 20:42 10.6M
[ ] linux-2.2.7.tar.bz2.s..28-Apr-99 20:42 1k
[CMP] linux-2.2.7.tar.gz 28-Apr-99 20:42 13.0M
[ ] linux-2.2.7.tar.gz.sign28-Apr-99 20:42 1k
[ ] linux-2.2.8.tar.bz2 11-May-99 21:59 10.7M
[ ] linux-2.2.8.tar.bz2.s..11-May-99 21:59 1k
[CMP] linux-2.2.8.tar.gz 11-May-99 21:59 13.2M
[ ] linux-2.2.8.tar.gz.sign11-May-99 21:59 1k
[ ] linux-2.2.9.tar.bz2 14-May-99 01:54 10.7M
[ ] linux-2.2.9.tar.bz2.s..14-May-99 01:54 1k
[DIR] Parent Directory 16-Aug-99 09:13 -
[ ] LATEST-IS-2.2.12 26-Aug-99 02:45 0k
[ ] linux-2.2.0.tar.bz2 26-Jan-99 02:41 10.1M
[ ] linux-2.2.0.tar.bz2.s..26-Jan-99 02:41 1k
[CMP] linux-2.2.0.tar.gz 26-Jan-99 02:41 12.5M
[ ] linux-2.2.0.tar.gz.sign26-Jan-99 02:41 1k
[ ] linux-2.2.1.tar.bz2 28-Jan-99 21:56 10.1M
[ ] linux-2.2.1.tar.bz2.s..28-Jan-99 21:56 1k
[CMP] linux-2.2.1.tar.gz 28-Jan-99 21:56 12.5M
[ ] linux-2.2.1.tar.gz.sign28-Jan-99 21:56 1k
[ ] linux-2.2.10.tar.bz2 14-Jun-99 07:33 10.8M
[ ] linux-2.2.10.tar.bz2...14-Jun-99 07:33 1k
[CMP] linux-2.2.10.tar.gz 14-Jun-99 07:33 13.3M
[ ] linux-2.2.10.tar.gz.s..14-Jun-99 07:33 1k
[ ] linux-2.2.11.tar.bz2 10-Aug-99 01:03 11.2M
[ ] linux-2.2.11.tar.bz2...10-Aug-99 01:03 1k
[CMP] linux-2.2.11.tar.gz 10-Aug-99 01:03 13.8M
[ ] linux-2.2.11.tar.gz.s..10-Aug-99 01:03 1k
[ ] linux-2.2.12.tar.bz2 26-Aug-99 02:45 11.5M
[ ] linux-2.2.12.tar.bz2...26-Aug-99 02:45 1k
[CMP] linux-2.2.12.tar.gz 26-Aug-99 02:45 14.2M
[ ] linux-2.2.12.tar.gz.s..26-Aug-99 02:45 1k
[ ] linux-2.2.2.tar.bz2 23-Feb-99 03:58 10.1M
[ ] linux-2.2.2.tar.bz2.s..23-Feb-99 03:58 1k
[CMP] linux-2.2.2.tar.gz 23-Feb-99 03:58 12.5M
[ ] linux-2.2.2.tar.gz.sign23-Feb-99 03:58 1k
[ ] linux-2.2.3.tar.bz2 09-Mar-99 01:42 10.2M
[ ] linux-2.2.3.tar.bz2.s..09-Mar-99 01:42 1k
[CMP] linux-2.2.3.tar.gz 09-Mar-99 01:42 12.6M
[ ] linux-2.2.3.tar.gz.sign09-Mar-99 01:42 1k
[ ] linux-2.2.4.tar.bz2 23-Mar-99 23:33 10.4M
[ ] linux-2.2.4.tar.bz2.s..23-Mar-99 23:33 1k
[CMP] linux-2.2.4.tar.gz 23-Mar-99 23:33 12.8M
[ ] linux-2.2.4.tar.gz.sign23-Mar-99 23:33 1k
[ ] linux-2.2.5.tar.bz2 29-Mar-99 08:54 10.4M
[ ] linux-2.2.5.tar.bz2.s..29-Mar-99 08:54 1k
[CMP] linux-2.2.5.tar.gz 29-Mar-99 08:54 12.9M
[ ] linux-2.2.5.tar.gz.sign29-Mar-99 08:54 1k
[ ] linux-2.2.6.tar.bz2 16-Apr-99 23:46 10.5M
[ ] linux-2.2.6.tar.bz2.s..16-Apr-99 23:46 1k
[CMP] linux-2.2.6.tar.gz 16-Apr-99 23:46 13.0M
[ ] linux-2.2.6.tar.gz.sign16-Apr-99 23:46 1k
[ ] linux-2.2.7.tar.bz2 28-Apr-99 20:42 10.6M
[ ] linux-2.2.7.tar.bz2.s..28-Apr-99 20:42 1k
[CMP] linux-2.2.7.tar.gz 28-Apr-99 20:42 13.0M
[ ] linux-2.2.7.tar.gz.sign28-Apr-99 20:42 1k
[ ] linux-2.2.8.tar.bz2 11-May-99 21:59 10.7M
[ ] linux-2.2.8.tar.bz2.s..11-May-99 21:59 1k
[CMP] linux-2.2.8.tar.gz 11-May-99 21:59 13.2M
[ ] linux-2.2.8.tar.gz.sign11-May-99 21:59 1k
[ ] linux-2.2.9.tar.bz2 14-May-99 01:54 10.7M
[ ] linux-2.2.9.tar.bz2.s..14-May-99 01:54 1k

<= fim da página exemplo =>

A.5 Devo baixar o fonte completo ou somente o patch?

Agora você tem a chance de baixar ou o patch ou o fonte completo.
Se você está na versão de kernel 2.0.x você terá que fazer o download do fonte completo.
Se você está na versão 2.2.x você deve fazer o download apenas do patch que naturalmente é muito menor que o fonte completo. O patch contem somente as diferenças.
Se você deseja informações mais detalhadas sobre os patches e diff dê uma olhada no link : http://www.linuxpower.org/display_item.phtml?id=101 .
Agora faça sua escolha e baixe o arquivo. Eu sugiro fortemente que você baixe no diretório /usr/src/.
Eu sugiro o download do arquivo com extensão .tar.gz (se você estiver fazendo o download do fonte completo). Para patches eu sugiro a extensão .bz2. Os exemplos que se seguem assumem estes tipos de arquivos.

A.6  Preparando o arquivo baixado

A.6.1 Preparando o patch

Estamos assumindo que você baixou o patch no diretório /usr/src/. Para o nosso exemplo, vamos dizer o arquivo com o patch tenha o nome patch-2.2.12.bz2. Antes de usa-lo nos devemos descompacta-lo. A extensão .bz2 é o formato bunzip2. Podemos descompata-lo usando o seguinte comando:

<= início do comando exemplo=>

bunzip2 patch-2.2.12.bz2

<= fim do comando exemplo =>

Nenhuma saída será mostrada na tela. Verifique quais arquivos estão agora no diretório. Você notará que o arquivo patch-2.2.12.bz2 sumiu e que agora existe o arquivo patch-2.2.12 com um tamanho muito maior.

A.6.2 Preparando o fonte completo

Novamente estamos assumindo que você baixou o fonte completo no diretório /usr/src/. Para o nosso exemplo, vamos dizer que o arquivo tenha o nome linux-2.2.12.tar.gz.
Antes mesmo de descompata-lo nós devemos fazer uma outra coisa. Em /usr/src/ você tem um link simbólico chamado linux o qual aponta para, por exemplo, linux-2.0.36. Como você pode verificar isto? Digite ls -al no diretório /usr/src/. Você verá alguma coisa como:

<= início da página exemplo =>

total 7295
drwxr-xr-x 5 root root 1024 Mar 19 15:01 .
drwxr-xr-x 20 root root 1024 Mar 13 22:52 ..
lrwxrwxrwx 1 root root 11 Mar 15 18:21 linux -> linux-2.0.36
drwxr-xr-x 17 root root 1024 Mar 13 22:52 linux-2.0.36
...

<= fim da página exemplo =>

Note o lrwxrwxrwx 1 root root 11 Mar 15 18:21 linux -> linux-2.0.36 o qual é o link simbólico apontando para o diretório linux-2.0.36.
Se fossemos descompatar o fonte do kernel agora, por default, ele seria descompactado no diretório linux, gravando sobre o fonte anterior.
Vamos deletar o link digitando rm linux. Ele somente remove o link, não o diretório!
Agora vamos descompatar o fonte. Digite tar -xvzf linux-2.2.12.tar.gz. Um punhado de texto aparecerá Se você digitar ls -al agora você notará o diretório linux. Este é o nosso novo diretório de fonte do kernel.

A.7.1 Usando o patch

Se você baixou o patch siga esta seção. Estamos assumindo que você esteja agora no diretório /usr/src/. Nós já descompactamos o patch (Seção A.6.1). Agora iremos para o diretório do kernel (assumindo linux). Digite cd linux.
Agora estamos no diretório do kernel. Neste ponto temos um punhado de opções e questões. Este é o primeiro patch do kernel? Não? Sim? Não entraremos em detalhes e nós assumiremos que este é o primeiro patch do kernel. Agora estamos prontos para aplicar o patch no kernel.
Para fazer isto usaremos o utilitário patch. Para maiores detalhes e informações completas sobre isto eu sugiro que você cheque o artigo em www.linuxpower.org neste url:  http://www.linuxpower.org/display_item.phtml?id=101 .
Digite patch -E -p1 < ../patch-2.2.12
Um punhado de texto aparecerá na tela Se ele não parar em lugar nenhum exceto no fim(caso contrario, ele fará uma pergunta a você) tudo correu ok. Se não, então você tem um problema(você já aplicou um patch ao kernel alguma vez, ou alguma coisa realmente deu errado).
Se tudo correu bem continue lendo. Agora é hora de configurar o kernel e recompila-lo. Temos agora duas escolhas. Uma é compilar o novo kernel totalmente a partir do zero, a outra é recompila-lo usando a configuração anterior. Como você usou o patch estamos assumindo que você vai compilar com a configuração anterior. Se você não quer isto leia a seção 6.2 onde compilamos o kernel a partir do zero e siga os passos ali. A única diferença está no passo 1, onde você deve digitar make menuconfig.
Esta é a recompilação do kernel usando a configuração do kernel usando a configuração anterior. Siga estes passos:
1. execute make oldconfig
Neste ponto você pode receber uma pergunta a respeito de novos drivers. A menos que você realmente precise deles responda não (n).
2. execute make dep
3. execute make clean
4. execute make zImage  (se isto falhar use bzImage, que significa big zImage)
5. execute make modules (se você os habilitou)
6. execute make modules_install (se você executou o passo 5)

Se tudo correu bem, nos temos um novo kernel pronto para ser instalado e usado.

A.7.2 Usando o fonte completo.

Se você baixou o fonte completo você precisará seguir esta seção.
Estamos assumindo que você está agora no diretório /usr/src/. Já descompactamos o novo kernel(Seção A.6.2). Agora temos que ir para o diretório do kernel (assumindo linux). Digite cd linux.
Agora estamos no diretório do kernel. Vamos iniciar nossa compilação a partir do zero.
1. execute make menuconfig
Aqui você terá que configurar seu kernel. Não entraremos em detalhes ou explicações aqui por que esta configuração é diferente de maquina para maquina. Siga a configuração com inteligência e se você não souber o que quer dizer alguma coisa, deixe-a fora da configuração.
2. execute make dep
3. execute make clean
4. execute make zImage  (se falhar use bzImage, que significa big zImage)
5. execute make modules (se você os habilitou)
6. execute make modules_install (se você executou o passo #5)

Se tudo correu bem nós temos agora um novo kernel pronto para ser instalado e usado no sistema.

A.8 Instalando o novo kernel

A instalação do novo kernel requer um conhecimento de edição do arquivo /etc/lilo.conf. Afirmo que lilo.conf difere de uma máquina para outra e poderia não ser o mesmo em sua máquina aquele que está em minha máquina.
Primeiramente, assumiremos que você está ainda no diretório /usr/src/linux/. Temos que copiar o novo kernel e System.map para certos locais os quais novamente são diferentes em algumas distribuições.
Vamos ao diretório onde está o novo kernel.
Execute cd /arch/i386/boot/
Execute ls -al para ver o que existe ali, você verá algo como isto:

<= início da página exemplo =>

total 588
drwxr-xr-x   4 1046     1046         1024 Apr  5 20:54 .
drwxr-xr-x   7 1046     1046         1024 Mar 13 02:39 ..
-rw-r--r--   1 1046     1046         2633 Jan  2 19:27 Makefile
-rwxr-xr-x   1 root     root          544 Apr  5 20:54 bootsect
-rw-r--r--   1 1046     1046         9536 Jun 24  1998 bootsect.S
-rw-r--r--   1 root     root         1238 Apr  5 20:54 bootsect.o
-rw-r--r--   1 root     root         8293 Apr  5 20:54 bootsect.s
drwxr-xr-x   2 1046     1046         1024 Apr  5 20:54 compressed
-rw-r--r--   1 1046     1046          904 Jan  3  1995 install.sh
-rwxr-xr-x   1 root     root         1428 Apr  5 20:54 setup
-rw-r--r--   1 1046     1046        20136 Nov 29 02:18 setup.S
-rw-r--r--   1 root     root         3053 Apr  5 20:54 setup.o
-rw-r--r--   1 root     root        24136 Apr  5 20:54 setup.s
drwxr-xr-x   2 1046     1046         1024 Apr  5 20:54 tools
-rw-r--r--   1 1046     1046        36836 Sep 30  1998 video.S
-rw-r--r--   1 root     root       477285 Apr  5 20:54 zImage

<= fim da página exemplo =>

Se na seção A.7.x, você usou make zImage você deve copiar o arquivo zImage, caso contrario copie o arquivo bzImage. Assumiremos zImage.
A dúvida que temos agora é para aonde copiar o novo kernel. Em distribuicoes Red Hat o kernel está localizado em /boot/ e no Slackware em / . Não tenho familiaridade com outras distribuicoes (Debian, SuSe, etc.). Dependendo de sua distribuição faca sua escolha sobre o local para onde você deverá copiar o novo kernel.
Faremos um exemplo para Red Hat.
Execute cp zImage /boot/vmlinuz-2.2.12

Agora volte ao diretório /usr/src/linux/ .
cd /usr/src/linux/ .

Agora vamos copiar o novo arquivo System.map. Observe que o arquivo System.map deve ficar sempre em /boot/ .
Execute cp System.map /boot/System.map-2.2.12

Agora nos temos que fazer um novo link simbólico que aponta para o novo System.map.
Primeiro vá para o diretório /boot executando cd /boot .
Agora delete o link simbólico antigo (observe que deletar o link simbólico somente deleta o link, não o arquivo ou diretório para o qual ele aponta). Execute rm System.map .
Agora vamos criar um novo link simbólico que apontará para o novo System.map-2.2.12.

Execute ln -s System.map-2.2.12 System.map .

Agora o que temos que fazer é editar o arquivo lilo.conf, adicionar o nosso novo kernel ali e executar lilo.
Vá para o diretório /etc executando cd /etc . Com o seu editor favorito edite o arquivo lilo.conf. Para o nosso exemplo usaremos o editor joe.
Você verá algo como isto neste arquivo :

= início da página exemplo =>

boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
image=/boot/vmlinuz-2.0.36-0.7
        label=linux.old
        root=/dev/hda1
        read-only

<= fim da página exemplo =>

Observe que isto pode e provavelmente é diferente em seu sistema.
Agora adicionaremos o novo kernel ao nosso arquivo lilo.conf. Copie a parte de image até o fim e cole-a antes da imagem corrente. Você terá agora algo parecido com isto:

= início da página exemplo =>

boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
image=/boot/vmlinuz-2.0.36-0.7
        label=linux.old
        root=/dev/hda1
        read-only
image=/boot/vmlinuz-2.0.36-0.7
        label=linux.old
        root=/dev/hda1
        read-only

<= fim da página exemplo =>

Agora altere a parte colada para as definições e versão do novo kernel. Para nosso exemplo (nos usamos o kernel 2.2.4) ela se parecerá com isto:

= início da página exemplo =>

boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
image=/boot/vmlinuz-2.2.12
        label=linux
        root=/dev/hda1
        read-only
image=/boot/vmlinuz-2.0.36-0.7
        label=linux.old
        root=/dev/hda1
        read-only

<= fim da página exemplo =>

Nós alteramos a parte do label, a parte de imagem, tudo o mais permaneceu o mesmo.
Eu não explicarei o básico do arquivo lilo.conf, por que ele é muito bem descrito em LILO How-To .

Agora rode o lilo simplesmente digitando seu nome. Você deve ver alguma coisa como isto (mais ou menos exatamente isto):

= início da página exemplo =>

Added linux *
Added linux.old

<= fim da página exemplo =>

Você pode agora reiniciar sua máquina para carregar o novo kernel.

A.9 O que há a respeito do próximo upgrade de kernel?

Bem, tudo deve ser o mesmo, uma coisa não. Se você for aplicar o patch no kernel você primeiramente terá que remover o patch antigo antes de aplicar o novo. Isto é feito primeiramente digitando patch -R -p1 < ../patchfile  (onde patchfile é o nome do patch antigo) e então aplicar o novo patch com a opção -E. Tudo o mais deve ser feito de forma idêntica ao descrito anteriormente.

A.10 Nota para usuários Red Hat

Usuários Red Hat devem observar isto. Se você estiver fazendo upgrade de seu kernel da serie 2.0.xx para a serie 2.2.x você deve ler isto. O documento é similar a este, passo a passo mostrando como fazer o upgrade de certas coisas específicas do sistema como init, samba, etc.. que são necessárias para este upgrade.
Se existe algo parecido para outras distribuicoes, por favor, permitam-me saber. Seria bom se você me apontasse para os documentos com informações a respeito.

A.11 A respeito do autor

Meu nome é Alesh Mustar, tenho 20 anos, moro na Eslovenia, Europa trabalhando como programador e administrador de sistemas. Alem de passar muito tempo em frente a uma tela de computador eu gosto de passar o tempo com minha namorada Tanja, ler livros e dirigir com por ai com meu carro. Posso ser contatado por email que está no topo da página. Comentários, sugestões e qualquer coisa mais são mais que bem-vindos.

A.12 Mudanças

Versão 1.1.0 - mudanças menores, alguns error de digitação consertados e alguns números de kernel reparados.
Versão 1.1.1 - uns dois erros de digitação corrigidos.
Versão 1.12. - corrigidos alguns erros de digitação apontados por Jo.

Ir para a página principal : Linux Newbie Administrator Guide (LNAG)