Você está na página 1de 10

30/04/13

Recompilando o kernel no Fedora | Desenvolvedor Interopervel

DesenvolvedorInteropervel

RecompilandookernelnoFedora

Porquedevocompilarmeukernel?
Grandepartedosusuriosusuriosnotemnecessidadedecompilarseuprpriokernel.Okernelque quecostumavirporpadroemquasetodasasdistribuiessopreparadosparafuncionaremumagama enormedehardwaresecondiesadversas.Recomendase,noentanto,acompilaodokernelpara assegurarqueseuLinuxotimizadosnecessidadesdoambienteemqueosistemairfuncionar. Empresasquetrabalhamcomaltademandaenecessitamdesistemaspersonalizados,usualmente recompilamseuskernelsdemodoaotimizarohardwarequetmdisposio.Oprocessodecompilao ,decertaforma,simpleseenvolvepassosbemdocumentados,masemdistribuiescomoFedora, CentOS,SuseeMandrivaquesebaseiamempacotesrpm,altamenteaconselhvelgerarospacotesnesse formatoparaokernelemvezdesimplesmentecompilloeinstalloapartirdocdigofonte,umavezque estessistemassoconstrudosparatrabalharegerenciarRPMs.

Pacotesnecessrios
Antesdeiniciaroprocessodecompilarokernelecriarumpacoterpm,precisobaixaropacoteSRPM (.src.rpm)eterinstaladooambientededesenvolvimentodeRPMs.Sernecessrioterosseguintes pacotes: rpmdevtools yumutils rpmdevsetuptree ncursesdevel kernelsource gcc redhatrpmconfig Parainstallos, Abraumterminal
desenvolvedorinteroperavel.wordpress.com/2012/03/04/recompilando-o-kernel-no-fedora/ 1/10

30/04/13

Recompilando o kernel no Fedora | Desenvolvedor Interopervel

Loguesecomoroot eentrecomocomando:

y u mi n s t a l lr p m d e v t o o l sy u m u t i l sn c u r s e s d e v e lg c cr e d h a t r p m c o n f i g

Opacotecontendoocdigofontedokernelpode/deveserbaixadosemprivilgiosderoot.Obtenhaento, opacotecomaversomaisatualdokernelapartirdosrepositriosdoFedora: y u m d o w n l o a d e ru p d a t e s s o u r c es o u r c ek e r n e l

CriandooambienteparadesenvolverRPMs
Pormotivosdesegurana,evitasecriarRPMscomoroot.Paraterfuncionandoumambientede desenvolvimentononrootabraumterminaleentrecomocomando r p m d e v s e t u p t r e e Issoircriarumumdiretriodenomerpmbuildeoutrossubdiretriosqueestaramnoseudiretriopessoal bemcomooarquivodeconfigurao~/.rpmmacrosquedefiniressediretriocomosendodeo construodepacotesrpm.

Colocandotudonolugar
Agoraquevocbaixouocdigofontedokernel(queestdentrodoarquivo.src.rpm),bastainstallopara quetudofiquenolugaradequadoaodesenvolvimentodeRPMs.Paraisso,comoumusurionormal, instaleopacotecontendooscdigofontedokernelquevochaviabaixadocomocomando r p mi v hk e r n e l < v e r s o > . f c 1 2 . s r c . r p m Osarquivos.src.rpmdiferemdeumRPMcomumporque,claro,tmsomenteocdigofonteealguns arquivosnecessriosparagerarRPMsdentrodopacotemas,tambm,porpoderemserinstaladospor usurioscomuns,semnecessidadedasenhaderoot.

Preparandoacompilao
desenvolvedorinteroperavel.wordpress.com/2012/03/04/recompilando-o-kernel-no-fedora/ 2/10

30/04/13

Recompilando o kernel no Fedora | Desenvolvedor Interopervel

