Ich habe erst kürzlich von den Anforderungsschlüsseln für das magische System erfahren . Wie verwende ich sie über die Tastatur auf Macs mit einem installierten Linux-basierten Betriebssystem oder in anderen Fällen, in denen die Tastatur keinen SysReqSchlüssel hat? Gibt es eine Sequenz, die meta- entspricht SysReq, oder eine Möglichkeit, eine zu erstellen?
12
echo <char> > /proc/sysrq-trigger
, wo<char>
sich die Taste befindet, mit der Sie zusammen drücken möchtenM-SysRq
. (Dies setzt natürlich voraus, dass Sie einen Kernel mit Magic SysRq ausführen, der darin kompiliert wurde und dies zuvorecho 1 > /proc/sys/kernel/sysrq
in/etc/rc.local
oder ähnlichem getan hat .)Antworten:
Ohne eine Taste, die denselben Scan-Code generiert, den Sie nicht haben, besteht die einzige Option darin
echo <char> > /proc/sysrq-trigger
, wo<char>
sich die Taste befindet, mit der Sie zusammen drücken möchtenM-SysRq
. (Dies setzt natürlich voraus, dass Sie einen Kernel mit Magic SysRq ausführen, der darin kompiliert wurde und dies zuvorecho 1 > /proc/sys/kernel/sysrq
in/etc/rc.local
oder ähnlichem getan hat .)Wenn Sie echte magische SysRq-Funktionalität anstelle der blassen Nachahmung wünschen, die durch das Echo in zufällige / Proc-Einträge erhalten wird, sollten Sie sich eine USB-Tastatur im PC-Stil mit einer SysRq-Taste suchen. Linux interpretiert den Scan-Code unabhängig von der Architektur, auf der er ausgeführt wird, richtig. In diesem Fall besteht der schwierige Teil darin, zunächst den Scan-Code zu generieren, was mit einer Standard-Mac-Tastatur nicht möglich ist.
(Andererseits scheint es wahrscheinlich, dass ein Kernel kompiliert werden könnte, um anstelle von SysRq einen anderen Scan-Code wie den Auswurftaster des Mac zu erkennen. Ich hatte nie das Bedürfnis, meinen MBP herunterzustufen, also würde ich nicht Ich weiß es nicht aus erster Hand, aber ich kann mir vorstellen, dass es jemand getan hat. Oder vielleicht sind Sie der Erste. Schließlich macht das benutzerdefinierte Hacken Ihres Kernels den halben Spaß, Linux auszuführen, oder ich muss es verstehen.)
Update : Anscheinend kann dies über den Userspace erfolgen :
Wenn Sie eher nach einer altmodischen "Two-Fisted Tales of Linux" -Erfahrung suchen, gibt es einige Kernel-Patches, die mit diesem Kommentarthread verknüpft sind und Anleitungen zum erneuten Zuordnen von Schlüsselcodes auf Kernel-Ebene bieten.
quelle
tty
), das Ihnen die numerischen Codes jeder Taste beim Drücken anzeigt.WantedBy=
Feld in der .service-Datei am besten geeignet ist. `(Ich habe multi-user.target verwendet, was anscheinend gut funktioniert, bin mir aber bei Sonderfällen nicht sicher.Diese Antwort wurde auch hier gepostet .
Nach 3 oder 4 Stunden intensiven Suchens, Lesens und Ausprobierens finden Sie hier eine gründlichere und allgemeinere Antwort, die für jeden Apple / Mac-Laptop oder jede Apple / Mac-Tastatur funktionieren sollte. In meinem speziellen Fall verwende ich diese Lösung jedoch für 2008 MacBook weiß mit Xubuntu 16.04 LTS.
Vielen Dank an Bengt Olsson für seine hervorragenden Anweisungen, die mir den nötigen Start gaben, um die fehlenden Details herauszufinden.
Diese Lösung wird im Benutzerbereich durchgeführt und erfordert NICHT das Neukompilieren des Kernels wie einige Vorschläge.
Laden Sie die Quelle für Keyfuzz herunter ( http://0pointer.de/lennart/projects/keyfuzz/keyfuzz-0.2.tar.gz ) und extrahieren Sie sie (ich kann mit der rechten Maustaste darauf klicken und zu "Hier extrahieren" gehen, um sie in meinem zu extrahieren Zum Beispiel GUI-Dateimanager). Weitere Informationen zu Keyfuzz finden Sie hier . Es wird unter der Open Source-Lizenz GNU GPL 2.0 oder höher (yaaay Open Source!) Veröffentlicht.
./configure
Befehl fehlschlägt.Installieren Sie Abhängigkeiten, oder führen Sie die
./configure
folgenden Schritte aus, um einige Fehler auszuspucken:Kompilieren und installieren Sie keyfuzz mit den üblichen Befehlen:
Navigieren Sie zu
/dev/input/by-id
Ihrer Apple-Tastatur und suchen Sie sie, die mit "-event-kbd" endet:Fügen Sie Ihrer
/etc/rc.local
Datei die folgende Zeile hinzu , damit dieser Befehl jedes Mal ausgeführt wird, wenn Ihr Computer hochfährt und diesen Benutzer lädt. Beachten Sie, dass wir den oben gefundenen Apple-Tastatureintrag verwenden. Dieser Befehl verwendet Keyfuzz, um F12 oder F13 auf Ihrer Apple-Tastatur oder Ihrem Laptop dem System " Magic SysRq-Taste " für sanfte Neustarts zuzuordnen.458821 99
. Vielen Dank an "pjjjv", dass sie das hier herausgefunden haben! https://ubuntuforums.org/archive/index.php/t-762665.html458856 99
.rc.local
für meinen Fall hinzugefügt habe, lautet :echo "458821 99" | keyfuzz -s -d /dev/input/by-id/usb-Apple_Computer_Apple_Internal_Keyboard___Trackpad-event-kbd
./etc/rc.local
Datei mit dem entsprechenden Eintrag:Jetzt kann ich Alt + F12 drücken (oder Sie können Alt + F13 wie oben beschrieben verwenden) und REISUB ausgeben, um Ihren Computer sanft neu zu starten. Funktioniert perfekt auf meinem MacBook 2008-Laptop mit Xubuntu 16.04 LTS.
Beachten Sie, dass Sie die durch die Ausgabe von REISUB zurückgegebenen Ergebnisse sehen können, wenn Sie jede Taste drücken, indem Sie zuerst zu einer alternativen Sitzung mit springen,
Ctrl+Alt+F1 (F1 through F6 work actually)
bevor Sie den Befehl ausgeben. Um zu Ihrer X Window-Hauptsitzung zurückzukehren, verwenden SieCtrl+Alt+F7
.Wenn Sie das Ergebnis "Diese sysrq-Operation ist deaktiviert" erhalten, ist dies für einige Befehle normal, da sie ein potenzielles Sicherheitsrisiko darstellen. Das Boot sollte jedoch weiterhin funktionieren, sodass Sie Ihren Computer sanft neu starten können. Hier einige weitere Informationen dazu von mniess hier :
quelle