Quantal: Aktueller Kernel auf non-PAE-CPU

Kernel-Updates auf non-PAE-CPUs unter bzw. auf Ubuntu 12.10 schlagen fehl, da Canonical keine non-PAE-Kernels mehr baut und eine entsprechende Abfrage einfuegt. Daraus resultiert das besondere Problem, dass bis auf linux-image-[current version]-generic die anderen Kernel-Pakete installiert werden und somit ein inkonsistenter Zustand entsteht, der fortan sowohl Updates insgesamt als auch das Zurueckspielen der bisherigen Versionen der Kernel-Pakete linux-generic, linux-headers-generic und linux-image-generic verhindert.

Diese 3 Pakete kann man zwar deinstallieren, um sie manuell durch 3.6.0-17 (Version im Image) zu ersetzen und diese zu pinnen, aber nur solange Canonical diese Pakete noch anbietet, was erfahrungsgemaess mit dem naechsten Minor-Kernel-Update vorbei sein duerfte. Zudem wuerde man so auf veralteten und irgendwann auch unsicheren Versionen kleben bleiben.

Durch Entfernen der PAE-Abfrage ist jedoch eine Installation des Kernel-Images moeglich:

1. Download des Paketes

1
apt-get download linux-image-[current version]-generic:i386

z.B.:

1
apt-get download linux-image-3.5.0-18-generic:i386

1.1 Alternativer Download im Verzeichnis “http://archive.ubuntu.com/ubuntu/pool/main/l/linux/”

2. Entpacken

1
2
dpkg -x linux-image-*.deb common
dpkg --control linux-image-*.deb

3. Editieren mit dem Editor der Wahl

1
leafpad DEBIAN/preinst

3.1 Auskommentieren des Abfrageblocks/der Zeilen 93 – 100

#$arch = `uname -i`;
#if ($arch =~ m/86/) {
#    system ("grep -q ' pae ' /proc/cpuinfo");
#    if ($?) {
#            print STDERR "This kernel does not support a non-PAE CPU.\n";
#            exit 1;
#    }
#}

4. Repacken

1
2
cp -a DEBIAN/ common/
dpkg -b common linux-image-[version]-generic_i386-non-pae.deb

z.B.:

1
dpkg -b common linux-image-3.5.0-18-generic_3.5.0-18.29_i386-non-pae.deb

5. Aufraeumen

1
rm -rf common DEBIAN

6. Installation auf dem Pentium-M-Zielrechner

1
sudo dpkg --force-all -i linux-image-*-non-pae.deb

7. Sollten genannte 3 generic-Pakete noch gepinnt sein, setzt man sie nun auf unhold und aktualisiert diese normal ueber apt-get.

8. Um nicht von einem naechsten Update ueberrascht zu werden, sollten diese 3 Pakete danach wieder gepinnt werden. Gibt es wieder ein Update, sind die Schritte entsprechend zu wiederholen.

Ueber diesen einfachen Weg gibt es weder Probleme mit der Paketverwaltung durch Teilaktualisierungen, noch muss ein Kernel selbst kompiliert werden, was auf einem Pentium M ohnehin keine Freude aufkommen lassen wuerde.

Da die Frage gestellt worden ist, ob Ubuntu 13.04 auf non-PAE-Systemen installierbar sein wird…ich kenne auch keine Canonical-Interna, grin, aber vom jetzigen Zeitpunkt aus gesehen waere es vorstellbar. Der momentane Quantal-Kernel 3.7.0-0 – PAE, wohlgemerkt – laeuft wie obig beschrieben jedenfalls auch unter Lubuntu 12.10.