Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Como compilar o kernel Linux 2.6.31.1

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    Artigo Como compilar o kernel Linux 2.6.31.1

    Este artigo contém informações de como instalar/configurar (no linguajar técnico conhecido como "compilar") a mais nova versão estável do kernel Linux para computadores baseados na arquitetura Intel-x86 (i386), no sistema operacional Debian GNU/Linux versão 5.0.3 codinome Lenny.
    Por: Eder Jordan

    Resumo

    Este artigo contém informações de como instalar/configurar (no linguajar técnico conhecido como "compilar") a mais nova versão estável do kernel Linux para computadores baseados na arquitetura Intel-x86 (i386), no sistema operacional Debian GNU/Linux versão 5.0.3 codinome Lenny.

    Não me responsabilizo por eventuais danos em seu equipamento pelo mal uso das informações neste documento. É de sua inteira responsabilidade querer ou não utilizar os comandos descritos neste documento.

    Linux é uma marca registrada e concedida por Linus Torvalds, seu criador e cedente.

    Todas as marcas registradas neste documento são de propriedades de seus respectivos donos.

    Antes de começar: observações

    1. Compilei o kernel Linux versão 2.6.31.1 sob o sistema operacional Debian GNU/Linux versão 5.0.3, codinome Lenny. Caso você ainda não tenha essa versão do Debian GNU/Linux instalada em seu computador, por favor, inicie/abra um navegador web como o IceWeasel, Konqueror, Epiphany etc e acesse o site:

    Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...

    No site que surgir, por favor, clique no link "CD ISO Images".

    Logo após, por favor, clique no link "Download CD/DVD images using HTTP or FTP.".

    Na página que surgir, procure pelo texto "The following links point to image files which are up to 650 MB in size, making them suitable for writing to normal CD-R(W) media:" e clique no link "i386".

    Fique tranquilo, você não necessita efetuar o download dos 31 arquivos de cerca de 640MB cada um. Para instalar o Debian GNU/Linux versão 5.0.3 codinome Lenny, será necessário apenas o 1° arquivo chamado "debian-503-i386-CD-1.iso". Ele representará o 1° CD-ROM de instalação.

    Logo após efetuar o download do arquivo "debian-503-i386-CD-1.iso" (note que ele está no formato ISO), você necessitará utilizar um software que possibilite gravar um CD-ROM. Em sistemas operacionais não livres como o MS Windows, você poderá utilizar o software proprietário Nero.

    2. Mantive o kernel Linux 2.6.26.2 que veio instalado como padrão no sistema operacional Debian GNU/Linux versão 5.0.3 codinome Lenny, pois um possível erro de inicialização do sistema operacional utilizando o kernel Linux 2.6.31.1 poderia ser sanado utilizando o antigo kernel Linux, ou seja, o 2.6.26.2.

    3. Você deve ter noção dos comandos básicos do sistema operacional Debian GNU/Linux, como copiar (cp), mover (mv), listar arquivos/diretórios (ls) etc. Para conhecer esses e outros comandos, por favor, digite no console/terminal o comando:

    man comando_que_voce_quer_saber_mais_informações

    Exemplos:

    # man cp
    # man mv
    # man ls


    4. Não desista caso algo dê errado, tente até você conseguir! Quando compilei pela 1ª vez o kernel Linux, quebrei a cabeça para conseguir. Seja persistente, tenha autoconfiança, NUNCA DESISTA e tenha FÉ!

    5. "LEIA OS FONTES!" Veja a documentação do kernel Linux no diretório /usr/src/versao_do_linux/Documentation/.

    6. Antes de iniciarmos a compilação do kernel Linux 2.6.31.1, é necessário instalar alguns pacotes DEB para que não ocorra nenhum erro de dependência de arquivos. Portanto, por favor, instale os seguintes pacotes DEB: gcc, cpp, binutils, bin86, make, dpkg-dev, perl, kernel-package, linux-headers-2.6.26-2-686:

    # apt-get update
    # apt-get install gcc cpp binutils bin86 make dpkg-dev perl kernel-package linux-headers-2.6.26-2-686


    Efetuando o download do kernel Linux 2.6.31.1

    1. Efetue logon com o seu usuário;

    2. Abra/rode/execute um navegador web (também conhecido como browser) como o IceWeasel, Konqueror, Epiphany etc e acesse o site:

    Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...

    3. Na página "The Linux Kernel Archives" clique no link "Full Source" referente à linha do kernel Linux 2.6.31.1 ou, se preferir, clique no link abaixo:

    Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...

    4. Aguarde alguns instantes (dependendo da sua conexão com a rede mundial de computadores, estes instantes variam de alguns minutos a várias horas) para que o arquivo do kernel Linux 2.6.31.1 seja totalmente copiado para o diretório que você escolheu. No total, o arquivo possui aproximadamente 59MB (59 Mega Bytes).

    Compilando o kernel Linux 2.6.31.1
    1. Logo após o arquivo referente ao kernel Linux 2.6.31.1 ter sido totalmente copiado para o seu computador, desconecte da Internet e efetue logon com o super- usuário (root);

    2. Estando logado como root, verifique se o prompt de comando está parecido com uma das duas opções abaixo:

    [root@chicago /]#

    Ou

    chicago:~#

    3. Acesse o diretório onde você salvou o arquivo "linux-2.6.31.1.tar.bz2".

    # cd /diretorio-onde-esta-o-arquivo

    4. Mova o arquivo "linux-2.6.31.1.tar.bz2" para o diretório "/usr/src":

    # mv linux-2.6.31.1.tar.bz2 /usr/src

    5. Vamos acessar o diretório "/usr/src":

    # cd /usr/src

    6. Antes de iniciar o processo de compilação do kernel Linux, é necessário descompactar o arquivo "linux-2.6.31.1.tar.bz" com o comando:

    # tar -xvf linux-2.6.31.1.tar.bz2

    7. Note que será criado o diretório "linux-2.6.31.1" onde estão armazenados os arquivos e diretórios referentes ao código fonte do kernel Linux 2.6.31.1:

    # ls
    linux-2.6.31.1 linux-2.6.31.1.tar.bz2 linux-source-2.6.26.tar.bz2

    8. Apenas como precaução, vamos alterar o dono e o grupo de todos os arquivos e diretórios que estão dentro do diretório "/usr/src/linux-2.6.31.1" digitando o comando:

    # chown root.root -R -v /usr/src/linux-2.6.31.1/*

    9. As configurações atuais do kernel Linux que foi instalado com o Debian GNU/Linux 5.0.3 codinome Lenny estão armazenadas no arquivo "/boot/config-2.6.26-2-686". Irei utilizá-las como base para compilar o kernel Linux 2.6.31.1. Para isso, digitei o comando:

    # cp /boot/config-2.6.26-2-686 /usr/src/linux-2.6.31.1/.config

    10. OK, vamos em frente. Acesse o diretório 'linux-2.6.31.1':

    # cd linux-2.6.31.1

    11. Vamos iniciar o processo de compilação do kernel Linux 2.6.31.1. Devemos, primeiramente, configurar/selecionar as opções que queremos compilar/instalar através de um menu. Para isso, digite o comando:

    # make menuconfig

    12. Na tela que surgir, selecione a opção "Load an Alternate Configuration File", isto é, "Ler um arquivo de configuração alternativo" e tecle "ENTER". Utilizei o arquivo ".config" como base para acrescentar e remover algumas opções para o kernel Linux 2.6.31.1. Caso tenha dúvidas, por favor, veja o passo número 5.9. Então digite o nome do arquivo ".config" e tecle "ENTER".

    A partir deste momento você poderá acrescentar ou remover algumas opções referentes ao hardware utilizado pelo seu computador. O significado dos caracteres especiais utilizados para acrescentar ou remover as opções que posteriormente serão compiladas são:

    * [ * ] = compilado dentro do kernel Linux por padrão;
    * [ ] = não compilado;
    * < M > = compilado como módulo;
    * < * > = compilado dentro do kernel Linux;
    * < > = não compilado.


    Quando se tem opções como colchetes [ ], você tem duas opções:

    1. compilar dentro do kernel Linux por padrão
    2. não compilar


    Já quando se tem opções como < >, você pode:

    1. compilar como módulo
    2. compilar dentro do kernel Linux
    3. não compilar


    13. Infelizmente, por motivo de falta de tempo, não pude acrescentar neste tutorial as opções referentes aos diversos drivers de dispositivos que a versão 2.6.31.1 do kernel Linux oferece. Então ficará por sua conta selecionar essas opções observando a configuração do seu computador, ou seja, o seu hardware (modelo da placa de som, modelo da placa de vídeo, modelo da placa de rede, dispositivos USB, firmware, sistemas de arquivos, tipo do processador etc).

    14. Logo após selecionar/marcar os itens que serão compilados, selecione a opção "Save an Alternative Configuration File", isto é, "Salvar um arquivo de configuração alternativo" para salvar as modificações que você realizou na configuração do kernel Linux 2.6.31.1. Depois de teclar "ENTER", digite um nome para o arquivo como, por exemplo, "config-nova-configuracao-do-kernel.txt".

    15. Por fim, selecione a opção "Exit" (Sair) e tecle "ENTER".

    16. Na tela que surgir, "Do you wish to save your new kernel configuration?" (Você deseja salvar sua nova configuração do kernel Linux?), selecione a opção "Yes" e tecle "ENTER".

    17. Estando no prompt de comando, digite:

    # make-kpkg clean

    O comando "make-kpkg clean" é utilizado para limpar construções anteriores do kernel Linux.

    18. Para criar um arquivo/pacote DEB com o kernel Linux 2.6.31.1 compilado, digite o comando:

    # make-kpkg --append-to-version "-VERSAO_TAL" --initrd kernel_image

    Altere o texto "VERSAO_TAL" para um nome familiar. EX: -teste01. Aguarde... esse procedimento demorará alguns minutos.

    19. Caso o comando "make-kpkg" tenha parado/terminado com a seguinte mensagem:

    (...)
    cc -m32 -Wall -Wmissing-declarations -Wmissing-prototypes
    -O3 -I../../include -I../../arch/x86/include -U_FORTIFY_SOURCE
    lguest.c -o lguest
    lguest.c:21:25: error: sys/eventfd.h: No such file or directory
    lguest.c: In function 'create_thread':
    lguest.c:1021: warning: implicit declaration of function 'eventfd'
    make: *** [lguest] Error 1

    Você deverá alterar o arquivo "/usr/src/linux-2.6.31.1/Documentation/lguest/Makefile". Altere a linha:

    all: lguest

    Para:
    Código:
    all:
    20. Rode/execute novamente o comando:

    # make-kpkg --append-to-version "-VERSAO_TAL" --initrd kernel_image

    Altere o texto "VERSAO_TAL" para um nome familiar. EX: -teste01. Aguarde... esse procedimento demorará alguns minutos. No final do processo de compilação do kernel Linux 2.6.31.1 você deverá visualizar as seguintes informações:

    (...)
    dpkg --build /usr/src/linux-2.6.31.1/debian/linux-image-2.6.31.1 ..
    dpkg-deb: building package `linux-image-2.6.31.1' in `../linux-image-2.6.31.1_teste.1.0_i386.deb'.
    make[2]: Leaving directory `/usr/src/linux-2.6.31.1'
    make[1]: Leaving directory `/usr/src/linux-2.6.31.1'

    21. Repare na terceira linha de baixo para cima:

    dpkg-deb: building package `linux-image-2.6.31.1' in `../linux-image-2.6.31.1_teste.1.0_i386.deb'.

    Ou seja, após compilar o kernel Linux, foi gerado o arquivo chamado "linux-image-2.6.31.1_teste.1.0_i386.deb" no diretório superior "..". Assim, digite o comando:

    # cd ..


    22. Então para instalar o kernel Linux versão 2.6.31.1, digite o comando:

    # dpkg -i linux-image-2.6.31.1_teste.1.0_i386.deb

    Caso o kernel Linux versão 2.6.31.1 seja instalado com sucesso, você verá as seguintes informações:

    Selecting previously deselected package linux-image-2.6.31.1.
    (Reading database ... 210162 files and directories currently installed.)
    Unpacking linux-image-2.6.31.1 (from linux-image-2.6.31.1_teste.1.0_i386.deb) ...
    Done.
    Setting up linux-image-2.6.31.1 (teste.1.0) ...
    Running depmod.
    Running postinst hook script update-grub.
    Searching for GRUB installation directory ... found: /boot/grub
    Searching for default file ... found: /boot/grub/default
    Testing for an existing GRUB menu.lst file ... found: /boot/grub/menu.lst
    Searching for splash image ... none found, skipping ...
    Found kernel: /boot/vmlinuz-2.6.31.1
    Found kernel: /boot/vmlinuz-2.6.26-2-686
    Updating /boot/grub/menu.lst ... done

    23. Por fim, vamos reiniciar o computador digitando:

    # sync
    # shutdown -r now


    24. Pronto! Agora, quando aparecer o menu do GRUB, selecione a opção:

    Debian GNU/Linux, kernel 2.6.31.1-VERSAL_TAL

    25. Caso apareça alguma mensagem de erro durante a inicialização/boot do sistema operacional Debian GNU/Linux 5.0.3 codinome Lenny utilizando o kernel 2.6.31.1, reinicie o computador e acesse o sistema através do kernel antigo selecionando a seguinte opção:

    Debian GNU/Linux, kernel 2.6.26-2-686

    Caso o Debian GNU/Linux trave durante a inicialização do novo kernel 2.6.31.1 com a seguinte mensagem de erro:

    Begin: Waiting for root file system ...

    Você deverá optar em realizar um dos dois procedimentos abaixo:

    1° procedimento: segundo o site kernelnewbies, a partir da versão 2.6.19 do kernel Linux o suporte a dispositivos que utilizam a interface IDE (como, por exemplo, disco rígidos, drives de CD-ROM ou DVD-ROM) serão acessados, por padrão, pelo Debian GNU/Linux através de uma nova nomenclatura:

    /dev/sda
    /dev/sdb
    /dev/sdc
    /dev/sdd

    Ao invés de:

    /dev/hda (periférico configurado como MASTER na IDE primária)
    /dev/hdb (periférico configurado como SLAVE na IDE primária)
    /dev/hdc (periférico configurado como MASTER na IDE secundária)
    /dev/hdd (periférico configurado como SLAVE na IDE secundária)

    Esse recurso está selecionado na configuração do kernel Linux 2.6.31.1 na opção "Serial ATA (prod) and Parallel ATA (experimental) drivers" dentro do menu "Device Drivers". Caso queira realmente utilizar esse novo recurso, você deverá alterar os seguintes arquivos:

    Arquivo /etc/fstab:

    Código:
    (...)
    # Editado por Eder Jordan - 04/10/2009
    # /dev/hda2     /      ext3   (...)
    /dev/sda2       /      ext3   (...)
    #
    # Editado por Eder Jordan - 04/10/2009
    # /dev/hda4     /home     ext3   (...)
    /dev/sda4       /home     ext3   (...)
    #
    # Editado por Eder Jordan - 04/10/2009
    # /dev/hda3     none      swap   (...)
    /dev/sda3       none      swap   (...)
    #
    # Editado por Eder Jordan - 04/10/2009
    # /dev/hdc     /media/cdrom0   udf,iso9660   (...)
    /dev/sdc       /media/cdrom0   udf,iso9660
    (...)
    Arquivo /boot/grub/menu.lst:
    Código:
    (...)
    ## ## End Default Options ##
    
    title     Debian GNU/Linux 5.0.3 - Lenny - Kernel 2.6.31.1
    root      (hd0,1)
    kernel    /boot/vmlinuz-2.6.31.1-ej23mj root=/dev/sda2 ro quiet
    initrd    /boot/initrd.img-2.6.31.1-ej23mj
    
    title     Debian GNU/Linux 5.0.3 - Lenny - Kernel 2.6.31.1 (single-user mode)
    root      (hd0,1)
    kernel    /boot/vmlinuz-2.6.31.1-ej23mj root=/dev/sda2 ro single
    initrd    /boot/initrd.img-2.6.31.1-ej23mj
    
    title     Debian GNU/Linux 5.0.3 - Lenny - Kernel 2.6.26-2-686
    root      (hd0,1)
    kernel    /boot/vmlinuz-2.6.26-2-686 root=/dev/hda2 ro quiet
    initrd    /boot/initrd.img-2.6.26-2-686
    
    title     Debian GNU/Linux 5.0.3 - Lenny - Kernel 2.6.26-2-686 (single-user mode)
    root      (hd0,1)
    kernel    /boot/vmlinuz-2.6.26-2-686 root=/dev/hda2 ro single
    initrd    /boot/initrd.img-2.6.26-2-686
    
    (...)
    2° procedimento: também, segundo o site kernelnewbies:

    "Well, the safe option is using the old driver: The old drivers will continue working just as they did before. There'll be no changes if you continue using the old drivers."

    Tradução amadora: Bem, a opção segura é utilizar o driver antigo: ele continuará funcionando da mesma maneira que que fazia antes. Não haverá mudanças se você continuar usando o driver antigo.

    E mais:

    "If you want to be safe, use the old drivers."

    Tradução amadora: Se você deseja estar seguro, utilize o driver antigo.

    O driver antigo configurará o suporte a dispositivos que utilizam a interface IDE (como, por exemplo, disco rígidos, drives de CD-ROM ou DVD-ROM) através da mesma nomenclatura anterior à versões do kernel Linux 2.6.19, ou seja, 2.6.18, 2.6.17, 2.6.16 etc. Sua nomenclatura não altera, isto é:

    /dev/hda (periférico configurado como MASTER na IDE primária)
    /dev/hdb (periférico configurado como SLAVE na IDE primária)
    /dev/hdc (periférico configurado como MASTER na IDE secundária)
    /dev/hdd (periférico configurado como SLAVE na IDE secundária)

    Optei por utilizar o 2° procedimento. Para isso, na configuração do kernel Linux 2.6.31.1 , selecionei a opção "ATA/ATAPI/MFM/RLL support", dentro do menu "Device drivers e desmarquei a opção referente ao novo driver, "Serial ATA (prod) and Parallel ATA (experimental) drivers" dentro do menu "Device Drivers". Assim não será necessário alterar os arquivos /etc/fstab e /boot/grub/menu.lst como no 1° procedimento.

    Fonte: VivaoLinux
    Postado Por: RedDeviL

X
Working...
X