Wie kann SysRq auf einem Laptop funktionieren?


12

Mein /proc/sys/kernel/sysrqenthält die Nummer 502, aber Alt + SysRq + ... scheint auf meinem HP Pavilion-Laptop nicht zu funktionieren. Wie kann ich das beheben?

Update 1: Übrigens: Weder mein Druckbildschirmschlüssel noch irgendein anderer Schlüssel hat eine zusätzliche Bezeichnung wie "SysRq".

Update 2:

  • Hardwaremodell: HP Pavilion 17 Notebook-PC
  • Tastaturlayout: Deutsch, QWERTZ

Scheint nicht zu funktionieren.
Al Klimov

Welches genaue Laptop-Modell haben Sie und welches Tastaturlayout? Welche Schlüssel haben Sie ausprobiert?
Gilles 'SO - hör auf böse zu sein'

Ich habe den Print-Screen-Key mit und ohne Fn und mit und ohne CapsLock ausprobiert.
Al Klimov

Antworten:


15

Die meisten Laptops müssen gedrückt werden Fn, um die SysRqTaste zu erhalten. Das Drücken Fnwirkt sich normalerweise nicht auf die AltTaste aus (zumindest auf die linke), kann sich jedoch auf den Buchstaben auswirken, nach dem Sie drücken SysRq. Glücklicherweise müssen Sie SysRqdie dritte Taste nicht gleichzeitig drücken , es reicht aus, um Altsie gedrückt zu halten . Die folgende Sequenz funktioniert auf allen Laptops, die ich gesehen habe:

  1. Halten Sie gedrückt Alt.
  2. Drücken Fn, drücken Sie die SysRqTaste, und lassen Sie beide.
  3. Kurz den Buchstaben oder Satzzeichen, zB Szum Synchronisieren.
  4. Lassen Sie los Alt.

Der SysRqSchlüssel ist normalerweise der gleiche Schlüssel wie PrintScreen. Wenn Ihre Tastatur keine Taste mit der Bezeichnung SysRqoder hat PrintScreen, verfügt sie möglicherweise nicht über eine Taste, die den von Linux erwarteten Scan-Code sendet. Für den Zweck von Magic SysRq ist der SysRqSchlüssel der Schlüssel , der den Scan-Code 99 sendet.

Wenn Sie mit einer PS / 2-Tastatur (einschließlich der internen Tastatur eines Laptops) herausfinden möchten, welchen Scan-Code eine Taste sendet, melden Sie sich bei einer Textkonsole an (drücken Sie Ctrl+ Alt+ F1, um zu einer Textkonsole zu wechseln, und normalerweise Ctrl+ Alt+ F7, um zur GUI zurückzukehren ) und führen Sie den Befehl aus showkey -s. showkey -sZeigt den Scan-Code jedes Schlüssels während der Eingabe an. Das ist normalerweise ein Byte (zwei hexadezimale Ziffern) für einen Tastendruck, dann ein weiteres Byte für die Tastenfreigabe. Für einige Schlüssel erhalten Sie eine Bytesequenz, die aus zwei Bytes besteht, beginnend mit e0. Drücken Sie die gewünschte Taste, warten Sie 10 Sekunden und showkeybeenden Sie den Vorgang.

Nun , da Sie einen Scan - Code identifiziert haben, führen Sie setkeycodes … 99als root , dass Scan - Code zu Schlüsselcode zuweisen 99. Wenn zum Beispiel showkey -sDrucke 0xe0 0x6f 0xe0 0xeffür den Schlüssel , den Sie gewählt haben, laufen setkeycodes e06f 99.

Um diese Änderung dauerhaft zu machen, fügen Sie entweder den setkeycodesBefehl zu hinzu /etc/rc.localoder konfigurieren Sie udev so, dass die Keycode-Zuordnungen geändert werden . Die Konfiguration von udev ist die einzige Lösung für eine USB-Tastatur und setkeycodeswirkt sich nicht auf USB-Tastaturen aus.


Scheint nicht zu funktionieren.
Al Klimov

@AlKlimov Sie müssen die SysRq-Taste drücken. Wenn Ihre Tastatur keine SysRq-Taste hat, ist dies offensichtlich ein Problem. Siehe meine bearbeitete Antwort.
Gilles 'SO - hör auf böse zu sein'

Ich konnte meinen PrintScreen-Schlüssel nicht drehen, aber ich konnte zB meinen F12-Schlüssel drehen. Seltsam, seltsam ..
Al Klimov

Genius! Ich habe es so oft mit und ohne die fn-Tasten versucht, aber nie daran gedacht, es mit Ihrem Ansatz zu kombinieren. Vielen Dank!
Adam Plocher

Ich bekomme : setkeycodes: failed to set scancode 90 to keycode 99: ioctl KDSETKEYCODE: Invalid argument. Leider habe ich eine Apple-Tastatur auf meinem Laptop.
Zahnrot

1

Ich habe einen neueren HP Pavilion Laptop verwendet, das gleiche Problem. Was für mich funktionierte, war das Drücken der AltGr-Taste mit der Druckbildschirmtaste

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.