Compilando o kernel no Ubuntu Linux
Do que vale possuirmos um sistema livre no maior sentido da palavra e não podermos usufrir de um dos pré-requisitos mais valiosos que existe na GPL que é a liberdade de adaptar o código fonte de um programa de acordo com nossas necessidades.
Este artigo irá ajudar você a adaptar o kernel do linux as suas necessidades.
Inicialmente vamos alterar o link do shell padrão para o /bin/sh já que por default ele aponta para /bin/dash
sudo rm -f /bin/sh
sudo ln -s /bin/bash /bin/sh
Instale os pacotes necessários para a compilação do kernel
sudo apt-get install kernel-package libncurses5-dev fakeroot wget bzip2
Baixe a fonte do kernel e o patch para o vserver
cd /usr/src
sudo wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.18.2.tar.bz2
sudo wget http://www.13thfloor.at/vserver/d_rel26/v2.1.1/patch-2.6.18.2-vs2.1.1.diff.bz2
Descompate o arquivo e crie um link para o diretório linux
sudo tar xjf linux-2.6.18.2.tar.bz2
sudo ln -s linux-2.6.18.2 linux
cd /usr/src/linux
Aplique o patch para habilitar o uso do vserver no kernel. O primeiro comando irá simular a aplicação do patch, não havendo nenhum erro use o segundo comando.
sudo bzip2 -dc /usr/src/patch-2.6.18.2-vs2.1.1.diff.bz2 | patch -p1 –dry-run
sudo bzip2 -dc /usr/src/patch-2.6.18.2-vs2.1.1.diff.bz2 | patch -p1
Aproveite a configuração do kernel atual como base para o nosso kernel customizado
sudo cp /boot/config-`uname -r` ./.config
Agora inicie o menu de configuração do kernel
make menuconfig
No menu acesse a opção Load an Alternate Configuration File e pressione OK, para escolher o arquivo com a atual configuração do kernel
Navegue nas opções do kernel e escolha as configurações desejadas.
Eu por exemplo modifiquei os seguintes itens:
Processador de 486 para Athlon
Desabilitei o suporte a:
- Firewire
- Pcmcia
- MCA
- EISA
- ISA
- Drivers de placas de rede 10000/1000 e WAN
- Telefonia
- Fibra
- RAID
- Kernel Hacking
Após fazer as alterações desejadas salve e saia
Vamos agora compilar e instalar o novo kernel. Após o –append-to-version você pode adiconar seu nome ou qualquer string que facilite a identificação, por exemplo eu escolhi alex.
sudo make-kpkg clean
sudo fakeroot make-kpkg –initrd –append-to-version=-alex kernel_image kernel_headers
Agora vá tomar um banho, tomar café, ler a wiki page do Time de Documentação por que o processo demora.
Se não surgir nenhum erro 2 ( dois ) arquivos serão criados no diretório /usr/src
cd /usr/src
ls -l
linux-headers-2.6.18.2-vs2.1.1-alex_2.6.18.2-vs2.1.1-alex-10.00.Custom_i386.deb
linux-image-2.6.18.2-vs2.1.1-alex_2.6.18.2-vs2.1.1-alex-10.00.Custom_i386.deb
Agora só precisamos instalar os pacotes .deb com o velho e bom dpkg
sudo dpkg -i linux-headers-2.6.18.2-vs2.1.1-alex_2.6.18.2-vs2.1.1-alex-10.00.Custom_i386.deb
sudo dpkg -i linux-image-2.6.18.2-vs2.1.1-alex_2.6.18.2-vs2.1.1-alex-10.00.Custom_i386.deb
Ao finalizar a instalação dos pacotes reinicie o micro
sudo shutdown -r now
Após a inicialização confirme o kernel que está em execução
uname -r
2.6.18.2-vs2.1.1-alex
Pronto agora você está rodando um kernel customizado para sua arquitetura.
Arquivado em: Sem Categoria | Tagged: planeta




















