Chromium: fehlendes SSE3-Flag

Der Start eines aktuellen Chromiums oder dessen Code nutzender anderer Browser auf AMD Phenom II X6/4/3/2 ist nicht möglich, es kommt zu folgender Ausgabe:

The hardware on this system lacks support for the sse3 instruction set.
The upstream chromium project no longer supports this configuration.
For more information, please read and possibly provide input to their
bug tracking system at http://crbug.com/1123353

CPUs haben Befehlssätze, denen Befehlssatzerweiterungen hinzugefügt worden sind. Die wohl bekannteste dürfte MMX sein (was man eben 1997 unter Multimedia verstanden hat), die damals dem Pentium 1 auch im Produktnamen erkennbar als z.B. Pentium 166 MMX beigegeben worden ist.

Fragt man heute unter Linux mit

$ lscpu

oder gefiltert

$ lscpu | grep Flags

ab, wird eine ziemliche Menge solcher Befehlssatzerweiterungen gelistet. So gibt es bspw. SSE-Flags in Versionen. Genannte Phenoms haben zwar die Erweiterungen SSE1, SSE2, SSE3 und SSE4a (typische Mogelpackung AMDs, es liegt nicht SSE4 zugrunde, sondern es ist SSE3 plus 4 zusätzlicher Befehle), aber das Flag sse3 wird nicht ausgegeben, sondern bei diesen CPUs dessen alternative Bezeichnung pni.

D.h., Software kann SSE3 nutzen, wenn es allerdings deren Vorhandensein über Flag sse3 abfragt, fehlt für diese eben SSE3.

Das Ganze erinnert mich an Pentium M Banias und Dothan FSB100, denen das PAE-Flag fehlt (Ubuntu ab 12.04 ist damals 2 Jahre lang nicht ohne Tricks installierbar gewesen, ich habe hier diesbzgl. mehrere Posts geschrieben gehabt). Eine der Möglichkeiten ist das Hinzufügen des Flags in /proc/cpuinfo gewesen (ich habe es damals anders gelöst, die PAE-Abfrage aus dem jeweiligen Paket umgebogen). Dies können sich Phenom-User auch heute zu Nutze machen.

“/proc/cpuinfo” kann nicht direkt geändert werden. Daher kopieren wir deren Inhalt in eine neue Datei und fügen das Flag “sse3” hinzu (Kleinschreibung). Diese binden wir dann entsprechend ein.

#!/bin/sh
# 2022-09-05

$ sed 's/flags\t*:/& sse3/' /proc/cpuinfo > /tmp/cpuinfo_sse
$ mount -o bind /tmp/cpuinfo_sse /proc/cpuinfo
$ mount -o remount,ro,bind /proc/cpuinfo

exit

Man kann diese 3 Befehlszeilen (entnommen aus fake-pae.conf im Paket fake-pae von Bernd Kreuss und entsprechend angepaßt) einzeln über c&p ausführen (mount jeweils mit root-Rechten), man kann sinnvollerweise das Ganze als z.B. “/usr/local/bin/sse3flag.sh” speichern, mit

$ sudo chmod +x /usr/local/bin/sse3flag.sh

ausführbar machen und mit root-Rechten aufrufen. Letzteres bietet sich im Autostart an.

Dazu erstellt man eine Service Unit “/etc/systemd/system/sse3flag.service” mit folgendem Inhalt:

[Unit]
Description=add the SSE3 flag

[Service]
Type=simple
ExecStart=/usr/local/bin/sse3flag.sh

[Install]
WantedBy=multi-user.target

Mit

$ systemctl enable --now sse3flag.service

wird der Service permanent aktiviert (übersteht also Reboots) und gleich gestartet. Eine erneute lscpu-Abfrage gibt nun auch “sse3” aus. Da ich eine richtige ]:-) CPU habe, habe ich zum Test spaßeshalber “sse6” ;-) gesetzt – funktioniert.

Lubuntu 14.10 Trusty Tahr torrents

Release Day von Ubuntu und dessen offizieller Derivate 14.10 Utopic Unicorn. Im Laufe des Tages, erfahrungsgemäß nach MESZ ab später Mittagszeit, werden sukzessive Ubuntu (mit Unity) und die offiziellen Community-Versionen wie Lubuntu (mit dessen ressourcenschonender Desktop-Umgebung LXDE) auf die Server gelegt.

