Fiz este passo-a-passo pois achei muito complicados todos os artigos que eu vi para realizar esta tarefa. A distribuição Linux utilizada foi o Ubuntu 9.04, mas pode ser utilizado também no Debian. Siga os passos rigorosamente e com cuidado!
O kernel é o coração do sistema, é sempre bom estar com ele atualizado, pois as novas versões sempre trazem novidades e correções.
Neste artigo farei um passo-a-passo de como recompilar seu kernel no LinuxUbuntu 9.04 ou Debian. Recompilar o kernel é um processo demorado e que exige muita paciência, mas não é difícil e sim trabalhoso!
Siga os passos à risca e saíra tudo certinho.
A distro utilizada foi o Ubuntu 9.04 32 bits. A versão mais atual do kernel (no momento em que estou escrevendo este artigo) e que eu vou utilizar nesse artigo é a 2.6.29.2.
Lembra daquela pasta que você extraiu o arquivo do kernel? Então, agora nós vamos copiá-la para a pasta /usr/src, como esta pasta só pode ser alterada pelo root, faremos isso via terminal.
Vá até a pasta onde você extraiu a pasta do kernel. Ex.:
Agora vamos criar um link (atalho) para a pasta o kernel. Vá até a pasta /usr/src:
# cd /usr/src
E crie o link:
# ln -s linux-2.6.29.2 linux
Agora vamos "entrar" no link:
# cd /usr/src/linux
[Parte opcional] Se você quiser salvar para depois aproveitar a configuração do seu kernel atual digite:
# cp /boot/config-`uname -r` ./.config
Chegamos na parte legal! Vamos configurar nosso kernel de acordo com nossas necessidades (talvez a maior vantagem do software open source), para isso digite no terminal:
# make menuconfig
[Parte opcional] Se você quiser aproveitar a configuração do seu kernel atual o momento é esse! Acesse a opção "Load an Alternate Configuration File", dê OK e escolha o arquivo que a gente salvou anteriormente.
Se o seu kernel anterior já estava otimizado para sua máquina e você quer apenas atualizar seu kernel, simplesmente dê ESC e escolha "Save". Caso contrário modifique as configurações no menu conforme suas necessidades. O menu é bem intuitivo, bastando para marcar um módulo para instalação, ir até ele e digitar "y" ou "n" para não instalar, ou ainda "m" para deixar como módulo e você carregá-lo somente quando for necessário. Na internet há várias dicas para configurá-lo.
Depois de tudo feito aperte ESC e escolha Save.
Feito isso você pode passar para a próxima página!
[1] Comentário enviado por bruno.prestes em 05/05/2009 - 18:08h
vou ver se seguindo seus passos eu resolva o problema com usbserial com kernel padrao dessa distro, pois estou com problemas com meu modem da vivo 3g. o usbserial nao vem como modulo na versao padrao do kernel do ubuntu.. vmas ver!
[2] Comentário enviado por felipe73 em 05/05/2009 - 18:40h
Provavelmente você vai conseguir, mas a recompilação no seu caso não é necessária, basta carregar o módulo do seu modem com o comando #modprobe nome_do_modulo. Estranho seu problema, pois o Ubuntu 9.04 é a versão que melhor tem suporte a 3G! Qual você está usando?
[]'s
[3] Comentário enviado por psychokill3r em 05/05/2009 - 18:45h
ola muito bom !!!
# mv /bin/sh /bin/sh.old
# ln -s /bin/bash /bin/sh
substitua isso por: #dpkg-reconfigure dash , e entao responda nao. o shell padrao do ubuntu é o dash rápido mais n compila direito.
assim passa a ser o bash . https://wiki.ubuntu.com/DashAsBinSh
[6] Comentário enviado por felipe73 em 05/05/2009 - 19:44h
Carlos, claro que se você vai recompilar o Kernel para é mesma versão é só para arrumar algum problema, agora, toda versão nova do Kernel que é lançada, traz correções da anterior, consequentemente mais estabilidade e segurança! Ah e o suporte a novos hardwares!
Aí vai depender da pessoa, se ela acha que é importante manter-se atualizado, ela recompila....
[]'s
[7] Comentário enviado por marcosbauer em 06/05/2009 - 09:12h
Amigo, ja é a segunda fez que compilo o kernel para o 2.6.30.2 e acontece a mesma coisa. Quando eu reinicio o computador ele não passa pelo grub, parece que faz uma eséecie de reinicialização rápida. Só passa pelo grub quando eu ligo o computador. Você sabe o que pode ser?
[9] Comentário enviado por bruno.prestes em 06/05/2009 - 10:22h
eu estou com um modem huawei E156, o problema estar justamente nesse comando (modprobe usbserial), o mesmo nao vem como modulo na versao default do jaunty. li em sites q eh preciso recompilar o kernel.
[11] Comentário enviado por f_tyet em 06/05/2009 - 16:47h
Gostaria de saber se, no meu caso, que estou rodando a versão 9.04 amd-64, no caso de eu baixar um kernel novo 2.6.29 qquer coisa, eu vou ter que baixar um específico para amd64, ou não?
Para assuntos de kernel, eu sou totalmente leigo :-p
O artigo está claríssimo, mas como resolvi inovar, instalando o ubuntu amd64, estou em dúvida com muitas coisas, pois, várias coisas que eu tive que baixar, tive que atentar para esse detalhe...
[12] Comentário enviado por welingtu em 06/05/2009 - 19:07h
Olá galera sou iniciante em linux (2 meses), gostaria de sabrer se recompilando o kernel do meu ubuntu 9.04,
consigo recuperar as atividades da minha placa de video q simplesmente parou qdo atualizei da versão 8.10 para 9.04?
Tenho um note hp dv6750br turion 64 placa de video nvidia, atualizei e num funciona + em alta resolução e é claro o 3D.
Se num for dessa forma, como posso resolver esse problem?
[13] Comentário enviado por downloadd em 07/05/2009 - 01:32h
Welingtu
Quando eu usava nvidia, eu instalava os drivers através de um programa. O programa se chama envy.
Com ele é possível instalar nvidia e ATI facilmente, pois ele mostra na tela quais são os drivers que são compatíveis com sua placa de vídeo (SOMENTE NVIDIA E ATI).
Experimenta. Digite isso no terminal
sudo apt-get install envyng-core envyng-gtk envyng-qt
[14] Comentário enviado por felipe73 em 07/05/2009 - 09:42h
Marcos bauer, qual a distro e a versão que você está usando?
Quando eu reinicio o Ubuntu 9.04 aprece o GRUB, e eu instalei como instalação padrão sem alterar o Kernel!
Vou pesquisar mais, qqr coisa eu volto pra te responder!
[]'s
[19] Comentário enviado por marcosbauer em 07/05/2009 - 11:52h
Fala felipe73, eu tenho o ubunto 9.04, compilei o kernel para 2.6.29.2, só mudei o processador para core2, adicionei o leitor de memory stick da sony, está instalado num sony vaio. E quanto a minha outra pergunta, eu só quero saber o que quer dizer o git, ela faz referência a que?
Obrigado.
[21] Comentário enviado por removido em 07/05/2009 - 13:07h
Marcos, o git é um sistema de controle de versão, tipo um CVS, conhece? Em poucas palavras, o kernel-git é um identificador para, por exemplo, se ter a versão mais atualizada do kernel. Importante notar que você não deve entender mais atualizada como melhor pois esta ferramanta (git) é utilizada principalmente para os testadores e modificadores do kernel. Então, pode ser que você pegue uma versão "atualizada" via git, mas que ela possua alteracoes que não foram bem testadas. Eu recomendaria utilizar os "kernel-git" se você se interessar por testar as versões recentes do kernel. Mais seguro e sensato é esperar versões mais testadas, na minha opinião.
Vai que você se interessa, tem um documento bacana sobre isto (teste de kernel) do Piotrowiski, Linux Kernel Tester's Guide (http://www.stardust.webpages.pl/files/handbook/handbook-en-0.3-rc1.pdf), que aborda o git e outras ferramentinhas para teste de kernel.
[22] Comentário enviado por marcosbauer em 07/05/2009 - 14:31h
daavelino, valeu pela explicação, era o que eu imaginava, mas não tinha certeza. Aproveitando. Como eu disse para o felipe73, quando eu atualizei o kernel do ubuntu 9.04 2.6.28.11 para 2.6.29.2 parece que está redondo, mas na hora de rebootar(reiniciar), parece que faz um tipo de inicialização rápida, não passa pelo grub. Só passa pelo grub quando eu ligo o PC. E mais estranho é que se eu entro pelo kernel antigo, ou seja, 2.6.28.11 e dou reboot, ela faz a mesma coisa, só que entra pelo kernel 2.6.29.2. Você faz ideia do que pode ser?
[24] Comentário enviado por removido em 07/05/2009 - 15:03h
Marcos, talvez você esteja usando o kexec para fazer o reboot. (http://www.ibm.com/developerworks/linux/library/l-kexec.html). Se for este realmente o caso, o boot não vai passar - pelo menos não deveria - pelo grub. Tava lendo o artigo deste link acima e achei bacana a idéia.
[26] Comentário enviado por removido em 08/05/2009 - 09:13h
Então, certamente você está usando o kexec. O que ele faz é trocar as imagens do kernel na memória. Então, ele não passa pelo grub mesmo. Não sei como o Ubuntu faz o reboot mas, vale à pena você tentar o reboot com o comando init 6. Se não funcionar, conferir o /etc/inittab para ver qual é o comando associado ao init 6.
[29] Comentário enviado por felipe73 em 08/05/2009 - 15:44h
Welingtu, vá até sitema -> Administração e procure hardwares restritos (Acho que é isso to no windows, na escola) lá você escolhe instalar o driver recomendado da nVidia, reinicie o pc e pronto!
você também pode tentar o envy:
digite:
#sudo apt-get install envy-ng
[30] Comentário enviado por felipe73 em 08/05/2009 - 15:56h
f tyet,
Acho que o processo é o mesmo, mudando apenas o nome de alguns arquivos!
Não esqueça de selecionar seu processador 64 bits, no menu, provavelmente você terá mais performance!
[]'s
[31] Comentário enviado por marcosbauer em 23/05/2009 - 10:59h
Felipe.
Depois que compilamos o kernel a atualização automática para de funcionar. Existe alguma maneira de atualizar o kernel compilado de forma rapida, ou se eu quiser atualizar tenho que recompilar? estou usando o kernel 2.6.29.2 e quero atualizar para 2.6.29.4
[34] Comentário enviado por felipe73 em 23/05/2009 - 16:39h
marcosbauer, acho que o único modo é recompilar o kernel mesmo. E esses comandos servem para na recompilação ser usado o bash ao invés do sh. Quanto ao Openoffice, eu costumo atualizá-lo pelos repositórios mesmo, mas se você ainda não os tem , baixe o pacote para sua distribuição aqui: http://download.openoffice.org/other.html#pt-BR tem deb, rpm e outros...
[37] Comentário enviado por Sp4wN em 15/06/2009 - 01:39h
Realmente este artigo esta muito bem explicado, e com comentários dos amigos do fórum, bastante importantes tudo isso só tem a acrescentar mais informação, apenas gostaria de tirar uma duvida em particular, quando eu realizo o download de uma versão do kernel o mesmo já vêm pronto para ser utilizado tanto em processadores 64 bits quanto 32 bits ? caso seja isso mesmo onde eu consigo "dizer" que o novo kernel que estou instalando vai ser utilizado em cima da plataforma 64 por exemplo, ou isso já e realizado de forma "automática" quando eu copio as configurações do antigo kernel ?
PASSO 3 – Execute o comando:
[root@localhost:] dmesg
[99079.738223] usb 4-1: new full speed USB device using uhci_hcd and address 4
[99079.911154] usb 4-1: configuration #1 chosen from 1 choice
[99079.916932] cdc_acm 4-1:1.0: ttyACM0: USB ACM device
[99084.213269] usb 4-1: USB disconnect, address 4
[99084.456962] usb 4-1: new full speed USB device using uhci_hcd and address 5
[99084.620745] usb 4-1: configuration #1 chosen from 1 choice
[99084.626676] cdc_acm 4-1:1.0: ttyACM0: USB ACM device
Neste exemplo o PPC900 USB foi direcionado para a porta ttyUSB0. Para se comunicar com o PPC900 use o caminho /dev/ttyUSB0
Será apresentada lista das mensagens do kernel. Verifique em qual porta foi direcionado o PPC900 USB.
[40] Comentário enviado por joyce123456 em 23/10/2009 - 07:04h
alguem pode me ajudar com esse erro?
Brigada
root@dajole-desktop:/usr/src# dpkg -i linux-image-2.6.31.4-kernel2.6.31.4_2.6.31.4-kernel2.6.31.4-10.00.Custom_i386.deb
(Lendo banco de dados ...
102477 arquivos e diretórios atualmente instalados).
Desempacotando linux-image-2.6.31.4-kernel2.6.31.4 (de linux-image-2.6.31.4-kernel2.6.31.4_2.6.31.4-kernel2.6.31.4-10.00.Custom_i386.deb) ...
Done.
dpkg: erro processando linux-image-2.6.31.4-kernel2.6.31.4_2.6.31.4-kernel2.6.31.4-10.00.Custom_i386.deb (--install):
falhou em buffer_write(fd) (10, ret=-1): mecanismo dpkg-deb durante './lib/modules/2.6.31.4-kernel2.6.31.4/kernel/drivers/isdn/hardware/mISDN/hfcmulti.ko': Não há mais espaço no dispositivo
dpkg-deb: sub-processo paste foi morto por sinal (Pipe quebrado)
Running postrm hook script /sbin/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.28-11-generic
Found kernel: /boot/memtest86+.bin
Updating /boot/grub/menu.lst ... done
Erros foram encontrados durante o processamento de:
linux-image-2.6.31.4-kernel2.6.31.4_2.6.31.4-kernel2.6.31.4-10.00.Custom_i386.deb
[42] Comentário enviado por gpr.ppg.br em 04/09/2010 - 17:44h
drivers/atm/he.c: In function ‘he_open’:
drivers/atm/he.c:2231: internal compiler error: Falha de segmentação
Por favor, envie um relatório completo de erro,
com o código pré-processado se possível.
Veja <file:///usr/share/doc/gcc-4.3/README.Bugs> para instruções.
make[3]: ** [drivers/atm/he.o] Erro 1
make[2]: ** [drivers/atm] Erro 2
make[1]: ** [drivers] Erro 2
make[1]: Saindo do diretório `/usr/src/linux-2.6.35.4'
make: ** [debian/stamp/build/kernel] Erro 2
[43] Comentário enviado por removido em 27/09/2010 - 11:11h
gpr:
Sei que faz tempo que postou, mas antes de criar o link com ln -s linux-2.6.29.2 linux
precisa apagar o link antigo (se existir) rm -rf linux, senão você irá compilar o novo kernel em cima
do antigo (por assim dizer) e dará erro de falha de segmentação, pois os dois kernels tentarão ocupar o
mesmo espaço na memória.