|
Kernel fordítás
Letölthető ez a doksi html verzióban is innen.
Figyelem, az alant következőket mindenki saját felelőségére használja! Semmiféle garancia nincs rá, hogy az én általam tesztelt és kipróbált beállítások nem okoznak nálad - esetleg - hw gondot! A leírást mindenesetben olvasd el az elejétől a végéig, mert ha csak belekapsz, nem lesz belőle semmi, max törölsz vagy felülírsz fontos és müködő dolgokat, ami után - jobb esetben - nem fog elindulni a leforgatott kerneled, roszabb esetben, nem fog menni a linuxod, legrosszabb esetben gallyra vágod valamelyik hardwered!!! Mielőtt úgy gondolnád, hogy ez pont veled nem fordulhat elő, közlöm, láttam már ilyet! A kernel a linux rendszermag, ennek fordítása nem "5 perc alatt összecsapom" dolog. Figyelj oda! Ha jól csinálod, jutalmul a tiéd lesz, egy jól müködő, gyors és stabil rendszer, ami a TE kezed munkája!
Sok sikert kívánok!
Tömörítsük ki a kernelt forrást a /usr/src-be ( ezt csak rootként tehetjük meg - figyeljünk arra, hogy a meglévő kernel forrást ne írjuk felül! ) Lépjünk be a /usr/src/linux-2.x.x-be ( az x-ek a kernel verzióját jelentik, példának okáért legyen az épp aktuális kernel 2.6.11 ) root@pomm:/# cd /usr/src/linux-2.6.11 root@pomm:/usr/src/linux-2.6.11#
Ezuán adjuk ki a make menuconfig parancsot ( lehet használni a make xconfig vagy make gconfig parancsokat is, ezek után grafikusan lehet a kernelt configurálni, a make menuconfig pedig menüvezérelt, de karakteres felületű - én ezt favorizálom. Van még a make config, ez kimondottan mazochisták számára ajánlott ) root@pomm:/usr/src/linux-2.6.11#make menuconfig
Ezt kell látnunk:

Azt tudnunk kell a továbbiakban, hogy ami "x" az fixen van a kernelben, ami "M" az modulként, ami nincs kijelölve az sehogy Nálam sok dolog fixen van, de igazából ez rád van 90%-ban bízva. Van néhány dolog, amit nem szabad modulként berakni! Javaslom - az elején - kövesd azt, ahogy én csináltam! És most vágjunk bele! Amennyiben uhu-hoz fordítjuk a kernelt rögtön ellenőrizzük le, hogy be van-e kapcsolva a Code maturity level options. Az uhu ugyanis /dev fájlrendszert használ ( legalábbis mostanáig - Uhu-verzió 1.1 ) és ahhoz kelleni fog a későbbiekben. Ez tulajdonképpen a még nem teljesen kiforrott kódrészek használatának engedélyezése. Amúgy - hacsak nem szerverhez fordítasz kernelt - engedélyezheted, nem szokott velük gond lenni. A szerverekhez és egyéb fontos munkaállomásokhoz - már csak az elvek miatt - nem illik betenni. A következő a General setup, én ezt nem szoktam változtani, jó a gyári beállítás. Hangsúlyozom, ÉN nem szoktam, neked lehet, hogy kell Loadable module support, itt eldönthetjük, hogy használunk-e modulokat vagy sem. Ha monolitikus kernelt ( minden a rendszermagba van befordítva ) szeretnél használni, akkor kikapcsolhatod, ha modulost, akkor engedélyezned kell ( defaultból engedélyezetten áll ). Sztem kezdetben ezt hagyd így, ha gond lenne a modulokkal még mindíg újra fordíthatod monolitikusan. Processor type and features a következő. Itt már tuti állítgatnod kell Így néz ki:

Defaultból a pc-style nekünk jó, a processzort viszont állítsuk át olyanra, amilyen a miénk. Nekem amd van, ezért az látható a képen. Alapból bent van a több processzoros gép támogatása is, ezeket én már kiszedtem. Tulképpen a képen látható dolgokat másold le a beállításaidban, úgy menni fog! A High Memory Support-ot akkor kapcsold csak be, ha 4 GB-nál több RAM van a gépedben. A Firmware Drivers nálam ki van kapcsolva. Ha ezek megvannak, akkor exit és visszaértünk a főmenübe.
Power management options (ACPI, APM) itt a adjuk meg, hogy akarjuk-e ( ez az energia gazdálkodásért felelős, pl.: a gép szofveres kikapcsolása - atx-es táp esetén! - ) Tudnunk kell melyiket támogatja a BIOS-unk. Nekem acpi-t ( ez az újabb, új alaplap estén, biztos, hogy ez a támogatott ) Állítsuk be, ahogy a képen, ha acpi-nk van:


