Autor Tópico: desvendando o misterio de "recompilar o Kernel"  (Lida 3796 vezes)

Offline ph_swordman

  • Usuário Ubuntu
  • *
  • Mensagens: 55
    • Ver perfil
desvendando o misterio de "recompilar o Kernel"
« Online: 07 de Agosto de 2009, 14:30 »
cara e o seguinte...
eu criei um topico aki mesmo no forum... falando dos problemas q encontrava na hora de recompilar um kernel
http://ubuntuforum-br.org/index.php/topic,54465.0.html
 e o Usuario Coruja...  me enviou este link
http://www.vivaolinux.com.br/artigo/Compilando-Kernel-do-Linux-no-Debian

a partir deste link fiz uma otima busca de tutoriais... q realmente me satisfazeram em minhas duvidas cara...(muito obrigado coruja)
masss nenhum tutorial me satisfez por completo... entaooo
resolvi juntar tudo o q pode sanar minhas duvidas num tutorial aki ... tipo.. lembrando q nao fiz nenhum desses tutoriais... nem quero o credito deles.. apenas facilitar a vida de outros usuarios...

a primeira parte foi retirada deste link : http://www.vivaolinux.com.br/artigo/Destrinchando-um-PC-(configurando-um-kernel)?pagina=1

Introduçao

Os motivos iniciais de compilar um novo kernel foram os seguintes:

    * Ter um kernel atualizado, com determinados recursos mais desenvolvidos;
    * Ativar o bootsplash e ter uma inicialização gráfica;
    * Deixar o tempo de boot menor;
    * Desabilitar recursos desnecessários;
    * Falta de mulher;
    * Falta de sexo/amor também! =P

OBS: Mesmo depois da compilação, os dois últimos itens da lista não foram resolvidos (ou satisfeitos), então fica aqui um aviso: compilar o kernel não resolve tudo. =)

Começando (tirando informações, essa parte era a q eu tinha dificuldades)
Essa parte é baseada principalmente nos comandos: lspci e dmesg.

Placa Mãe:

# lspci | grep IDE
00:11.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 06)

Placa de áudio:

# lspci | grep Multimedia
00:11:5 Multimedia Audio controler: Via technologies, Inc. VT8233/A/8235/8237 AC97 Audio Controler (rev 50)

Placa de rede:

# lspci | grep Ethernet
00:0a.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8180 802.11b MAC (rev 20)
00:12.0 Ethernet controller: VIA Technologies, Inc. VT6102 [Rhine-II] (rev 74)

Neste PC existem duas placas, a primeira listada é uma placa wireless e a outra uma placa de rede onboard.

USB:

# lspci | grep USB
00:10.0 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 80)
00:10.3 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 82)

Hard Disk:

# dmesg | grep hda

A segunda linha é a que nos interessa:

hda: ST340014, ATA DISK drive

Gravadora de CD:

# dmesg | grep hdb

(no caso, o sistema reconhece a unidade como hdb)

hdb: HL-DT-ST RW/DVD GCC-4521B, ATAPI CD/DVD-ROM drive

OBS: O interesse aqui foi em descobrir que a gravadora no caso é ATAPI, a mesma intenção foi feita no caso do HD, que é um disco do tipo ATA.

