Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 253242

Summary: VMware does not intercept ctrl sequences, CTRL C in guest kills host X server
Product: Gentoo Linux Reporter: Johan Bondeson <johan>
Component: Current packagesAssignee: Gentoo Linux bug wranglers <bug-wranglers>
Status: RESOLVED UPSTREAM    
Severity: normal    
Priority: High    
Version: unspecified   
Hardware: AMD64   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---

Description Johan Bondeson 2008-12-31 13:26:11 UTC
Hi.
After the switch from 2007.0 to 2008.0 and the latest emerge -avuND and reboot I have a strange error. I do not recall any critical packages being merged, but it seems it was the upgrade that triggered it:

When running a Windows XP guest in vmware workstation, not all keyboard mappings are intercepted. It seems rational that maybe CTRL+ALT+F* should be sent to the X server, but in this case, CTRL-C (which as we all know is frequently used to copy text in windows) is sent directly to X, killing it in a very abrupt manner. After that, I cannot log back in to X (kdm works, though) and have to reboot the machine. It is indeed some problem with the keyboard grabbing, as the clipboard works if I use Edit -> copy in the windows apps. Also, CTRL-S in the guest enables Scroll lock on the keyboard, which it has not done earlier. I wonder what was broken by this upgrade...

---

I have the following setup:

app-emulation/vmware-modules-1.0.0.23
app-emulation/vmware-workstation-6.5.0.118166
x11-base/xorg-server-1.5.3

/etc/vmware/config:
.encoding = "UTF-8"
vix.libdir = "/opt/vmware/workstation/lib/vmware-vix"
vmware.fullpath = "/opt/vmware/workstation/bin/vmware"
NETWORKING = "yes"
VMBLOCK_CONFED = "yes"
gksu.rootMethod = "su"
libdir = "/opt/vmware/workstation/lib/vmware"
VMCI_CONFED = "yes"
VSOCK_CONFED = "yes"
initscriptdir = "/etc/init.d"
authd.fullpath = "/opt/vmware/workstation/sbin/vmware-authd"
bindir = "/opt/vmware/workstation/bin"
product.buildNumber = "118166"
product.version = "6.5.0"
product.name = "VMware"

#xkeymap.usekeycodeMap = true
xkeymap.keycode.107 = 0x54 # PrintScr
xkeymap.language = se104
xkeymap.keycode.108 = 0x138 # Alt_R
xkeymap.keycode.106 = 0x135 # KP_Divide
xkeymap.keycode.104 = 0x11c # KP_Enter
xkeymap.keycode.111 = 0x148 # Up
xkeymap.keycode.116 = 0x150 # Down
xkeymap.keycode.113 = 0x14b # Left
xkeymap.keycode.114 = 0x14d # Right
xkeymap.keycode.105 = 0x11d # Control_R
xkeymap.keycode.118 = 0x152 # Insert
xkeymap.keycode.119 = 0x153 # Delete
xkeymap.keycode.110 = 0x147 # Home
xkeymap.keycode.115 = 0x14f # End
xkeymap.keycode.112 = 0x149 # Prior
xkeymap.keycode.117 = 0x151 # Next
xkeymap.keycode.78 = 0x46 # Scroll_Lock
xkeymap.keycode.127 = 0x100 # Pause
xkeymap.keycode.133 = 0x15b # Meta_L
xkeymap.keycode.134 = 0x15c # Meta_R
xkeymap.keycode.135 = 0x15d # Menu


/etc/X11/xorg.conf:
Section "ServerLayout"
        Identifier     "X.Org Configured"
        Screen      0  "Screen0" 0 0
#       Screen      1  "Screen1" rightOf "Screen0"
        InputDevice    "Keyboard0" "CoreKeyboard"
        InputDevice    "PS/2 Mouse" "AlwaysCore"
        Option "AutoAddDevices" "off"
EndSection

Section "ServerFlags"
        Option "AllowMouseOpenFail"  "true"

EndSection

Section "Files"
    FontPath    "/usr/share/fonts/local"
    FontPath    "/usr/share/fonts/misc"
    FontPath    "/usr/share/fonts/75dpi:unscaled"
    FontPath    "/usr/share/fonts/100dpi:unscaled"
    FontPath    "/usr/share/fonts/TTF"
    FontPath    "/usr/share/fonts/Type1"
    FontPath    "/usr/share/fonts/ttf-bitstream-vera"
    FontPath    "/usr/local/share/fonts"
    FontPath    "/usr/share/fonts/corefonts/"
