staging.inyokaproject.org

2021 Woche 42

24. Oktober 2021

Vor ein paar Monaten hatte ich mich ja ein wenig über Linux und Notebooks ausgekotzt:

Auch wenn ich seit dieser Zeit Windows 10 auf dem Notebook installiert habe, hat mich das Problem nicht losgelassen:

Wie kann es sein, dass bestimmte Notebooks von verschiedenen Herstellern nahezu problemlos den neuen Suspendmodus unter Linux unterstützen, andere aber massive Probleme haben? Vor zwei Tagen bin ich dann auf den folgenden Bugreport gestoßen:

https://gitlab.freedesktop.org/drm/amd/-/issues/1721

Der Ersteller des Bugreports besitzt exakt das gleiche Modell des Notebooks und ein Vorschlag in dem Report war, zwei kleine Patches auszuprobieren:

https://patchwork.kernel.org/project/platform-driver-x86/list/?series=556591&state=%2A&archive=both

Hier sind sie mal im Ganzen:

diff --git a/drivers/platform/x86/amd-pmc.c b/drivers/platform/x86/amd-pmc.c
index d6a7c896ac86..fc95620101e8 100644
--- a/drivers/platform/x86/amd-pmc.c
+++ b/drivers/platform/x86/amd-pmc.c
@@ -476,6 +476,7 @@  static const struct acpi_device_id amd_pmc_acpi_ids[] = {
 	{"AMDI0006", 0},
 	{"AMDI0007", 0},
 	{"AMD0004", 0},
+	{"AMD0005", 0},
 	{ }
 };
 MODULE_DEVICE_TABLE(acpi, amd_pmc_acpi_ids);

