[SOLVED] Xlib: extension "XTEST" missing on display ":0.0".
Hi уважаемые
В общем проблема возникла давно, все руки не доходили покопать, вчера дошли.
Проблема в том, что kaffeine перестал выключать скринсейвер. Собрал с debug, посмотрел в сырцы и пришел к выводу, что не работает XTEST. И точно, заглянул в ~/.xsession-errors , а там:
# cat .xsession-errors |grep XTEST
Xlib: extension "XTEST" missing on display ":0.0".
Посмотрел в Xorg.log, там все нормально:
# cat Xorg.0.log|grep XTEST
(II) Initializing built-in extension XTEST
Пробовал пересобрать мир - не помогло. Сижу под ~x86. Использую KDE-3.5.8
x11-base/xorg-server-1.4-r2
x11-drivers/xf86-video-i810-1.7.4
Много гуглил, решения не нашел. Подскажите в какую сторону копать.
# cat xorg.conf
Section "Files"
FontPath "/usr/share/fonts/misc"
FontPath "/usr/share/fonts/corefonts"
FontPath "/usr/share/fonts/terminus"
EndSection
Section "ServerFlags"
Option "DefaultServerLayout" "Default"
Option "BlankTime" "5"
Option "StandbyTime" "10"
Option "SuspendTime" "15"
Option "OffTime" "20"
Option "AllowDeactivateGrabs" "yes"
Option "AllowClosedownGrabs" "yes"
EndSection
Section "Module"
SubSection "extmod"
Option "omit xfree86-dga"
EndSubSection
Load "bitmap"
Load "dbe"
Load "ddc"
Load "dri"
Load "extmod"
Load "freetype"
Load "glx"
Load "int10"
Load "record"
Load "type1"
Load "vbe"
Load "synaptics"
Load "evdev"
EndSection
Section "InputDevice"
Identifier "Keyboard"
Driver "keyboard"
Option "CoreKeyboard"
Option "XkbModel" "pc105"
Option "XkbLayout" "us,ru(winkeys)"
Option "XkbOptions" "grp:rctrl_toggle,grp_led:scroll"
EndSection
Section "InputDevice"
Identifier "Mouse"
Driver "evdev"
Option "Name" "Logitech USB Receiver"
Option "SendCoreEvents" "true"
Option "Resolution" "800"
Option "HWheelRelativeAxisButtons" "7 6"
EndSection
Section "InputDevice"
Identifier "Vaio Keys"
Driver "evdev"
Option "Name" "Sony Vaio Keys"
EndSection
Section "InputDevice"
Identifier "Touchpad"
Driver "synaptics"
Option "Device" "/dev/psaux"
Option "Protocol" "auto-dev"
Option "CorePointer"
Option "SHMConfig" "on"
Option "LeftEdge" "120"
Option "RightEdge" "900"
Option "TopEdge" "0"
Option "BottomEdge" "600"
Option "FingerLow" "30"
Option "FingerHigh" "39"
Option "MaxTapTime" "270"
Option "SingleTapTimeout" "180"
Option "MaxTapMove" "1"
Option "MaxDoubleTapTime" "130"
Option "FastTaps" "1"
Option "VertEdgeScroll" "1"
Option "HorizEdgeScroll" "1"
Option "VertTwoFingerScroll" "1"
Option "HorizTwoFingerScroll" "1"
Option "VertScrollDelta" "20"
Option "HorizScrollDelta" "20"
Option "EdgeMotionMinZ" "30"
Option "EdgeMotionMaxZ" "160"
Option "EdgeMotionMinSpeed" "200"
Option "EdgeMotionMaxSpeed" "200"
Option "EdgeMotionUseAlways" "1"
Option "MinSpeed" "1"
Option "MaxSpeed" "1"
Option "AccelFactor" "0.01"
Option "PressureMotionMinZ" "30"
Option "PressureMotionMaxZ" "160"
Option "PressureMotionMinFactor" "1"
Option "PressureMotionMaxFactor" "1"
Option "UpDownScrolling" "1"
Option "LeftRightScrolling" "1"
Option "UpDownRepeat" "1"
Option "LeftRightRepeat" "1"
Option "ScrollButtonRepeat" "100"
Option "EmulateMidButtonTime" "30"
Option "TouchpadOff" "0"
Option "GuestMouseOff" "0"
Option "LockedDrags" "0"
Option "RTCornerButton" "2"
Option "RBCornerButton" "2"
Option "LTCornerButton" "3"
Option "LBCornerButton" "3"
Option "TapButton1" "1"
Option "TapButton2" "2"
Option "TapButton3" "3"
Option "CircularScrolling" "1"
Option "CircScrollDelta" "0.1"
Option "CircScrollTrigger" "3"
Option "CircularPad" "0"
Option "PalmDetect" "1"
Option "PalmMinWidth" "10"
Option "PalmMinZ" "200"
Option "CoastingSpeed" "0"
Option "MaxDoubleTapTime" "270"
Option "Emulate3Buttons" "true"
EndSection
Section "Device"
Identifier "Video Card"
#-------- old i810
Driver "i810"
VideoRam 131072
Option "XaaNoOffscreenPixmaps" "true"
Option "XaaNoPixmapCache" "true"
Option "LinearAlloc" "8160"
Option "AperTexSize" "65536"
Option "VBERestore" "true"
Option "DisplayInfo" "false"
#------- new Intel
# Driver "intel"
# Option "monitor-TV" "TV"
# Option "FrameBufferCompression" "true"
#-------
Screen 0
BusID "PCI:0:2:0"
Option "SWCursor" "0"
Option "DRI" "true"
Option "NoAccel" "false"
EndSection
Section "Monitor"
Identifier "LFP"
Option "DPMS" "true"
HorizSync 31.5-90.0
VertRefresh 60
Modeline "1366x768" 88.03 1366 1424 1680 1816 768 770 782 808 -HSync +Vsync
DisplaySize 360 203 # 96 dpi
EndSection
Section "Monitor"
Identifier "TV"
Option "Ignore" "True"
EndSection
Section "Screen"
Identifier "Local"
Device "Video Card"
Monitor "LFP"
DefaultDepth 24
SubSection "Display"
Depth 24
Modes "1366x768" "1024x768" "1064x600" "800x600" "640x480"
EndSubSection
EndSection
Section "ServerLayout"
Identifier "Default"
Screen 0 "Local" 0 0
InputDevice "Keyboard" "CoreKeyboard"
InputDevice "Touchpad" "CorePointer"
InputDevice "Mouse" "SendCoreEvents"
InputDevice "Vaio Keys" "SendCoreEvents"
EndSection
Section "DRI"
Group 0
Mode 0666
EndSection
# emerge --info
Portage 2.1.4_rc3 (default-linux/x86/2007.0/desktop, gcc-4.2.2, glibc-2.7-r0, 2.6.23-gentoo-r2 i686)
=================================================================
System uname: 2.6.23-gentoo-r2 i686 Intel(R) Pentium(R) M processor 1.30GHz
Timestamp of tree: Sat, 24 Nov 2007 19:30:01 +0000
ccache version 2.4 [enabled]
app-shells/bash: 3.2_p17-r1
dev-lang/python: 2.5.1-r4
dev-util/ccache: 2.4-r7
sys-apps/baselayout: 1.12.10-r5
sys-apps/sandbox: 1.2.18.1-r2
sys-devel/autoconf: 2.13, 2.61-r1
sys-devel/automake: 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10
sys-devel/binutils: 2.18-r1
sys-devel/gcc-config: 1.4.0-r4
sys-devel/libtool: 1.5.24
virtual/os-headers: 2.6.23-r2
ACCEPT_KEYWORDS="x86 ~x86"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-Os -mtune=pentium-m -march=pentium-m -pipe -fomit-frame-pointer -fno-ident -frename-registers -falign-functions=64"
CHOST="i686-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"
CONFIG_PROTECT_MASK="/etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/revdep-rebuild /etc/splash /etc/terminfo /etc/udev/rules.d"
CXXFLAGS="-Os -mtune=pentium-m -march=pentium-m -pipe -fomit-frame-pointer -fno-ident -frename-registers -falign-functions=64"
DISTDIR="/srv/distfiles"
EMERGE_DEFAULT_OPTS="--alphabetical"
FEATURES="buildpkg ccache digest distlocks fixpackages metadata-transfer sandbox sfperms strict unmerge-orphans userfetch"
GENTOO_MIRRORS="http://mirror.switch.ch/ftp/mirror/gentoo/"
LANG="ru_RU.UTF-8"
LC_ALL="ru_RU.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,-z,now -Wl,--hash-style=gnu"
LINGUAS="ru"
MAKEOPTS="-j2"
PKGDIR="/srv/packages"
PORTAGE_RSYNC_EXTRA_OPTS="--progress"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --filter=H_**/files/digest-*"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage/layman/xeffects /usr/local/portage/local /usr/local/portage/server"
SYNC="rsync://127.0.0.1/gentoo-portage"
USE="X a52 aac accessibility acl acpi aiglx alsa amr aoss bash-completion berkdb bitmap-fonts bjam blender-game bluetooth bzip2 cairo cdr charconv cli colordiff cracklib cups dbus dri dts dvd dvdr dvdread eap-tls emboss encode evo fbcon fbsplash ffmpeg fortran freetype gif glibc-omitfp gpm gps hal iconv idle isdnlog jpeg kde kdeenablefinal kdehiddenvisibility kipi ldap logrotate mad midi mikmod mmx mng moznopango mp3 mpeg mudflap musicbrainz ncurses network network-cron nls no-old-linux nptl nptlonly nsplugin ogg opengl openmp pam pcmcia pcre pdf perl pertty pic png pppd python qmax qt-copy qt3 qt3support radius rdesktop readline reflection samba sasl sdl session skype slang speex spl sse sse2 ssl svg threads tidy tiff timidity transparency trayicon truetype truetype-fonts type1-fonts unicode usb userlocales vchroot vorbis wideband wifi win32codecs x264 x86 xcomposite xine xml xorg xv xvid" ALSA_CARDS="hda-intel" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev synaptics" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="ru" USERLAND="GNU" VIDEO_CARDS="vesa i810"
Unset: CPPFLAGS, CTARGET, INSTALL_MASK, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS
- Для комментирования войдите или зарегистрируйтесь
Единственное,
Единственное, что нагуглил: "The log reads fake keypress event every 5 - 10 minutes."
Т.е. kaffeine каждые 5-10 минут сам производит псевдонажатия клавиш. Если скринсейвер стоит на время, меньшее, то наверное, уже никак. Хотя судя по changelog, там несколько раз улучшали обработку этого дела.
Не, там время
Не, там время срабатывания таймера 55 секунд:
m_screensaverTimer.start( 55000 );
Так что причина не в этом. Когда я дебагил сырцы, то проблема возникала при вызове вот этого куска кода:
#ifdef HAVE_XTEST
haveXTest = false;
int dummy_event, dummy_error, dummy_major, dummy_minor;
if (XTestQueryExtension(x11Display(), &dummy_event, &dummy_error, &dummy_major, &dummy_minor)) {
fakeKeycode = XKeysymToKeycode(x11Display(), XK_Shift_L);
if (fakeKeycode != 0)
haveXTest = true;
}
#endif
Вернее при вызове функции XTestQueryExtension - она все время возвращала false, соответственно и переменная haveXTest тоже оставалась в false.
Откуда ноги
Вот, наметилось частичное решение проблемы, по крайней мере удалось выявить откуда ноги растут.
Если запускать сессию из kdm то имеем:
$ xdpyinfo -ext XTEST|grep XTEST
XTEST extension not supported by server
А если через startx или xdm, то все хорошо:
$ xdpyinfo -ext XTEST|grep XTEST
XTEST
XTEST version 2.2 opcode: 147
kdm собран так:
kde-base/kdm-3.5.8-r1 USE="-arts -debug kdeenablefinal kdehiddenvisibility pam -xinerama"
Пробовал полностью удалять хоум пользователя - те же результаты. Пробовал запускать без xorg.conf - то же самое.
То есть проблема где-то в kdm, а где - пока непонятно. Буду копать...
Решено!
Покопавшись в файле:
/usr/kde/3.5/share/config/kdm/kdmrc
Углядел вот такую строчку:
ServerArgsLocal=-nolisten tcp -tst
Естественно -tst удалил, после чего все заработало.
Совершенно не помню, когда я туда добавил эту опцию...:(