Lubuntu 14.10 Torrent-Files:

Lubuntu 14.04 Trusty Tahr torrents

Release Day Ubuntu 14.04 Trusty Tahr. Derzeit werden sukzessive Ubuntu (mit Unity) und die offiziellen Community-Versionen auf die Server geladen: die ressourcenschonenden Derivate Lubuntu (mit LXDE) und Xubuntu (mit Xfce), desweiteren Kubuntu (mit KDE) und Ubuntu Gnome (mit Gnome Shell). Über Ubuntu Kylin dürfen sich meine chinesischen Freunde ;-) freuen.

Lubuntu 14.04.1 Torrent-Files:

Nach der sinnfreien Einführung der PAE-Abfrage im Ubuntu-Kernel-Image 3.2 und folglich Ausschließen von durchaus noch weit verbreiteten non-PAE-CPUs (Pentium M Banias und Dothan FSB 400 sowie davon abgeleiteter Celeron M) und damit notwendig gewordener Umgehungen sind mit Ubuntu-Kernel 3.13 durch Setzen der Bootoption forcepae nun endlich Installation, Betrieb und Aktualisierungen wieder relativ problemlos möglich…hat ja auch nur 2 Jahre gedauert.

Update 2014-07-25: Links auf 14.04.1 aktualisiert.
Update 2015-02-21: Links für desktop-Images auf 14.04.2 aktualisiert. alternate-Images .2 wird es nicht geben.

PAE-Abfrage im Kernel-Paket entfernen

Bekanntlich hat Intel Pentium M Banias und Dothan FSB 400 und darauf basierende Celeron M um die Physical Address Extension beschnitten, zumindest fehlt das Flag. Mit Ubuntu 12.04(.0) sind PAE-Kernels Standard, Ubuntu und Kubuntu 12.04 booten nur noch auf PAE-fähigen CPUs. Versucht man es dennoch, darf man nach wenigen Sekunden lesen:

“This kernel does not support a non-PAE CPU.”

Read more “PAE-Abfrage im Kernel-Paket entfernen”

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:

Read more “Quantal: Aktueller Kernel auf non-PAE-CPU”

apt-pinning bestimmter Pakete

Zuweilen ist es notwendig, bestimmte Paketversionen fuer eine bestimmte Zeit zu behalten. Damit diese durch ein Systemupdate via apt-get und natuerlich auch Frontends wie Synaptic nicht mit aktualisiert werden, setzt man sie mittels apt-pinning auf hold. Selbstredend sollte man solcherart gepinnte Pakete nicht vergessen.

Ein auf ein non-PAE-System installiertes Lubuntu 12.10 ist ein aktuelles Beispiel dafuer. Direkt nach der Installation ohne gleichzeitiges Aktualisieren sollten 4 Pakete auf hold gesetzt werden:

1
2
3
4
echo "linux-generic hold" | sudo dpkg --set-selections
echo "linux-headers-generic hold" | sudo dpkg --set-selections
echo "linux-image-generic hold" | sudo dpkg --set-selections
echo "linux-libc-dev hold" | sudo dpkg --set-selections

Nun kann man das (restliche) System normal aktualisieren:

1
2
sudo apt-get update
sudo apt-get dist-upgrade

Gepinnte Pakete bleiben auf ihren bisherigen Versionen. In einer Shell durchgeführt wird dies auch entsprechend angezeigt.

Ist der Grund für das Pinning weggefallen bzw. behoben worden, setzt man entsprechende Pakete auf unhold:

1
2
3
4
echo "linux-generic install" | sudo dpkg --set-selections
echo "linux-headers-generic install" | sudo dpkg --set-selections
echo "linux-image-generic install" | sudo dpkg --set-selections
echo "linux-libc-dev install" | sudo dpkg --set-selections

Danach ist wieder zu aktualisieren:

1
2
sudo apt-get update
sudo apt-get dist-upgrade

Quantal ohne PAE

Seit Ubuntu Precise wird die Installation der 32-bit-Images auf Systemen mit CPUs ohne PAE-Implementierung (Pentium M Banias und die ersten Dothan) verhindert oder zumindest kuenstlich erschwert. Mit dem im Oktober erschienenen Quantal wird auch kein non-PAE-mini.iso mehr bereitgestellt, d.h. die Installation ueber Netz ist nicht mehr moeglich. Lubuntu 12.10 fragt nun ebenfalls PAE ab, sicher als Resultat, da es schlicht seitens Canonicals keine non-PAE-Kernels mehr gibt, Kernel-Updates innerhalb Quantals damit (auf normalem Weg) nicht moeglich sind.

