News Blue Screen für Linux: QR-Code und Fehler­meldungen mit systemd v255

netzgestaltung schrieb:
Ich schon xD - finde den eigentlich auch überflüssig hier.

Beim Kollegen mit OPNsense wird er auch nicht helfen, weil kein Monitor angesteckt sein wird und ansonsten reicht eine vernünftige Textausgabe mmn genau so.
Ist sogar Kontraproduktiv. Mit einem Stack Traceback kann man wenigstens noch was anfangen. Mit irgendwelchen cryptischen Fehlermeldungen absolut nichts. Ich hatte bei eingen auch einen Serial Logger, damit man sich im Nachhinein die Nachrichten anschauen konnte.
 
  • Gefällt mir
Reaktionen: kieleich und mae
drake23 schrieb:
Ernst gemeinte Frage: wann hättet ihr zuletzt eine Kernel Panic und was war der Grund?
Im privaten Umfeld zu debian 4 bis debian 6 Zeiten und das dortige ubuntu. Da sind mir immer die Upgrades schiefgelaufen, dass bei mir daher inzwischen debian basierte Distributionen nicht mehr ins Haus kommen.

In der Firma gar nicht selber, sondern nur bei Kollegen mitbekommen, da ich dort bisher nichts mit Linux zu tun habe. Da kenne ich die Ursache aber nicht, vermute aber auch Updates oder der Kunde hat auf den Systemen rumgefrickelt und was verkonfiguriert.
 
Sinn dahinter ist die Anzeige von für Nutzern leichter verständlicher konkreter Fehlermeldungen und der Möglichkeit, per QR-Code direkt auf Hilfeseiten zu verweisen.

Daran ist Microsoft gescheitert. Und Apple versucht es erst gar nicht "Teile der Wahrheit würden sie beunruhigen".

Der Grund warum man unter Linux ein Problem als Anwender lösen kann ist, dass die Ausgaben (Logmeldungen) auf Wunsch sichtbar sind, speziell beim Hoch/Runterfahren. Die Superkraft ist, dass man das in eine Suchmaschine oder besser Bugtracker eingibt und eine Lösung bekommt oder jemand daran arbeiten kann. Die Fehlercodes waren noch nie hilfreich, weil es voraussetzt, dass der Programmierer die vorab alle kennt. Und alle zukünftigen. Und wenn man die kennen würde, hätte man das Problem ja irgendwie eleganter behandelt.

Wenn man das Bluescreen ausblenden kann bzw. die tatsächlichen Logmeldungen darauf sieht, ist das nett.
Ergänzung ()

Randnotiz schrieb:
Auch der BSOD ist besser als sein Ruf, blöd nur, dass man selbst nachdem man den Code gescannt hat (unter Windows 10) herzlich wenig damit, als Normalanwender anfangen kann 😅
Wie erwartet :)
 
Einen Kernel Crash unter Linux kenne ich nur von zwei Arten her:
  • Defekte/Zu sehr Übertaktete Hardware
  • Nvidia Treiber
 
Spike S. schrieb:
Am Beispiel deines Arch-Setups mit Secure Boot und verschlüsselter Platte, bedeutet dies, dass man dann nach Eingabe des LUKS Passworts, direkt auf dem Desktop landen kann?

Kontest Du auch bisher, z.B. wenn Du den gdm oder lightdm entsprechend eingestellt hast. WIMRE hat Ubuntu 22.04 sowas letztens auch als Moeglichkeit angeboten (sowas in der Art von "Benutzer automatisch einloggen" oder so).
 
drake23 schrieb:
wann hättet ihr zuletzt eine Kernel Panic und was war der Grund?
Ich glaube so vor 10 Jahren etwa hatte ich mehrmals "Kernel Panic" beim Basteln an 'nem Hackintosh (AMD).
Das lag aber weniger an MacOS. 😉

Danach hatte ich vielleicht mal eine korrupt gewordene ISO mit Ventoy, welche beim Start "Kernel Panic" zeigte.
Kann mich da aber nicht mehr richtig erinnern, welches Betriebssystem das war.
 
Brrr schrieb:
Poettering ist ein Troll. :)

Abgesehen davon finde ich Systemd eine gute sache. Hat zumindest für mich vieles vereinfacht. Ausserdem hat es zu einer Angleichung der Systeme geführt. Die Distributionen sind heute nicht mehr so unterschiedlich wie sie mal waren.
Dann soll es das machen lassen, wofür es gedacht war. Aktuell wird ja von DNS, Boot Loader und was weiß ich noch gesprochen.
 
  • Gefällt mir
Reaktionen: Spike S.
drake23 schrieb:
Ernst gemeinte Frage: wann hättet ihr zuletzt eine Kernel Panic und was war der Grund?
Kann mich nicht mehr erinnern, wann und warum. Da war mal irgendwann mal was, ist aber zu lange her. Das selbe gilt bei mir aber auch für Windows 10.
 
Austronaut schrieb:
Mein Vorschlag wäre es dort direkt den Assembler Code springen zu können und Schritt für Schritt weiter zu Debuggen.
Nur liegt der Kernel bzw. Module in der Regel nicht als menschlich lesbares Assembly vor, sondern als Binärcode. Um da ins Assembly zu springen, müsste also ein Decompiler auf die Speicherbereiche springen, wo der Fehler festgestellt wurde und nach Möglichkeit auch weiträumig auf die Speicherbereiche, die berührt worden, bevor der Fehler festgestellt wurde. Wobei der Decompiler natürlich Speicher benötigt und bei der Allokation entsprechende alte Speicherbereiche nicht berühren dürfte.
Ganz abgesehen davon, dass das System nach einem Kernelpanic noch so stabil sein müsste, dass Decompiler überhaupt noch sicher laufen.

TLDR: Ein unmöglicher Wunsch, der althergebrachte Dump vom Speicher bei Kernelpanic, sodass man im Nachhinein den Speicher auswerten kann ist deutlich sinnvoller.



GrumpyCat schrieb:
Sind die Fehlermeldungen dann auch brauchbar? Das ist ja beim BSOD unter Windows eher das Problem, dass MS an der Stelle aber auch keine Sekunde Arbeit reingesteckt hat. Wenn ein einziger fähiger Programmierer mal einen Tag Arbeit für eine bessere Fehlermeldung z.B. beim nervigen IRQL NOT LESS OR EQUAL investiert hätte, wären vermutlich Jahrzehnte Nerven bei den Anwendern verschont worden... ganz zu schweigen von den völlig unsinnigen Fehlercodes (à la "Fehlercode 0000000000002 aufgetreten" nach Windows-Update, und das ist dann nach Nachschauen im Netz "File not found", ja prima!).
Der Puritaner schrieb:
Bei Windows könnte auch einfach nur "Ops jetzt ist was schiefgelaufen, setzen sie sich hin und genießen sie den Tag", stehen.
Ob da nun ein QCR Code steht oder nicht, ist völlig egal, wenn am Ende in der Fehlerbeschreibung nichts Sinnvolles dabei herumkommt.

Ich hoffe, bei Linux wird das etwas anders.
Eternal schrieb:
"Ein unbekannter Fehler ist aufgetreten" Oder so ähnlich, ja die BS Fehler sind wirklich immer extrem Hilfreich unter Windows :)

Die Fehlermeldungen werden oftmals absolut technischer Natur sein und nahezu unverständlich, Linux hat da die selben Probleme wie die Kernelentwickler·innen von Windows. Zum einen ist nicht sichergestellt, dass Fehler an der Stelle gefangen werden, wo sie auftreten und auf der anderen Seite ist das Fangen von Fehlern gar nicht so simpel. Der Standard ist da in etwa so:
Code:
switch: function(foo, bar, baz)
    case 0: break;
    case 1: fprintf(stderr, "could not write to: %s", foo); mitigation(); break;
    default: fprintf(stderr, "failure calling function(foo, bar, baz), nobody knows why"); kernelpanic(); break;
Also auf gut Deutsch, wenn function() aufgerufen wird, wird davon ausgegangen, dass etwas schief gegangen ist. Der Erfolg von function() wird explizit behandelt, bekannte Fehlerfälle werden behandelt und nach Möglichkeit in ihrer Auswirkung negiert. Gerade wenn der Kernel auf gut funktionierende Firmware, externe Treiber/Module angewiesen ist, ist es fast unmöglich, dass "default" nicht gelegentlich getroffen wird.
Fies sind dann auch die Fälle, wo ranzige Firmware, Module zwar Erfolg vermelden (also return(0)), aber eigentlich scheiße gebaut haben. Dann fällt der Fehler oftmals gar nicht auf oder halt VIEL später. Eben weil bei der späteren Fehlerbehandlung auch der "default" getroffen wurde, aber die Entwickler von diesem Code gar keine Chance haben festzustellen, wieso der Input für ihre Funktionen so kaputt ist.

Naja und all zu dicht ist die Fehlerbehandlung im Code von Programmen und Kernel meist nicht. Dichte und erschöpfende Fehlerbehandlung frisst sehr viele Prozessorzyklen und ist enorm aufwendig beim Programmieren, Testen und Dokumentieren. Da ist ganz fix ein Faktor 10 beim Aufwand vorhanden, ohne dass es im Regelfall einen Mehrwert bietet, denn normalerweise sollte Hardware, Kernel und Module gescheit funktionieren. Wobei ja durchaus bekannt ist, dass dem nicht so ist und daher größere Treiber in den Userspace verbannt werden, damit man sie abschießen kann, wenn sie sich nicht benehmen können. Das kostet auch Performance, aber es ist weniger Schlimm. Microsoft hat das mit dem NT-Kernel ja auch durchgesetzt, dass die reudigen GPU Treiber als Hauptquelle von BSODs in den Userspace verbannt wurden.

foofoobar schrieb:
[...]
RAM-Fehler ohne ECC im laufenden Betrieb erkennen? Wie stellst du dir das den vor?
Ein entsprechendes Verfahren wäre wohl ein Kandidat für den Turing-Award.
Das ginge schon, man könnte Parity auch in normalem Speicher vorhalten und bei jedem Speicherzugriff einen Softwarelayer zwischenschalten, der fröhlich prüft. Das hätte aber "kleinere" Auswirkungen auf die Performance.
Oder wie bei GPUs, da können die Memorycontroller auch ECC und Allokieren dafür "einfach" ein neuntel des verbauten Speichers und benötigen entsprechend auch ein neuntel der Speicherbandbreite.


SavageSkull schrieb:
Ich finde es gut. Mein Problem mit Linux sieht so aus, dass ich das Terminal melde und bei Problemen ohne Fehlermeldung da zu stehen.
Nicht das ich regelmäßig Bluescreens hätte.
Es gibt Logviewer auch als GUI-Anwendung. Dürfte bei den meisten grafischen Desktopumgebungen ab Werk vorhanden sein.
 
  • Gefällt mir
Reaktionen: Caramon2 und Tanzmusikus
ebird schrieb:
Dann soll es das machen lassen, wofür es gedacht war. Aktuell wird ja von DNS, Boot Loader und was weiß ich noch gesprochen.
Ja das macht es alles. Sind aber unabhängig teile. z.B. DNS das du anspricht, systemd-resolved, du kannst es abschalten und darauf verzichten ohne dass du den Service Manager wegwerfen musst.
 
  • Gefällt mir
Reaktionen: Kuristina und Piktogramm
Tja, wohl doch nicht so stabil, dieses Linux... Da kann man auch mal einen BSOD als Feature verpacken wenn man nicht mehr Herr aller zunehmender Fehler wird...
 
Piktogramm schrieb:
Die Fehlermeldungen werden oftmals absolut technischer Natur sein und nahezu unverständlich, Linux hat da die selben Probleme wie die Kernelentwickler·innen von Windows. Zum einen ist nicht sichergestellt, dass Fehler an der Stelle gefangen werden, wo sie auftreten und auf der anderen Seite ist das Fangen von Fehlern gar nicht so simpel. Der Standard ist da in etwa so:
Code:
switch: function(foo, bar, baz)
    case 0: break;
    case 1: fprintf(stderr, "could not write to: %s", foo); mitigation(); break;
    default: fprintf(stderr, "failure calling function(foo, bar, baz), nobody knows why"); kernelpanic(); break;
Im Zweifel tritt der Fehler bei ein Anweisung wie "foo = *bar" auf und crasht weil bar ins Nirvana zeigt.
Piktogramm schrieb:
Das ginge schon, man könnte Parity auch in normalem Speicher vorhalten und bei jedem Speicherzugriff einen Softwarelayer zwischenschalten, der fröhlich prüft. Das hätte aber "kleinere" Auswirkungen auf die Performance.
Oder wie bei GPUs, da können die Memorycontroller auch ECC und Allokieren dafür "einfach" ein neuntel des verbauten Speichers und benötigen entsprechend auch ein neuntel der Speicherbandbreite.
Du kannst dir aber niemals sicher sein ob die Daten die du in die CPU gezogen hast beim nächsten Befehl noch da sind weil dir ein Context-Switch dazwischen gekommen ist.

Und was machst du mit dem Bereich wo die Daten der MMU liegen?
Die MMU weiß nichts von der Codierung.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Piktogramm
sh. schrieb:
Blue Screens und Linux? Ich dachte Linux ist unkaputtbar und stürzt nie ab? Wurde gerade mein Linux Weltbild zerstört?
Das mit dem 'denken' ist halt so ein Sache... Das sollte man halt nur machen, wenn man die Kapazitäten dazu hat. Den letzten Kernel-Panic, den ich auf meinen System hatte, war 2001 unter Suse-Linux 7.1 .
 
Piktogramm schrieb:
Die Fehlermeldungen werden oftmals absolut technischer Natur sein und nahezu unverständlich, Linux hat da die selben Probleme wie die Kernelentwickler·innen von Windows. Zum einen ist nicht sichergestellt, dass Fehler an der Stelle gefangen werden, wo sie auftreten und auf der anderen Seite ist das Fangen von Fehlern gar nicht so simpel.
Pfff. Windows hat tausend Tonnen Telemetrie, und wenn da irgendjemand Kompetentes draufschauen würde, könnten sie ganz hervorragende Fehlermeldungen generieren ("Es ist ein Fehler im Zusammenhang mit ihrer RTX4090 aufgetreten, aber wir haben vermehrt auch schon davon gehört, dass Treiberrevision x.y.z, die sie gerade einsetzen, auch eher ranzig sein soll, speziell mit der neuesten Version von Battlefield, die sie da gerade spielen.").

Macht aber Arbeit, und dass sie über dass alles bescheidwissen kehrt man auch abseits der "Partner" lieber unter den Teppich, also bleibt in Sachen Windows einfach alles so, wie es seit 30 Jahren halt ist.
 
Sind Bluescreens denn überhaupt noch ein relevantes Ding?
Aus dem Stehgreif wüsste ich nicht wann ich in den letzten Jahren überhaupt noch einen Bluescreen bzw eine kernel panic hatte.
Das ist doch gefühlt ein reines Windows 95 bis Mitte XP Problem.
 
Piktogramm schrieb:
klar quasi dauerhaft aktives Debugging auf Kernelebene:D
Was genau denkst Du ist das "Informationen zu Systemproblemen an Microsoft zur Verbesserung der Benutzerfahrung melden"? Da werden natürlich Core Dumps an MS geschickt. Das werden die auch fleißig alles auswerten, vermutlich um herauszufinden, wie man Firefox ggf. noch mehr Fußangeln in den Weg legen kann und so weiter. Wasweißich! Zur Verbesserung der Fehlermeldungen oder der Systemstabilität wird's offensichtlich nicht genutzt. Ist auch schwierig, denn vermutlich müsste man dann innerhalb von MS zwischen den Abteilungen miteinander reden.

Wie Du auf "aktives Debugging" kommst und was Du damit meinst, weißt Du vermutlich nur selbst.
Ergänzung ()

Blutschlumpf schrieb:
Sind Bluescreens denn überhaupt noch ein relevantes Ding
Hier so: Letztes Mal bei einem der Major Updates im Laufe von Windows 10. Da kam Windows mit dem eigenen (!) Repartitionieren mittels mbr2gpt vorher nicht zurecht. Oder bei Freunden gesehen: Bluescreen nach Update eines AMD Athlon-Rechners, wobei keinerlei Treiber von Dritten beteiligt waren.
Keine Ahnung, was "QA" bei MS bedeutet.

Passt auch gut zum Thema oben: Würden sie mit ihrer Telemetrie irgendwas sinnvolles anstellen, würde in so einem Fall natürlich sofort das Rollout der offensichtlich defekten Updates eingestellt werden. Aber die Telemetrie läuft eben offensichtlich (nur) zur Marketing-Abteilung.
 
Zuletzt bearbeitet:
drake23 schrieb:
Ernst gemeinte Frage: wann hättet ihr zuletzt eine Kernel Panic und was war der Grund?
Dieses Jahr mit Manjaro, letztes Jahr Mint, den einen oder anderen Kurztest mit anderen Distros habe ich jetzt nicht berücksichtigt.
Selbe Hardware hatte den einen oder anderen Bluescreen unter Win letztes Jahr, das lag aber ganz konkret am verbuggtem ICUE (für mein HS), das ich dann auch deinstalliert liess. Unter Linux wars nicht Schuld, da gibt es kein ICUE.
 
Die einzigen BSOD die ich sehe kommen mit xscreensaver 😉
 
  • Gefällt mir
Reaktionen: kieleich
Linux in einen Kernel Panic zu treiben ist nicht sonderlich schwer. Man muss eigentlich nur mal ein
echo c > /proc/sysrq-trigger
oder halt den dazugehörigen "Affengriff" Alt - S-Abf - C machen. :-)
siehe dazu auch:
https://www.kernel.org/doc/html/latest/admin-guide/sysrq.html
Da findet man auch ein paar für den (Problem-)Alltag nützliche Funktionen. Zum Beispiel das manuelle Auslösen des Out-of-Memory-Killers (f) oder auch Sync-all-mounted-disk (s), wenn man tatsächlich mal aus irgendwelchen Gründen nicht mehr sauber runterfahren kann.
 
  • Gefällt mir
Reaktionen: Tanzmusikus und sedot
Zurück
Oben