You are not logged in.
Hello,
I have problem after upgrading systemd/systemd-libs/systemd-sysvcompat from 257.9 to 258 (both -1/-2). I cannot switch back to Xorg from console.
Problem replication path:
I power on computer. It starts. I login.
I start Xorg server (using startx). It works OK.
I switch to a console (eg. ctrl-alt-f2). Still everything works.
I can login as a different user (and, optionally, I can run another X server - it does not matter, as both cases lead to the same result) or I do nothing at all.
I try to switch back to the first X server (ctrl-alt-f1).
The screen freezes. I see either console or window manager (the second one), depending on where I was before pressing ctrl-alt-f1.
After that, I cannot switch to another console, ctrl-alt-del does not work (maybe because I am in X). However, power off button works and, after pressing it, it looks like the screen unfreezes - I see system services stopping and system goes off.
All other packages are upgraded. There were no other changes in configuration beyond daily system upgrades. System: Dell laptop/Intel wifi and gfx, Xorg, Openbox-session, Tint2, xbindkeys, xss-lock, slock, libinput/evdev - I have used it this way for the last four or five years.
I restored system from backup and confirmed that one of these three packages is introducing this problem (at first i suspected intel-firmware). Downgrade of systemd also solves the problem.
I see nothing special in system logs. Nothing in X logs except:
[ 64.673] (WW) xf86CloseConsole: KDSETMODE failed: Input/output error
[ 64.673] (WW) xf86CloseConsole: VT_GETMODE failed: Input/output error
[ 64.673] (WW) xf86OpenConsole: VT_GETSTATE failed: Input/output error
I see that there are no reports of similar problems neither here nor on systemd's github, so I guess it must be something in my configuration.
Any hint what might be wrong?
Last edited by arus1830 (2025-09-23 11:16:56)
Offline
It would be better to post the full X.Org log, just in case you've missed something. A full journal would probably also be appropriate.
What is your graphics hardware?
lspci -knn -d ::03xx
I'm gonna guess it's NVIDIA...
EDIT: always search the error message before posting: https://bbs.archlinux.org/viewtopic.php?id=278640 ← is this relevant?
Last edited by Head_on_a_Stick (2025-09-20 13:03:29)
Jin, Jîyan, Azadî
Offline
No, I do not have a Nvidia Card. It is Intel.
I had searched for those errors previously, but the results do not seem related. It is not Nvidia. Is is a recent breaking change. I do not use xorg.conf. And Xorg works to some degree - If I used only one X server and did not switch to console, I would not notice this problem at all.
===
After more research, I found out that my keyboard is the problem.
It is Keychron C1 Pro 8K wired keyboard. I have the same problem using Keychron K1 Pro with wired connection. If I switch to wired Logitech G713, problem disappears.
All of this keyboards have many virtual subdevices. It looks like the combination of Keychron's subdevice(s), systemd 258, systemd-logind, udev rules/hwdb, and/or Xorg's libinput causes my problem.
I tried many approaches using Monte Carlo method. I added/removed udev TAGS seat/uaccess/power-switch or ENVS ID_INPUT_MOUSE/ID_INPUT_KEYBOARD/ID_INPUT_JOYSITCK without luck. Udev rules did not help. But hwdb override helped.
It turns out that one of keyboard's subdevices is marked as joystick (ID_INPUT_JOYSTICK=1). UDEV rule
ACTION!="remove", ATTRS{idVendor}=="3434", ATTRS{idProduct}=="0521", ENV{ID_INPUT_JOYSTICK}=""
cleans the marker, but it is too late apparently.
However, if I use hwdb override for this (v)endor and (p)roduct:
id-input:modalias:input:*v3434p0521*
ID_INPUT_JOYSTICK=
it solves my problem.
This indicates that the problem may be on the lower level, below Xorg - that is why I think it might have something to do with systemd-logind.
I tried to diff systemd rules and hardware db, but I could not find anything suspicious. However, I am not going to pretend that I understand what I am doing - it is too difficult for me.
Last but not least, under systemd 257.9 one of the subdevices was also marked with ID_INPUT_JOYSTICK=1, yet everything worked without custom fixes.
Last edited by arus1830 (2025-09-23 11:19:43)
Offline