Bugzilla – Bug 331528
kdm doesn't allow logins due to keyboard error
Last modified: 2007-10-28 15:14:48 UTC
On a system updates from opensuse 10.2->10.3, kdm won't allow the user to log in as the keyboard is malfunctioning. Letter keys are silently absorbed, but number keys cause an auto-repeat effect. One can still switch to another VT, where one can log in normally, and restart kdm. Once this is done, it behaves properly. My guess is that kdm is starting before something (kbd?) runs, which completes in time for a second instance of kdm to work-earlyxdm is running too early? I've no idea what it should be waiting for, so I'm not sure how to fix it. I also don't know if this is related to the setfont problem which I will file as a separate bug. If this happens to affect anyone else not clever enough to do rcxdm restart, it makes the system totally unusable.
So does it help to add kbd to Required-Start of /etc/init.d/earlyxdm? Restart of machine required ...
Unfortunately it makes no difference. I'm not positive kbd is actually getting started before earlyxdm, though. There's: <notice>startproc: execve (/opt/kde3/bin/kdm)... quite a ways above: setfont: putfont: 256,8x16: failed: -1 putfont: KDFONTOP: Invalid argument which was the bug alluded to above (bug #331529). Of course, the way the startup messages are buffered means that one cannot infer that kdm is actually getting started before kbd just because of the order of the messages...Also, I'm not sure what the difference between "service" and "$service" in Required-start is-the usage in the scripts themselves seems random. Changing S04earlyxdm to S12earlyxdm certainly made it start later. It still appears to start before the setfont message, and it still doesn't work.
Sorry, I forgot to mention that after editing the init script you need to run insserv. Anyway, reassigning to kbd maintainer.
I tried (manually) linking earlyxdm as S15earlyxdm, and xdm as S18xdm, which makes the latter not very early, and the latter almost the last thing to run. This eliminates the problem, which confirms the idea that it's probably a matter of sequencing. I also tried eliminating earlyxdm completely and leaving xdm at 15, which also worked. There seem to me to be a few possibilities: 1. bug #331529 is to blame. I don't know how to fix it, so I can't tell. I just find it suspicious that there is a problem with the kbd script (albeit with setfont) and then a problem with the keyboard. 2. kbd is hanging on something else 3. init blithely launches kbd, but does not wait fo the kbd script to finish before starting earlyxdm. I'm not sure if this is possible with the suse init system. 4. there is some other hidden dependency (not kbd). Nothing obvious stands out in rc5.d, though. I do not know how to further localize the problem, so I guess I'll just leave the symlinks as they are for now, a late login manager being preferable to starting it by hand each time.
BTW I'm just having problems also. I did an update of the Xorg server & kdm. My versions are: xorg:core 7.2-135.2 & server: 7.2-143.2 kdm:3.5.8-2.2 What happens : I can start the X server from a console login by startx. I can launch kdm, the login screen appears, but I can't reach KDE at all; I tried to build kdrmrc from scratch, nothing changes. I can't find anything special in the logs. So I suspect a sequencing/timing problem. Should I file a bigreport ?
I am now certain that this is related to bug #331529 (see comment #2 for that bug). What the causal relationship is, I do not know. Nor do I know if it's related to bug #302010, except that that one is supposedly fixed and this one certainly is not.
*** Bug 336507 has been marked as a duplicate of this bug. ***
Depending on one's point of view, this should probably be viewed either as depending on or being a duplicate of bug #335267; this and bug #331529 were different manifestations of the same problem, and the latter has been marked as a duplicate of bug #335267. The suggested workaround in that bug also worked for me, in case anyone is still having trouble with [kgx]dm.
*** Bug 331671 has been marked as a duplicate of this bug. ***
*** Bug 335261 has been marked as a duplicate of this bug. ***
*** This bug has been marked as a duplicate of bug 302010 ***