1 / 55

Kernelaren Instalazioa eta konfigurazioa

Egilea:Kepa Bengoetxea kepa.bengoetxea@ehu.es. Kernelaren Instalazioa eta konfigurazioa. Erreferentziak. Ubuntu konpilatu: https://help.ubuntu.com/community/Kernel/Compile Kernel berri bat egin: http://www.digitalhermit.com/linux/Kernel-Build-HOWTO.html Kernela irakurri-NOLA:

Télécharger la présentation

Kernelaren Instalazioa eta konfigurazioa

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Egilea:Kepa Bengoetxea kepa.bengoetxea@ehu.es Kernelaren Instalazioa eta konfigurazioa

  2. Erreferentziak Ubuntu konpilatu: https://help.ubuntu.com/community/Kernel/Compile Kernel berri bat egin: http://www.digitalhermit.com/linux/Kernel-Build-HOWTO.html Kernela irakurri-NOLA: http://www.ubuntu-es.org/node/431 http://www.ubuntulinux.org/wiki/KernelHowto

  3. Kernel/Nukleoa instalatu A)Aurrekonpilatutako Kernela erabiliz. B)Kernelaren kode-iturriak erabiliz, konfiguratu eta konpilatu ondoren.

  4. Kernel Aurrekonpilatua instalatu:Modu grafikoa erabiliz Ubuntu GNU/Linux berez, i386ko aurrekonpilatutako nukleo bat dakar edo x86/x86_64ko kernel orokor bat. Kernela eguneratuta edo berriena daukagun ikusteko, hurrengo pausuak jarrai ditzakegu: • GNOMEko menu Sistema-> Administrazioa->Synaptic (programak instalatzeko kudeatzailea) martxan jartzen dugu. • Synaptic barruan gaudenean, internet konexioa badugu “Berriz kargatu” klikatuz, errepositorioetako zerrenden eguneraketateta lortzen dugu.

  5. Kernel Aurrekonpilatua instalatu:Modu grafikoa erabiliz • Ezkerreko panelean, “oinarri sistema” aukeratzen dugu. (KONTUZ!!: arazorik ez izateko nukleo ez ofizialekin, “oinarri sistema”(universe) aukeratu beharrean “oinarri sistema” aukeratu)‏ • Pakete zerrendan “linux-image-X.X.X-gure_prozesadorearen_izena” izeneko paketeak bilatzen ditugu, eta bertsiorik berriena aukeratzen dugu. Esate baterako, momentu honetan, nire ordenagailuarentzat hau izango litzateke: linux-image-2.6.24-23-generic

  6. Kernel Aurrekonpilatua instalatu:Modu grafikoa erabiliz • Nukleoaren modulu bereziren bat behar duen hardwarea izan ezkero (Nvidia txartel grafikoa adibidez) , aukeratutako nukleoaren beharrezko linux-restricted-modules markatu behar ditugu ezkerreko panelean, oinarri sistema (restricted) edo “Varios Basados en Texto” (restricted)‏en agertzen direnak. • Aldaketak aplikatu. Ordenagailua berriro martxan jartzen dugun lehen aldian kernel berria kargatuko da.

  7. Kernel Aurrekonpilatua instalatu:Komandoen bidez #orain dagoen bertsioa da: uname -r ->2.6.24-22-generic #aurrekonpilatutako kernel bat instalatu: sudo aptitude search linux-image sudo aptitude install linux-image-2.6.24-23-generic ... p->i linux-image-2.6.24-23-generic (x86-x86_64) ...

  8. Kernel Aurrekonpilatua instalatu:Komandoen bidez # Nukleoaren murriztu motako (restricted) modulu bereziak eduki ezkero (Nvidia txartel grafikoa adibidez) sudo aptitude search linux-restricted-modules sudo aptitude install linux-restricted-modules-2.6.24-23-generic i linux-restricted-modules-2.6.24-23-generic - Non-free Linux 2.6.20 modules on x86/x86_64

  9. Kernelaren iturri-kodeak.Noiz konpilatu kernela? • Berez, kenduta dauden berezitasun esperimentalak probatu nahi dituzunean. • Kernelaren “bug” bat konpontzeko. • Hardware berri bat baduzu eta, Kernela hardware horrekiko sostengua ez badago aktibatuta edo kernelaren bertsio berriago batean baldin badator. • Kernela optimizatzeko. Oharra : ez duzu kernela konpilatzearen beharrik driver berezi bat konpilatzeko. Nahikoa izango duzu linux-headers delako paketea instalatzea.

  10. Kernelaren iturri-kodeakkonpilatzen hasi baino lehen • administratzaile baimenak eduki. • Gure kernel berria konfiguratzeko momentuan, ze hardwareari sostengua eman nahi diogun aukeratu behar dugu, beraz gure ordenagailuaren hardwarearen informazioa bilduko dugu: Processor, Drive type and Controller (SCSI, IDE), Ethernet devices, Graphics and Sound Cards, USB HUB...

  11. Kernelaren iturri-kodeakkonpilatzen hasi baino lehen • Zure hw ezagutu: lspci lsusb lshw cat /proc/cpuinfo cat /proc/net/dev

  12. Kernelaren iturri-kodeakkonpilatzen hasi baino lehen • Kernela deskargatzeko momentuan 2 aukera ditugu: • deskargatu nire distribuzioak aldatutako kernelaren iturri-kodeak eta instalatu nire distribuzioko tresnak erabiliz: Ubuntu-Debian (apt, make-kpkg, dpkg) edo Fedora-Redhat(yum, rpm, rpmbuild)... • Deskargatu kernelaren iturri-kode ofizialak www.kernel.org Linus Torvaldsen taldearena.

  13. Kernelaren iturri-kodeakkonpilatzen hasi baino lehen • Zein da aukera egokiena? • Konfigurazioan egingo dituzun aldaketak gutxi badira, ziurrena distribuzioko bertsioa instalatzea da, hauek sistema-banaketara (Adbidez ubuntura) bideratuak daude eta egonkortasuna ziurtatzen da, txaplata asko gehitzen bait dizkiote kernel ofizialari. Esate baterako: Selinuxeko segurtasun txaplata , ... • Normalean denbora asko pasatzen da, kernel ofiziala eskuragai jarten dutenetik sistema-banaketako kernelean bertsio bera ikusi arte, horregaitik kernel ofizialaren ezaugarri bat probatu nahi badugu, ezin bestekoa izango da kernel ofiziala erabiltzea.

  14. Kernelaren iturri-kodeakModu Unibertsala. Download • Azken bertsioa deskargatu: • http://www.kernel.org/ o http://www.kernel.org/mirrors/ • The latest stable version of the Linux kernel is: 2.6.29.1 • Nire ubunturen bertsioa hau da:uname -r->2.6.24-23-generic • Jaitsi .tar.gz edo tar.bz (F pultsatuz)‏ The latest stable version of the Linux kernel is: 2.6.29.1 2009-04-02 00:39 UTC F V VI C Changelog

  15. Kernelaren iturri-kodeakmodu unibertsala.Deskonprimitu • $ sudo cp linux-XYZ.tar.bz2 /usr/src/ && cd /usr/src && tar -jxvf linux-XYZ.tar.bz2 • Artxiboaren edukia /usr/src/linux-XYZ katalogoan agertuko da. Joan katalogo horretara eta irakurri README fitxategia, bertan “INSTALLING the kernel” sekzioa aurkituko duzu. Jarraitu hor dauden pausuak.

  16. Konpilatu • Pausuak: 1.-kokatu: cd /usr/src/linux-X.Y.Z 2.-Egin make mrproper (Aurreko kernel konpilaketa batean sortutako fitxategiak ezabatzen ditu. Adibidez:gera daitezkeen .o binario guztiak ezabatzen ditu,...)‏

  17. Konpilatu 3.-Kernelaren ezaugarriak aukeratzeko orduan, honako komando baten bidez egin dezakegu: • make config :(testu galderen bidez)gauza asko galdetuko dizkizun shell-script konfigurazio programa bat. • Make menuconfig: testu menu baen bidez • make xconfig: (2.4 bertsioan X-windows-en oinarrituta dago baina 2.6 bertsioa “qt-devel”-eko QT garapen liburutegietan oinarrituta dago)‏ • make gconfig: New in 2.6.x, based on GTK and not TCL-TK

  18. Konpilatu • Hurrengo komando hau erabiz:$make xconfig • “/boot/config-version”en dagoen, instalazio prozesuan lortutako konfigurazio artxiboaren konfigurazioa kargatu. • “lspci”rekin aurkitutako dispositibo kontrolagailuak aukeratu eta nahi dituzun kernelaren ezaugarriak gehitu. • 3 aukera daude: • 'y' kontroladore edo berezitasuna kernelaren alde monolitikoan jarriko da. • 'm' kontroladore edo berezitasuna modulu bezala konpilatuko da. • 'n' ez da konpilatuko edo aukeratua izango. • Adibidez:modema erabiliko dugunean bakarrik kargatu PPP modulua.

  19. Konfigurazio aukerak • Code madurity level options: 'y/n' (driver ezegonkorrak erabil ahal izatea)‏ • Loadable module support: • Enable loadable module support:'y' • Set version information on all module symbols :'n' (moduluak gorde kernela aldatzean, 'y' erabili nukleo kanpoko moduluak baditugu)‏ • Automatic kernel module loading (KMOD):'y' • Procesor type and features: • High Memory support:off(x)->Menos 960MB • Math emulation:'n' • MTRR(Memory Type Range Register) support:'n'(PCI/AGP)‏

  20. Konfigurazio aukerak • Fitxategi Sistema ezberdinen sostengua (Filesystems): • Ext3 (kontuz, ez modulu bezala)‏ • vfat (linuxetik zure FAT32 partizioetara sartu ahal izatea edo sistema horretako disko/partizioak montatu nahi ditu)‏ • umsdos (DOS partizioetan linux instalatu nahi dutenentzat, baina ezer ez gehiago)‏ • /proc artxiboen bidezko interfazea nukleoaren prozesuen taulekin, “ps” bezalako programak erabilia. Saiatu tekleatzen “cat /proc/meminfo” edo “cat /proc/devices”. Linuxeko programa askok erabiliak.

  21. Konfigurazio aukerak • Fitxategi Sistema ezberdinen sostengua (Filesystems): • ISO9660 - CD-ROM bat badu. • NTFS (NT,XP,2000 artxibo sistemen soportea )‏. • quota support – sistemaren erabiltzaileek konsumitzen duten espazioa adiministratu nahi badute aukeratu. • mandatory lock support- artxibo edo datu-base zerbitzari bezala erabiltzen baduzu aukeratu.

  22. Konfigurazio aukerak • Fitxategi Sistema ezberdinen sostengua (Filesystems): • NFS :zure makina sarean badago eta NFSrekin beste ordenagailu batean dagoan Sistema Fitxategi bat gurean muntatu nahi badugu. • SMB filesystem support: NetBios sarearen bezeroengatik konpartitutako bolumenak muntatu ahal dugu. • UFS: Unix FileSystemarentzat sostengua, *nixes BSD, SunOS, FreeBSD, NetBSD, NeXTstep erabilia.‏ • Sys V and Coherent filesystem support besteen partizioak montatzen utziko digu, *nixes System V, SCO Unix, Xenix y Coherent.

  23. Konfigurazio aukerak • Baina ez dakit ze Fitxategi Sistemak erabilten ari naizen! cat /etc/fstab o mount /dev/hda3 on / type ext3 (rw)‏ none on /proc type proc (rw)‏ usbdevfs on /proc/bus/usb type usbdevfs (rw)‏ /dev/hda5 on /boot type ext3 (rw)‏ none on /dev/pts type devpts (rw,gid=5,mode=620)‏ /dev/hda8 on /home type ext3 (rw)‏ none on /dev/shm type tmpfs (rw)‏

  24. Konfigurazio aukerak /dev/hda11 on /tmp type ext3 (rw)‏ /dev/hda6 on /usr type ext3 (rw)‏ /dev/hda9 on /usr/local type ext3 (rw)‏ /dev/hda7 on /var type ext3 (rw)‏ /dev/hda2 on /dos type vfat (rw)‏ /dev/cdrom on /mnt/cdrom type iso9660 (ro,nosuid,nodev,user=kepa)‏ /dev/fd0 on /mnt/floppy type msdos (rw)‏ Jakiteko ze artxibo sistema erabiltzen duen oraingo nukleoa, tekleatu dezakezu 'cat /proc/filesystems'

  25. Konfigurazio aukerak • Soinu txartela (Sound card)‏ • Kernel hacking: n (produkzio bertsioetarako)‏ • ...

  26. Nukleoa konpilatu 4.-Konpilatzeko momentua da!!!!!: $make • Nukleo monolitikoaren konpilazio konprimitua egiten du. • nukleoaren irudi konprimitua bzImage fitxeroa, /usr/src/linux-XYZ/arch/i386/boot/ katalogoan sortzen du. • system.map fitxeroa ere sortzen du, /usr/src/linux-XYZ/System.map katalogoan.

  27. Nukleoa konpilatu Zer da System.map? • Simbolo batek programa baten bloke bat adierazten du: funtzio baten izena edo aldagai baten izena. • Funtzio bati deitzeko, Kernelak ez ditu izen sinbolikoak erabiltzen helbideak baizik. (Adibidez BytesRead() funtzioari deitzeko hurrengo helbidea c0343f20 erabili dezake)‏ • “system.map”en gordetzen da izen sinboliko bati dagokion heldidea. Esate baterako: c03441a0 B dmi_broken c03441a4 B is_sony_vaio_laptop ...

  28. Nukleoa konpilatu Zer da System.map? • /proc/kallsyms proc motako artxibo bat da, kernela martxan jartzean sortzen dena, “system.map”en edukierarekin. Kernel berri bat konpilatzen duzunean system.map berri bat sortzen da. • To learn more: http://www.dirac.org/linux/system.map/

  29. Modulu konpilazioa eta instalazioa 5.- Aukeratutako moduluak konpilatu eta administratzaile bezala instalatu: $sudo make modules_install make modules //moduluak konpilatu Moduluak "/lib/modules/`uname -r`custom“-era kopiatu NOTA: depmod -a exekutatu nukleoa lehen aldiz martxan jartzean, moduluen arteko dependentziak erregistratzeko.

  30. Nukleo instalazioa 6.- Kernel konpilatzerakoan sortutako guztia instalatu: #nukleoaren irudi konprimitua bzImage fitxategia, /usr/src/linux-XYZ/arch/i386/boot/ katalogotik kopiatu /boot katalogora vmlinuz-X.Y.Z bezala cp /usr/src/linux-XYZ/arch/i386/boot/bzImage /boot/vmlinuz-X.Y.Z #Simbolo taula, boot katalogoan kopiatu cp /usr/src/linux-XYZ/system.map /boot/system.map-X.Y.Z #gorde konfigurazio artxiboa /boot katalogoan cp /usr/src/linux-XYZ/.config /boot/config-X.Y.Z

  31. Nukleo instalazioa 6.- Kernel konpilatzerakoan sortutako guztia instalatu: #Esate baterako IDE eta ext3 kontroladoreak modulu bezala aukeratu baditugu, kernelaren hasieraketan, erro katalogoaren muntaketa ezinezkoa izango da. Hau konpontzeko kontroladore hauekin artxibo berri bat sortzen da, kernelarekin batera memorian kargatuko dena. Artxibo hau komando honekin sortzen da: Ubuntun: mkinitramfs -o /boot/initrd.img-2.6.24 2.6.24

  32. Nukleo instalazioa 6.-Kernel konpilatzerakoan sortutako guztia instalatu: # GRUB kargadorea aldatu sarrera berriarekin: vi /boot/grub/menu.lst title Ubuntu 8.04.2, kernel 2.6.24-23-generic root (hd0,5)‏ kernel /boot/vmlinuz-2.6.24-23-generic root=UUID=dda38e2b-9a90-4085-88ea-6cbb368f7e9f ro quiet splash initrd /boot/initrd.img-2.6.24-23-generic quiet

  33. Nukleo instalazioa 7.-ordenagailua martxan jartzean depmod -a eta frogatu dena ondo dagoela dmesg begiratuz.

  34. Zer da kernel txaplata bat? • Kernel txaplata, aurreko bertsiotik aldatu diren kodigo lerroen informazioa bakarrik daukan artxibo bat da. • Abantailak: • Esate baterako:kernel 2.2.0 bat daukagu eta 2.2.1ra berritu nahi badugu. patch-2.2.1.gz [70Kb] artxiboa jaitsi beharko zenuke 2.2.1 kernel osoa deskargatu beharrean [12.5Mb]. • Desabantailak: • Esate baterako:2.2.0 nukleoa daukagu eta 2.2.4ra berrituko dugu. 2.2.1, 2.2.2, 2.2.3 eta 2.2.4 deskargatu beharko zenuke. Partxeak bertsiotik bertsiorako aldaketak bakarrik daukate.

  35. Kernel-txaplata nola erabiltzen da? • Hasi baino lehen: Nukleoaren kopia bat gorde • Txaplata deskargatu eta kopiatu: patch-2.4.22 ( linux-2.4.21.tar.gz dagoen lekuan)‏ • deskonprimitu: bunzip2 patch-2.4.22.bz2 • Exekutatu: patch -s -p0 < patch-2.4.22 • Ikusteko ondo aladatu ez diren atalak, .rej artxiboak bilatu iturri-kodeen katalogoan. find . -name '*.rej' -print

  36. Kernel-txaplata aplikatu ostean modu unibertsala erabili • Kernel 2.6: • make xconfig • make • make modules_install • make install

  37. Distribuzioaren kernela erabiltzen • Ubuntu erabiltzen: http://www.ubuntu-es.org/node/431 https://help.ubuntu.com/community/Kernel/Compile • Debian erabiltzen: http://www.debian.org/releases/stable/i386/ch08s06.html.es • Fedora erabiltzen: http://fedora.redhat.com/docs/release-notes/fc4/#sn-kernel-flavors http://oak.cats.ohiou.edu/~hobbsk/kernel-compilation-tutorial-en/steps.html

  38. Ubuntu 8.04 Hardy • Ubuntu 8.04 Hardyn 2.6.24-16.30 kernelarekin atera zen, vanilaren 2.6.24.3 oinarriturik. Ubuntu txaplata gehiago sartzen ditu: hobetzeko, erroreak konpontzeko edo ezugarri berriak gehitzeko. Horregatik ubunturen kernela ez da www.kernel.org dagoen kernel bera.

  39. Kernelaren iturri-kodeak lortu • Ubuntuko errepositorioetan kernel-source eta linux-source paketeak aurkituko dituzue. Biak kernelaren iturri-kodeak dira. Zein da desberdintasuna? Kernel-source Debianentzako prestatuta daude, eta linux-source Ubunturentzako. Beraz instalatuta daukagun kernelaren iturri-kodeak lortzeko, bakarrik egin beharko dugu: $sudo apt-get install linux-source • Honekin linux-source-nº_de_version.tar.bz2 artxiboa deskargatuko da /usr/src katalogoan. Adibidez: linux-source-2.6.24.tar.bz2

  40. Kernelaren jatorriak lortu • $ cd /usr/src katalogora mugitu. • Aurreko kernel baterako sortutako esteka sinbolikoa ezabatu: $ sudo rm linux • Iturri-kodeen artxiboa deskonprimituko dugu orain: $ sudo tar jxvf linux-source-2.6.24.tar.bz2 • Katalogo horrekiko esteka sinbolikoa sortzen dugu: $ sudo ln -s linux-source-2.6.24 linux

  41. Konpilatzeko beharrezko tresnak instalatu • Hurrengo paketeak instalatu: sudo apt-get install build-essential kernel-package • kernel-package: A utility for building Linux kernel related Debian packages. • build-essential: informational list of build-essential packages

  42. Kernela konfiguratu • Kernela konfiguratzeko forma ezberdinak daude. Jende gehiena bi hauetariko bat erabiltzen ditu: make menuconfig edo make xconfig. Ezberdintasuna “make menuconfig”ekin ez dela beharrezkoa Xwindow funtzionatzen edukitzea, eta “make xconfig”ekin bai. • Nota: make menuconfig erabiltzeko libncurses5-dev (bere dependentzia guztiekin) paketea beharko dugu eta make xconfig erabiltzeko libqt3-headers eta libqt3-mt-dev (bere dependentzia guztiekin) paketeak beharko ditugu.

  43. Kernela konfiguratu • Beraz erabili nahi dugunaren arabera, egin beharko dugu: $ sudo apt-get install libncurses5-dev edo: $ sudo apt-get install libqt3-headers libqt3-mt-dev

  44. Kernela konfiguratu • Kernela konfiguratzeko, konfigurazio ezagun batetik hasi naiteke? Bai. 2 erreferentzia puntutik irten gaitezke: A)Kernelaren iturri-kodeak arkitektura ezberdinentzako zehaztutako konfigurazio ezberdinak dakarte B)Ubuntu instalatzerakoan, kernelaren konfigurazioa /boot katalogoan gordetzen du, config-2.6.XX-XX izenarekin

  45. Kernela konfiguratu • Instalatzerakoan sortutako konfigurazioa oinarri bezala hartzeko, kopiatu config-2.6.XXXX /usr/src/linux katalogoan “.config” bezala sudo cp /boot/config-2.6.20-15-generic /usr/src/linux/.config

  46. Kernela konfiguratu • “make oldconfig” komandoa exekutatu, kernel berria konfiguratzen saiatuko da nire konfigurazio zaharraren parametroak erabiliz, hau da, nire aurreko bertsioaren .config.old edo .config artxiboetatik. Galderak sortzen ditu erabiltzen ari garen .config artxibo zaharretik gehitu diren ezaugarri berriei buruz.

  47. Kernela konfiguratu • “make oldconfig” bakarrik erabiltzen da nukleoaren iturri-kodearen aldaketak txikiak badira (2.4.2 kerneletik 2.4.5 kernelera) Oharra: oldconfig ez du lan egiten bertsio ezberdineko konfigurazio artxiboekin. Ez du lan egiten esate baterako: 2.4.x .config bat 2.6.x kernel batekiko. $sudo make oldconfig

  48. Kernela konfiguratu • Orain jada, sudo make menuconfig edo sudo make xconfig egin dezakegu eta nahi ditugun kernelaren aukerak aldatu, hau da, gure gustura konfiguratu. Baina kontuz, hori bai, hau pausu garrantzitsuena delako. Hemen da guztia hondatu ahal dugun lekua ez badugu, esate baterako, gure sistemarentzako beharrezko modulu bat sartzen. sudo make xconfig

  49. Kernela konfiguratu

  50. Paketea sortu • Kernel berria instalatuko dugun paketea sortzeko make-kpkg komandoa erabiliko dugu. “Make” eta “make modules”ren funtzio berdina egiten du. Aukera eta aldaketa asko uzten ditu (badakizue: man make-kpkg), baino orain bakarrik behar dugu hurrengoa: #aurreko konpilazioak garbitzen ditugu $ sudo make-kpkg clean

More Related