{"id":6587,"date":"2022-09-05T12:00:00","date_gmt":"2022-09-05T10:00:00","guid":{"rendered":"https:\/\/axebase.net\/blog\/?p=6587"},"modified":"2022-09-09T20:27:52","modified_gmt":"2022-09-09T18:27:52","slug":"chromium-fehlendes-sse3-flag","status":"publish","type":"post","link":"https:\/\/axebase.net\/blog\/2022\/09\/05\/chromium-fehlendes-sse3-flag\/","title":{"rendered":"Chromium: fehlendes SSE3-Flag"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Der Start eines aktuellen Chromiums oder dessen Code nutzender anderer Browser auf AMD Phenom II X6\/4\/3\/2 ist nicht m\u00f6glich, es kommt zu folgender Ausgabe:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">The hardware on this system lacks support for the sse3 instruction set.\nThe upstream chromium project no longer supports this configuration.\nFor more information, please read and possibly provide input to their\nbug tracking system at http:\/\/crbug.com\/1123353<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">CPUs haben Befehlss\u00e4tze, denen Befehlssatzerweiterungen hinzugef\u00fcgt worden sind. Die wohl bekannteste d\u00fcrfte <a rel=\"noreferrer noopener\" href=\"https:\/\/en.wikipedia.org\/wiki\/MMX_(instruction_set)\" target=\"_blank\">MMX<\/a> 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.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Fragt man heute unter Linux mit<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">$ lscpu<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">oder gefiltert<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">$ lscpu | grep Flags<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">ab, wird eine ziemliche Menge solcher Befehlssatzerweiterungen gelistet. So gibt es bspw. <a rel=\"noreferrer noopener\" href=\"https:\/\/de.wikipedia.org\/wiki\/Streaming_SIMD_Extensions\" target=\"_blank\">SSE<\/a>-Flags in Versionen. Genannte Phenoms haben zwar die Erweiterungen SSE1, SSE2, SSE3 und SSE4a (typische Mogelpackung AMDs, es liegt <em>nicht<\/em> SSE4 zugrunde, sondern es ist SSE3 plus 4 zus\u00e4tzlicher Befehle), aber das Flag sse3 wird nicht ausgegeben, sondern bei diesen CPUs dessen alternative Bezeichnung pni.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">D.h., Software kann SSE3 nutzen, wenn es allerdings deren Vorhandensein \u00fcber Flag sse3 abfragt, fehlt f\u00fcr diese eben SSE3.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das Ganze erinnert mich an Pentium M Banias und Dothan FSB100, denen das <a rel=\"noreferrer noopener\" href=\"https:\/\/de.wikipedia.org\/wiki\/Physical_Address_Extension\" target=\"_blank\">PAE<\/a>-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\u00f6glichkeiten ist das Hinzuf\u00fcgen des Flags in \/proc\/cpuinfo gewesen (ich habe es damals anders gel\u00f6st, die PAE-Abfrage aus dem jeweiligen Paket umgebogen). Dies k\u00f6nnen sich Phenom-User auch heute zu Nutze machen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8220;\/proc\/cpuinfo&#8221; kann nicht direkt ge\u00e4ndert werden. Daher kopieren wir deren Inhalt in eine neue Datei und f\u00fcgen das Flag &#8220;sse3&#8221; hinzu (Kleinschreibung). Diese binden wir dann entsprechend ein.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">#!\/bin\/sh\n# 2022-09-05\n\n$ sed 's\/flags\\t*:\/&amp; sse3\/' \/proc\/cpuinfo &gt; \/tmp\/cpuinfo_sse\n$ mount -o bind \/tmp\/cpuinfo_sse \/proc\/cpuinfo\n$ mount -o remount,ro,bind \/proc\/cpuinfo\n\nexit<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Man kann diese 3 Befehlszeilen (entnommen aus fake-pae.conf im Paket <a rel=\"noreferrer noopener\" href=\"https:\/\/launchpad.net\/~prof7bit\/+archive\/ubuntu\/fake-pae\" target=\"_blank\">fake-pae<\/a> von Bernd Kreuss und entsprechend angepa\u00dft) einzeln \u00fcber c&amp;p ausf\u00fchren (mount jeweils mit root-Rechten), man kann sinnvollerweise das Ganze als z.B. &#8220;\/usr\/local\/bin\/sse3flag.sh&#8221; speichern, mit<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">$ sudo chmod +x \/usr\/local\/bin\/sse3flag.sh<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">ausf\u00fchrbar machen und mit root-Rechten aufrufen. Letzteres bietet sich im Autostart an.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dazu erstellt man eine Service Unit &#8220;\/etc\/systemd\/system\/sse3flag.service&#8221; mit folgendem Inhalt:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">[Unit]\nDescription=add the SSE3 flag\n\n[Service]\nType=simple\nExecStart=\/usr\/local\/bin\/sse3flag.sh\n\n[Install]\nWantedBy=multi-user.target<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Mit<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">$ systemctl enable --now sse3flag.service<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">wird der Service permanent aktiviert (\u00fcbersteht also Reboots) und gleich gestartet. Eine erneute lscpu-Abfrage gibt nun auch &#8220;sse3&#8221; aus. Da ich eine richtige ]:-) CPU habe, habe ich zum Test spa\u00dfeshalber &#8220;sse6&#8221; ;-) gesetzt &#8211; funktioniert.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Der Start eines aktuellen Chromiums oder dessen Code nutzender anderer Browser auf AMD Phenom II X6\/4\/3\/2 ist nicht m\u00f6glich, 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 [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"","footnotes":""},"categories":[26,13,2,5,19,25,14],"tags":[],"class_list":["post-6587","post","type-post","status-publish","format-standard","hentry","category-arch_based","category-clients","category-computer","category-linux","category-non-pae","category-sid","category-ubuntu_and_derivates"],"_links":{"self":[{"href":"https:\/\/axebase.net\/blog\/wp-json\/wp\/v2\/posts\/6587","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/axebase.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/axebase.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/axebase.net\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/axebase.net\/blog\/wp-json\/wp\/v2\/comments?post=6587"}],"version-history":[{"count":1,"href":"https:\/\/axebase.net\/blog\/wp-json\/wp\/v2\/posts\/6587\/revisions"}],"predecessor-version":[{"id":6625,"href":"https:\/\/axebase.net\/blog\/wp-json\/wp\/v2\/posts\/6587\/revisions\/6625"}],"wp:attachment":[{"href":"https:\/\/axebase.net\/blog\/wp-json\/wp\/v2\/media?parent=6587"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/axebase.net\/blog\/wp-json\/wp\/v2\/categories?post=6587"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/axebase.net\/blog\/wp-json\/wp\/v2\/tags?post=6587"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}