[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#241014: XKB problems after upgrade to 4.3.0



tag 241014 + moreinfo
thanks

On Wed, Mar 31, 2004 at 08:58:59AM +0200, Svante Signell wrote:
> On Tue, 2004-03-30 at 22:49, Denis Barbier wrote:
> > On Tue, Mar 30, 2004 at 12:33:37PM +0200, Svante Signell wrote:
> > > Package: xserver-xfree86
> > > Version: 4.3.0-7
> > > Severity: important
> > > 
> > Can you please deactivate any session manager, run startx when logged
> > as root on console and see if this error message is still there?  
> > 
> > Denis
> 
> I started a clean (no .xsession, .xinirc etc) X server as root with
> startx. I still did get a gnome session (how?). However, no XKB error
> occurred.

Looks like some X client may be changing your keyboard config after the
X server starts.  From the Debian X FAQ[1]:

  *) Why doesn't my "< >" key work?

  [Thanks to Guillem Jover and Ingo Saitz for their assistance researching this
  entry.]

  In XFree86 4.3.0, the stock configuration data for the X Keyboard Extension
  (XKB) was overhauled.  One of the few downsides to this much-needed update was
  that the "< >" key commonly found on European keyboards stopped functioning.
  Users of 102- or 105-key PC keyboards (as well as miniature and laptop
  keyboards compatible with these models) should ensure that their keyboard is
  configured accordingly in the XF86Config-4 file, using the "pc102" or "pc105"
  XkbModel instead of "pc101" or "pc104", respectively.  U.S.-style PC keyboards
  do not have a "< >" key, it is this additional key that distinguishes a pc102
  keyboard from a pc101 keyboard, and a pc105 keyboard from a pc104 keyboard.

  If your keyboard has a "< >" key, you probably have a 102- or 105-key model.
  The "< >" key may not work if you do not configure your keyboard model
  correctly.  You can use "dpkg-reconfigure xserver-xfree86" to change this
  configuration parameter, or edit /etc/X11/XF86Config-4 directly.

  If you have done this, or have already confirmed that your XkbModel is set to
  "pc102" or "pc105" in the XF86Config-4 file, but your "< >" key *still*
  doesn't work in X, then an X client is probably reconfiguring your keyboard
  after the server starts.

  To confirm this, start the X server in a way that bypasses all client-side
  initialization, and use the xev program from the xbase-clients package to
  determine whether your "< >" key works when the X server initially starts.

  Here's one way to do it from a virtual console:

  $ xinit /usr/bin/X11/xev -- :1 vt8 > /tmp/xev.out

  This starts the X server using server number 1 (in case you already have a
  session active on :0), on virtual console 8, and runs the xev client,
  redirecting xev's output to a temporary file.

  Move the mouse cursor into the white window, then press and release the "< >"
  key.  (There will be no visible response to your keystrokes.)  Then kill the X
  server, either by using CTRL-ALT-BACKSPACE or by switching back to the virtual
  console from which you ran xinit, and typing CTRL-C.

  Next, use your favorite pager program to view xev's output:

  $ pager /tmp/xev.out

  Near the end (after a whole lot of mouse events), you will see something like
  this:

    KeyRelease event, serial 28, synthetic NO, window 0x1a00001,
        root 0x58, subw 0x0, time 19431502, (57,266), root:(553,290),
        state 0x0, keycode 94 (keysym 0x3c, less), same_screen YES,
        XLookupString gives 1 bytes:  "<"

  Note particularly the "keycode" and "keysym" information.

  If, instead, you see something like this:

    KeyRelease event, serial 28, synthetic NO, window 0x1e00001,
        root 0x58, subw 0x0, time 20019010, (425,-87), root:(429,281),
        state 0x0, keycode 94 (keysym 0x0, NoSymbol), same_screen YES,
        XLookupString gives 0 bytes:  ""

  Then the X server is not starting with the correct keymap for your locale, and
  you need to check your XF86Config-4 file again.  You may have a subtle
  problem, such as multiple keyboard input devices defined in the file (and the
  wrong one is being used), or the XF86Config-4 file may have been disregarded
  in favor of a different configuration file.  See the XF86Config-4(5x) manual
  page for more information on these types of problems.

  Also note that the XFree86 X server log file (such as /var/log/XFree86.0.log)
  will not only tell you the name of the configuration file that was used, but
  also what the X server thinks the keyboard configuration is.

  If the X server can see your "< >" key when it starts this way, but not
  normally, then you *do* have a problem with an X client changing it after the
  X server starts.  Several X clients can do this, including:
    * xmodmap
    * setxkbmap
    * the KDE Control Center
    * the GNOME Control Center

  The xmodmap client is deprecated for keyboard manipulation, but some people
  still use it.  The best way to see if it is running is to check the system's X
  session scripts as well as your own.  E.g.:

  $ grep -irs xmodmap /etc/X11/xkb $HOME/.xsession

  The setxbdmap client is pretty straightforward, and can be searched for the
  same way.  Make sure it is not being invoked with the "-model pc101" "-model
  pc104" arguments, for example.  See setxkbmap(1x) for more information.

  In KDE 3.2, the relevant Control Center menu is Regional & Accessibility ->
  Keyboard Layout.

  In GNOME 2.4, right-click the GNOME keyboard applet and select "Settings...".

> Seems to be an access rights problem.

I don't think so.

> The only non-normal output at the tty was:
> 
> X:warning; process set to priority -11 instead of requested priority -10

That's interesting.  That comes from the following code in our X server
wrapper:

#if NICE_USES_SUSV2_SEMANTICS
    errno = 0;
    intval = nice(niceval);
    if (errno) perror("X: warning; nice() of process failed");
    if (intval != niceval) (void) fprintf(stderr, "X: warning; process set to "
        "priority %d instead of requested priority %d\n", intval, niceval);
#else

I wonder what would cause this, though I am very confident it has
nothing to do with your keyboard problem.

> AUDIT: Wed Mar 31 08:13:10 2004: 1111 X: client 5 rejected from local
> host

Perhaps that is the GNOME keyboard applet trying to screw up your
keyboard.

> Further information at the tty when running as non-root:
> The XKEYBOARD keymap compiler (xkbcomp) reports:
> > Error:            bad length in Symbols
> >                   Output file "/var/tmp/server-0.xkm" removed
> Errors from xkbcomp are not fatal to the X server

This may be a bug in the GNOME keyboard applet (assuming my guess is
right).  Can you try to find out how it is trying to reconfigure your
keyboard?

[1] /usr/share/doc/xfree86-common/FAQ.gz

-- 
G. Branden Robinson                |    When we call others dogmatic, what
Debian GNU/Linux                   |    we really object to is their
branden@debian.org                 |    holding dogmas that are different
http://people.debian.org/~branden/ |    from our own.     -- Charles Issawi

Attachment: signature.asc
Description: Digital signature


Reply to: