Handbook:MIPS/Blocks/Kernel/hu
Beállítás előkészítése
Az Origin 200/2000, Indigo2 Impact (R10000), Octane/Octane2 és O2 rendszerek esetében 64 bites kernel szükséges a rendszer indításához. Ezekhez a számítógépekhez telepítse a sys-devel/kgcc64 szoftvercsomagot, hogy létrehozzon egy keresztfordítót 64 bites kernelek forráskódjának a fordításához.
Számos támogatott operációs rendszeren a mintaként szolgáló alapértelmezett .config fájlok a kernel forráskódjában találhatók meg. Nem minden rendszerhez érhetők el ilyen beállításfájlok. Azoknál, amelyekhez igen, a lenti táblázatban említett parancsokkal lehet beállítani a rendszert.
Rendszer | Beállítási parancs |
---|---|
Cobalt szerverek | make cobalt_defconfig |
Indy, Indigo2 (R4k), Challenge S | make ip22_defconfig |
Origin 200/2000 | make ip27_defconfig |
Indigo2 Impact (R10k) | make ip28_defconfig |
O2 | make ip32_defconfig |
Az összes Gentoo telepítési képfájl tartalmaz egy kernel beállítási opciót, amely maga a képfájl részeként elérhető a /proc/config.gz helyen. Ez sok esetben használható. Azonban a legjobb, ha a kernelforráskódja szorosan illeszkedik ahhoz a kernelhez, amely jelenleg fut. A kibontáshoz egyszerűen futtassa zcat parancson keresztül, ahogyan az alább látható.
root #
zcat /proc/config.gz > .config
Ez a kernelbeállítás egy netboot képfájlra van beállítva. Ez azt jelenti, hogy elvárja, hogy a root fájlrendszer kép valahol a közelben legyen, akár egy initramfs könyvtárként, akár egy loopback eszközként initrd esetén. Amikor a make menuconfig parancsot hajtja végre, ne feledjen el belépni a General Setup menüpontba, és tiltsa le az initramfs opciókat.
Beállítás testreszabása
Miután megtalálta a beállítást, töltse le a kernel forráskódjának a könyvtárába, és nevezze át .config névre. Ezt követően futtassa a make oldconfig parancsot, hogy mindent naprakésszé tegyen a fenti utasítások szerint, majd testre szabhatja a beállítást a forráskód fordítása előtt.
root #
cd /usr/src/linux
root #
cp /path/to/example-config .config
root #
make oldconfig
Egyszerűen csak nyomja meg az ENTER (vagy Return) billentyűt minden kérdésnél, hogy most elfogadja az alapértelmezett értékeket...
root #
make menuconfig
A Kernel Hacking szekcióban található egy "Are You Using A Cross Compiler?" nevű opció. Ez arra utasítja a kernel Makefile-jait, hogy a gcc és as parancsok elé illessze a "mips-linux-" (vagy mipsel-linux stb.) előtagot a kernel forráskódjának a fordításakor. Ezt az opciót ki kell kapcsolni, még akkor is, ha keresztfordítást végez. Ha keresztfordítóra van szükség, akkor a prefixet a CROSS_COMPILE változóval kell megadni, ahogy azt a következő szakasz mutatja.
Ismert probléma van a JFS és az ALSA között az Octane rendszereken, ahol az ALSA nem működik megfelelően. Tekintettel a JFS kísérleti jellegére a MIPS platformon, ajánlott, hogy egyelőre kerülje a JFS használatát.
Forráskód fordítása és telepítés
Most, hogy a kernel be van állítva, eljött az idő a forráskód fordítására és a bináris képfájl telepítésére. Lépjen ki a beállításból, és indítsa el a forráskód fordításának a folyamatát:
64 bites számítógépeken adja meg a CROSS_COMPILE=mips64-unknown-linux-gnu- (vagy mips64el-..., ha little-endian rendszeren van) változót a 64 bites forráskód fordító használatához.
A forráskód natív fordításhoz:
root #
make vmlinux modules modules_install
Kereszt-fordítás célgép esetén, igazítsa a mips64-unknown-linux-gnu- értéket ennek megfelelően:
root #
make vmlinux modules modules_install CROSS_COMPILE=mips64-unknown-linux-gnu-
Amikor egy másik számítógépen, például egy x86 számítógépen fordítja a forráskódot, akkor használja a következő parancsokat a kernel forráskódjának a fordításához és a kernelmodulok telepítéséhez egy adott könyvtárba, hogy azokat átmásolhassa a cél számítógépre:
root #
make vmlinux modules CROSS_COMPILE=mips64-unknown-linux-gnu-
root #
make modules_install INSTALL_MOD_PATH=/somewhere
Indy, Indigo2 (R4k), Challenge S és O2 számítógépekhez 64 bites kernel forráskódjának a fordításakor a vmlinux helyett használja a vmlinux.32 célt. Ellenkező esetben a számítógép nem fog tudni bootolni. Ez a megoldás azért szükséges, mert a PROM nem érti az ELF64 formátumot.
root #
make vmlinux.32
Lehetőség van párhuzamos forráskód fordítás engedélyezésére a make -jN használatával, ahol N a párhuzamosan indítható feladatok számát jelenti. Ez hasonló a korábbi, /etc/portage/make.conf fájlban található MAKEOPTS változóval kapcsolatos utasításokhoz.
A fenti művelet létrehozza a vmlinux.32 fájlt, amely a végleges kernelképfájl.
Amikor a kernel forráskódjának a fordítása befejeződött, másolja a bináris kernelképfájlt a /boot/ könyvtárba.
Cobalt szervereken a bootloader tömörített kernelképfájlt vár. Ne felejtse el a fájlt gzip -9 paranccsal tömöríteni, miután a /boot/ könyvtárba helyezte.
root #
cp vmlinux /boot/kernel-6.6.21-gentoo
Cobalt szerverek esetén tömörítse a kernelképfájlt:
root #
gzip -9v /boot/kernel-6.6.21-gentoo