ComojcriamosoambientededesenvolvimentodosRPMs,opacoteinstaladoirparaossubdiretrios queseencontramdentrodapasta~/rpmbuild.Isto,ocdigofontevaiparaaspastasdedesenvolvimento deRPMs.Osdiretriossoasseguintes: l s~ / r p m b u i l d B U I L D R P M S S O U R C E S S P E C S S R P M S SeolhardentrodapastaSOURCESvaiperceber,almdocdigofontedokernel,umacoleodepatches quedevemseraplicados.Essadeveseraprimeiraetapaantesdacompilaopropriamentedita.Dentroda pastaSPECSexecuteoseguintecomandoparaaplicaodospatches: r p m b u i l db pk e r n e l . s p e c Estecomandousandoaopob p ,convmdizer,nocompilanemcrianenhumRPM.Eleapenas descompactaocdigofontedokerneldentrododiretrio~/rpmbuild/BUILDeaplicaaessecdigotodos ospatchesexistentesnodiretrioSOURCES. Nestepontochegamosaomomentodepersonalizarnossokernel.Aquivoctemaopodemodificaro kerneloudeixlocomasconfiguraesdefault.Veremostambm,umpoucomaisadiante,quepossvel importarasconfiguraesdoseukernelatualparaokernelasercompilado.Tudooquevocprecisapara mexernokernelantesdecriaropacoteestarnapastaBUILD.Vatela: c d~ / r p m b u i l d / B U I L D / k e r n e l < v e r s o > / l i n u x < v e r s o > . i 6 8 6

Importandoaconfiguraodokernelatualparao futurokernel
Pensenokernelcomoumgrandeprogramaondevocprecisadizerexatamenteoqueeleprecisapara funcionardireito.Issosignificaquesevocestouvindoumamsicanestemomentoissospossvel porquealgumcompilouumkernelcomodrivercertoparaasuaplacadesom.Agrossomodo,voc precisamarcar(oudeixardesmarcada)cadaumadasopesqueachainteressantesaoseukernel. Linuxistasmaisexperientesemcompilaodekernelcostumamativarsomenteosrecursosexatosparaque suasmquinasfuncionem.Noprecisoseassustaremborasejammilharesdeopesparamarcar,o kerneljvemcomumaconfiguraodefaultquedsuporteparaamaioriadoshardwares.Tambmexiste apossibilidadedeimportarasconfiguraesdoseukernelatualparaonovokernelparaisso,acessea pastacomoscdigosfontedofuturokernel.Estandonodiretrio~/rpmbuild/BUILD/kernel <verso>/linux<verso>.i686,execute: m a k eo l d c o n f i g

desenvolvedorinteroperavel.wordpress.com/2012/03/04/recompilando-o-kernel-no-fedora/

3/10

30/04/13

Recompilando o kernel no Fedora | Desenvolvedor Interopervel

Importante:Ocomandomakeoldconfigimportadoseukernelcorrenteasconfiguraes atuais.Muitosusuriospreferempegararquivos.configprontos.Emtodocaso,seoseuarquivo .configfordiferentedoarquivogeradoautomaticamentepelocomandomakeoldconfig,um promptcomperguntassobreasdiferenassermostrado,dandoapossibilidadedemanterou descartarasdiferenas. Asconfiguraessosalvasnoarquivo.configenestearquivo,defato,queokernelvirbuscartodasas opesqueseroativadasedesativadasnomomentodacompilao.

Opesdiversas
Aesteponto,aparecemasprimeirasdecisesimportantes.Valepenaressaltarqueokernelpossui centenasdeopesquepodemsermarcadasequecadaumadestasopestemtrsmodosdesercolocada nokernel: YFazcomqueocomponentesejacarregadoinkernel,ouseja,diretonokernel,mesmoquenoseja necessrio,omduloestarativo. MFazcomqueocomponentesejacarregadocomomdulo.Dessaformaelesomentesercarregado quandonecessrio,deixandookernellivredeprocessosinteis. NNocarregaocomponente,deixandooinativo. Sabendodisso,vamosescolherumainterfaceparaselecionarasopese,posteriormente,iniciara compilaodokernel.