A kettő együtt nem a legjobb választás, ha bizonytalanok vagyunk válasszunk egyet és a kernel lefordítása után adjuk ki a halt parancsot. Ha teljesen leáll a gépünk ( értsd, nem kell a power gombbal kikapcsolni ), akkor jó, ha nem, akkor cseréljük meg és használjuk a másikat. A kernelt ekkor nem kell teljesen újra forgatni, hanem az automatikusan ( ha nincsenek főbb változtatások ) updatelődni fog, így nem tart már olyan sokáig!*
*Megjegyzés: Ehhez viszont elengedhetetlen, hogy kernel forgatását követően az erdeti bzImage még ott legyen a /usr/src/linux-2.6.11/arch/i386/boot könyvtárban! Ezt azért mondom, mert én is soxor nem átmásolom a /boot alá a kész kernelt, hanem átmozgatom. Tehát, maradjunk a másolásnál, sztem, 2 megát pluszban elviselünk a merevlemezünkön és ha valamit változtatni szeretnénk a kernelben, akkor sok időt megspórolunk:)
Ebben a menüpontban még van egy beállítási lehetőség a CPU Frequency scaling. Én ezzel még nem szorakoztam, ez inkább notebookokhoz jó, akinek ilyen van, az olvassa a helpet , amúgy célszerű kikapcsolni.
A következő a Bus options (PCI, PCMCIA, EISA, MCA, ISA). Lépjünk be, ezt kell látnunk:

Ahogy a képen van, én úgy állítom be. Tedd te is ezt! Ha van ISA-ás kártyád ( akkor nem mai géped van ) akkor azt még jelöld be! A PCI access mode, a NatSemi SCx200 support, PCCARD (PCMCIA/CardBus) support és a PCI Hotplug Support nálam ki van kapcsolva! Ha te úgy gondolod, ezekre szükséged van, akkor használd őket.
Az Executable file formats a következő. Erről nincs mit regélni, alapból mind a három be van kapcsolva ( ha nem így lenne, KAPCSOLD BE őket!!! ) és legyenek is bekapcsolva!
Elérkeztünk a Device Driver-ekhez. Lépjünk be! Látható, hogy sok almenü van ( és milyen sok beállítási lehetőség, azokon belül...huhúúú )

Kezdjük!
Generic Driver Options: alapból minden beállítása kijelölve, hagyd így!
Memory Technology Devices (MTD) Alapból nincs, én sem használom.
Parallel port support

Én ezeket a beállításokat hagytam meg, persze ha kell Multi-IO cards (parallel and serial) illetve innen bármi, jelöld be! Én az alapokat próbálom leírni, extra hw-iddel neked kell kisérletezni!
A Plug and Play support nálam így néz ki, sztem neked is jó lesz :

Block devices. Ezt értelemszerűen töltsd ki! Nekem így néz ki:

Egy kis magyarázat: Mivel nekem nincs floppym, így azt kikapcsoltam, viszont a Loopback device support-ot és a RAM disk support bekapcsoltam. Előbbi kell - például - ISO mountolásánál, az utóbbi - például - live cd-éknél a ram disk létrehozásánál. Az előbbit, mindenképpen kapcsold be ( Loopback device support ), az utóbbit rád bízom. A floppyt se feledd, ha neked kell!
ATA/ATAPI/MFM/RLL support - nálam így néz ki:

Az alapbeállításokat csak egy helyen kell megváltoztatni!!! Mondom hol, a többit NE bántsd!
Keresd meg ezt a beállítást: SiS5513 chipset support - nálam ez be van jelölve, de ha neked nem ilyen alaplapi cuccosod van, akkor keresd meg, hogy melyik kell, mert enélkül rumlis lesz a dma-d és igen lassú lesz a merevlemez kezelés. Tehát válaszd a neked kellő chipset-et. Amit viszont NE tegyél az az, hogy ezt NE kapcsold ki: Intel PIIXn chipsets support - hacsak mérget nem mersz venni rá, hogy neked nem kell!!! Itt igazából a nálam bejelölt SiS5513 chipset support helyett kell a neked megfelelőt bejelölnöd, a többit hagyd békén!!! ( Majd ha guru leszel forgatásban, akkor kisérletezgess! )
SCSI device support - én ezt hagytam úgy ahogy van, mert nincs scsi merevlemezem...
A Multi-device support (RAID and LVM), Fusion MPT device support, IEEE 1394 (FireWire) support nálam kikapcsolt állapotban vannak. Ebből neked max a IEEE 1394 (FireWire) support kellhet - egyenlőre ( hacsak nem raid cuccod van ) - ezt esetleg bejelölheted, én sokat nem tudok róluk írni, soha nem használtam egyiket sem!
I2O device support - na ezekről én is marha keveset tudok, amúgy ezt te hagyhatod defaulton ( asszem ki van kapcsolva ), az elején nem lesz rá szükséged!
Networking support - nálam így van:

