Please enable JS

Instalando o Debian 4 no CCE W93

Criado em 22/10/2009, por Hosco Tecnologia. Revisado e atualizado em 24/06/2012.

Introdução

O CCE W93 é um notebook de baixo custo que vem com sistema operacional Satux Linux. Ele parece funcionar muito bem, mas os problemas começam quando tentamos instalar uma distribuição Linux tradicional nesse equipamento. Em nossa primeira tentativa (outubro de 2008) foi possível concluir a instalação, porém o sistema não carregava. Pelo que percebemos, havia impedimentos referentes as controladoras SATA, IDE e a função C3 (gerenciamento de estados do processador), que aparentemente não possuem suporte completo pelo kernel do Debian Etch.

O CCE W93 vem com uma placa-mãe que usa o chipset SIS M672. Portanto, este artigo é destinado a ajudar na instalação de distribuições Linux com kernel 2.6.24 ou inferior em computadores que tenham essa configuração de hardware. Também poderá ser um breve tutorial para compilação de kernel mais recente em distribuições antigas - situação comum em cenários que não permitem atualização de sistema operacional.

Na Hosco Tecnologia também usamos os métodos aqui descritos para recuperar arquivos, bases de dados e qualquer outro tipo de informação presente em ambientes Linux inacessíveis.

Requisitos

  • Baixar e gravar o CD de instalação do Debian 4 etch and a half;
  • Baixar e gravar um Live CD/DVD Linux com kernel >= 2.6.27. Recomendamos o Debian Live 6 com LXDE;
  • Baixar o código fonte do kernel 2.6.27 ou outra versão que atenda sua necessidade;
  • Baixar este arquivo compactado que contém os os seguintes pacotes:
    • binutils_2.17-3_i386.deb
    • build-essential_11.3_i386.deb
    • cpp_4.1.1-15_i386.deb
    • dpkg-dev_1.13.25_all.deb
    • g++-4.1_4.1.1-21_i386.deb
    • g++_4.1.1-15_i386.deb
    • gcc-3.3-base_3.3.6-15_i386.deb
    • gcc-3.4-base_3.4.6-5_i386.deb
    • gcc-4.1_4.1.1-21_i386.deb
    • gcc_4.1.1-15_i386.deb
    • libc6-dev_2.3.6.ds1-13etch7_i386.deb
    • libncurses5-dev_5.4-4_i386.deb
    • libncurses5_5.4-4_i386.deb
    • libssp0_4.1.1-21_i386.deb
    • libstdc++6-4.1-dev_4.1.1-21_i386.deb
    • linux-headers-2.6.24-etchnhalf.1-686_2.6.24-6~etchnhalf.5_i386.deb
    • linux-headers-2.6.24-etchnhalf.1-common_2.6.24-6~etchnhalf.5_i386.deb
    • linux-image-2.6.24-etchnhalf.1-686_2.6.24-6~etchnhalf.5_i386.deb
    • linux-kbuild-2.6.24_2.6.24-1~etchnhalf.1_i386.deb
    • linux-kernel-headers_2.6.18-7_i386.deb
    • linux-source-2.6.24_2.6.24-6~etchnhalf.5_all.deb
    • make_3.81-2_i386.deb
    • patch_2.5.9-4_i386.deb
    • perl-modules_5.8.8-7etch3_all.deb
    • perl_5.8.8-7etch3_i386.deb
  • Descompactar os arquivo debs.zip e linux-2.6.17.tar.gz;
  • Copiar a pasta debs e a pasta linux-2.6.17 para um pen drive.

Recomendações

É sugerido que haja uma conexão de internet ativa no sistema host (Live CD) durante o processo, principalmente para ambientes diferentes do abordado nesse artigo. Deste modo será possível resolver eventuais problemas de dependências de pacotes durante a construção do kernel. Portanto, ative uma conexão por cabo, por dispositivo usb, etc. Se não for possível, pelo menos esteja perto de um computador com acesso à internet.

Procedimentos

