2009. július 18., szombat

# Kernel forgatás [alap leírás]


Mindenkinek a saját felelősségére. Nem annyira jellemző Debian alatt. De vannak disztribúciók, esetleges célok/igények, amikor mégis kellhet. Olvasd végig az egészet, és csak utána kezdj bele.
Lenny alatt jelenleg a "2.6.26-2"-es kernel van gyárilag, de mi a példa kedvéért alá szeretnénk rakni a jelenlegi legfrissebb stable kernelt, a "2.6.30-1"-est.
Töltsük le a forráskódot, tömörítsük ki, lépjünk bele a mappájába, majd másoljunk neki egy configot:
cp /boot/config-2.6.26-2-686 ./.config
Mielőtt elkezdenénk, kell egy pár csomag a gépre [figyelmeztet, hogy mégis mi hiányzik még a gépről]:
apt-get install gcc make libncurses5-dev
Most, ha akarsz/kell:
make menuconfig
-ban módosíthatod a config-ot, miszerint pl.: mi legyen "modulként", mi legyen "built-in"-ként, vagy mi ne legyen az elkészülő kernelben. Ez után már lehet kezdeni fordítani. A "make" parancsnak van egy "-jX" kapcsolója, ahol az "X" egy számot jelent, hogy hány szálon fog dolgozni/forgatni. Tehát pl.: csak tipp: két magos procinál:
time make -j2
legyen a parancs [azért a "time" elé, mert így a végén megtudhatjuk, hogy mennyi ideig tartott - nálam az első alkalommal: "real: 50m11.194s" - T7100-as C2D procival]. Ekkor rákérdezhet rengeteg dologra, egyszerűen üssünk entert [illetve tartsuk folyamatosan lenyomva azt, mivel említetten sok dologra kérdez rá, a default válaszok jók. A te régi kerneled configja, és az új közötti különbségek miatt teszi csak ezt]. A forgatás eltarthat egy jó darabig, gép/config file beállítástól nagyon függ. [Egy esetleges "megszakítás" esetén a "make"-nél ott kezdi, ahol "abbahagyta".] Kernel lefordulva, telepítsük [csak is innentől _kell_ "root" jog]:
time make modules_install install
Másoljuk az elkészült "fájlt" a helyére ["x86" helyett lehet, pl.: "x86_64", amilyen architektúrád van]:
cp arch/x86/boot/bzImage /boot/vmlinuz-2.6.30-1
initrd image:
time mkinitramfs -o /boot/initrd.img-2.6.30-1 2.6.30.1
Ha nem akarod kézzel szerkeszteni a GRUB beállításait, akkor csak ezt a parancsot add ki:
update-grub
De viszont figyelj arra, hogy biztos ~így nézzen ki a "/boot/grub/menu.lst"-ed megfelelő része:
title
root
kernel
initrd
kernel 2.6.30.1-barminev
(hd0,1)
/boot/vmlinuz-2.6.30-1 root=/dev/hda2 ro
/boot/initrd.img-2.6.30-1
Mármint az "update-grub" az "initrd"-részt nálam kihagyta. A "/dev/XdXX", "(hdX,X)", mindenkinek változó lehet, ezt majd látni fogod [az "update-grub" azt legenerálja]. Szerkesztéshez használj pl.: Vim-et.
Kész, reboot.
ui.: Kernel forgatás - hupwiki, itt pedig egy sulinetes írás, itt pedig egy a cyberciti-ből. ""Bagoj úr blogja"". És még egy Hup.hu link.
ui2.: Pl.: Gentoo-sok szerintem több tucat/száz oldalt beszélhetnének kernel forgatásról, majd még később bővítem esetlegesen ezt az alap írást :D
ui3.: Csak egy megjegyzés.
ui4.: Roll a kernel Debian, Ubuntu way
ui5.: The Kernel Newbie Corner - csak hátha talál itt valaki valami "érdekeset" :) .
ui6.: Program fordítás Linuxon
ui7.: Saját Kernel Fordítása Ubuntu 9.04 Rendszeren
ui8.: KernelCheck: kernel compiling process as easy as the click of a button
ui9.: Kernel compile and install on Debian 5.0 for newbies
ui10.: Kernel Compilation & Installation on Ubuntu - KernelCheck
ui11.: Kernel forgatás, hup, egy és kettő.

8 megjegyzés:

uzsolt írta...

"Ekkor rákérdezhet rengeteg dologra, egyszerűen üssünk entert [illetve tartsuk folyamatosan lenyomva azt, mivel említetten sok dologra kérdez rá, a default válaszok jók."
Ekkor a yes parancsot tudom ajánlani, sokkal normálisabb megoldás.
yes | make

Nagy Gábor írta...

ismételten köszi a tippet :D

uzsolt írta...

Ismételten szívesen ;)

NH írta...

make: ***No rule to make target 'menuconfig'. stop.!
Első kernelforgatásommal küzdök, kérlek segítsetek!

NH írta...

Megoldódott!

Nagy Gábor írta...

és ha szabad kérdezni, hogyan? :)

NH írta...

a /usr/src/ -ben próbáltam kiadni a parancsot :)

Névtelen írta...

Szia!

Erre van itt egy nagyon egyszerű letölthető szkript is:
http://linuxscripting.hu/website/?q=node/39

Megjegyzés küldése