Debian - Kernel 2.6.33 com patch de Con Kolivas
Dica publicada em Linux / Kernel
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:
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.
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>
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.
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/