Update von SuSE 6.0 auf Kernel 2.2

Die Distribution S.u.S.E 6.0 ist einigermaßen aktuell. Dennoch müssen einige Dinge bei der Umstellung auf den neuen Kernel 2.2 umgestellt werden. Ich gehe im Folgenden davon aus, daß SuSE 6.0 installiert, konfiguriert und lauffähig ist.

Neue Pakete

Zunächst benötigt man mal den neuen Kernel. Die Quellen dazu findet man z.B. auf dem FTP-Server der TU-Darmstadt. Entpackt wird er dann so:

cd /usr/src
rm linux
tar xfz <PFADANGABE>/linux-2.2.3.tar.gz
mv linux linux-2.2.3
ln -s linux-2.2.3 linux

Man sollte dann unbedingt zuerst die Datei Documentation/Changes lesen, da dort die wichtigen Änderungen aufgeführt sind.

Jetzt steht dem konfigurieren und übersetzen nichts mehr im Weg:

cd /usr/src/linux-2.2.3
make menuconfig
make dep
make zImage
make modules
make modules_install

Wenn man LILO zum Booten benutzt, muß man entweder das Makefile oder /etc/lilo.conf, da SuSE in der 6.0 den Installationspfad des Kernels geändert hat: Im Makefile ändert man entweder den Eintrag INSTALL_PATH=/boot oder in /etc/lilo.conf die image = /boot/vmlinuz Einträge ab, so daß diese konform sind. Danach kann man dann LILO neu installieren:

make zlilo

Neue Module

Gegenüber der SuSE 6.0 sind folgende Module upzudaten:

Installiert werden sie dann so:

cd /usr/src/packages
tar xfz <PFADANGABE>/modutils-2.1.121.tar.gz
cd modutils-2.1.121
./configure
make
make install
cd ..
tar xfz <PFADANGABE>/binutils-2.9.1.0.22b.tar.gz
cd binutils-2.9.1.0.22b
./configure
make
make install
cd ..
tar xfz <PFADANGABE>/procps-1.2.11.tar.gz
cd procps-1.2.11
make
make install
cd ..
tar xfz <PFADANGABE>/net-tools-1.49.tar.gz
cd net-tools-1.49
make config
make
make install
cd ..

Konfigurationsdateien

Da sich einige Kernel-Interna geändert haben, müssen einige Einstellungen noch angepasst werden:

Kernel Daemon

Der kerneld wird nicht mehr benötigt, da dieser durch die Kernel-Erweiterung kmod ersetzt wurde. Dieser entfernt aber nicht mehr von alleine die nicht mehr benötigte Module aus dem Kernel, so daß dieses von Hand nachgeholt werden muß. Dazu fügt man in der /etc/crontab folgenden Eintrag hinzu:

-0-59/5 * * * * root /sbin/rmmod -a

Sound

Die Sound Module sind nun modular aufgebaut, d.h. es gibt mehrere, kleinere Module, die getrennt voneinander geändert und übersetzt werden können. Dafür muß man allerdings jetzt genauer angeben, welches Modul für welche Funktion benutzt werden soll. Als Beispiel zeige ich die Änderungen an der Datei /etc/conf.modules für eine Sound Blaster AWE32:

alias char-major-14 sound
alias sound sb
alias midi awe_wave
alias synth0 awe_wave
post-install awe_wave /usr/local/bin/sfxload /usr/local/lib/sfbank/synthgs.sbk
options sb io=0x220 irq=5 dma=1 dma16=5 mpu_io=0x330

Durch den Eintrag post-install werden die General Synth Instrumente in das RAM der Soundkarte geladen und stehen dann für midi und synth zur Verfügung. Für die Aufnahme und Wiedergabe wird das Modul sb benutzt. Die Portnummern, Interrupts und DMA-Kanäle sollten mit den Einstellungen der Soundkarte übereinstimmen und bei Plug-and-Play Karten mit den Einstellungen von isapnp in /etc/isapnp.conf übereinstimmen.

Parallele Schnittstelle

Um den Anschluß von Druckern, Scannern und ZIP-Laufwerken zu ermöglichen, wurde dieser Teil des Kernels überarbeitet. Im Kernel müssen deswegen General Setup -> Parallel port support, General Setup -> PC-style hardware und Character Devices -> Parallel printer support aktiviert werden. In /etc/conf.modules sind dann folgende Einträge nötig:

alias parport_lowlevel parport_pc
options parport_pc io=0x378 irq=7
options lp parport=0

Andere Portadressen oder Interrupts sind entsprechend anzupassen. Durch das neue Konzept ändert sich allerdings auch die Nummerierung der Schnittstellen: Wurde der Drucker im alten Kernel als /dev/lp1 angesprochen, so heißt er jetzt wahrscheinlich /dev/lp0. Entsprechendes gilt für weitere Schnittstellen. Am Einfachsten ändert man diese Einstellungen in /etc/printcap durch ersetzen von lp=/dev/lp1 durch lp=/dev/lp0.

Power Management

Power-Management ist deaktiviert, falls man einen SMP Kernel für den Mehrprozessorbetrieb übersetzt. Wer dennoch seinen Rechner automatisch nach dem Herunterfahren ausschalten will, sollte folgende Änderungen vornehmen:

Im Kernel sind die Optionen General Setup -> Advanced Power Management BIOS support und dort General Setup -> Power off on shutdown zu aktivieren. In /etc/lilo.conf fügt man den Kernel-Parameter append="apm=smp-power-off" hinzu und ändert in /sbin/init.d/halt im Abschnitt halt den Eintrag command="halt" in command="poweroff".

Console

Die glibc-2.0 unterstützt zwar noch nicht PTY98 Support, aber wenn man den Eintrag Character devices -> Unix98 PTY support im Kernel aktiviert hat, muß man noch in der /etc/fstab den Eintrag none /dev/pts devpts gid=5,mode=620 0 0 hinzufügen.

ISDN

Der ISDN-Teil des Kernels ist leider total veraltet. Man sollte sich deshalb die Dateien isdn.tar.gz und isdn4k-utils.tar.gz besorgen und diese installieren:

cd /usr/src/packages
tar xfz <PFADANGABE>/isdn.tar.gz
cd isdn
./std2kern -d -k /usr/src/linux-2.2.3
cd ..
tar xfz <PFADANGABE>/isdn.tar.gz
cd isdn4k-utils
make
cd ..

Falls eine AVM B1 nicht mehr richtig mit isdnlog zusammen funktioniert, sollte man in drivers/isdn/avmb1/capidrv.c nach der Zeile if (avmversion[0] > 3 || (avmversion[0] == 3 && avmversion[1] > 6)) { suchen und die letzte 6 durch eine 5 ersetzen. Im Kernel Logfile sollte dann statt kernel: capidrv-1: D3 trace enabled wieder kernel: capidrv-1: D2 trace enabled stehen.