Bug#610828: When the X server fails to start, keys are grabbed from both gdm and the console
Vincent Lefevre
vincent at vinc17.net
Sun Jan 23 00:41:37 UTC 2011
Package: gdm
Version: 2.20.11-4
Severity: important
When for some reason the X server fails to start[*], gdm displays
an error box about the problem and (while I didn't do anything) the
console login prompt appear.
I couldn't login because letter keys were apparently grabbed by gdm,
while the Enter key was grabbed by the console. I tried to change
the virtual console from vt6, but this had no effect (perhaps because
of keys grabbed by gdm).
Fortunately, I had sshd running and I could connect via SSH.
Also, some time later I could get rid of gdm by trying again to type
some keys (perhaps key grabbing is random, so that the Enter key
makes the dialog box disappear when grabbed by gdm).
[*] I'm testing the 2.6.32-5-amd64 kernel, and X isn't configured
yet for it because I was using the nvidia driver with 2.6.31.
-- System Information:
Debian Release: 6.0
APT prefers unstable
APT policy: (500, 'unstable'), (500, 'testing'), (1, 'experimental')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.32-5-amd64 (SMP w/2 CPU cores)
Locale: LANG=POSIX, LC_CTYPE=en_US.ISO8859-1 (charmap=ISO-8859-1)
Shell: /bin/sh linked to /bin/dash
Versions of packages gdm depends on:
ii adduser 3.112+nmu2 add and remove users and groups
ii debconf [debconf-2.0] 1.5.38 Debian configuration management sy
ii fvwm [x-window-manager] 1:2.5.30.ds-1 F(?) Virtual Window Manager
ii gksu 2.0.2-5 graphical frontend to su
ii gnome-session [x-session-m 2.30.2-3 The GNOME Session Manager - GNOME
ii gnome-terminal [x-terminal 2.30.2-1 The GNOME terminal emulator applic
ii libart-2.0-2 2.3.21-1 Library of functions for 2D graphi
ii libatk1.0-0 1.30.0-1 The ATK accessibility toolkit
ii libattr1 1:2.4.44-2 Extended attribute shared library
ii libaudit0 1.7.13-1+b2 Dynamic library for security audit
ii libc6 2.11.2-9 Embedded GNU C Library: Shared lib
ii libcairo2 1.8.10-6 The Cairo 2D vector graphics libra
ii libdbus-1-3 1.2.24-4 simple interprocess messaging syst
ii libdbus-glib-1-2 0.88-2.1 simple interprocess messaging syst
ii libdmx1 1:1.1.1-1 X11 Distributed Multihead extensio
ii libfontconfig1 2.8.0-2.1 generic font configuration library
ii libfreetype6 2.4.2-2.1 FreeType 2 font engine, shared lib
ii libglade2-0 1:2.6.4-1 library to load .glade files at ru
ii libglib2.0-0 2.24.2-1 The GLib library of C routines
ii libgnomecanvas2-0 2.30.1-1 A powerful object-oriented display
ii libgtk2.0-0 2.20.1-2 The GTK+ graphical user interface
ii libpam-modules 1.1.1-6.1 Pluggable Authentication Modules f
ii libpam-runtime 1.1.1-6.1 Runtime support for the PAM librar
ii libpam0g 1.1.1-6.1 Pluggable Authentication Modules l
ii libpango1.0-0 1.28.3-1 Layout and rendering of internatio
ii librsvg2-2 2.26.3-1 SAX-based renderer library for SVG
ii librsvg2-common 2.26.3-1 SAX-based renderer library for SVG
ii libselinux1 2.0.96-1 SELinux runtime shared libraries
ii libwrap0 7.6.q-19 Wietse Venema's TCP wrappers libra
ii libx11-6 2:1.3.3-4 X11 client-side library
ii libxau6 1:1.0.6-1 X11 authorisation library
ii libxdmcp6 1:1.1.0-1 X11 Display Manager Control Protoc
ii libxext6 2:1.1.2-1 X11 miscellaneous extension librar
ii libxi6 2:1.3-6 X11 Input extension library
ii libxinerama1 2:1.1.1-1 X11 Xinerama extension library
ii libxml2 2.7.8.dfsg-2 GNOME XML library
ii lsb-base 3.2-27 Linux Standard Base 3.2 init scrip
ii metacity [x-window-manager 1:2.30.1-3 lightweight GTK+ window manager
ii mlterm [x-terminal-emulato 3.0.1-3 MultiLingual TERMinal
ii rxvt [x-terminal-emulator] 1:2.6.4-14 VT102 terminal emulator for the X
ii twm [x-window-manager] 1:1.0.4-2 Tab window manager
ii xterm [x-terminal-emulator 266-1 X terminal emulator
Versions of packages gdm recommends:
ii dialog 1.1-20100428-1 Displays user-friendly dialog boxe
ii gdm-themes 0.6.2 Themes for the GNOME Display Manag
ii whiptail 0.52.11-2 Displays user-friendly dialog boxe
pn xserver-xephyr | xnest <none> (no description available)
ii xserver-xorg 1:7.5+8 the X.Org X server
ii zenity 2.30.0-1 Display graphical dialog boxes fro
Versions of packages gdm suggests:
ii libpam-gnome-keyring 2.30.3-5 PAM module to unlock the GNOME key
ii locales 2.11.2-9 Embedded GNU C Library: National L
ii pm-utils 1.3.0-3 utilities and scripts for power ma
-- Configuration Files:
/etc/gdm/Init/Default changed:
PATH=/usr/bin:$PATH
OLD_IFS=$IFS
gdmwhich () {
COMMAND="$1"
OUTPUT=
IFS=:
for dir in $PATH
do
if test -x "$dir/$COMMAND" ; then
if test "x$OUTPUT" = "x" ; then
OUTPUT="$dir/$COMMAND"
fi
fi
done
IFS=$OLD_IFS
echo "$OUTPUT"
}
sysresources=/etc/X11/Xresources
if [ -f "$sysresources" ]; then
xrdb -merge "$sysresources"
fi
sysmodmap=/etc/X11/Xmodmap
XMODMAP=`gdmwhich xmodmap`
if [ "x$XMODMAP" != "x" ] ; then
if [ "x$GDM_PARENT_DISPLAY" = "x" ]; then
if [ -f $sysmodmap ]; then
$XMODMAP $sysmodmap
fi
else
( DISPLAY=$GDM_PARENT_DISPLAY XAUTHORITY=$GDM_PARENT_XAUTHORITY $XMODMAP -pke ) | $XMODMAP -
fi
#
# Switch Sun's Alt and Meta mod mappings
#
UNAME=`gdmwhich uname`
PROCESSOR=`$UNAME -p`
if [ "x$PROCESSOR" = "xsparc" ]; then
if $XMODMAP | /usr/bin/grep mod4 | /usr/bin/grep Alt > /dev/null 2>/dev/null
then
$XMODMAP -e "clear Mod1" \
-e "clear Mod4" \
-e "add Mod1 = Alt_L" \
-e "add Mod1 = Alt_R" \
-e "add Mod4 = Meta_L" \
-e "add Mod4 = Meta_R"
fi
fi
fi
SETXKBMAP=`gdmwhich setxkbmap`
if [ "x$SETXKBMAP" != "x" ] ; then
# FIXME: is this all right? Is this completely on crack?
# What this does is move the xkb configuration from the GDM_PARENT_DISPLAY
# FIXME: This should be done in code. Or there must be an easier way ...
if [ -n "$GDM_PARENT_DISPLAY" ]; then
XKBSETUP=`( DISPLAY=$GDM_PARENT_DISPLAY XAUTHORITY=$GDM_PARENT_XAUTHORITY $SETXKBMAP -v )`
if [ -n "$XKBSETUP" ]; then
XKBKEYMAP=`echo "$XKBSETUP" | grep '^keymap' | awk '{ print $2 }'`
XKBTYPES=`echo "$XKBSETUP" | grep '^types' | awk '{ print $2 }'`
XKBCOMPAT=`echo "$XKBSETUP" | grep '^compat' | awk '{ print $2 }'`
XKBSYMBOLS=`echo "$XKBSETUP" | grep '^symbols' | awk '{ print $2 }'`
XKBGEOMETRY=`echo "$XKBSETUP" | grep '^geometry' | awk '{ print $2 }'`
if [ -n "$XKBKEYMAP" ]; then
$SETXKBMAP -keymap "$XKBKEYMAP"
elif [ -n "$XKBTYPES" -a -n "$XKBCOMPAT" -a -n "$XKBSYMBOLS" -a -n "$XKBGEOMETRY" ]; then
$SETXKBMAP -types "$XKBTYPES" -compat "$XKBCOMPAT" -symbols "$XKBSYMBOLS" -geometry "$XKBGEOMETRY"
elif [ -n "$XKBTYPES" -a -n "$XKBCOMPAT" -a -n "$XKBSYMBOLS" ]; then
$SETXKBMAP -types "$XKBTYPES" -compat "$XKBCOMPAT" -symbols "$XKBSYMBOLS"
elif [ -n "$XKBSYMBOLS" ]; then
$SETXKBMAP -symbols "$XKBSYMBOLS"
fi
fi
fi
fi
xset -b
exit 0
/etc/gdm/PostSession/Default changed:
PATH="/usr/bin:$PATH:/bin:/usr/bin"
OLD_IFS=$IFS
gdmwhich () {
COMMAND="$1"
OUTPUT=
IFS=:
for dir in $PATH
do
if test -x "$dir/$COMMAND" ; then
if test "x$OUTPUT" = "x" ; then
OUTPUT="$dir/$COMMAND"
fi
fi
done
IFS=$OLD_IFS
echo "$OUTPUT"
}
if [ -x /etc/X11/Xreset ] ; then
/etc/X11/Xreset
fi
xset -b
exit 0
/etc/gdm/PreSession/Default changed:
PATH="/usr/bin:$PATH:/bin:/usr/bin"
OLD_IFS=$IFS
gdmwhich () {
COMMAND="$1"
OUTPUT=
IFS=:
for dir in $PATH
do
if test -x "$dir/$COMMAND" ; then
if test "x$OUTPUT" = "x" ; then
OUTPUT="$dir/$COMMAND"
fi
fi
done
IFS=$OLD_IFS
echo "$OUTPUT"
}
XSETROOT=`gdmwhich xsetroot`
if [ "x$XSETROOT" != "x" ] ; then
CHECKBACKCOLOR="OK"
if [ "x$GDM_GREETER_TYPE" = "xTHEMED" ]; then
BACKCOLOR=`gdmflexiserver --command="GET_CONFIG greeter/GraphicalThemedColor $DISPLAY"`
CHECKBACKCOLOR=`echo $BACKCOLOR | sed 's/^\([^ ]*\) .*$/\1/'`
if [ "x$CHECKBACKCOLOR" = "xOK" ]; then
BACKCOLOR=`echo $BACKCOLOR | sed 's/^.* \(.*\)$/\1/'`
else
BACKCOLOR=""
fi
fi
# If we tried to load the themed backgroundcolor, but failed, then try loading plain color
if [ "x$CHECKBACKCOLOR" != "xOK" ] || [ "x$GDM_GREETER_TYPE" = "xPLAIN" ]; then
# Background type can be 0=None, 1=Image & Color, 2=Color, or 3=Image
BACKTYPE=`gdmflexiserver --command="GET_CONFIG greeter/BackgroundType $DISPLAY"`
# Skip if background type does not include a color
if [ "x$BACKTYPE" = "xOK 1" ] || [ "x$BACKTYPE" = "xOK 2" ]; then
BACKCOLOR=`gdmflexiserver --command="GET_CONFIG greeter/BackgroundColor $DISPLAY"`
CHECKBACKCOLOR=`echo $BACKCOLOR | sed 's/^\([^ ]*\) .*$/\1/'`
if [ "x$CHECKBACKCOLOR" = "xOK" ]; then
BACKCOLOR=`echo $BACKCOLOR | sed 's/^.* \(.*\)$/\1/'`
else
BACKCOLOR=""
fi
fi
fi
# Default value
if [ "x$BACKCOLOR" = "x" ]; then
BACKCOLOR="#76848F"
fi
"$XSETROOT" -cursor_name left_ptr -solid "$BACKCOLOR"
fi
xset -b
exit 0
/etc/gdm/gdm.conf changed:
[daemon]
[security]
[xdmcp]
[gui]
[greeter]
SoundOnLogin=false
[chooser]
[debug]
[servers]
-- debconf information:
gdm/daemon_name: /usr/sbin/gdm
* shared/default-x-display-manager: gdm
More information about the pkg-gnome-maintainers
mailing list