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.

comments

34 responses to “Quantal: Aktueller Kernel auf non-PAE-CPU”

  1. volker on November 12th, 2012 16:59

    kernel update /perspektiven:

    zunächst nochmals zu 12.04:
    geht Folgendes?

    - aktuellen 3.5 PAE Kernel (noch unter 12.04) runterladen,

    - PAE- Block, w.o. beschrieben, auskommentieren,

    - den so erhaltenen 3.5 non-PAE Kernel installieren,

    Upgrade von 12.04 -> 12.10 unter dem 3.5 non-PAE – Kernel machen.

    Wenn das so gehen würde, könnte man bei 12.10 -> 13.04 vermutlich entsprechend vorgehen.

  2. volker on January 11th, 2013 17:00

    12.10 (13.04) mit kernel 3.8 auf non-pae cpu:

    bei mir läuft jetzt 12.10 unter kernel 3.8 auf Pentium-M. Mit Deiner Anleitung v. 1.11. geht alles glatt, soweit Auskommentieren des PAE-Blocks und Kernel (3.8) Installation betroffen sind (unter kernel 3.5 vorgenommen).

    Dann gibts doch noch Probleme (die gabs aber auch schon bei Installation von 3.5!): Nach der Installation lt Rezept habe ich noch zusätzliche Pakete installiert:„linux-extra-…” und die Headers zu 3.8. Der 3.8 Kernel erscheint aber beim Boot nicht im Grub-Menu, obwohl er in Synaptic und bei update-grub angezeigt wird; jedoch können die früher installierten Kernel booten → nach Einsatz der Boot Repair .iso erscheint das Grub-Menu mit dem Eintrag des neu – installierten 3.8 Kernels; jedoch kann nicht gebootet werden → nochmals Anwendung der Boot Repair .iso, dieses Mal mit Advanced Options → ATA Support löst das Problem endlich! → mit 3.8 kann gebootet werden.

    Jetzt will ich die Repos auf raring umstellen und dann über die Software-Aktualisierung manuell upgraden. Oder gibts einen einfachen saubereren Weg?

  3. volker on January 11th, 2013 18:17

    raring mit kernel 3.8 auf pentium-M:

    raring/developer branch ist jetzt auf meinem Pentium-M installiert, wie cat /etc/*-release zeigt. Und läuft bisher stabil unter 3.8.

    Ich habe die Umstellung auf raring dann doch automatisch, im Anschluss an apt pinning (siehe 1.11.) und Umstellung der Repos auf raring, gemacht.

    Wieder konnte ich aber erst rebooten, nachdem ich den Grub repariert hatte; dies muss mit der HD zu tun haben, da ich wieder die ATA-Option brauchte.

  4. axt on January 12th, 2013 01:06

    Kernel 3.7 final verwenden, OK, gestern in Raring erschienenen Kernel 3.8rc3 testen, schön und gut – aber was willst Du zum gegenwärtigen Zeitpunkt mit Raring insgesamt?

    Egal, welche Pakete ich abfrage, ich habe das Gefühl, es ist in der Hälfte der Zeit bis 13.04 noch so gut wie gar nichts passiert (anders als vor Quantal). Jedenfalls nichts, was Raring jetzt schon interessant erscheinen lassen könnte. Im Gegenteil sind in Raring sogar teils Pakete älter (!) als in aktualisiertem Quantal.

    Und als Produktivsystem…das ist immer noch alpha.

  5. volker on January 12th, 2013 15:27

    raring + kernel 3.8 auf Pentium-M:

    Bin in allen Punkten derselben Meinung. Sogar konservativer und verwende meist die LTS Versionen. Aber was soll ich beim Pentium-M machen? Es gibt keine passende LTS. Und viel Unterstützung zu >12.04 auf non-PAE gibts auch nicht. Also muss ich selbst was tun, dachte ich. Kann schon sein, dass es viel zu früh ist.

    Den 3.8-Kernel habe ich zunächst in einer VM getestet und den Upgrade auf raring auch erst bei der VM gemacht. Weil alles so stabil lief, habe ich gleich auf dem Pentium-M umgestellt.

    Der 3.8-generic-Kernel ist schon in den Daily Builds.

  6. axt on January 14th, 2013 16:32

    Kernel 3.8.0-0 in den Repos seit 2013-01-11 innerhalb 17 h gleich 2x als .2 und .3. ;)

    Es gibt noch eine brauchbare LTS für non-PAE, nämlich Xubuntu 12.04.1 und ab 2013-01-31 .2 (von der aktuellen Pointrelease-Praxis ausgehend). Support-Zeitraum 3 Jahre (statt 5 Jahre). Also wer nun gar nicht mit dem hier Geschriebenem klar kommen sollte, könnte diese bis 2015-04 verwenden – mit allen Nachteilen, die eine ständig alternde LTS eben so mit sich bringt. Nicht mein Ding.

  7. volker on January 15th, 2013 18:55

    Bodhi als LTS – Ersatz:
    eventuell gute Lösung, solange dort ein non-PAE Kernel angeboten wird und die Pakete auf dem neuesten Stand gehalten werden können.Um welchen non-PAE – Kernel es sich dabei handelt, spielt für mich dann kaum eine Rolle.

    Spiele deswegen mit Bodhi 2.2 als VM in Virtualbox auf non-PAE CPU herum; Host ist Ubuntu 12.04…

  8. Bernd Kreuss on February 7th, 2013 21:32

    Ich schreibe diese Zeilen gerade auf meinem ThinkPad T40, Ubuntu Precise mit offiziellem Quantal-pae-Kernel, soeben installiert :-)

    Achtung, Hack:

    (Anm.: Code entfernt)

    Führ das obige Script aus als root (für reibungslosen Update-Verlauf bei zukünftigen Updates am besten gleich in die rc.local mit reinpacken damits in Zukunft nicht vergessen wird)

    Danach sieht das bei mir so aus:

    (Anm.: Ausgabe entfernt)

    dann steht den Kernel-Updates nichts mehr im Wege, ich hab gleich mal per apt-get den Quantal-Kernel installiert (der ist im Precise repository erreichbar), keine Fehlermeldungen bezüglich fehlendem pae, keine broken packages, Neustart, bootet ohne Fehler und siehe da:

    (Anm.: Ausgabe entfernt)

    :-)

  9. Bernd Kreuss on February 7th, 2013 21:38

    hier nochmal ohne zerhauene Formatierung:
    http://paste.ubuntu.com/1622104/

  10. axt on February 7th, 2013 22:10

    Nun, WordPress ist nicht Ikhaya – leider – was die Formatierungsmöglichkeiten angeht. Wesentlicher Grund, weshalb ich mehr auf uu-de schreibe als im Blog.

    Ich habe Code und Ausgaben entfernt, da der pastebin-Link genutzt werden kann. Im Übrigen bin ich nicht erfreut über irgendwelche (c)-Angaben (auch, wenn es die GPL ist) für 4 einfache Shell-Befehlszeilen.

    Zum Script selbst: Ich würde nicht direkt auf root herumschreiben, sprich nicht auf oberster Ebene, sondern fakecpuinfo beispielsweise nach /tmp.

  11. volker on February 9th, 2013 15:03

    fake pae flag:

    geht das also einfach so (mein 1. shell script…)?

    -kopier den Text aus dem pastebin – Link in z.B die Datei fakecpuinfo.sh,

    -mach das Skript ausführbar mit
    chmod u+x ./fakecpuinfo.sh.

    -führ das Skript mit ./fakecpuinfo.sh aus,jedes Mal, wenn ein Kernel – Update ansteht (bei mir 3.8.0-x für mein Lubuntu auf Pentium-M),

    -anschließend den PAE – Kernel aus Synaptic installieren.

  12. Bernd Kreuss on February 9th, 2013 15:39

    Naja, es war ja nur als eine Inspiration gedacht wie man das Problem umgehen kann ohne die Kernelpakete jedesmal auspacken und patchen zu müssen. Stoß Dich bitte nicht an dem (c), natürlich will ich da nicht ernsthaft ein Copyright durchsetzen, von mir aus kanns jeder verwenden, abwandeln, Teile davon in eigene Scripte einbauen und von mir aus auch das (c) weglassen.

    Ich fands halt nur überaus erstaunlich daß obwohl die ganze Problematik jetzt schon monatelang viele tausend Leute quält es tatsächlich mal zur Abwechslung so war daß ausgerechnet ich erste war der diese pragmatische Idee hatte. In meiner überschwenglichen 5-minütigen Freude über diesen seltenen Umtand ist mir dann halt das (c) aus der Hand gerutscht um diesen Umtand zu feiern.

    Hiermit erkläre ich es nachträglich zu public-domain, möge die Idee jedem behilflich sein eigene bessere und ausefeiltere scripte zu erstellen.

    Vielleicht baut jemand sogar mal ein simples .deb-Paket mit POSTINST und PRERM das bei Installation schon mountet (und ebenso bei jedem boot) und bei Deinstallation sofort umountet und vielleicht auch vorher prüft ob das flag überhaupt fehlt (um nicht versehentlich 2 mal zu mounten) und vielleicht auch mit sed das Flag genau bei den anderen flags einfügt und nicht am Ende anhängt und möglicherweise auch vorher prüft ob auch wirklich “36 bits physical” drinsteht damit das überhaupt funktionieren kann und ansonsten eine deutliche Warnung ausgibt (aber keinen Fehler), und so weiter und so fort.

  13. axt on February 9th, 2013 15:39

    Volker, ändere “/fakecpuinfo” jeweils in “/tmp/fakecpuinfo/”!

    Willst Du es vor einem Kernel-Update manuell ausführen, dann mit root-Rechten.

  14. axt on February 9th, 2013 15:46

    Ich habe die Befehlszeilen einzeln ausgeführt und 3.5.0-23 proposed über apt-get sowie 3.8.0-5 über dpkg installiert. Funktioniert.

    Ich trau’ dem Frieden aber nicht und hab’ die Images trotzdessen danach gepatcht und neu installiert. ;)

    Btw., Bernd, das mit dem Freuen ist mir schon klar gewesen, grin.

  15. volker on February 9th, 2013 17:51

    fake pae flag:

    @axt:
    danke, melde mich,nachdem ich es beim Update auf 3.8.0-6 ausprobiert habe (3.8.0-5 habe ich noch gepatcht in lubuntu 13.04 auf pentium-M installiert).

  16. Bernd Kreuss on February 9th, 2013 17:58

    Ich habs mal verfeinert und ein bisschen erklärenden Text hinzugefügt. Es gibt jetzt auch auf der Konsole aus was es getan hat und wo (so muss man nicht 5 jahre später nachdem man vergessen hat was man irgendwann mal alles in irgendwelche Startscripte gepackt hat grübeln wo denn der komische mount nochmal herkommt)

    http://paste.ubuntu.com/1629628/

  17. volker on February 12th, 2013 10:35

    fake pae flag / test auf dell d505 (pentium-m) unter lubuntu 13.04:
    anlass: update 3.8.0-5 auf -6.

    verfeinerte version des shell skripts verwendet -> pae flag erfolgreich zugefügt.

    Kernel – Update, inkl. Headers, anschliessend über Synaptic gemacht.

    Zunächst wird neuer Kernel beim Re – booten im Grub noch nicht angezeigt (problem tritt aber bereits beim Patchen der PAE – kernels lt.methode v. 11.11. auf) -> BootRepairDisc, mit Advanced Options eingesetzt: “ATA support” aktiviert

    anschliessend wird neuer Kernel im Grub angezeigt.

    Nochmals danke!

  18. Bernd Kreuss on February 12th, 2013 14:42

    Hab jetzt mal ein ppa gemacht:
    https://launchpad.net/~prof7bit/+archive/fake-pae

    einfach das Paket fake-pae von dort installieren und ab dann passiert das bei jedem boot automatisch. Es installiert und startet einen upstart-job mit namen “fake-pae”. Siehe auch dieser Thread im Ubuntu-Forum: http://ubuntuforums.org/showthread.php?p=12498964

  19. volker on February 16th, 2013 21:21

    ppa für fake-flag:

    unter lubuntu 13.04 klappt das Update beim folgenden Vorgehen zur Installation von fake-pae.deb nicht:

    sudo apt-add-repository ppa:prof7bit/fake-pae
    sudo apt-get update
    sudo apt-get install fake-pae

  20. axt on February 16th, 2013 22:59

    Läuft fake-pae denn?

    $ top | grep fake-pae

  21. Bernd Kreuss on February 17th, 2013 15:33

    Es muss nicht laufen, es ist kein Prozess. Es hat nur ein start script das den mount einrichtet (und sich dann beendet) und ein stop-script das ihn wieder entfernt.

    Wenn es funktioniert hat sollte in /proc/cpuinfo das “pae” flag ganz als erstes bei den flags stehen und ausserdem sollte mit cat /etc/mtab der mount ersichtlich sein.

    Ich hab leider nocht nicht mit 13.04 getestet

  22. Bernd Kreuss on February 17th, 2013 15:37

    oh, warte…

    apt-get install (unter 13.04) kann (noch) nicht gehen weil ich bis jetzt nur packages für precise und quantal gebaut habe. apt-get wird kein .deb für 13.04 in dem ppa finden weil noch keins drin ist für 13.04

    Ich werd das mal korrigieren, kann aber ne weile dauern bis das durchgelaufen ist auf launchpad.

  23. axt on February 17th, 2013 15:53

    > weil ich bis jetzt nur packages für precise und quantal gebaut habe

    Man muß ja nicht das PPA einbinden, sondern kann per dpkg installieren (was ich, wenn, ohnehin nur so machen würde).

    Auch habe ich Volker so verstanden gehabt, daß das Update des Kernel-Images nicht funktioniert, nicht des Pakets fake-pae.

  24. Bernd Kreuss on February 17th, 2013 16:10

    Ja, manuelle installation des .deb funktiniert immer, ebenso wie manuelles Eintragen des Quantal repositories in die sources.list von Raring. Nichtsdesto trotz hab ich jetzt noch Raring ebenfalls hinzugefügt.

    Ich habs so verstanden daß die 3 zitierten Zeilen direkt einen Fehler hervorgerufen haben und das hätten sie auch bis vor 5 Minuten noch wenn sie auf Raring ausgeführt worden wären.

    @Volker: Wenns immer noch nicht klappt wäre mal interessant zu wissen wie sich der Fehler genau äußert und wenn das package installiert ist was dann in /etc/mtab und in /proc/cpuinfo zu lesen ist und/oder was das kernel update für einen Fehler wirft. Leider kann ich im Moment noch nicht selber mit 13.04 experimentieren.

  25. volker on February 18th, 2013 10:56

    @bernd
    @axt

    keine hektik angesagt: ich war wohl etwas kurz; also:

    manuelle installation des .deb hat unter 13.04 sofort funktioniert,

    cat /proc/cpuinfo zeigt die pae flag ganz vorne,

    top | grep fake-pae brachte nichts zurueck,

    nach installation des fake-pae.deb konnte ich einen kernel update noch nicht testen; sollte wohl gehen, da die pae flag ja gesetzt ist.

    Eigentlich wollte ich nur darauf hinweisen, dass fuer 13.04 noch was gemacht werden sollte, was nun wohl schon erfolgt ist.

    Habe im moment keinen Zugang zur 13.04 Maschine. Bis morgen….

  26. volker on February 19th, 2013 09:38

    fake-pae / test unter 13.04 auf pentium-M / installation über ppa:

    zuerst das bereits manuell installierte .deb entfernt -> pae nicht mehr in~/cpuinfo aufgeführt; dann:

    sudo apt-add-repository ppa:prof7bit/fake-pae
    sudo apt-get update
    sudo apt-get install fake-pae

    läuft einwandfrei durch -> cat /proc/cpuinfo: pae ist wieder gesetzt.

  27. volker on February 21st, 2013 09:54

    fake-pae / test auf pentium-M unter lubuntu 13.04 / kernel update von 3.8.0-6 auf -7:

    start pc unter 13.04 (fake-pae.deb schon vorher installiert über ppa) -> installation der kernel – dateien via synaptic (keine fehler) -> sudo update-grub zeigt neuen kernel 3.8.0-7 an -> restart -> grub zeigt 3.8.0-7 (noch) nicht an -> BootRepairDisc -> ATA – option aktiviert -> grub wird repariert -> restart -> grub zeigt 3.8.0-7 an -> boot anschließend problemlos.

  28. axt on February 23rd, 2013 15:08

    @volker. Daß Du Grub hast reparieren müssen, halte ich in der dev-Version von Raring für ursächlich. Ich würde das also nicht überbewerten.

    Du hast am 2013-02-21 morgens oder davor 3.8.0-7.14 installiert, Spätabend ist 3.8.0-7.15 erschienen – also gleich nochmal. ;)

  29. volker on February 23rd, 2013 15:49

    @axt
    Grub – Reparatur nach Kernel – Update / Pentium-M

    bei Änderungen allein der letzten Ziffer (nach dem Punkt also), z.B. von 7.14 -> 7.15 musste ich Grub nicht reparieren (habe ich jetzt schon mindestens 2mal festgestellt). Bei Änderung von .0-5 ->.0-6 -> .0-7 etc. musste ich Grub jeweils reparieren.

  30. Leu on March 2nd, 2013 22:55

    Hallo,
    was mache ich denn, wenn ich kein Update, sondern eine Neu-Installation machen will? Die wird bei mir mit der gleichen non-pae-Meldung abgebrochen.
    Danke, Leu

  31. axt on March 2nd, 2013 23:42

    Einfach mal im Blog umsehen, beispielsweise [axebase.net] Quantal ohne PAE.

  32. volker on March 22nd, 2013 15:40

    fake-pae / 13.04 auf pentium-M / installation von kernel 3.9rc3 (17.03.):

    13.04 läuft unter 3.9 auf Pentium-M, wie immer nach Grub – Reparatur (mit BootRepairDisc), soweit einwandfrei.

  33. volker on May 11th, 2013 15:37

    @axt @bernd
    fake-pae / upgrade 13.04 -> 13.10 / pentium-M

    obwohl es sicher noch zu früh ist, auf 13.10 umzustellen, doch schon mal die Frage:
    würde “fake-pae” den Upgrade überleben? Könnte ich also den Upgrade so machen, dass ich den 3.9 Kernel in 13.04 installiere (funktioniert sowieso) und dann lediglich noch alle Quellen von “raring” auf “saucy” umstelle?

  34. axt on May 11th, 2013 16:54

    Kernel 3.9 brauchst Du vorher nicht installieren (aber das haben wir ja sowieso, grin), einfach nur fake-pae ausführen und Distupgrade starten:

    1
    
    sudo do-release-upgrade -d

leave a reply




Politiker-Stop