Ebből neked esetleg az irda nem kell, én is csak tesztelem, a többi pedig a gyári beállítás, itt ne lépjünk ki, hanem lépjünk be a Ethernet (10 or 100Mbit) almenübe, már ha van ethernet kártyád és használni is akarod...( Értelemszerűen ha 1000 megásod van akkor oda lépj, ha 10000 megásod akkor oda ) Válaszd ki a neked kellő kártyát! Nálam így néz ki:

Mivel nekem SiS 900/7016 PCI Fast Ethernet Adapterem van így ezt jelöltem be! Ezt te ne jelöld be, hacsak nem ez kell, hanem keresd meg a neked kellőt ezek közül. Eztuán lépjünk vissza kettőt!
Az ISDN subsystem következik, amit én a Telephony Support-tal együtt kikapcsoltam, mert nem kell! Ha neked kell, akkor használd őket a help szerint!
Az Input device support-ot én soha nem bántom, mert az egér és a billzet nekem úgy jó, ahogy van, más extrám pedig nincs. Ha neked kell joystic vagy touchscreen, akkor mazsolázz!
A Character devices-ba megint kell egy kicsit állítgatni...nálam így néz ki:

Az elején lévő beállításokat ne nagyon cseszegesd, hacsak jó okod nincs rá ( jó ok = kell neked ) Innen érdekes: /dev/agpgart (AGP Support) Amint az látható én a sis-es cuccokat jelöltem be...

Te válaszd a /dev/agpgart (AGP Support)és a Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) utáni részből a te vga-dnak megfelelőt!
Az I2C support – keveset tudok róla, de a tv karikhoz tuti kell
Dallas's 1-wire bus a következő - én nem használom, azaz ki van nálam kapcsolva.
Misc devicesa a következő - én nem használom, azaz ki van nálam kapcsolva.
Multimedia devices - na ez alatt vannak a tv tunerek, radió tunerek, digitalizáló kártyák, amihez az I2C support kellett. Én mindent itt beforgatom ami az én karimhoz kell. ( bttv )
Graphics support - kikapcsolt nálam
Sound a következő, ami fontosabb...nos elég egyértelmű, ha akarsz hangot, be kell kapcsolni, majd az almenü(k)ben beállítani a kártyád. Lépj bele, majd lépj a Advanced Linux Sound Architecture-ba aztán válaszd a neked megfelelőt ( nekem pci-os, tehát PCI devices ) ez így néz ki:

Illetve beléphetsz az Open Sound System-be is és beállíthatod ott is. Nekem mindkét helyen ki van választva a megfelelő... kered meg, neked melyik kell!
USB support - ha csak nincs extra dolgod, ami usb-és ( mint nálam a hálózatoknál beállított irda, mert az usb-és és itt meg kell azt is adnom ), akkor hagyhatod, ahogy van. Az usb nyomtató és storage defaultból bent van. Azért nézd át, sok extra dolog van benne ( hogy párat említsek: bluetooth, x-box gamepad, stb. )
MMC/SD Card support a következő, nekem ilyen nincs, ezért be sincs kapcsolva... Ha kell, akkor tudod... ---> help
InfiniBand support - erről lövésem sincs, új dolog, nálam kikapcsolt...
Ezzel ennek a menünek a végére értünk, lépjünk egyet vissza...
File systems - ez megint fontos...ha belépünk ezt látjuk:

Itt láthatjuk a fájlrendszereket az elején. Ezt állítsuk be, ahogy nekünk kell! Fontos, hogy azt a fájlrendszert, amit a linuxunk használ, NE tegyük modulba, mert nem fog elindulni a rendszerünk! Én egyiket sem szoktam modulba rakni. Az ext2 és ext3 legyen bekapcsolva, ha reiser-t használsz ( suse-nél pl.: ez a default fájlrendszer ), akkor kapcsold be azt is! A JFS és XFS nem igazán gyakori, de ha kell, azt is bekapcsolhatod. Minixet a linuxos floppy-k használnak, én még soha nem használtam ( emellett a fat16-os floppyt is kiválóan kezeli a linux - már ha használ valaki még ilyen megbízhatatlan és elavult adathordozót )
A CD-ROM/DVD Filesystems-ről nincs mit beszélni, jó ahogy van, ellenben a DOS/FAT/NT Filesystems-re szükséged lehet, ha van wined. Itt már támogatott az NTFS írása is...itt bekapcsolhatod, ha kell...
Pseudo filesystems - nos uhu-soknak itt kell figyelni ( legalábbis uhu-1.1-ig így volt ) Az általam eddig használt rendszerekhez - KIVÉTEL AZ UHU - ez a beállítás kelett:

