ubuntuusers.de

Externe Tastatur auf server abschalten

Status: Gelöst | Ubuntu-Version: Server 24.04 (Noble Numbat)
Antworten |

matze31

Anmeldungsdatum:
25. Oktober 2015

Beiträge: 788

Ich möchte auf meinen Server die per USB angeschlossene Tastatur abschalten. Wie macht man das? Hintergrund der ganzen Geschichte ist, das ich ein Programm schreibe, was Eingabetasten einliest. Dabei schreibt er aber auch auf der Oberfläche de Servers. Genau das möchte ich vermeiden.

Hat jemand eine Idee?

dingsbums

Anmeldungsdatum:
13. November 2010

Beiträge: 3771

matze31

(Themenstarter)

Anmeldungsdatum:
25. Oktober 2015

Beiträge: 788

Leider kann ich davon gar nichts anwenden. Kann man eventuell die login-Console deaktivieren?

matze31

(Themenstarter)

Anmeldungsdatum:
25. Oktober 2015

Beiträge: 788

Mir würde auch reichen, wenn man das Anmeldefenster sperrt bzw. deaktiviert. Aber wie macht man das?

frostschutz

Avatar von frostschutz

Anmeldungsdatum:
18. November 2010

Beiträge: 7777

Was für eine Tastatur ist es denn, welcher Kerneltreiber ist für die zuständig?

Wenn du nicht den kompletten Treiber blacklisten kannst, dann evtl. ein spezifisches unbind: https://unix.stackexchange.com/a/531919/30851

Es gibt auch /sys/class/input/input*/inhibited: https://blog.hackeriet.no/udev-disable-keyboard/

Allerdings können sich die inputX Nummern können sich schon ändern, sind hier aber fest in die udev-Regel reingeschrieben. Wenn du Pech hast funktioniert das nicht mehr, wenn z.B. noch eine weitere Tastatur oder Maus angestöpselt wird.

matze31

(Themenstarter)

Anmeldungsdatum:
25. Oktober 2015

Beiträge: 788

Es geht mir darum, das ich eine (noch nicht vorhandene) Numeric Keybad anschließen möchte um in ein Programm (Python) die Tastenabfrage starte. Wenn ich das mache schreibt es ja auch im Anmeldefenster. Mir wäre schon geholfen wenn man das Anmeldefenster löscht oder sperrt.

frostschutz

Avatar von frostschutz

Anmeldungsdatum:
18. November 2010

Beiträge: 7777

Wie liest dein Python Programm denn die Tastatur?

Bei evdev gibts EVIOCGRAB, dann gehört das Input Gerät alleine dir. (evtest vs. evtest --grab)

Ansonsten evtl. NAutoVTs=0 in systemd/logind.conf

matze31

(Themenstarter)

Anmeldungsdatum:
25. Oktober 2015

Beiträge: 788

frostschutz schrieb:

Wie liest dein Python Programm denn die Tastatur?

Ich wollte es mit "keyboard" realisieren.

EVIOCGRAB kenne ich nicht.

Edit: ist das EVIOCGRAB für Python oder Ubuntu allgemein?

frostschutz

Avatar von frostschutz

Anmeldungsdatum:
18. November 2010

Beiträge: 7777

matze31 schrieb:

Ich wollte es mit "keyboard" realisieren.

Hab mal reingeschaut. Das scheint einfach ein open / read aufs input device zu machen. Für grab bräuchte es ioctls. Geht dann schlichtweg nicht damit.

Edit: ist das EVIOCGRAB für Python oder Ubuntu allgemein?

Kernel.

Scheint ein python-evdev Paket zu geben das inputdevice.grab() machen kann.

Hab jetzt nicht im Detail geschaut wie es sich vom keyboard Paket unterscheidet.

https://python-evdev.readthedocs.io/en/latest/usage.html

https://python-evdev.readthedocs.io/en/latest/tutorial.html#reading-events

https://python-evdev.readthedocs.io/en/latest/apidoc.html#evdev.device.InputDevice.grab

matze31

(Themenstarter)

Anmeldungsdatum:
25. Oktober 2015

Beiträge: 788

Ich hab mal in Python "evdev" getestet, funktioniert, aber trotzdem schreibt es auf der Login-Oberfläche.

edit: ich habe "device.grab()" vergessen.

Jetzt läuft es so wie es soll. Vielen dank.

Antworten |