Escolar Documentos
Profissional Documentos
Cultura Documentos
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
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
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
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
desenvolvedorinteroperavel.wordpress.com/2012/03/04/recompilando-o-kernel-no-fedora/
5/10
30/04/13
desenvolvedorinteroperavel.wordpress.com/2012/03/04/recompilando-o-kernel-no-fedora/
6/10
30/04/13
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
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
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
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