Google 网上论坛不再支持新的 Usenet 帖子或订阅项。历史内容仍可供查看。

[kernel] mini how-to - versao 2.6.0

已查看 0 次
跳至第一个未读帖子

Nbk

未读,
2003年12月20日 22:07:442003/12/20
收件人

Boas.

Com a saída da versão estável do kernel 2.6, abro aqui uma segunda
versão do howto. Irei manter a versão para o 2.4 actualizada, mas
será na versão para o 2.6 onde colocarei as minhas atenções.

Agradeço a todos pelas correcções que enviaram no passado, e pela
participação que tiveram nos threads que se seguiram aos howto's
anteriores, assim como agradeço em avanço notas sobre este novo
howto.

Este artigo é dirigido sobretudo aqueles utilizadores que ainda não
experimentaram configurar, compilar e instalar um kernel de raiz nas
suas distribuições linux.

Para quem já o sabe fazer muito provavelmente o artigo não trará
nada de novo. Espera-se que seja apenas um bom manual. :-)

Este mini-howto foi feito para uma distribuição redhat recente.
Se calhar para a sua distribuição é diferente.

É questão de adaptar. :-)

Bem, lets kick it out... again and again!

[-1 - Antes de Começar ]

Nesta nova "major version" do kernel, várias são as alterações de
fundo. Para ficar a par de todas essas alterações, e caso esteja
interessado, aconselho ->*FORTEMENTE*<- a leitura dos documentos
presentes nos seguintes links:

The Wonderful World of Linux 2.6
http://kniggit.net/wwol26.html

The post-halloween document. v0.48 (aka, 2.6 - what to expect)
http://www.linux.org.uk/~davej/docs/post-halloween-2.6.txt

Migrating to Linux Kernel 2.6
http://thomer.com/linux/migrate-to-2.6.html

Feature: HowTo Upgrade To The 2.6 Kernel
http://kerneltrap.org/node/view/799

Upgrading RH9 to 2.6.0-test4
http://www.fearthecow.net/index.pl?section=guest&page=kernel

Kernel Changes and Requirements
~/Documentation/Changes

Neste howto são utilizados vários programas, escolhidos pelo autor,
mas que podem ser perfeitamente substituídos por outros, ou mesmo
ignorados. A lista do software usado, e respectivas homepages, é
a seguinte:

pciutils : ftp://ftp.kernel.org/pub/software/utils/pciutils/
wget : http://www.gnu.org/software/wget/
gnupg : http://www.gnupg.org/
bzip2: http://sources.redhat.com/bzip2/
tar : http://www.gnu.org/software/tar/
lilo : http://lilo.go.dyndns.org/
grub : http://www.gnu.org/software/grub/
gzip : http://www.gzip.org/

O próprio kernel tem as suas necessidades em termos de software.
Estas estão normalmente listadas em ~/Documentation/Changes.

[0 - Considerações Iniciais ]

Os comandos precedidos por # deverão ser obrigatoriamente dados como
utilizador root. Os comandos precedidos por $ poderão ser dados por
qualquer utilizador do sistema, tendo este que ter acesso aos
ficheiros e ferramentas que venham a ser utilizadas no entretanto.

Devem executar todos os comandos fornecidos numa shell. Podem
utilizar por exemplo o xterm ou o konsole, caso estejam numa
sessão X.

Quando necessitarem de usar uma shell como root, basta darem este
comando para irem lá ter:

$ su -

[1 - Reunir informações sobre o Hardware ]

Bem, para quem vai compilar um kernel, é uma boa ideia saber que
hardware está presente na máquina.

$ cat /proc/cpuinfo
$ cat /proc/pci
# lspci -v
# lsusb

Se calhar a melhor forma de obter uma lista realmente fiável do
hardware que a máquina possui é desligando-a e abrindo-a. Note-se que
ao abrir a máquina poderá perder determinadas garantias dadas por
quem a vendeu ou pelo fabricante da mesma. Se for esse o seu caso,
procure antes na página do vendedor ou fabricante pelas
características da máquina.

[2 - Ir buscar o Kernel ]

Normalmente todos os kernel's são guardados e compilados na
directoria /usr/src. No entanto nada o impede de compilar um kernel
noutra directoria qualquer. Em http://www.kernel.org/ encontrará
indicações sobre a versão mais recente do kernel, entre outras
coisas. Existem várias versões, mas aconselho-o a utilizar a "latest
stable version" da "major version" que usa. Por exemplo, se usa
versões 2.4 do kernel, deverá usar neste momento a versão 2.4.23.

