Debian - Kernel 2.6.33 com patch de Con Kolivas

Publicado por edps em 16/03/2010

[ Hits: 10.013 ]

Blog: https://edpsblog.wordpress.com/

 


Debian - Kernel 2.6.33 com patch de Con Kolivas



Como muitos de nós sabemos, Con Kolivas voltou a contribuir com patches para o kernel Linux.

Visando um melhor desempenho em desktops, proponho com esta dica compilar o último kernel estável (2.6.33) para o Debian "Squeeze" com o patch do Con Kolivas.

Atenção aos usuários do Debian Lenny. Segui os mesmos passos e nas duas vezes que tentei compilar deu erro.

Eu também tenho uma máquina com o Lenny instalado (somente pacotes estáveis!), arquitetura i386.

A compilação deste kernel visava inicialmente instalá-lo no "Lenny", pois para usar meu modem 3G tive que fazer uma "gambiarra" e instalar o kernel 2.6.30-2-686 do "Squeeze".

Devido aos erros, testei no "Squeeze", tudo ocorreu normalmente e fiquei muito satisfeito com o desempenho deste kernel rodando na arquitetura amd64.

No decorrer da dica seguem algumas observações, por favor leiam e comentem.

Para que seu nome apareça como mantenedor do pacote, antes de iniciar a compilação, altere o arquivo /etc/kernel-pkg.conf:

# nano /etc/kernel-pkg.conf

E modifique as seguintes linhas:

# The maintainer information.
maintainer := <seu nome>
email := <seu email>

Espero que testem e gostem!

Para compilar o último kernel estável e aplicar o patch do Con Kolivas, inicialmente devemos baixar o fonte do kernel e o respectivo patch, utilizaremos também o programa kernel-package para gerar os .debs e faremos desta forma:

1 - instalação das dependências:

# apt-get update
# apt-get upgrade
# apt-get install build-essential bin86 bison fakeroot flex gcc cpp g++ kernel-package libqt3-headers libqt3-mt-dev make


2 - baixando o kernel 2.6.33 e o patch 2.6.33-ck1:

# wget -c http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.33.tar.bz2
# wget -c http://www.kernel.org/pub/linux/kernel/people/ck/patches/2.6/2.6.33/2.6.33-ck1/patch-2.6.33-ck1.bz2
# bunzip2 patch-2.6.33-ck1.bz2

3 - movemos os sources para /usr/src:

# mv linux-2.6.33.tar.bz2 /usr/src/
# mv patch-2.6.33-ck1 /usr/src/
# cd /usr/src/


4 - descompactamos o novo kernel:

# tar -jxvf linux-2.6.33.tar.bz2

5 - criamos a ligação simbólica:

# rm -rf linux
# ln -sf linux-2.6.33 linux


6 - entramos no diretório do kernel a ser compilado e aplicamos o patch 2.6.33-ck1:

# cd linux
# patch -p1 < /usr/src/patch-2.6.33-ck1


7 - copiamos o config do kernel atual (leiam a observação):

Obs.: tecle TAB para escolher a versão ou antes, rode o comando "uname -r".

# cp -a /boot/config_do_seu_kernel_atual /usr/src/linux/.config

8 - abrimos o configurador (leiam a observação):

Obs.: uso o KDE por isso uso o comando "make xconfig". Também podemos usar o comando "make menuconfig" (é necessário instalar os pacotes libncurses5 e libncurses5-dev).

# make xconfig

9 - limpamos as configurações anteriores:

# make-kpkg clean

10 - iniciamos a compilação do novo kernel (leiam a observação):

Obs.: a opção "--revision=+1.0" é apenas escolha pessoal, ela pode ser removida!

# make-kpkg --initrd --revision=+1.0 kernel_image kernel_headers

11 - fazemos backup do arquivo /boot/grub/grub.cfg:

# cp -a /boot/grub/grub.cfg /boot/grub/grub-backup.cfg

12 - instalamos o novo kernel 2.6.33-ck1 e seu respectivo headers (leiam a observação):