Baixando kernel ( retirada deste link:

entre como root
$ su
#cd /usr/src
# wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.30.2.tar.bz2

Vamos descompactar o novo kernel:

# tar xjf linux-2.6.30.2.tar.bz2
# ln -s linux-2.6.30.2 linux
#chmod -R a-s /usr/src/
# cd /usr/src/linux

Configurando kernel... ooo partezinha demorada credu... e dificil de acerrtar viu... tipo vc vai usar as configuraçoes q vc tirou na primeira parte... a ideia de enxugar o kernel e colocar so aquilo o q vai usar... bem... isso e bem dificil mesmo de acertar  mais ai vai uma ideia de como fazer isso...

(retirado deste site http://www.vivaolinux.com.br/artigo/Destrinchando-um-PC-(configurando-um-kernel)?pagina=4)

make xconfig  (modo grafico, mais pratico)
ou
make menuconfig (modo texto)

estes proximos passos estao para o menuconfig, mas eu vou colocar uma legenda pra vc poder entender de como fazer no xconfig 
Legenda:  <*> = carregado (corresponde ao sinal de certo no xconfig), <M> = modulo ( corresponde a um pontinho no xconfig), < >= desativado (corresponde a um quadradinho vazio no xconfig)
 
 esta e uma configuraçao mais geral, mais se vc entender bem o seu pc pode fazer uma mais personalizada
Placa Mãe:
Device Drivers --->
<*> ATA/ATAPI/MFM/RLL support

<*> Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support

  • PCI IDE chipset support
  • Generic PCI bus-master DMA support
  • Use PCI DMA by default when available


<*> VIA82CXXX chipset support

OBS: Inclui o suporte a DMA (para os discos), compilado como built-in.

Placa de Áudio:

Device Drivers --->
Sound --->
<M> Sound card support
Advanced Linux Sound Architecture -->
<M> Advanced Linux Sound Architecture
<M> OSS Mixer API
<M> OSS PCM (digital audio) API
PCI devices --->
<M> VIA 82C686/B, 8233/8235 AC97 Controller

Placa(s) de Rede(s):

Placa de rede:
Device Driver --->
Network device support --->
  • Network device support

<M> Dummy net driver support

Ethernet (10 or 100Mbit)--->
  • Ethernet (10 or 100Mbit)

<M> Generic Media Independent Interface device support

  • EISA, VLB, PCI and on board controllers

<M> VIA Rhine support

Placa de rede Wireless:

Device Driver --->
Network device support --->

Wireless LAN (non-hamradio) --->
  • Wireless LAN drivers (non-hamradio) & Wireless Extensions


OBS: Somente a placa de rede Wireless é usada nessa máquina, sendo a outra desativada posteriormente para seguir a regra "ativar somente o que se vai usar". Mas foi incluída no artigo mesmo assim (uma forma demonstrativa).

USB:

Device Drivers --->
USB support --->
<M> Support for Host-side USB

  • USB device filesystem


<M> EHCI HCD (USB 2.0) support
<M> UHCI HCD (most Intel and VIA) support

<M> USB Human Interface Device (full HID) support
  • HID imput layer support


Habilite somente se for usar, mais uma vez a velha regra...

Hard Disk:

Device Drivers --->
ATA/ATAPI/MFM/RLL support --->
<*> ATA/ATAPI/MFM/RLL support
<*> Enhnced IDE/MFM/RLL disk/cdrom/take/floppy support
<*> Include IDE/ATA-2 DISK support

Gravadora de CD:

Device Drivers --->
ATA/ATAPI/MFM/RLL support --->
<*> ATA/ATAPI/MFM/RLL support
<*> Enhnced IDE/MFM/RLL disk/cdrom/take/floppy support
<*> Include IDE/ATAPI CDROM support

agora esata parte de compilaçao veio deste link e acredito q foi a melhor forma de compilar q encontrei... :

Iniciar compilação (retirado deste site : http://diamondmax.wordpress.com/2009/07/06/instalacao-do-kernel-diamondmax/)

primeiro precisamos instalar  as bibliotecas

sudo apt-get install build-essential bin86 kernel-package libqt3-headers libqt3-mt-dev wget libncurses5 libncurses5-dev

# make-kpkg clean

# INSTALL_MOD_STRIP=1 make-kpkg –initrd –revision=i686 kernel_image kernel_headers kernel_source

Observação: antes de initrd e revision devem ser colocados dois traços ( - ) e não apenas um. Por questões de formatação, o wordpress coloca apenas um traço.

Se você possui um processador Dual Core ou Quad Core, use o comando abaixo para reduzir o tempo de compilação:

# INSTALL_MOD_STRIP=1 CONCURRENCY_LEVEL=2 make-kpkg –initrd –revision=i686 kernel_image kernel_headers kernel_source

Serão gerados 3 arquivos  .deb na pasta /usr/src/, instale-os, antes de instalar retire os drivers Nvidia ou ATI para poder instalar... eles podem dar conflito com o sitema ...:

#sudo nautilus
 agora entre no diretorio  /usr/src/ e instale os .deb

depois de instalados...
reinicio o sistema... como vc retirou os drivers NVidia vc vai entrar com um drive generico...

 baixe seu drive da Nvidia, o usado aki foi o seguinte
http://us.download.nvidia.com/XFree86/Linux-x86/180.51/NVIDIA-Linux-x86-180.51-pkg1.run

agora vc tem q sair do X para poder instalar o driver
 /etc/init.d/gdm stop

agora vc ta em mode texto, entao entre no diretorio em q vc baixoi o driver, e procure por ele usando o seguinte comando

ls | grep NVIDIA
vai aparecer o nome do driver q vc baixou... agora vc tem q dar permiçao para executar o driver.. use este comando


chmod +x NVIDIA-Linux-x86-180.51-pkg1.run ( no caso, chmod +x nomedodriver.run, este foi so um exemplo)


agora execute o driver
./NVIDIA-Linux-x86-180.51-pkg1.run (no caso, ./nomedodriver.run)

o primeiro passo depois disso ,( cara c vc chegou ate aki.. e a parte mais intuitiva a c fazer e ler... os passos podem variar.. mas c vc esta muito enseguro olhe mais ou menos como se faz, obs: nao baixe o kernel para recompilar q eles pedem.. ja e um começo de intuiçao)

"no", depois "aceppt" e por ultimo "no" e se tiver outra opçao "yes"

/etc/init.d/gdm start

pronto seu drive esta instalado e seu pc deve estar funcionando corretamente

uma boa ideia e usar kernel modificado... tipo... com as configuraçoes do hqxriven , e do diamondmax

espero ter ajudado vcs...
e bem funciou aki muito bem
abraço

ahh foi "meu primeiro" tutorial...
me corrijam se estiver errado
abraço



« Última modificação: 07 de Agosto de 2009, 20:35 por ph_swordman »

Offline Mero_

  • Usuário Ubuntu
  • *
  • Mensagens: 86
  • Slack, Because It Works! Keep It Simple, Stupid..
    • Ver perfil
Re: desvendando o misterio de "recompilar o Kernel"
« Resposta #1 Online: 07 de Agosto de 2009, 15:28 »
 ph_swordman , ainda não li seu tutorial todo, mas parece uma excelente dica. Parabéns pela contribuição amigo.
Citar
   * Falta de mulher;
    * Falta de sexo/amor também! =P
Muitas das coisas mais interessantes que temos hoje também tinham esses motivos.. kkk Muito boa.
« Última modificação: 07 de Agosto de 2009, 21:04 por Mero_ »
O verdadeiro Capitalismo não está no sistema, mas sim na mente e no coração das pessoas. (By Myself)

Offline ph_swordman

  • Usuário Ubuntu
  • *
  • Mensagens: 55
    • Ver perfil
Re: desvendando o misterio de "recompilar o Kernel"
« Resposta #2 Online: 07 de Agosto de 2009, 20:36 »
kkkk bixo esse negocio ai da falta de mulher.. nao foi eu q escrevi ... foi o cara do link da primeira parte... la do vivaolinux...kkkk
mais achei muito engraçado tbm
kkkk
ah e vlw pelos parabens

Offline platao

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 5.052
    • Ver perfil
Re: desvendando o misterio de "recompilar o Kernel"
« Resposta #3 Online: 08 de Agosto de 2009, 14:50 »
Muito bacana esse topico, estou experimentando.
\\\\\\\\Apostilas Dicas e Guias do Ubuntu\\\\\\\\\> http://ubuntuforum-br.org/index.php/topic,79368.msg440997.html#msg440997

Offline renato.ostapiuk

  • Usuário Ubuntu
  • *
  • Mensagens: 17
    • Ver perfil
Re: desvendando o misterio de "recompilar o Kernel"
« Resposta #4 Online: 10 de Agosto de 2009, 00:03 »
Eu prefiro a parte do sexo!

hehehehhe

Offline velox256

  • Usuário Ubuntu
  • *
  • Mensagens: 1.915
  • Debian é Debian... :)
    • Ver perfil
    • Linux Inside
Re: desvendando o misterio de "recompilar o Kernel"
« Resposta #5 Online: 10 de Agosto de 2009, 11:13 »
Sem querer ser chato qto à parte de enxugar o kernel de módulos desnecessários, mais tais módulos no kernel não só são ativados caso haja o hardware para eles? Ou seja, não havendo hardware que o utilize, os mesmos não são carregados e então não pesam no sistema, não?
Computador perereca, com disco perereca, monitor perereca e sistema super xuxu. Visitem a minha página em http://sidserra.k6.com.br ou meu blog em http://sidserra.blogspot.com.br.

Offline Mero_

  • Usuário Ubuntu
  • *
  • Mensagens: 86
  • Slack, Because It Works! Keep It Simple, Stupid..
    • Ver perfil
Re: desvendando o misterio de "recompilar o Kernel"
« Resposta #6 Online: 10 de Agosto de 2009, 15:49 »
 Realmente velox256, vc tem razão.
 Quanto a esse ponto, o tutorial ficou mais para efeitos didáticos, ou para pessoas que tenham PCs com "hatdware desnecessário" (que é o meu caso, apesar de usar Slack).

Modo Verbose:
 Possuo um hardware bastante modesto, com uma placa de rede SiS900 on-board (10Mbps o.O ), muito antinga, ela não tem um encaixe RJ45 comum, deve usar alguma porta serial, não tenho como utilizar essa placa, então minha Via Rhine III sempre ficava como eth1, o que apesar de não ser problemático, era bastante chato.. Isso abriu margem pro "bug do slack" (na verdade não sei se isso acontece só nele, quem usa a distro me perdôe se eu estiver falando besteira, talvez "bug das placas ethernet" ficasse mais fiel), que faz com que sempre que uma nova placa Ethernet é adicionada, "bagunce" os nomes ( SiS 900 = eth1 e Via Rhine = eth_rename) das mesmas na detecção do Kernel (isso aconteceu no meu PC e em um servidor), fazendo com que eu tivesse que fazer o udev renomear as placas de rede após o boot via  /etc/udev/rules.d/70-persistent-net.rules ou criando o rc.mec para renomear via script usando o MEC Address ou o nome do módulo que cada uma usava. Esse "bug" sim era chato :(, pois havia uma alternância aleatória na hora da detecção, o que fazia com que às vezes a Via Rhine ainda ficasse como eth1, e a conexão normalizada, o que me fez demorar algum tempo pra resolver (só "parti pra briga" num dia que fiquei 2 horas sem conexão por conta disso).
Modo Short:
 Apesar de ser um problema simples de se resolver, essa SiS900 era uma placa desnecessária pra mim.

 velox256, minha intenção não era parecer o "cara chato", só resolvi responder pois percebi que vc havia perguntado com gentileza, desculpe se pareceu diferente.
 Abraço amigo.
« Última modificação: 02 de Setembro de 2009, 15:44 por Mero_ »
O verdadeiro Capitalismo não está no sistema, mas sim na mente e no coração das pessoas. (By Myself)

Offline velox256

  • Usuário Ubuntu
  • *
  • Mensagens: 1.915
  • Debian é Debian... :)
    • Ver perfil
    • Linux Inside
Re: desvendando o misterio de "recompilar o Kernel"
« Resposta #7 Online: 10 de Agosto de 2009, 22:26 »
Longe de mim considerar ou chamá-lo de chato, mesmo pq vc pode mudar muitos parâmetros ativos na compilação de kernel de modo que ele possa ficar mais leve ou mais rápido do que o kernel genérico. O kernel compilado do Mint é diferente do Sidux que é diferente do Ubuntu, só quis ilustrar sobre os módulos, mas há outros parâmetros qu epodem ser alterados para uma melhor personalização do kernel à máquina em que ele vai ser usado.
Computador perereca, com disco perereca, monitor perereca e sistema super xuxu. Visitem a minha página em http://sidserra.k6.com.br ou meu blog em http://sidserra.blogspot.com.br.