Viszont UHU alá így kell:

A különbség a /dev file system support-ban van és ennek az automountjában. Uhu alatt ha ez a kettő nincs kijelölve kernel panic-ot kapsz bootkor!!!Fontos, hogy ezt sem rakhatod modulba! Ellenben más disztrik alatt, ha be van kapcsolva, akkor azért sikít a rendszer!!! Tehát erre figyelj oda!
Miscellaneous filesystems - nálam ki van kapcsolva, ha kell vmi belőle kapcsold be, elég egyértelmű mi ez
Network File Systems - mint fent, ha kell NFS vagy Samba, akkor lődd be, nálam ki van kapcsolva.
Partition Types - soha nem használtam, kikapcsolt nálam Native Language Support - ez is egyértelmű, állítsd Codepage 852 (Central/Eastern Europe)-ra és NLS ISO 8859-2 (Latin 2; Slavic/Central European Languages)-ra, de akár mindet kijelölheted... Én a fenti kettőt kapcsolom be.
Ezzel ez az almenü is kész, lépjünk eggyel feljebb!
Most már rendben is vagyunk! A következőket ( Profiling support; Kernel hacking; Security options; Cryptographic options; Library routines ) hagyhatod gyári beállításokon. Mentsd el egy fájlba a configodat ( hátha még kell ) - Save Configuration to an Alternate File, majd lépj ki! A kérdésre pedig ( Do you wish to save your new kernel configuration? ) válaszolj igennel.

Most már nincs más dolgod, mint kiadni a következő parancsot: root@pomm:/usr/src/linux-2.6.11#make bzImage
Ha monolitikus kernelt csináltál, akkor ha ez lefutott, másold a kernelt ahonnan indítani szeretnéd és kész vagy! Ha modulost csináltál, akkor folytasd a make bzImage lefutása után így: root@pomm:/usr/src/linux-2.6.11#make modules Ha ez is kész: root@pomm:/usr/src/linux-2.6.11#make modules_install Ha megvan, akkor másolod a bzImage-t, ahonnan indítani szeretnéd és kész vagy!*
*Megjegyzés: Nem feltétlen kell a bzImage-t másolnod, megadhatod a grub-ban vagy a Lilo-ban a mostani helyének elérési útját is. egy példa grubra: title kernel-2.6.11 kernel (hd0,1)/usr/src/linux-2.6.11/arch/i386/boot/bzImage root=/dev/hda2
Amiért ezt nem javaslom az az, hogy én is egyszer így csináltam, aztán vmiért újra forgattam a kernelt és simán felülírtam a régit aminek nem örültem! Ez igaz arra is ha a bzImage-t másolod a /boot alá ( ahol az eredeti is van )! Nem biztos, hogy jó ha, felülírod az eredetit!!! Adj neki más nevet ( én a kernel verziószámot adom pl. meg ) A bzImage-t másolom 2611 névvel és kész. Ha elszabtunk vmit az eredeti még mindíg indítható és javíthatjuk a hibánkat!
Ha ez is kész van már csak a grubunkat kell szerkeszteni. Ehhez editáljuk a /boot/grub/menu.lst fájl-t és hozzunk létre új bejegyzést, az új kernelünknek. Példa: title 2.6-os kernelem kernel (hd0,1)/boot/2611 root=/dev/hda2
Értelemszerűen változtad a merevlemez nevét és partició számát a neked kellőre! Ha nem érted mi is az, akkor el se kezd fordítani a kernelt!!!
Nos, tudom a leírásom nem tökéletes és biztos vannak benne hibák. Teljesnek sem nevezném, mert sok dolgot nem használok, ezekről nekem sincs infim és nem HELP-et fordítottam ( mivel nem is beszélek angolul ), hanem leírtam a tapasztalataim. Én ezt nem tanultam, amit leírtam azt maga bogarásztam ki vagy saját káromon tanultam meg.
A leírást mindenki saját felelőségére használja, semmiféle garanciát nem vállalok a következményekért!!!
Ezen leírást pomm követte el az Úr 2005. évében Március 3.-án a Linux-klub számára. Okulásként bárhol megjelenhet, kérésem csak annyi, hogy tüntessétek fel a nevem...
Bármilyen kérdéssel, észrevétellel nyugodtan forduljatok hozzám vagy a linux klubhoz, akár e-mail-ben, akár a fórumunkon!
üdv: pomm
|