EndSection

Section "Module"
    Load  "ddc"  # ddc probing of monitor
#       Load  "GLcore"
        Load  "dbe"
#       Load  "dri"
        Load  "extmod"
        Load  "glx"
        Load  "bitmap" # bitmap-fonts
#       Load  "speedo"
        Load  "type1"
        Load  "freetype"
        Load  "record"
EndSection

Section "InputDevice"
        Identifier  "Keyboard0"
        Driver      "evdev"
        Option      "CoreKeyboard"
        Option "XkbRules" "xorg"
        Option "XkbModel" "evdev"
        Option "XkbVariant" "dvorak"
        Option "XkbLayout" "se"
        Option "Device" "/dev/input/event2

EndSection

Section "InputDevice"
        Identifier  "PS/2 Mouse"
        Driver      "mouse"
        Option      "Protocol" "IMPS/2"
        Option      "Device" "/dev/input/mouse0"
        Option      "CorePointer"
        Option      "SendCoreEvents"  "true"
        Option      "ZAxis Mapping" "4 5"
EndSection

Section "Monitor"
        Identifier   "Monitor1"
        VendorName      "Studioworks"
        ModelName       "76i"
        HorizSync 30 - 65 # DDC-probed
        VertRefresh 50 - 110 # DDC-probed
        Option         "UseEDID" "FALSE"
        Modeline "1280x1024" 109.2 1280 1328 1448 1704 1024 1026 1027 1068
        # These are the DDC-probed settings reported by your monitor.
EndSection

Section "Monitor"
        Identifier   "Monitor0"
        VendorName      "Acer"
        ModelName       "AL1917"
        HorizSync 30 - 82
        VertRefresh 56 - 76
        Option "DPMS"
        Gamma 0.8
        # These are the DDC-probed settings reported by your monitor.
EndSection

Section "Device"
        Identifier  "Nvidia0"
        Driver      "nvidia"
        VendorName  "Nvidia"
        BoardName   "GeForce something"
#       BusID       "PCI:2:0:0"
#       Option      "ConnectedMonitor" "DFP"
        Screen      0
        Option      "RenderAccel" "true"
#       Option      "IgnoreDisplayDevices" "TV"
        Option      "AddARGBGLXVisuals" "true"

        Option      "TwinView"
        Option "SecondMonitorHorizSync" "30-50"
        Option "SecondMonitorVertRefresh" "60"
        Option "TVStandard" "PAL"
        Option "TVOutFormat" "SVIDEO"
        Option "TwinViewOrientation" "Clone"
        Option "ConnectedMonitor" "DFP,TV"
EndSection

#Section "Device"
#       Identifier  "Nvidia1"
#       Driver      "nvidia"
#       VendorName  "Nvidia"
#       BoardName   "GeForce 4 Ti"
#       Option      "ConnectedMonitor" "CRT"
#       BusID       "PCI:2:0:0"
#       Screen      1
#       Option      "RenderAccel" "true"
#EndSection

Section "Extensions"
        Option  "Composite" "Enable"
EndSection

Section "Screen"
        Identifier "Screen0"
        Device     "Nvidia0"
        Monitor    "Monitor0"
        DefaultColorDepth 24
        SubSection "Display"
                Modes "1280x1024" "1024x768" "800x600" "768x576" "640x480"
        EndSubSection
EndSection

#Section "Screen"
#       Identifier "Screen1"
#       Device     "Nvidia1"
#       Monitor    "Monitor1"
#       DefaultColorDepth 24
#       SubSection "Display"
#               Modes "1280x1024" "1024x768" "800x600" "768x576" "640x480"
#       EndSubSection
#EndSection

Section "DRI"
        Mode 0666
EndSection


