Wiederherstellung von Sys Rq + r

25

Ich hatte eine wirklich schlechte Überbrückung meines X-Servers und musste ein Sys Rq + r ausführen , um meine Tastatur von X zu lösen und in eine Konsole zu gelangen. Ich konnte den Prozess, der mein System blockierte, beenden und meine Arbeit auf meinem noch laufenden X-Server fortsetzen.

Wenn ich jetzt z. B. Alt + F4 drücke, um ein Fenster zu schließen, wechselt mein System zur vierten Konsole, anstatt das aktive Fenster zu schließen. Es scheint also, dass sich meine Tastatur noch im freigegebenen Modus befindet.

Wie mache ich meinen vorherigen Sys Rq + r-Befehl rückgängig, sodass ich meine Arbeit auf meinem laufenden X-Server fortsetzen kann?

Bjarke Freund-Hansen
quelle

Antworten:

30

Ich fand die Lösung selbst, nachdem ich diese Frage gestellt hatte.

Führen Sie den folgenden Befehl aus, um die Konsole, in der X ausgeführt wird (normalerweise tty7), vom ASCII-Modus in den RAW-Modus zurückzuschalten:

sudo kbd_mode -s -C /dev/tty7

Und jetzt funktioniert alles wieder wie erwartet. :)

Weitere Informationen finden Sie in der Frage: Was bedeutet der Raw / Unraw-Tastaturmodus?

Bjarke Freund-Hansen
quelle
Vielen Dank! Versuche immer noch herauszufinden, ob es eine Möglichkeit gibt, es für alle ttys gleichzeitig zu tun, genauso wie es unRaw tut ...
behandle deine Mods gut
3
@phyzome Sie möchten dies nicht für alle ttys tun, da die "normale" (Textmodus) tty den ASCII (XLATE) - oder UTF-8 (UNICODE) -Modus erwartet. Andernfalls können Sie dort nichts eingeben (genau das, was SysRq-R korrigiert). kbd_mode -s -C /proc/self/fd/0Probieren Sie zum Spaß ein tty aus, lassen Sie es brechen und beheben Sie es mit SysRq-R.
Niemand
1
Wenn Sie das TTY verwenden, in dem X ausgeführt wird, können Sie auch verwenden sudo kbd_mode -s -C /dev/tty$(sudo fgconsole).
TSJNachos117
0

Wenn Sie das Web mehrmals nach diesem bestimmten Befehl durchsuchen (wie ich es getan habe), können Sie das folgende Shell-Skript verwenden, um die Tastatur für das verwendete TTY neu zu erfassen:

#!/bin/bash

IFS=$'\n\t'
function ttys() {
    # find open files named `/dev/tty?` from commands named `Xorg`
    lsof -Fn -c Xorg -a /dev/tty? | \
      egrep '^n' |                  \
      sed -r 's/^n(.+)$/\1/g' |     \
      sort |                        \
      uniq
}

tty=$(ttys)
count_ttys=$(wc -l <<< $tty )

if [[ $count_ttys -gt 1 ]]; then
  echo 'more than one tty in use, exiting'
  exit 1
fi

echo binding keyboard to $tty
sudo kbd_mode -s -C $tty
runejuhl
quelle