Preparação do Ambiente

  • Habilitar a opção "C3 Function" no BIOS;
  • Fazer a instalação básica do o Debian 4 etch and a half usando o parâmetro "installgui" no boot. Não inserir mídias adicionais nem usar espelhos de rede. Nós usamos o "Etch And a Half", mas é possível que funcione com o "Debian Etch" convencional ou com qualquer distribuição Linux moderna que ao menos detecte as controladoras de disco rígido;
  • Reiniciar o computador e desativar "C3 Function" no BIOS;
  • Iniciar o Live CD Linux (que use kernel com versão maior ou igual a 2.6.27) adicionando "acpi=off" e "noapic" na linha de parâmetros. Utilizar o F6 para editar a linha;
  • Quando o Live CD estiver carregado, abra um shell (terminal). Se tiver usando a distribuição recomendada na lista de requisitos, basta usar o atalho "ALT+F2" e executar o comando lxterminal ;
  • Fazer login como usuário root com o comando sudo su ;
  • Criar um ponto de montagem para a partição raiz do Debian 4 com o comando mkdir /mnt/debian4 ;
  • Montar a partição raiz (/) do Debian 4, através do comando mount /dev/particao_raiz /mnt/debian4 . Se houver uma partição /boot separada, mounte-a dessa maneira: mount /dev/particao_boot /mnt/debian4/boot . Obviamente, deve-se substituir as nomeclaturas /dev/particao_raiz e /dev/particao_boot pelas partições reais (/dev/sda1, /dev/sda2, etc.). Em caso de dúvidas, use o comando fdisk para listar as partições;
  • Acessar a partição raiz do Debian 4 com o comando cd /mnt/debian4 ;
  • Enjaular a partição raiz, ou seja, o diretório atual, com o comando chroot . ;
  • Abrir um novo terminal e logar como root com o comando sudo su ;
  • Inserir o pen drive, que contém os pacotes e o kernel novo, no notebook;
  • Criar um ponto de montagem para acessar a partição do pen drive, com o comando mkdir /mnt/pendrive ;
  • Montar a partição do pen drive através do comando mount /dev/particao_pendrive /mnt/pendrive , substituindo '/dev/particao_pendrive' pela partição real do seu pen drive;
  • Copiar a pasta com os pacotes deb para a raiz do sistema enjaulado: cp -av /dev/particao_pendrive/debs /mnt/particao_raiz/ ;
  • Copiar a pasta com o kernel 2.6.17 para o diretório /usr/src do sistema enjaulado: cp -av /dev/particao_pendrive/linux-2.6.17 /mnt/particao_raiz/usr/src/ ;
  • Voltar para o outro terminal, que está com diretório enjaulado;
  • Descompactar o novo kernel: cd /usr/src && tar xvzf linux-2.6.27.tar.gz" ;
  • Instalar todos arquivos deb. É possível fazer isso com apenas um comando, forçando as dependências:
    • Acessar diretorio para onde os debs foram copiados: cd /mnt/particao_raiz/debs ;
    • Instalar todos os pacotes: dpkg -i --force-all *.deb ;
    • Se houver algum erro, instale-os manualmente, um por vez.