Interfacesdeseleo
Agoraprecisoencarartodasasopesquepodemseradicionadas(ouno)aoseukernel.Paratanto, existemvriasinterfaces(oupseudointerfaces)queajudamnoprocesso: makeconfig:ainterfaceusadapelosprimeiroslinuxistas.Necessitasomentedeumterminalpara funcionarerecomendadaparaexperts.Essaopovaimostracadaumadasconfiguraeseo usurioescolheentreasopesY,M,ouNdeacordocomoquefoiditoacima. makemenuconfig:umapseudointerfacegrfica.Necessitadopacotencursesdevelparafuncionar. Aindausasomenteoterminal,mascomumaorganizaovisualmelhor,maisintuitivaecomalgumas explicaessobreoquecadaopooferece.amaisutilizadapelosusurioscomboaexperinciae contatorazovelcomoprocessodecompilaodokernel. makegconfig:EsteumainterfacegrficaemGTKquepodedeixarosusuriosmaisconfortveisa compilarseukernel,evitandootraumticocontatocomoterminal. makexconfig:Semelhanteaomakegconfig,esteusaasbibliotecasQtparafuncionar(mais especificamentedopacoteqtdevel).

desenvolvedorinteroperavel.wordpress.com/2012/03/04/recompilando-o-kernel-no-fedora/

4/10

30/04/13

Recompilando o kernel no Fedora | Desenvolvedor Interopervel

desenvolvedorinteroperavel.wordpress.com/2012/03/04/recompilando-o-kernel-no-fedora/

5/10

30/04/13

Recompilando o kernel no Fedora | Desenvolvedor Interopervel

desenvolvedorinteroperavel.wordpress.com/2012/03/04/recompilando-o-kernel-no-fedora/

6/10

30/04/13

Recompilando o kernel no Fedora | Desenvolvedor Interopervel

Depoisdetudomarcadoesalvo,asconfiguraesvoparaoarquivo.config(oculto).

Compilando

Compilaogenrica
Eraumatarefabastantecomplicadaatoskernelsdagerao2.4,quandoeranecessriocumprir (manualmente)vriasetapasparanofinalterokernelcompiladoerodando.Comoadventodagerao 2.6,oprocessodecompilaoeinstalaodokernelpassouasertratadocomoacompilaoeinstalao deumsoftwarequalquer.Quasetudoautomticoeprecisadepoucaslinhasdecomando: m a k e

desenvolvedorinteroperavel.wordpress.com/2012/03/04/recompilando-o-kernel-no-fedora/

7/10

30/04/13

Recompilando o kernel no Fedora | Desenvolvedor Interopervel

Paracompilare,comoroot m a k ei n s t a l l parainstalar. Umacompilaogenricavaifuncionaremtodosossistemas,noentanto,norecomendadaporquede difcilgerenciamento.Umkernelinstaladodessamaneiraexigemuitotrabalhoparaserremovidoe atualizadojqueoFedora/RedHatutilizaoRPMcomogerenciadordepacotes.Emoutraspalavras, instalandoseukerneldessemodo,vocperdeahabilidadedegerencilocomasfacilidadesdoRPM.

CriandoumRPMgenrico
Umaoutrafacilidadedagerao2.6dekernelsapossibilidadedegerarumRPMcomapenasum comando: m a k er p m EstecomandovaicompilarokerneleempacotlonumRPMgenrico.EsteRPMgenriconosegueos padresFedora/RedHatdeconstruoeoresultadofinalalgodotipokernel<verso>.rpm,semos rtulosfc10,fc11,fc12,etcquesocaractersticosdosRPMsespecficosparaoFedora.Atondesesabe, issonogeranenhumproblema,alm,claro,dospossveis(masimprovveis)inconvenientesdeusar RPMsfeitosporterceirossemagarantiadehomogeneidadedosRPMsestiloFedora.