Obs.: uso a arquitetura amd64.

# dpkg -i linux-image-2.6.33-ck1_+1.0_amd64.deb
# dpkg -i linux-headers-2.6.33-ck1_+1.0_amd64.deb


13 - geramos a imagem initrd para o novo kernel (leiam a observação):

Obs.: ainda não descobri porque recentemente ao instalar um novo kernel compilado com o kernel-package, o INITRD não é gerado! Caso alguém saiba, por favor comente!

# mkinitramfs -o /boot/initrd.img-2.6.33-ck1 /lib/modules/2.6.33-ck1

14 - por fim, atualizamos o grub:

# update-grub

Passos concluídos, basta reiniciar a máquina.

Outras dicas deste autor

Wakka (outra) interface gráfica para o pacman (pra variar)

Adicionando temas no Ubuntu Lucid Lynx

Bash Info Tools para Arch Linux

Debian Squeeze + siduction (XFCE e LXDE)

Arch Linux: /etc/rc.sysinit mountpoint not found

Leitura recomendada

Dedicando uma CPU para processos específicos

Desligando temporariamente os módulos que travam o kernel do OpenBSD

Kernel 3.19.3-smp no Slackware Current

Kernel 2.4 em placas-mãe ASUS com suporte a discos SATA

RedHat 8 repositório local

  

Comentários
[1] Comentário enviado por rogerboff em 21/03/2010 - 00:59h

Eaw meu guri, parabéns pelo artigo.

Também tive problemas para compilar o kernel 2.6.33 no Lenny, mas depois de quebrar a cabeça e procurar no google, achei a solução, o problema é o kernel-package que é instalado no Lenny, pois a versão é 11.015 e o 2.6.33 é 13.264.
Para contornar esse erro, basta baixar o deb http://ftp.br.debian.org/debian/pool/main/k/kernel-package/kernel-package_12.033_all.deb que é do Squeeze, instalar e compilar, ai é só ir pra galera..
O caso Initrd não ser gerado, é porque faltou o "modules_image" parâmetro no comando "make-kpkg --initrd --revision=+1.0 kernel_image kernel_headers", é só adicionar que ele ira gerar o .deb responsável pelo Initrd.

Abraços.

Mais informações: http://www.fell.it/2010/02/25/2-6-33-debian-lenny-nvidia-and-vbox/

[2] Comentário enviado por removido em 21/03/2010 - 13:53h

Roger Pereira, muito agradecido pelo comentário, pelas suas dicas amigo então, sem comentários!.

Uma coisa estranha que me ocorreu é que quando fui instalar o driver nvidia (NVIDIA-Linux-x86_64-190.53-pkg2.run) o instalador parava alegando não encontrar o kernel source, adotei todos os procedimentos possíveis, uso da opção --kernel-source-path= , criação de links simbólicos e tal, mas nada feito e quando já estava pensando em desistir, resolvi baixar o instalador da versão (NVIDIA-Linux-x86_64-173.14.25-pkg2.run) também compatível com minha placa e tudo ocorreu normalmente. Não sei se é um bug do instalador da nvidia, mas como pode ser útil a outras pessoas resolvi postar.

Agora vou partir para a compilação no Lenny.

[3] Comentário enviado por chimico em 30/03/2010 - 18:47h

Olá edps, rode o seguinte comando antes de instalar o driver da nvidia:

m-a prepare

Isso porque se você compilou seu kernel através do make-kpkg e usou o alvo kernel_headers, você está com uma pasta linux-source*** e outra linux-headers*** em /src. Isso confunde o instalador da nvidia.
Com o comando acima (instale module-assistant antes!!!) será determinado para onde vai o link simbólico que aponta para /usr/src/linux

Abraços

[4] Comentário enviado por removido em 31/03/2010 - 11:36h

chicotrance, com esse já obtive 2 bons comentários que certamente me servem. Esta é a diferença deste espaço, a ajuda mútua, muito obrigado!.