No nosso caso, vamos usar a nova versão 2.6.0.

# cd /usr/src
# wget -c
http://www.pt.kernel.org/pub/linux/kernel/v2.6/linux-2.6.0.tar.bz2

Note-se que o download do kernel foi feito a partir de um mirror
localizado em Portugal utilizando o programa "wget", que faz resume
automático no caso da ligação cair. :-)

Para verificar se o ficheiro corresponde exactamente ao ficheiro que
foi publicado pelo "Linux Kernel Archive" e que não foi alterado por
terceiros, pode seguir as instruções presentes
em http://www.kernel.org/signature.html .

Nomeadamente deverá executar os seguintes passos:

a) Importar a chave pública do "Linux Kernel Archive", caso ainda
não a tenha importado anteriormente:

$ gpg --keyserver wwwkeys.pgp.net --recv-keys 0x517D0F0E

b) Fazer o download da assinatura associada ao ficheiro do kernel que
queremos instalar:

$ wget
http://www.pt.kernel.org/pub/linux/kernel/v2.6/linux-2.6.0.tar.bz2.sign

c) Verificar a validade da assinatura:

$ gpg --verify linux-2.6.0.tar.bz2.sign linux-2.6.0.tar.bz2

[3 - Descomprimir o Kernel ]

O kernel em si (sources, documentação, ficheiros compilados, etc)
ocupa cerca de 200MB de espaço! Portanto, convém à partida saber
mesmo se possui espaço no seu disco para estas aventuras.

$ df -h
# bunzip2 linux-2.6.0.tar.bz2
# tar xvf linux-2.6.0.tar
# chown -R root.root linux-2.6.0
# ln -s linux-2.6.0 linux

[4 - Configurar o Kernel ]

Bem, depois dos passos indicados no ponto anterior, teremos uma
directoria "linux-2.6.0" em /usr/src com tudo o que vem no kernel,
prontinha a ser usada.

# cd linux-2.6.0

Aconselho nesta directoria a leitura do ficheiro README e dos
ficheiros presentes em ~/Documentation, caso queiram obter mais
informações sobre o kernel.

Para quem possuir um ficheiro de configuração de um kernel
anteriormente compilado, deverá copiá-lo neste momento para esta
directoria, de forma a aproveitar as configurações feitas
anteriormente. Note que não deverá usar ficheiros de configuração
de "major versions" anteriores, nomeadamente da 2.4.

# cp <ficheiro_de_configuração> .config

De seguida, deverão dar o seguinte comando:

# make menuconfig

A partir daqui irá aparecer-vos um menu com várias opções, e dentro
dessas opções mais opções ainda! Esta é a parte mais compilada na
compilação de um kernel: acertar com as configurações ideais para a
nossa máquina!

Não tenha medo. Podem errar as vezes que quiserem nas configurações.
Não se preocupem em acertar nas melhores opções à primeira. Só com o
hábito é que se começa a acertar tudo à primeira. Errem as vezes que
quiserem. Estão à vontade. :-)

Aconselho na opção "Code maturity level options" a activação da opção
"Prompt for development and/or incomplete code/drivers".

Note-se que existe a opção de se "[M]odularizar" muitas das opções.
Sempre que possível façam-no, pois no final terão um kernel mais
pequeno, terão a possibilidade de activar ou desactivar certos
drivers em pleno funcionamento, e terão menos problemas de
estabilidade, além de outras vantagens.

Quando acabarem as configurações todas, basta sair do programa e
salvar as configurações.

Nota: Para configurar o kernel poderão também usar os seguintes
comandos:

# make config

Neste caso a configuração será feita na shell através de perguntas
sequenciais onde terão de ir respondendo Y(es)/N(o)/M(odule).

# make xconfig
# make gconfig

Este caso será aconselhado para quem está a tentar compilar o kernel
numa sessão X, usando por exemplo o konsole. Neste caso aparecerá um
configurador gráfico bastante simples de usar. Este configurador
utilizará as libs Qt ou Gtk.

# make oldconfig

Para quem copiou um .config de um kernel anteriormente compilado,
poderá usar este comando para que a configuração do kernel apenas
coloque perguntas sobre novas opções que existirem no novo kernel.
Útil no caso de não ter mudado o hardware da sua máquina.

( Ver "make help" para mais opções )