diff --git a/drivers/acpi/x86/s2idle.c b/drivers/acpi/x86/s2idle.c
index bd92b549fd5a..1c48358b43ba 100644
--- a/drivers/acpi/x86/s2idle.c
+++ b/drivers/acpi/x86/s2idle.c
@@ -371,7 +371,7 @@  static int lps0_device_attach(struct acpi_device *adev,
 		return 0;
 
 	if (acpi_s2idle_vendor_amd()) {
-		/* AMD0004, AMDI0005:
+		/* AMD0004, AMD0005, AMDI0005:
 		 * - Should use rev_id 0x0
 		 * - function mask > 0x3: Should use AMD method, but has off by one bug
 		 * - function mask = 0x3: Should use Microsoft method
@@ -390,6 +390,7 @@  static int lps0_device_attach(struct acpi_device *adev,
 					ACPI_LPS0_DSM_UUID_MICROSOFT, 0,
 					&lps0_dsm_guid_microsoft);
 		if (lps0_dsm_func_mask > 0x3 && (!strcmp(hid, "AMD0004") ||
+						 !strcmp(hid, "AMD0005") ||
 						 !strcmp(hid, "AMDI0005"))) {
 			lps0_dsm_func_mask = (lps0_dsm_func_mask << 1) | 0x1;
 			acpi_handle_debug(adev->handle, "_DSM UUID %s: Adjusted function mask: 0x%x\n",

Jeder Patch fügt einzig zwei zusätzliche Zeilen Code (Eine Zeile ist nur ein Kommentar) ein. Der Patch wurde wegen Problemen mit dem Microsoft Surface Laptop 4 eingeführt:

The Surface Laptop 4 AMD has used the AMD0005 to identify this
controller instead of using the appropriate ACPI ID AMDI0005.  Include
AMD0005 in the acpi id list.

Die Diskussion dreht sich dann grundsätzlich nur noch darum ob die Patches zu Regressionen führen. Am Ende wurden sie aber ohne weitere Diskussionen in den Master-Branch von Linux gemergt und sind dadurch auch in Linux 5.14.4 und 5.15-rc6 gelandet.

Da ich ein, von Natur aus, neugieriger Mensch bin, wollte ich natürlich wissen ob die zwei Zeilen Code das Problem bei meinem Notebook lösen. Also schnell Ubuntu 21.10 und die aktuellste Kernelversion aus dem Mainline-PPA installiert. Und siehe da:

Die Patches wirken! Das Notebook legt sich jetzt vollkommen problemlos schlafen und wacht auch innerhalb von Sekundenbruchteilen zuverlässig aus dem Schlaf auf. Mit der Version 5.14.3 funktionierte es noch nicht.

Was mich an der ganzen Sache wurmt, ist die Tatsache, dass der Fehler auf Seiten von Acer zu suchen ist. Hätten die Firmwareentwickler nicht gepennt und den Eintrag in den ACPI-Tabellen korrekt geschrieben („AMDI0005“ anstatt „AMD0005“) dann gäbe es die Probleme erst gar nicht. Die Frage, die sich mir jetzt nur stellt, ist, wie Windows solche Dinge handhabt. Das Problem muss grundsätzlich auch unter Windows existieren und zwar aus folgenden zwei Gründen:

  • In einem anderen Bugeintrag erwähnte ein Benutzer, dass ein BIOS-Update für sein Desktop-Mainboard eben diese ACPI-ID verändert hat und danach der s2idle-Modus fehlerfrei funktioniert hat. Große Hersteller wie Gigabyte ändern selten ACPI-Einträge, außer es gibt unter Windows Probleme. Linux interessiert die wenigsten Hersteller.
  • Auf meinem Notebook funktionierte der Stromsparmodus unter Windows 10 auch nicht zu 100%. Ich habe das aber erst jetzt kapiert. Ich hatte mich nämlich schon die ganze Zeit gewundert warum mein Acer-Notebook im Suspend-Modus gefühlt mehr Strom als andere Notebooks im gleichen Zustand benötigt hat (z.B. mein altes Lenovo Thinkpad T460). Dieses konnte ich locker mehrere Tage suspenden, beim Acer ist nach spätestens zwei Tagen Sense. Und das Notebook hat sich nach einer bestimmten Zeit immer selbst heruntergefahren, obwohl noch genug Saft im Akku war. Das deutet darauf hin, dass das Notebook nicht wirklich geschlafen hat und Windows nach einer bestimmten Zeit den Rechner in den Hibernate-Modus versetzt hat. Dadurch, dass Windows auf SSDs und dank Fastboot ziemlich schnell wieder betriebsbereit ist, dürfte dieses Verhalten nur wenigen Benutzern auffallen.

Eine Recherche im Acer-Community-Forum brachte dann auch einige Threads bezüglich des Suspend-Verhaltens zu Tage:

https://community.acer.com/en/discussion/602424/sf314-42-doesnt-wake-up-from-sleep-mode-windows-restarts-instead-please-help

Es gibt also auch bei vielen anderen Benutzern unter Windows Probleme und erst einige BIOS-Updates haben diese soweit beseitigt, dass sich weniger Benutzer gemeldet haben.

Lange Rede, kurzer Sinn:

Mein Notebook funktioniert jetzt endlich wie gewollt unter Linux und ich muss auch kein Windows mehr darauf benutzen 😉

Android Smartphones werden normalerweise mit Chrome ausgeliefert. Für Privatsphäre und Datenschutz natürlich eine ganz schlechte Idee. Doch welche der doch zahlreichen Alternativen soll man nehmen?

Bisher habe ich immer Firefox bzw. Fennec (F-Droid) gewählt, weil ich den auch auf dem Desktop nutze und damit recht zufrieden war. Im Usage Guide von GrapheneOS wird die Sicherheit von Firefox unter Android allerdings sehr schlecht bewertet:

Avoid Gecko-based browsers like Firefox as they’re currently much more vulnerable to exploitation and inherently add a huge amount of attack surface. Gecko doesn’t have a WebView implementation (GeckoView is not a WebView implementation), so it has to be used alongside the Chromium-based WebView rather than instead of Chromium, which means having the remote attack surface of two separate browser engines instead of only one. Firefox / Gecko also bypass or cripple a fair bit of the upstream and GrapheneOS hardening work for apps. Worst of all, Firefox runs as a single process on mobile and has no sandbox beyond the OS sandbox. This is despite the fact that Chromium semantic sandbox layer on Android is implemented via the OS isolatedProcess feature, which is a very easy to use boolean property for app service processes to provide strong isolation with only the ability to communicate with the app running them via the standard service API. Even in the desktop version, Firefox’s sandbox is still substantially weaker (especially on Linux, where it can hardly be considered a sandbox at all) and lacks support for isolating sites from each other rather than only containing content as a whole.

GrapheneOS Usage Guide, zuletzt zugegriffen am 24.10.2021

Manches davon ist natürlich spezifisch für GrapheneOS, aber einiges an der Kritik lässt sich auch für Android generalisieren und trifft auch zu, wenn man „nur“ mit LineageOS unterwegs ist.

Für mich ist diese Passage Anlass zum ersten Mal seit Längerem wieder das Thema „Browser“ für Android gründlicher zu betrachten. Der bei GrapheneOS vorinstallierte Browser Vanadium ist als Subprojekt von GrapheneOS nicht für F-Droid verfügbar und deshalb keine Option.

Anders sieht das mit der ebenfalls thematisierten Alternative Bromite aus. Dieser lässt sich unter anderem über ein spezielles F-Droid Repo installieren.

Mike Kuketz hat Bromite im Rahmen seiner Artikelserie „Browser Check“ auch unter die Lupe genommen und relativ positiv bewertet. Diese Artikelserie ist allgemein zu empfehlen, weil alle wichtigen Browser für Desktop- und Mobilsysteme unter die Lupe genommen und die Spreu vom Weizen getrennt wurde. So mancher „Community-Liebling“ wie z. B. Waterfox ist dabei durchgefallen.

Bei Bromite muss man einige wenige Einstellungen ändern. Beispielsweise die Standardsuchmaschine und die Möglichkeit, Drittanbietercookies pauschal zu blockieren. Ansonsten ist die Standardkonfiguration bereits sehr gut gewählt.

So richtig überzeugt bin ich aber noch nicht, was vermutlich an der langjährigen Gewöhnung an Firefox liegt.

Mit was seit ihr so unterwegs unter Android?

Der Artikel Android-Browser mit Fokus auf Datenschutz & Privatsphäre? erschien zuerst auf [Mer]Curius

Debian war schon LTS bevor es LTS als Begriff unter Linux gab und Ubuntu hat mit den festen Releasezyklen Maßstäbe gesetzt. Der Wartungszustand der sehr umfangreichen Paketquellen lässt aber zunehmend zu Wünschen übrig. Vielleicht ein Grund für die häufig vorgetragene Ablehnung von LTS?

Ich empfehle eigentlich nur LTS-Distributionen und zwar sowohl für den (semi)professionellen als auch den privaten Einsatz und bin auch der Ansicht, dass die Mehrheit der Linux-Anwender LTS-Distributionen nutzt. Das ist also ein sehr relevantes Thema. Es gibt unterschiedliche LTS-Distributionen, wirklich intensiv nutze ich allerdings nur openSUSE Leap.

Momentan befasse ich mich wegen eines anderen Projekts mit GrapheneOS. Für die Installation gibt es dort eine ziemlich umfassende Anleitung. Folgende Zitate finden sich dort:

Debian and Ubuntu do not have a usable package for fastboot. Their packages for these tools are both broken and many years out-of-date. Follow the instructions below for platforms without a proper package.

The udev rules on Debian and Ubuntu are very out-of-date but the package has the rules needed for Pixel phones since the same USB IDs have been used for many years.

On Debian-based distributions, the signify package and command are an unmaintained mail-related tool for generating mail signatures (not cryptographic signatures). Make sure to install signify-openbsd.

Das hat nichts mit dem Release-Modell von Debian zu tun, sondern mit dem streckenweise schlechten Zustand der Debian-Paketquellen. Die Versionen sind meist schon vor Beginn des Freezes sehr alt und wurden teilweise jahrelang nicht angefasst. Zum Vergleich kann man die Releasedaten der Android-Tools mit den Versionsständen bei Debian vergleichen. Halbwegs aktuelle Versionen sind mitnichten erst während des Freeze herausgekommen.

Die mit Debian ausgelieferten Versionen von fastboot und adb sind allerdings schon chronisch veraltet. Das könnte man inzwischen zum Markenzeichen von Debian erklären. Vermutlich ist das auch nur für die kleine Gemeinde der Custom ROM Szene ein wirkliches Problem. Andere Sachen wiegen da schwerer. Dazu ist das Paket signify als Beispiel geeignet, da es nahezu funktionslos und laut Debian Entwicklerinformationen als „orphaned and needs a maintainer“ markiert ist. Wohlgemerkt seit 2014.

Das ist jetzt nur zwei Beispiele. Vermutlich fallen den meisten Debian oder Ubuntu (das ja letztlich den Paketbestand und Zustand erbt) Beispiele aus ihren eigenen Nutzungsszenarien ein. Das reicht von Kleinigkeiten bis zu riesigen Problemen. Ein Beispiel für eine Kleinigkeit wäre FeedReader. Das Programm wurde auch in der neuesten Version veraltet ausgeliefert, obwohl seit Mai 2020 eine neue Version bereitsteht. Ein Beispiel für ein deutlich größeres Problem ist Chromium. Debian schleppt hier hartnäckig veraltete Versionen mit zig offenen Sicherheitslücken mit sich rum.

Zur Wahrheit gehört natürlich auch, dass die meisten anderen LTS-Distributionen keine so umfassenden Paketquellen wie Debian haben und Software, die sie – aus welchen Gründen auch immer – nicht warten können, gar nicht erst anbieten. Besagte Android-Tools kann man bei openSUSE Leap oder RHEL nur über Dritt-Repositorien hinzufügen. Chromium hat openSUSE aus der stabilen Variante geschmissen.

Die Frage ist, ob das nicht einfach ehrlicher ist. Was hat der Anwender von >35.000 Paketen, wenn vieles davon unbenutzbar ist.

Debian (und damit zwangsläufig auch Ubuntu und Mint) fehlt ganz offenkundig ein Mechanismus, um die Paketquellen von solchen Altbeständen zu bereinigen. Wenn die zuständigen Maintainer nichts machen, passiert da schlicht nichts. Einzige Ausnahme sind RC-Bugs im Vorfeld eines Releases. Das Kriterium „ist funktions- bzw. sinnlos“ ist nur halt kein RC-Bug. Die Android-Tools funktionieren ja theoretisch: Man braucht nur uralte Android-Versionen und uralte Geräte.

Zum Problem wird so etwas, wenn es den Ruf von LTS-Distributionen insgesamt belastet. Da heißt es dann gerne, die Software ist zu alt oder zu ungepflegt und man solle lieber auf ein Rolling Release setzen. Dabei ist auch Testing oder Sid nicht aktueller, weil das Problem eben nicht im LTS-System liegt, sondern die Qualitätssicherung bei Debian das Problem ist.

Der Artikel Debian (Ubuntu) als Belastung für den Ruf von LTS? erschien zuerst auf [Mer]Curius

22. Oktober 2021

Die MZLA Technologies Corporation hat mit Thunderbird 91.2.1 ein Update für seinen Open Source E-Mail-Client veröffentlicht.

Neuerungen von Thunderbird 91.2.1

Mit dem Update auf Thunderbird 91.2.1 hat die MZLA Technologies Corporation ein Update außer der Reihe für seinen Open Source E-Mail-Client veröffentlicht und behebt damit mehrere Fehler der Vorgängerversion. Diese lassen sich in den Release Notes (engl.) nachlesen.

Der Beitrag Thunderbird 91.2.1 veröffentlicht erschien zuerst auf soeren-hentzschel.at.