Man koennte zwar, hat man Ubuntu 12.04 auf die Platte getrickst, auch bei dieser LTS bleiben, nur wird man sinnvollerweise kein Unity fahren (Banias-Rechner haben, wenn mehr als nur einen i855G einen mRadeon 9700 verbaut), sondern ressourcenschonend LXDE (o.ae.), womit die Installation keinen LTS-Status mehr hat und noch 1 knappes Jahr Updates verbleibt. Zudem ist LXDE noch ein recht junges DE und sollte daher aktuell gehalten werden (beispielsweise der Filemanager PCmanFM ist stabilisiert worden).

Um Lubuntu (ich sage absichtlich nicht Ubuntu mit Unity) 12.10 auf non-PAE-Systemen zu installieren, verbleiben also “anderthalb” Moeglichkeiten:

Read more “Quantal ohne PAE”

Precise ohne PAE

Folgenden Post habe ich bereits in der ersten Maerzhaelfte begonnen, aber nicht veroeffentlicht gehabt. Da das Problem durch das kommende Quantal verschaerft wird, stelle ich ihn nun aktualisiert online.

Seit Ubuntu 12.04 haben die 32-bit-Images einen PAE-Kernel. Wohl wissend, dass dieser Kernel auch auf CPUs ohne PAE-Implementierung (Pentium M Banias und die ersten Dothan) nachgewiesenermassen lauffaehig ist (natuerlich ohne die PAE-Funktionen), werden mit den Ubuntu- und Kubuntu-Images Booten und damit auch Neuinstallation auf non-PAE-CPUs willentlich verhindert – und das, obwohl heutige Atom-CPUs in ihren Single-Cores nicht schneller sind als Banias und bestenfalls durch Dualcore punkten koennen, so sie haben.

Man kann diese kuenstliche Beschraenkung umgehen, Ubuntu 12.04.1 LTS auf non-PAE-Systemen wie folgt installieren:

Read more “Precise ohne PAE”

Ubuntu 12.04 Precise Pangolin is out now!

Hat man Precise bereits in einer Entwicklerversion installiert, ist man bis letzten Samstag mit hunderten Updates beglueckt worden – taeglich – die sich selbstredend auch in den Daily Builds niedergeschlagen haben. Die Menge in Byte hat man gut sehen koennen, wenn man die Images mit zsync synchronisiert hat. Eine wahre Update-Schwemme.

Schlagartig am Wochenende muss da jemand auf die Bremse getreten haben, es sind nur noch vereinzelt Aktualisierungen eingetrudelt, meist technisch weniger wichtige bzw. Feinarbeiten wie lsb-release (dev ist ‘raus). Die letzten Daily Builds datieren auch auf den 23., was die Wahrscheinlichkeit erhoeht, Precise ist fertig. Ich erinnere mich da an so manch vorige Version, bei der noch in den letzten Tagen eine Menge neues aufgeschlagen ist (ganz zu schweigen von dem gravierenden Bug, durch den noch am Release Day hastig saemtliche Images neu haben gebaut werden muessen).

Wie dem verwendeten Counter unschwer zu entnehmen ist, ich propagiere klassisch-schlichte und ressourcenschonende Desktop-Oberflaechen – in meinem Fall LXDE, das in Lubuntu mittlerweile gut integriert ist. Hardware so gut wie moeglich durch sinnvolle Software nutzen, das Optimale herausholen, nichts sinnlos durch beispielsweise grafische Gimmicks lahmlegen. Waere ich Funkamateur, wuerde ich sicherlich QRP funken. ;-)

Darueber hinaus gibt es einen sehr wichtigen Grund, Lubuntu (oder Xubuntu) zu nutzen bzw. davon oder von spezieller netboot-Version zu installieren: non-PAE. Dazu in einem separaten Artikel.

Folgend die Torrent-Files der Lubuntu-Versionen und der Ubuntu-Versionen sowie den Deeplink zu non-PAE-netboot.

Update 2012-09-28: Links fuer Ubuntu auf 12.04.1 aktualisiert.
Update 2013-02-27: Links fuer Ubuntu auf 12.04.2 aktualisiert.