[5 - Compilar o Kernel ]

Esta é a parte mais fácil, mas mais demorada:

# make clean
# sync
# make
# make modules_install

Dependendo do computador, poderá levar mais ou menos tempo a
finalizar os comandos anteriores. No meu cyrix a 266Mhz com 128MB de
ram leva prai uns bons 25 minutos. :-)

[6 - Instalar o novo Kernel]

Normalmente os kernel's são colocados na directoria /boot. Se
verificarem os ficheiros nessa directoria provavelmente já lá terão
vários kernel's, assim como outros ficheiros.

# cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.0
# cp System.map /boot/System-2.6.0.map
# ln -s /boot/System-2.6.0.map /boot/System.map

[7 - Configurar o boot loader ]

O que é o "boot loader"?

Bem, é um ... boot loader!

"A boot loader is a program that resides in the starting sectors of a
disk, e.g., the MBR (Master Boot Record) of the hard disk. After
testing the system during bootup, the BIOS(Basic Input/Output System)
tranfers control to the MBR if the system is set to be booted from
there. Then the program residing in MBR gets executed. This program
is called the boot loader. Its duty is to transfer control to the
operating system, which will then proceed with the boot process."

(in http://www.linuxgazette.com/issue64/kohli.html)

Vou apenas explicar aqui com se configura o LILO. Para quem usa o
GRUB deverão ler o manual (http://www.gnu.org/software/grub/) desse
outro boot loader ( ou esperar que alguém contribua meia dúzia de
linhas para este mini-howto.. :-> )

O ficheiro de configuração do LILO é o /etc/lilo.conf .

Deverão passar primeiro os olhos pelo manual do LILO:

$ man lilo.conf

No meu caso, foi só necessário adicionar e editar as seguintes linhas
no ficheiro de configuração do LILO:

image=/boot/vmlinuz-2.4.23
label=linux-old
read-only
root=/dev/hda2

image=/boot/vmlinuz-2.6.0
label=linux2.6.0
read-only
root=/dev/hda2

Deverá ser semelhante nos vossos casos em particular. Note-se que foi
deixada uma entrada para um kernel anterior, de forma a podermos
"bootar" a máquina caso o kernel que acabámos de compilar tenha
problemas.

Depois de editarem e salvarem o ficheiro de configuração, deverão dar
o seguinte comando para que o lilo seja (re)instalado:

# lilo

Para mais opções poderão ler um howto sobre o LILO
em http://www.tldp.org/HOWTO/LILO.html .

[8 - Reboot! ]

Bem, depois disto tudo, basta fazer reboot e no arranque escolher o
kernel acabadinho de compilar. :-)

# shutdown -r 0

Muito provavelmente irão apanhar com alguns erros, e alguns dos
programas deixarão de arrancar, etc.

Poderão visualizar esses erros usando os seguintes comandos:

$ dmesg
# tail -n 100 /var/log/messages

Depois de acertarem com as configurações para a vossa máquina, e de
conseguirem uma versão satisfatória do kernel, salvem o ficheiro
.config que está em /usr/src/linux-2.6.0, de forma a poderem usá-lo
em próximas releases do kernel.

Poderão também activar aquando da configuração do kernel a opção
"General Setup -> Kernel .config support" que guarda a configuração
no próprio kernel. Mais tarde poderão obter de novo essa configuração
para usar numa nova compilação usando por exemplo os seguintes
comandos:

$ cp /proc/config.gz .
$ gunzip config.gz

Já agora, para verificarem a versão actual do vosso kernel podem usar
o seguinte comando:

$ uname -a

[9 - Considerações Finais ]

A passagem da versão 2.4 para a versão 2.6 não é directa nem sequer
simples para o comum dos mortais. É preciso actualizar software,
alterar configurações, e nos casos mais especiais implica mesmo
corrigir e alterar a source do próprio kernel. Será preferível
correr a versão 2.4, actualizada, e esperar por distribuições de
linux que tragam a versão 2.6 de raiz, mais estável e experimentada.

O autor não se responsabiliza por danos causados por terceiros que
leram este how-to. :-)

Agradeço o máximo de feedback possível sobre o mini-howto. Se tiver
paciência e tempo, prometo lançar novas versões actualizadas do
mesmo.

[10 - Feedback ]

A compilação de um kernel, assim como a compilação/instalação de
qualquer software deverá ser feita tomando as maiores e melhores
cautelas em termos de segurança. Este howto, pelo target de
utilizadores a que se dirige é "relaxado" em relação a esses
detalhes. Mais dicas neste artigo de Rui Malheiro:

