In meiner langjährigen Erfahrung mit FreeBSD ist mir ja schon so manches bei FreeBSD untergekommen, aber man lernt nie aus.
Erst Anfang der Woche habe ich, wie gewohnt, meine Workstation aktualisiert und diesmal gab es eine Menge zu aktualisieren.
Damit alle Änderungen aktiv werden habe ich die Maschine neu gestartet und beim Login kam die Überraschung. Das Keyboard ging überhaupt nicht, bzw. es brabbelte irgendetwas in das Passwortfeld.
Selbst Löschen oder Entfernen wurden mit 2 oder mehr Zeichen ausgeführt.
Dieses Verwalten war sehr ungewohnt und eine Anmeldung war selbstverständlich nicht möglich.
Der Versuch alle Pakete mit
pkg upgrade -f
auszuführen, hat zwar dazu geführt, dass alle Pakete neu installiert wurden, aber die Tastatur gab immer noch falsche Zeichen bzw. ganz andere Zeichen aus.
Nun gut, die Herausforderung war angenommen. Der erste Blick galt dem Xorg-Server-log und dort wurde ich nicht enttäuscht. Folgende Zeilen gaben mit mehr Aufschluss:
39.671 config/udev: Adding input device System mouse (/dev/input/event0) 39.671 System mouse: Applying InputClass "evdev pointer catchall" 39.671 System mouse: Applying InputClass "libinput pointer catchall" ... 39.687 config/udev: Adding input device System keyboard multiplexer (/dev/input/event1) 39.687 System keyboard multiplexer: Applying InputClass "evdev keyboard catchall" 39.687 System keyboard multiplexer: Applying InputClass "Evdev keyboard" 39.687 System keyboard multiplexer: Applying InputClass "libinput keyboard catchall" 39.687 System keyboard multiplexer: Applying InputClass "KeyboardDefaults" 39.687 LoadModule: "kbd" 39.687 Loading /usr/local/lib/xorg/modules/input/kbd_drv.so 39.687 Module kbd: vendor="X.Org Foundation" [ 39.687] compiled for 1.20.8, module version = 1.9.0 [ 39.687] Module class: X.Org XInput Driver [ 39.687] ABI class: X.Org XInput driver, version 24.1 39.687 Using input driver 'kbd' for 'System keyboard multiplexer' 39.687 System keyboard multiplexer: always reports core events 39.688 System keyboard multiplexer: always reports core events 39.688 Option "Protocol" "standard" 39.688 Option "Device" "/dev/input/event1" 39.688 Option "XkbRules" "evdev" 39.688 Option "XkbModel" "pc105" 39.688 Option "XkbLayout" "de" 39.688 Option "config_info" "udev:/dev/input/event1" 39.688 XINPUT: Adding extended input device "System keyboard multiplexer" (type: KEYBOARD, id 7) 39.716 config/udev: Adding input device AT keyboard (/dev/input/event2) 39.717 AT keyboard: Applying InputClass "evdev keyboard catchall" 39.717 AT keyboard: Applying InputClass "Evdev keyboard" 39.717 AT keyboard: Applying InputClass "libinput keyboard catchall" 39.717 AT keyboard: Applying InputClass "KeyboardDefaults" 39.717 Using input driver 'kbd' for 'AT keyboard' 39.717 AT keyboard: always reports core events 39.717 AT keyboard: always reports core events 39.717 Option "Protocol" "standard" 39.717 Option "Device" "/dev/input/event2" 39.717 Option "XkbRules" "evdev" 39.717 Option "XkbModel" "pc105" 39.717 Option "XkbLayout" "de" 39.717 Option "config_info" "udev:/dev/input/event2" 39.717 XINPUT: Adding extended input device "AT keyboard" (type: KEYBOARD, id 8) 39.717 config/udev: Adding input device vendor 0x046a product 0x0023 (/dev/input/event3) 39.717 vendor 0x046a product 0x0023: Applying InputClass "evdev keyboard catchall" 39.717 vendor 0x046a product 0x0023: Applying InputClass "Evdev keyboard" 39.717 vendor 0x046a product 0x0023: Applying InputClass "libinput keyboard catchall" 39.717 vendor 0x046a product 0x0023: Applying InputClass "KeyboardDefaults" 39.717 Using input driver 'kbd' for 'vendor 0x046a product 0x0023' 39.717 vendor 0x046a product 0x0023: always reports core events 39.717 vendor 0x046a product 0x0023: always reports core events 39.717 Option "Protocol" "standard" 39.717 Option "Device" "/dev/input/event3" 39.718 Option "XkbRules" "evdev" 39.718 Option "XkbModel" "pc105" 39.718 Option "XkbLayout" "de" ...
Der xorg-Server hatte die Maus und die Tastatur durch Auto-Erkennung selbst erkannt und versucht diese einzustellen.
Versuche, wie von https://www.freebsd.org/doc/en/books/handbook/x-config.html (Kapitel 5.4.7.1) empfohlen, die Tastatur über den xorg-Server zu definieren greifen leider auch nicht:
Section "InputClass" Identifier "KeyboardDefaults" Driver "keyboard" MatchIsKeyboard "on" Option "XkbLayout" "de" EndSection
Der Ansatz, der hier wieder eine korrekte Tastatur für die Anmeldung am sddm/Plasma5 greift, ist die Auto-Erkennung für die Maus und Tastatur zu deaktivieren.
Dies geht ganz einfach durch eine Zeile in der Datei /etc/X11/xorg.conf unter dem Abschnitt „ServerLayout“. Dort fügt man folgende Zeile ein und speichert die Datei ab:
Option "AutoAddDevices" "false"
Nach einem Neustart der Maschine ist die Tastatur wieder brav und gibt die Zeichen aus, die man eingetippt hat.
Puuuuhhhh, was für ein Trick, … Und wieder zeigt sich, dass Update zwar wichtig sind, aber auch, dass man damit auch immer wieder etwas lernen kann.
Übrigens für alle, die sich fragen, wie ich denn eigentlich arbeiten konnte, obwohl die Tastatur nur rum brabbelte, dem sei gesagt, dass es immer wieder gut ist einen ssh-Zugang zu haben, denn auf der Shell geht die Tastatur immer noch. 😉
Update vom 26.04.2020:
Heute hat sich der Mauszeiger wieder nicht bewegt, aber die Tastatur ist stumm geblieben. Eine Anmeldung war unmöglich.
Im X.org.0.log konnte man Fehler finden, dass mouse und kbd nicht hinzugefügt werden können und Autodadd off ist.
Einfach folgende Pakete installieren:
pkg install xf86-input-mouse xf86-input-keyboard
Nach dem Neustart geht dann wieder alles.
Update 19.05.2020:
Schon wieder wollte die Tastatur partu nicht das deutsche Layout bei der Anmeldung übernehmen.
in diesem Fall war es so, dass weitere Benutzer, die an diesem System eingerichtet sind auf einmal eine englische Tastatur hatten. Die Einstellungen für das Keyboard und die Spracheinstellungen waren alle auf „Generic 105“ und auf die deutsche Sprach eingerichtet.
Da an diesem System nur die deutsch Sprache verwendet werden soll half hier der Trick, das Layout der Tastatur im X-Server zu hinterlegen.
Folgende Anpassungen wurden in der Dateien /etc/X11/xorg.conf gemacht.
Section „InputDevice“
Identifier „Keyboard0“
Driver „kbd“
Option „xkbLayout“ „de“
EndSection
Die Option in der vorletzten Zeile setzt das Layout auf Deutsch und nun können alle Benutzer schreiben so viel sie wollen. 🙂