[5] Comentário enviado por jasminn em 30/04/2010 - 11:58h

Olá gente, após digitar o comando # make xconfig abriu uma tela do kernel da versão instalada 2.6.33-ck1, verifiquei se estava ticada as opções de desejadas que é usb e pstn, salvei e após digitar o comando # make-kpkg clean apareceu a mensagem ***faltando o separador. Pare. Descupe encomodar mas alguém pode me dar uma dica? Já procurei o erro na net o encontrado é que nao foi instalado, já instalei a versão varias vezes.

Desde já agradeço.

[6] Comentário enviado por removido em 30/04/2010 - 12:24h

jasminn, sugiro que você recomece do zero, quando abrir o configurador apenas clique em File e em Save As, salve como .config.
Se você digitou # "jogo-da-velha" antes do comando não vai funcionar, pois no artigo o comando está comentado por esse símbolo, é o padrão aqui no VOL.

Informo também que se vc conseguir, ao terminar de compilar é essencial que faça os passos abaixo, senão vai dar KERNEL PANIC:

sudo mkinitramfs -o /boot/initrd.img-2.6.33-ck1 /lib/modules/2.6.33-ck1
sudo update-grub

#

Se ainda assim vc quiser compilar o Kernel, siga esse artigo: http://www.vivaolinux.com.br/artigo/KernelCheck-Instalando-o-kernel-mais-recente-em-distros-Debianli...

É mais simplificado, quase sem interação com o usuário.

#

Outra maneira como já lhe disse é instalar o kernel do Debian Squeeze, já te passei os repositórios para inserí-los no APT. Vai eles de novo:

sudo nano /etc/apt/sources.list ### (salve com Ctrl+o e feche com Ctrl+x)

### ARQUIVO DE CONFIGURAÇÃO DE FONTES DO APT
## Debian 'Squeeze/Testing'

## Debian 'Squeeze/Testing' (Espelhos Brasileiros).
## (GPG Key: sudo apt-get install debian-archive-keyring debian-keyring debian-multimedia-keyring -y)
deb http://ftp.br.debian.org/debian/ squeeze main contrib non-free
deb http://ftp.br.debian.org/debian-security/ squeeze/updates main contrib non-free
deb http://ftp.br.debian.org/debian-multimedia squeeze main non-free

## Debian 'Squeeze/Testing' (Espelhos Oficiais).
## (GPG Key: sudo apt-get install debian-archive-keyring debian-keyring debian-multimedia-keyring -y)
deb http://ftp.debian.org/debian/ squeeze main contrib non-free
deb http://security.debian.org/ squeeze/updates main contrib non-free
deb http://www.debian-multimedia.org/ squeeze main non-free

#

Atualize o apt-get e instale o Kernel do Squeeze e seus headers.
sudo apt-get update
sudo apt-get install linux-image-2.6-686 linux-headers-2.6-686
sudo update-grub

[7] Comentário enviado por jasminn em 30/04/2010 - 13:30h

Obrigado edps mas não tava digitando # não, ja segui este passo a passo da instalação algumas vezes já, mas nd, o problema ta na hora de fazer o boot mesmo, ja tentei alguns comando para alteração da imagem mas, nd o jeito é continuar tentando ou fazer desta segunda maneira mais fácil quando tiver com internet conectada no Debian.


[8] Comentário enviado por xcorex em 17/05/2010 - 17:25h

update-initramfs -c -k 2.6.33-ck1 para criar o initramfs.

[9] Comentário enviado por removido em 05/11/2011 - 16:36h

Vejam como instalar no Debian Squeeze um Kernel mais atualizado no artigo publicado em meu blog:

http://gnu2all.blogspot.com/2011/11/kernel-atualizado-no-debian-squeeze-1.html

* os passos dessa 1ª parte do artigo já serviram para poder instalar o kernel Liquorix facilmente, na 2ª parte mostrarei como instalar o zen-kernel, o kernel -pf, o -ck, o liquorix e os do Backports e i686 4 i486



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts