Warum funktioniert diese Tastenfolge mit SyRq nicht?

Warum funktioniert diese Tastenfolge mit SyRq nicht?

Ich habe Fedora 20 mit Zshell und Mate Desktop. Ich bin gerade auf Folgendes gestoßenArtikel über die Verwendung von SysRq-Tasten, aber sie liefern nicht die dort gezeigten Ergebnisse. Ich verwende Alt mit der Taste „Home“ und darüber „Print Scr“ als SysRq-Tastenkombination.

Ich habe auch versucht, die gelbe „FN“-Taste gedrückt zu halten, aber das hat keinen Unterschied gemacht.

Da die Sequenz „Neustart, auch wenn das System völlig kaputt ist“ sehr nützlich erscheint, würde ich bitte gerne wissen, was ich falsch mache.

Antwort1

Wahrscheinlich haben Sie SysRq-Kombinationen deaktiviert. Damit dies funktioniert, müssen einige Dinge zutreffen:

  • Sie müssen CONFIG_MAGIC_SYSRQes in Ihrer Kernelkonfiguration aktiviert haben.
  • Sie müssen kernel.sysrqSysctl auf einen Wert einstellen, der die Interpretation von SysRq-Kombinationen ermöglicht.

kernel.sysrqist eine Bitmaske zum Aktivieren/Deaktivieren von Funktionen:

  • 0 - Vollständig deaktiviert
  • 1 – Vollständig aktiviert
  • 2 - Steuerung der Protokollierungsebene der Konsole zulassen
  • 4 - Steuerung der Tastatur zulassen
  • 8 - Steuerung von Prozessdumps zulassen
  • 16 - Steuerung von sync()Anrufen zulassen
  • 32 - Erneutes Einbinden nur im Lesemodus zulassen
  • 64 - Prozesssignalisierung zulassen
  • 128 - Änderung des Energiestatus des Systems zulassen (Neustart/Ausschalten/usw.)
  • 256 - Erlaube die Ausführung von Echtzeit-Neukonfigurationsaufgaben

Angenommen, Sie möchten alle SysRq-Funktionen aktivieren, können Sie den Wert vorübergehend mit dem folgenden sysctlTool festlegen:

sysctl -w kernel.sysrq=1

Um dies dauerhaft zu tun, fügen Sie die folgende Zeile hinzu /etc/sysctl.conf:

kernel.sysrq = 1

/etc/sysctl.confAnschließend können Sie mit der Eingabe die Einstellungen vom System neu laden lassen sysctl -p.

Antwort2

Wenn Sie normalerweise eine Taste drücken, generiert die Tastatur einen einzelnen Tastencode. Das Betriebssystem empfängt die Tastencodes, wendet eine Tastenzuordnung an und versucht, Tastenkombinationen unabhängig von der zugrunde liegenden Hardware zu verarbeiten.

Der SysRq-Mechanismus ist etwas anders: Die Tastatur fängt die Kombination ab und sendet einen speziellen Tastencode an das Betriebssystem, als ob die einzelne Taste gedrückt worden wäre. Der Linux-Kernel fängt den speziellen Tastencode ab und verarbeitet ihn intern, ohne die Eingabe an übergeordnete Anwendungen wie den X-Server weiterzuleiten. Daraus ergeben sich zwei Konsequenzen:

  1. Die Tastenkombination hängt wirklich von der Tastatur ab. Die Tastatur muss alle Tastendrücke selbst erfassen und nur die Tastatur „weiß“, wo sich die eigentliche SysRq-Taste befindet und welche Kombination das Senden des speziellen Tastencodes auslöst. Also:

    • SysRq befindet sich nicht unbedingt auf derselben Schaltfläche wie „Home“ oder „Druck“. Versuchen Sie, danach zu suchen. Normalerweise ist es explizit als „SysRq“ gekennzeichnet.
    • Probieren Sie verschiedene Kombinationen aus: Ctrl+Alt+SysRq+b oder Ctrl+Alt+Fn+SysRq+busw. (Achtung, das System wird bei erfolgreichem Versuch neu gestartet). Auf Tastaturen, die die FnTaste haben, müssen Sie diese normalerweise drücken, um zur eigentlichen SysRqTaste zu gelangen. Ihre Kombination wird also wahrscheinlich die Taste beinhalten Fn.
  2. Sie können tatsächlich wissen, wann Sie die richtige Kombination haben. Führen Sie es xevvon einem Terminal aus aus, fokussieren Sie das xevFenster und drücken Sie einige Tasten auf der Tastatur. Sie sollten sehen, dass Ereignisse im Terminal angezeigt werden. Wenn Sie die richtige Kombination haben, sollten Sie KEIN Ereignis erhalten, da es vom Kernel abgefangen und nicht an den X-Server übermittelt wird.

Siehe auch die Dokumentation:https://www.kernel.org/doc/Documentation/sysrq.txt

verwandte Informationen