emerge --info
Portage 2.1.6.3 (default/linux/amd64/2008.0, gcc-4.3.2, glibc-2.9_p20081201-r1, 2.6.27-gentoo-r2 x86_64)
=================================================================
System uname: Linux-2.6.27-gentoo-r2-x86_64-Intel-R-_Core-TM-2_Duo_CPU_E6750_@_2.66GHz-with-glibc2.2.5
Timestamp of tree: Sat, 27 Dec 2008 20:20:01 +0000
ccache version 2.4 [enabled]
app-shells/bash:     3.2_p48
dev-java/java-config: 1.3.7-r1, 2.1.6-r1
dev-lang/python:     2.4.4-r15, 2.5.2-r8
dev-util/ccache:     2.4-r8
dev-util/cmake:      2.6.2
sys-apps/baselayout: 2.0.0
sys-apps/openrc:     0.4.1
sys-apps/sandbox:    1.3.2
sys-devel/autoconf:  2.13, 2.63
sys-devel/automake:  1.5, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.2
sys-devel/binutils:  2.19
sys-devel/gcc-config: 1.4.0-r4
sys-devel/libtool:   2.2.6a
virtual/os-headers:  2.6.28
ACCEPT_KEYWORDS="amd64 ~amd64"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=core2 -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/config /var/lib/hsqldb"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c /etc/udev/rules.d"
CXXFLAGS="-march=core2 -O2 -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="ccache distlocks fixpackages parallel-fetch protect-owned sandbox sfperms strict unmerge-orphans userfetch"
GENTOO_MIRRORS="ftp://ftp.public.fix.fi/gentoo ftp://ftp.snt.utwente.nl/pub/os/linux/gentoo ftp://linux.rz.ruhr-uni-bochum.de/gentoo-mirror/"
LDFLAGS="-Wl,-O1"
LINGUAS="en en_GB en_US sv"
MAKEOPTS="-j5"
PKGDIR="/usr/portage/packages"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"
USE="X a52 aac acl alsa amd64 arts berkdb blender-game bluetooth bzip2 cdda cddb cegui cg chm cli cracklib crypt cups curl cvs dbus devil dri dv dvd dvdr dvdread encode exif ffmpeg fftw flac fortran gdbm glew glitz gmedia gphoto2 gpm gs gtk guitarhero haskell hyperestraier iconv ieee1394 imlib inotify ipod irmc isdnlog jai java jpeg jpeg2k kde kdeenablefinal kdehiddenvisibility lame libsamplerate lirc live lzo mad matroska midi mmap mmx mp3 mp4 mpeg mtp mudflap multilib musepack musicbrainz ncurses nptl nptlonly nsplugin ogg openexr opengl openmp pam pcre pdf perl php png ppds pppd python qt3 qt4 quicktime rdesktop readline realmedia reflection rtc rtsp ruby samba scanner session speex spell spl srt sse sse2 ssl ssse3 subversion svg sysfs tcpd tetex theora tiff truetype type1 unicode vim-with-x vlm vorbis webdav wmf wmp x264 xcomposite xml xorg xulrunner xv xvid zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CAMERAS="ptp2" ELIBC="glibc" INPUT_DEVICES="evdev keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en en_GB en_US sv" LIRC_DEVICES="pctv" USERLAND="GNU" VIDEO_CARDS="nv nvidia"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LANG, LC_ALL, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS


Reproducible: Always
Comment 1 Rafał Mużyło 2008-12-31 15:34:13 UTC
Simple question: does Ctrl-C do that even outside of VMware ?

As for "can't login after restart", it may be caused by
'Option "AutoAddDevices" "off"'.

In short, I suspect a configuration problem.
Comment 2 Johan Bondeson 2008-12-31 15:50:50 UTC
Nope, in X on the host, CTRL combinations is sent to the window that has input focus. That is the thing that surprises me, that the keystrokes to the guest are sent to some terminal that owns the xserver (startx?) process. Otherwise I suppose it would not behave that way. Or would it?

As of config issues, none of that was changed when the error first occured, so it seems a bit odd it would be something in that area.

The "AutoAddDevices off" was there because of HAL misbehaving severly, but I disabled it entirely instead so I'll remove this flag.
Comment 3 Rafał Mużyło 2008-12-31 20:01:13 UTC
IIRC, hal was never misbehaving, just people failed to
properly configure things in it.

I never used VMware, so I can't really compare with my own
experiences.

xorg-server 1.5.3 should properly set the console in raw mode
(whatever that means - just quoting from the sources), which should
disable Ctrl-C affecting the sever. It does for me, but again,
that should be for all of the apps, maybe VMware does something
that confuses the server.
Comment 4 Johan Bondeson 2009-01-01 15:02:01 UTC
Ok, I emerged the 6.5.1 workstation, and now it works again... Thanks for the comments, though.