Compilação e Instalação do Kernel

  • Permanecer no terminal com o diretório enjaulado até o fim dos procedimentos;;
  • Acessar diretório aonde código fonte do novo kernel foi copiado: cd /usr/src ;
  • Criar um link simbólico do código fonte: ln -sf linux-2.6.27 linux ;
  • Acessar o diretório com link para o fonte do kernel: cd /usr/src/linux ;
  • Editar o arquivo que contém as regras de compilação do kernel:
    • Abrir o arquivo Makefile com um editor de texto (vim, por exemplo): vim /usr/src/linux/Makefile ;
    • Alterar a variável EXTRAVERSION. Exemplo: EXTRAVERSION = .hosco-c1 ;
    • Salvar o arquivo /usr/src/linux/Makefile, mantendo a alteração realizada.
  • Este passo não costuma ser necessário com um código fonte recém baixado da internet, mas podemos executá-lo por precaução. Portanto, use o comando make mrproper para reiniciar o código fonte do kernel;
  • Copiar a configuração de kernel usada na instalação do Debian 4 para o diretório do fonte do kernel novo: cp -v /boot/config-2.6.24_debian4 /usr/src/linux/.config ;
  • Executar ferramenta de configuração do kernel com o comando make menuconfig . Este comando edita o arquivo /usr/src/linux/.config, que contém a lista de módulos, funções e certas características que farão parte do futuro kernel (instruções de compilação). O nosso .config já está corretamente configurado para o nosso hardware porque é uma mera cópia de /boot/config-2.6.24_debian4 . Em nosso caso, manteremos a configuração do jeito que está.
  • Para o propósito principal deste artigo deve-se apenas salvar e sair do menu de configuração, deixando tudo intacto. Por outro lado, pessoas com experiência poderão determinar customizações de kernel, adicionando ou excluindo suporte a barramentos, arquiteturas, sistemas de arquivos, dispositivos, etc. Entretanto, essas alterações devem ser feitas de modo consciente para evitar problemas (kernel panic) que impeçam a inicialização do sistema. O procedimento padrão é somente clicar em salvar (save) e sair (exit).
  • Compilar a imagem do kernel, executando o comando make ;

    Esta é etapa de construção do novo kernel e costuma demorar um pouco. Se houver erros de dependência ou ausência de pacotes, corrija-os instalando os pacotes deb ausentes no sistema enjaulado.

  • Compilar e instalar os drivers modulares: make modules_install ;
  • Copiar o novo arquivo de configuração para o /boot do Debian 4: cp -v .config /boot/config-2.6.27.hosco-c1 ;
  • Copiar arquivo com mapeamento de símbolos do kernel: cp -v System.map /boot/System.map-2.6.27.hosco-c1 ;
  • Copiar o kernel recém compilado para /boot do Debian 4: cp -v arch/x86/boot/bzImage /boot/vmlinuz-2.6.27.hosco-c1 ;
  • Criar ram drive inicial (initrd): mkinitramfs -o /boot/initrd.img-2.6.27.hosco-c1 2.6.27.hosco-c1 ;

Configuração do Gerenciador de Boot

Estamos considerando o GRUB em sua primeira versão (usada no Debian 4), que possui o arquivo de configuração menu.lst . Para distribuições que usam o GRUB2 não é necessário alterar o menu.lst. Basta executar o comando update-grub .

Para indicar o novo kernel para o GRUB presente no Debian Etch é necessário editar o arquivo /boot/grub/menu.lst . A partição onde está localizado o diretório /boot será /dev/sda1 para a maioria das instalações; em casos excepcionais basta fazer a adequação. Seguem as linhas que serão inseridas no /boot/grub/menu.lst:

  • title Debian GNU/Linux, kernel 2.6.27.hosco-c1
    • root            (hd0,0)
    • kernel          /boot/vmlinuz-2.6.27.hosco-c1 root=/dev/sda1 ro
    • initrd          /boot/initrd.img-2.6.27.hosco-c1
    • savedefault
  • title Debian GNU/Linux, kernel 2.6.27.hosco-c1 (single-user mode)
    • root            (hd0,0)
    • kernel          /boot/vmlinuz-2.6.27.hosco-c1 root=/dev/sda1 ro single
    • initrd          /boot/initrd.img-2.6.27.hosco-c1
    • savedefault

Após realização da etapa acima, basta reiniciar o computador para começar a usar o sistema com o kernel atualizado.

Considerações

Se os parâmetros do GRUB referentes ao kernel 2.6.27 (kernel recém compilado) estiverem apontando para um HD ou partição incorretos, ocorrerá um ERRO durante o boot. Isto pode ser corrigido da seguinte maneira:

  • Durante a inicialização do sistema selecione a linha do menu do GRUB que contém o seu novo kernel e aperte a letra e para editar;
  • Altere a linha "root (hd0,0)" para "root (hd_da sua_instalação)" e aperte "enter" para finalizar;
  • Altere a linha "root=/dev/sda1" para "root=/dev/sua_instalação_ou_seu_/boot" e aperte "enter" para finalizar;
  • Aperte a letra b para inicializar o Linux;
  • Quando o Linux estiver carregado, faça login como root em um terminal e edite o arquivo "/boot/grub/menu.lst" para efetuar uma correção definitiva.

Conforme dissemos no início, este documento pode ser adaptado para outros sistemas Linux que estejam off-line e, por algum motivo, precisam de um novo kernel.