http://groups.google.com/groups?selm=pan.2003.09.04.04.15.15.873422%40mail.telepac.pt

Para quem usa redhat/fedora, poderá utilizar uma outra técnica para
compilar um novo kernel, utilizando a técnica descrita por MD em:

http://groups.google.com/groups?selm=brcbde%241pafs%241%40ID-201481.news.uni-berlin.de

[11 - Agradecimentos ]

Amarok <amarok(@)netcabo.pt>
Antonio Manuel Dias <amdias(@)netvisao.pt>
Carlos J. G. Duarte <cjgd(@)clix.pt>
GotTLoS <GotTLoS(@)GotTLoS.LanD>
Higuita <higuita(@)gmx.net>
João Jerónimo <j_j_b_o(@)myrealbox.com>
João Miguel Neves <news(@)silvaneves.org>
João M. S. Silva <jmss(@)vinci.inesc-id.pt>
Luis Bruno <lbruno(@)republico.estv.ipv.pt>
Luis Oliveira <luismbo(@)netcabo.pt>
MC <mc(@)carreira.com.pt>
Mr. BuNgL3 <mrbungle(@)netcabo.pt>
Nuno Justo <nuno(@)justoweb.com>
Nuno Tavares <nunotavares(@)hotmail.com>
RJ <fsoss(@)linuxwaves.com>
Rui Malheiro <rmalheiro(@)mail.telepac.pt>
VL <vonloxx(@)yahoo.com>

(Se faltar alguém ou quiserem efectuar alguma alteração a esta lista
de nomes e emails avisem-me por email. TIA)

Having fun,

@959, Nbk

João Jerónimo

未读,
2003年12月21日 21:55:322003/12/21
收件人
Nbk wrote:
> ... "major version" ...

majorversion.minorversion.releasenumber

a major version é a 2
a minor version é a 6
a o release number é o 0

> ... Note que não deverá usar ficheiros de configuração


> de "major versions" anteriores, nomeadamente da 2.4.

não percebo porque á que isso acontece... mesmo depois de verificar que
aquilo ficou uma baralhada geral depois de o fazer!

> ... ( ou esperar que alguém contribua meia dúzia de


> linhas para este mini-howto.. :-> )

já houve alguem que o fez...
http://groups.google.pt/groups?hl=pt-PT&lr=&ie=UTF-8&oe=UTF-8&newwindow=1&threadm=slflsvo141oi22dq5vqjmmr6bqvaq67a5h%404ax.com&rnum=1&prev=/groups%3Fhl%3Dpt-PT%26lr%3D%26ie%3DUTF-8%26oe%3DUTF-8%26newwindow%3D1%26q%3D%255Bkernel%255D%2Bmini%2Bhow-to%26btnG%3DPesquisa%2BGoogle%26meta%3Dgroup%253Dpt.comp.so.linux
E tu até agradeceste numa mensagem de resposta!


--
João Jerónimo

ICQ: 312332573
Jabber ID: j_j...@jabber.org

GotTLoS

未读,
2003年12月23日 07:09:482003/12/23
收件人
Boas.

Esqueceste-te de referir que para utilizar modulos com kernel 2.6 é
necessario instalar as novas module-init-tools encontram-se aqui ->
http://www.kernel.org/pub/linux/kernel/people/rusty/modules
ou entao procurem o pacote na vossa distribuição.

inte'

Nbk

未读,
2003年12月25日 22:58:042003/12/25
收件人
On Tue, 23 Dec 2003 12:09:48 +0000, GotTLoS <Got...@GotTLoS.LanD>
escreveu em 8 linhas:

Boas.

São tantas as alterações que optei por colocar os links onde vem
tudo explicado. :-)

@206, Nbk

Nbk

未读,
2003年12月25日 22:59:582003/12/25
收件人
On Mon, 22 Dec 2003 02:55:32 +0000, João Jerónimo
<j_j_b_o...@sapo.pt> escreveu em 29 linhas:

Boas.

>Nbk wrote:
>> ... "major version" ...
>
>majorversion.minorversion.releasenumber
>
>a major version é a 2
>a minor version é a 6
>a o release number é o 0

*duh*!

Deveria estar a "carburar" mal na altura. :-> Na próxima versão
corrijo isso. Thks!

@208, Nbk

0 个新帖子