Kernel-Update unter GentooLinux
Angeregt wurde ich zu diesem Artikel durch die Tatsache, daß portage mittlerweile 4 Kernelsourcetrees auf meinem System installiert hat und ich irgendwie der Meinung bin, einer reicht völlig aus.
Irgendwann macht man mal einen emerge sync und stellt hinterher fest es gibt eine neue Version der gentoo-sources (der Kernelquellen unter Gentoo). Portage installiert nun fleißig immer die neue Version neben die alte ohne diese zu löschen.
Wie aber geht man vor, wenn man jeweils nur eine Version auf seinem System haben möchte.
In diesem Artikel wird immer vom Paket gentoo-sources gesprochen mit den anderen Kernelpaketen funktioniert das natürlich genauso.
Der besseren Verständlichkeit wegen wird hier der update des Kernelpaketes gentoo-sources-2.4.19-r7 auf gentoo-sources-2.4.22-r11 beschrieben. Für andere Versionen funktioniert es analog.
Installation des neuen Kernels
Nun den neuen Kernel zu installieren ist relativ einfach entweder man führt ein emerge -u world aus oder installiert das package direkt mit emerge -u gentoo-sources.
Zunächst wird der neue Kernel aus das linux Verzeichnis verlinkt.
rm linux
ln -sf linux-2.4.19-gentoo-r11 linux
Danach kopiere ich mir meist meine .config Datei in der die Kernelkonfiguration liegt in das neue Kernelverzeichnis..
cp /usr/src/linux-2.4.19-gentoo-r11/.config /usr/src/linux
Nun folgt die übliche Kernelkompilation:
make xconfig (zum Vornehmen von neuen Einstellungen)
bzw. make oldconfig (zum einlesen der alten Konfiguration)
make dep
make clean
make bzImage
make modules
make modules_install
mv /boot/bzImage /boot/bzImage.old
cp arch/i386/boot/bzImage /boot
Jetzt sollte man auf jeden Fall einen reboot durchführen, um zu prüfen, ob alles geklappt hat. Falls nicht kann man mit einer bootdisk oder der CD neu starten und den alten Kernel wieder aktivieren, indem man ihn wieder umbenennt. Zumindest funktioniert, das so wenn man grub als bootloader konfiguriert hat.
Neuinstallation anderer Systemkomponenten
Damit die Kernelmodule für die Fritz-Card? DSL wieder richtig gefunden werden, muß fcdsl neu installiert werden. Dies erreicht man mit einem einfachen
emerge fcdsl
Spezielle Grafikkartentreiber müssen eventuell auch neu installiert werden. Auch hier gilt einfach nochmal emergen. Beispielsweise bei den ATI-Drivers mit emerge ati-drivers. Man sollte nicht vergessen die entsprechenden Umgebungsvariablen zu setzen. Im Fall der ATI-Drivers und einer ATI Radeon Karte geht das mit
VIDEO_CARDS="radeon" emerge xfree-drm
emerge ati-drivers
Bei eine NVIDIA Karte mit
emerge nvidia-kernel
Ähnlich verhält es sich beim Alsa Sounddriver hier muß ebenfalls die entsprechende Variable gesetzt sein.
env ALSA_CARDS='emu10k1' emerge alsa-driver
Hat man die SVGALIB installiert empfiehlt es sich mit
emerge svgalib
die Bibliothek neu zu übersetzen, da sonst das Kernelmodul fehlt.
Verwendet man lirc um mit einer Fernbedienung oder ähnlichem zu arbeiten, so muss auch dieses Paket neu installiert werden.
emerge lirc
Entfernen des alten Kernels
Den alten Kernel entfernt man mit
emerge -C =gentoo-sources-2.4.19-r11
Danach steht das Verzeichnis aber meist noch unter /usr/src/linux-2.4.19-gentoo-r11 und enthält jede Menge Dateien, die beim build erzeugt wurden. Das Verzeichnis kann man löschen. Die alten Module liegen unter /lib/modules/2.4.19-gentoo-r11. Dieses Verzeichnis kann auch gelöscht werden.


















