Miért akarna valaki új kernelt fordítani? Valóban, ez általában nem szükséges, mivel a Debian által alapértelmezetten adott kernel a legtöbb gépet jól kezeli. Ráadásul a Debian más kerneleket is tartalmaz. Sokszor ezek között is találhatsz a gépedhez jobban illő kernelt. Ezzel együtt néha hasznos lehet új kernelt fordítani az alábbi célokra:
speciális hardver-igények, vagy ezek az előre-szállított kernelekkel való ütközésük kezelésére
olyan kernel lehetőségek használatára, melyek nem kerültek bekapcsolásra az előre-szállított kernelekben (például az átlagnál magasabb memória-tartományok támogatása)
a kernel optimalizálása a nem használt meghajtók mellőzésével az indítási idő további gyorsítására
monolitikus kernel alkalmazása moduláris helyett
frissített vagy fejlesztői kernel használata
a kernel haladó szintű tanulmányozása
Próbáld ki bátran a kernel-fordítást. Ez kellemes és ráadásul hasznos.
Ha a Debian módszerével fordítanál, szükséged lesz pár csomagra, úgymint: fakeroot
, kernel-package
, linux-source-2.6
és egy pár egyébre, mely már valószínűleg telepítve van (a teljes listát elolvashatod a /usr/share/doc/kernel-package/README.gz
fájlban).
E módszer elkészíti a .deb csomagot a kernel-forrásból, és, ha nem-szabvány moduljaid vannak, azokra is elkészíti a megfelelően függőt. Ez sokkal jobb mód a kernel-képek kezelésére; a /boot
könyvtár tartalmazza majd a kernelt, a System.map fájlt és az aktív konfigurációs fájl naplóját az elkészítéshez.
Tudd, hogy nem kell a kernelt a „Debian módszer” útján fordítanod; de a kernel csomagoló rendszerrel való kezelése biztosabb és könnyebb. Fontos tudni, hogy a kernel forrásokat Linustól is letöltheted a Debian linux-source-2.6
csomagok használata helyett, és még így is rendelkezésedre áll a kernel-package
kernel-fordítási módszer használata.
Jó tudni, hogy a kernel-package
módról teljes leírás található a /usr/share/doc/kernel-package
könyvtárban.
Mostantól azt feltételezzük, hogy szabadon mozogsz a gépen, és a kernel forrását kicsomagolod a saját könyvtáradba[19]. A példában azt vesszük, hogy kerneled verziója 2.6.18. Győződj meg, hogy abban a könyvtárban vagy, ahova ki akarod bontani a kernelforrásokat, csomagold ki őket így: tar xjf /usr/src/linux-source-2.6.18.tar.bz2
és lépj a létrejött linux-source-2.6.18
könyvtárba.
Most jöhet a kernel beállítása. Indíts egy make xconfig
parancsot, ha X alatt akarsz dolgozni és erre módod van; vagy futtasd a make menuconfig
parancsot (a libncurses5-dev
csomag kell). Szánj időt a súgó elolvasására és válassz ésszerűen. Kétség esetén általában jobb kiválasztani egy olyan eszköz-meghajtót (azok a szoftverek, melyek a hardver perifériákat kezelik, például hálózati (ethernet) kártyák, SCSI vezérlők, és így tovább), melyben nem vagy biztos. Légy óvatos: más lehetőségeket, melyek nem adott hardverre vonatkoznak, hagyj a megadott értéken, ha nem érted. Ne feledd kijelölni a „Kernel module loader” lehetőséget a „Loadable module support” menüben (ez nincs alapban kijelölve). Ha nem adod meg, akkor a Debian telepítésed valószínűleg hibákat fog észlelni.
Tisztítsd a forrást és a kernel-package
paramétereket. Add ki a make-kpkg clean
parancsot.
Most fordítsd le a kernelt: fakeroot make-kpkg --initrd --revision=egyedi.1.0 kernel_image
. Az „1.0” verziószám bármi lehet; ez csak arra jó, hogy többszöri fordítás esetén kövesd ezek sorát. Az „egyedi” szó helyére is bármit tehetsz (például a gép nevét). A kernel fordítás eltarthat egy ideig, attól függ, milyen géped van.
A fordítás végeztével más csomaghoz hasonlóan telepítheted az egyedi kernelt. Rendszergazdaként add ki ezt a parancsot: dpkg -i ../linux-image-2.6.18-
. Az alarchitektúra
_egyedi.1.0_alpha.debalarchitektúra
rész egy lehetséges al-architektúra, a beállított kernelopcióktól is függ. A dpkg -i
telepíti a kernelt kiegészítő támogató fájlokkal. Például a System.map
megfelelően telepítésre kerül (kernelhibák keresését segíti), és a /boot/config-2.6.18
is telepítésre kerül, mely a beállításokat tartalmazza. Az új kernel csomag automatikusan frissíti is a boot betöltőt. Ha modul csomagot is készítettél, azt a csomagot is telepítened kell.
Ideje újraindítani a rendszert: olvass el gondosan minden figyelmeztetést, amit a fentiek írtak, és ezután jöhet a shutdown -r now
.
További adatokért a Debian kernelekről és kernel-fordításról, lásd a Debian Linux Kernel Kézikönyvet.
[19] Vannak más helyek is, ahova kicsomagolhatod és ahol elkészítheted saját kerneledet, de ez a legegyszerűbb és nem igényel különleges jogokat..