Cara, soh me explique uma coisa.
Pq vc mudou o shell de bash para sh? o que essa modificação vai afeta no meu sistema depois?
Olá Marcus,
O link foi alterado de dash para bash, apenas por causa daa limitações do dash.
Não irá mudar nada em seu sistema.
Onde fico sabendo os tipos de suporte (o que cada um faz), pra poder escolher aqueles que não desejo ter?
Olá Marcus,
Pressione no botão , lá você terá a descrição de cada opção do kernel.
Aconselho inicialmente que você altere somente o processador e o kernel hacking.
Depois você vai alterando aos poucos os outros módulos.
Forte abraço
sudo bzip2 -dc /usr/src/patch-2.6.18.2-vs2.1.1.diff.bz2 | patch -p1
Sobre esse comando; eu fiz isso e le perguntou alguma coisa sobre o caminho do arquivo varias vezes o que eu coloco ?
E sobre o iptables, eu tenho um script de firewall no /etc/init.d/
E com o novo kernel que o mesmo que está no seu link 2.6.18.2 e ele diz que o modulo não está presente no kernel, pede para eu recompilar o kernel, no kernel onde encontra a opção de ativar o iptables ou eu tenho que baixar o patch neste link
http://www.netfilter.org/projects/iptables/downloads.html#iptables-1.3.6
E como eu coloco esse patch ?
Em vez de você responder faz um tutorial legal dessas perguntas que eu fiz ?
Pois tentei compilar o kernel 2 vezes mas não consegui adicionar os patchs nem do iptables nem vserver onde estou errando.
Mas kernel compilou legal, só faltou algumas coisas o boot load do ubuntu, fica uma tela preta e depois entra no gdm; tem como mudar isso.
Olha se vc tiver tempo de fazer um tutorial desses ia ser muito bom.
Desculpe esse monte de perguntas.
Fora essas questões o kenel ficou bem legal e instalou tudo. PS fico rapido esse meu sempron 3000+ 64Bit
Adorei seu tutorial vc é fera cara ! Parabens
Ass: Jose Nilton
Orra cara valeu mesmo pelo tuto!
Estou com um problema que está me deixando maluco. Após o make menuconfig eu executo o comando sudo make-kpkg clean, e a menesagem que aparece é essa: *** Error. I do not know where the kernel image goes to [kimagedest undefined] The usual case for this is that I could not determine which arch or subarch tihs machine belongs to. Please specify a subarch, and try again.. Pare.
e o que me deixa mais intrigado é que eu conseguia compilar o kernel numa boa no Debian.
O que será que está errado?
Tipo, no finalzinho, ao tentar essa etapa:
sudo fakeroot make-kpkg –initrd –append-to-version=-vitor kernel_image kernel_headers
aparece isso
Error: Unknown target –initrd Unknown target –append-to-version=-vitor
use –targets to display help on valid targets.
Epa, consegui, em alguns lugares na hora de mandar copiar os “-” foram sustituidos, resolvido
[...] http://penguim.wordpress.com/2006/11/14/compilando-o-kernel-no-ubuntu-linux/ [...]
Oi amigo, tem um comando que foi escrito errado, em vez de “sudo fakeroot make-kpkg –initrd –append-to-version=-alex kernel_image kernel_headers” e
“sudo fakeroot make-kpkg –initrd –append-to-version=-teste kernel_image kernel_headers”.
Oi amigo, tem um comando que foi escrito errado, em vez de “sudo fakeroot make-kpkg –initrd –append-to-version=-alex kernel_image kernel_headers” e
“sudo fakeroot make-kpkg –initrd –append-to-version=-alex kernel_image kernel_headers”.
Oi amigo, tem um comando que foi escrito errado, em vez de “sudo fakeroot make-kpkg –initrd –append-to-version=-alex kernel_image kernel_headers” e
“sudo fakeroot make-kpkg *initrd *append-to-version=-teste kernel_image kernel_headers”.
*Obs: e igual a — .
Oi amigo, tem um comando que foi escrito errado, em vez de “sudo fakeroot make-kpkg –initrd –append-to-version=-alex kernel_image kernel_headers” e
“sudo fakeroot make-kpkg –initrd –append-to-version=-teste kernel_image kernel_headers”.
*Obs: e igual a - - .
Oi amigo, tem um comando que foi escrito errado, em vez de “sudo fakeroot make-kpkg –initrd –append-to-version=-alex kernel_image kernel_headers” e
“sudo fakeroot make-kpkg *initrd *append-to-version=-teste kernel_image kernel_headers”.
*Obs: e igual a - - .
Oi amigo, tem um comando que foi escrito errado, em vez de “sudo fakeroot make-kpkg –initrd –append-to-version=-alex kernel_image kernel_headers” e
“sudo fakeroot make-kpkg –initrd –append-to-version=-teste kernel_image kernel_headers”.
Obs: * igual a - - .
Alex, fiz os passos aqui.
Ficou show.
A documentação ta muito boa.
O comando:
sudo fakeroot make-kpkg –initrd –append-to-version=-alex kernel_image kernel_headers
Esta correto, o problema que mtos nao notaram o sinal (–)
no caso fincando assim:
sudo fakeroot make-kpkg -initrd -append-to-version=-alex kernel_image kernel_headers
Olá!
Não seria viável fazer um backup? Qual software para backups você me recomandaria?
Ah, belo post!
[...] http://penguim.wordpress.com/2006/11/14/compilando-o-kernel-no-ubuntu-linux/ [...]
Muito bem. Ótimo e simples tutorial, mas não encontrei como gerar os .deb para os restricted drivers como o nvidia, intel wifi etc.
Geralmente quando se segue estes passos, há dependências não satisfeitas para os módulos das placas de drivers da nvidia, intel etc.
Como proceder para gerar os restricted drivers com o mesmo nome do nosso kernel customizado?
Obrigado.
[...] http://penguim.wordpress.com/2006/11/14/compilando-o-kernel-no-ubuntu-linux/ Explore posts in the same categories: [...]
Alex,
vc esqueceu de colocar a fonte cara:
http://www.howtoforge.com/kernel_compilation_ubuntu_p2
Abraço