CriandoumRPMestiloFedora
Esteomtodorecomendado:RPMsaobomevelhoestiloFedora.Paracriaressespacotesvaiprecisarter emmenteumpoucodoconceitodecriaodeRPMs,masobsicooseguinte: InstruesdecomooRPMsercriadoestonoarquivo.specdokernel(queficanapasta ~/rpmbuild/SPECS).Amenosquevocadicionemaisalgumpatchnoprecisomexernele. Nocasodeadicionarmaisalgumpatchaokerneleledeveserinseridonoarquivo.speceopatch, propriamentedito,devesercolocadonadiretrio~/rpmbuild/SOURCES,jqueprecisaser empacotadotambm. Nestepontovocjescolheuasopesdoquevaiquereremseukerneleasconfiguraesficaramsalvas noarquivo.configqueficajuntoaocdigofonte(diretrio~/rpmbuild/BUILD).Essearquivo.configvai terumpapelmuitoimportanteagora.Abraoecopieocontedotodo: g e d i t~ / r p m b u i l d / B U I L D / k e r n e l < v e r s o > / l i n u x < v e r s o > / . c o n f i g
desenvolvedorinteroperavel.wordpress.com/2012/03/04/recompilando-o-kernel-no-fedora/ 8/10

30/04/13

Recompilando o kernel no Fedora | Desenvolvedor Interopervel

depois,olhenapasta~/rpmbuild/SOURCESparaencontrardiversosarquivosconfigparavrias arquiteturas.Identifiqueasua(arquitetura)esubstituaoquetiverlpelocontedocopiadodoarquivo .config: configdebug configgeneric configi586 configi686 configi686PAE configia64generic confignodebug configpowerpc32generic configpowerpc32smp configpowerpc64 configpowerpc64kdump configpowerpcgeneric configrhelgeneric configs390x configsparc64generic configsparc64smp configx86_64generic configx86generic Ouissopodeserfacilmentefeitoporumalinhadecomando,comonoexemploabaixo,quejogao contedodoarquivo.confignoarquivoconfigi686: c d~ / r p m b u i l d / B U I L D / k e r n e l < v e r s o > / l i n u x < v e r s o > c a t. c o n f i g>~ / r p m b u i l d / S O U R C E S / c o n f i g i 6 8 6 Comtudofeito,chegaahoradeordenaraorpmbuildquegereoseuRPMespecialmentefeitoparao Fedora:

d~ / r p m b u i l d / S P E C S r p m b u i l db bt a r g e t = i 6 8 6w i t hb a s e o n l yw i t h o u td e b u g i n f ok e r n e l . s p e c

OresultadodasuacompilaovaigerarumRPMdentrodapasta~/rpmbuild/RPMS/i686. Fonte:http://projetofedora.org/wiki/index.php/Recompilando_o_kernel 2012 03/04 PUBLICADOPOR VlademirSeganFaria CATEGORIA Dicas Linux SistemasOperacionais
desenvolvedorinteroperavel.wordpress.com/2012/03/04/recompilando-o-kernel-no-fedora/ 9/10

30/04/13

Recompilando o kernel no Fedora | Desenvolvedor Interopervel

TAGS compilando compilar fedora grandeparte kernel kernelsource linux ncurses partedos partirdos recompilando recompilar srpm Escrevercomentrio Escrevercomentrio RSSComentrios Trackback(0)Comentrios(2) 1. howfastcanyoutype 19maro,2012 RESPONDER CITAR iloveyourblog,ihaveitinmyrssreaderandalwayslikenewthingscomingupfromit. VlademirSeganFaria 19maro,2012 RESPONDER CITAR Thankyou.

BlognoWordPress.com.|Tema:monochromepormonolab.

desenvolvedorinteroperavel.wordpress.com/2012/03/04/recompilando-o-kernel-no-fedora/

10/10

Você também pode gostar