-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi, 

I am developing the touchscreen driver for the Lifebook B-Series. 
Newer versions of X enforce the setting "CorePointer" in the file 
XF86Config-4 (older versions did not). If "CorePointer" is set KDE and 
Gnome seem to stall (Well actually the X-Server exits with Signal 11). 

It seems that a call to the Function "XGetPointerControl" causes this 
fault. Below you'll find the source of a little test program which 
causes the error. This error is independent of the version of my driver 
you use (download from www.conan.de/lifebook/lifebook.html). I think 
someone from the xfree-team has a 2154-model of the B-Series -- it 
would be very nice if he could help me and try to find out more about 
this failure. 

I think something is wrong in my driver but the X-Server shouldn't 
stall either. 

Below you find the test program and my XF86Config-4 which causes this 
error. 

Thank for your help


        Kenan





***********************Test-program*********************************************************

#include <stdlib.h>             /* getenv(), etc. */
#include <unistd.h>             /* sleep(), etc.  */
#include <stddef.h>
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>
#include <pthread.h>

#include <X11/keysym.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>          /* BitmapOpenFailed, etc.    */
#include <X11/cursorfont.h>     /* pre-defined crusor shapes */
#include "lb_calibrate.h"

int main (void)
{
        unsigned char map[5];
        int num_buttons;
        int accel_num, accel_den, threshold;

        Display* display;
        Screen* screen;
        Window win;

        Colormap cmap;

        int depth;
        int screen_num;
        int screen_width;
        int screen_height;
        Window root_window;

        /* 
           these variables will be used to store the IDs of the black and white
           colors of the given screen. More on this will be explained later.   
 
        */
        unsigned long white_pixel;
        unsigned long black_pixel;


        display = XOpenDisplay(":0");
        if (display == NULL) {
                fprintf(stderr, "Cannot connect to X server %s\n", ":0");
                exit(-1);
        }

        

        /* check the number of the default screen for our X server. */
        screen_num = DefaultScreen(display);

        /* find the width of the default screen of our X server, in pixels. */
        screen_width = DisplayWidth(display, screen_num);

        /* find the height of the default screen of our X server, in pixels. */
        screen_height = DisplayHeight(display, screen_num);

        /* find the ID of the root window of the screen. */
        root_window = RootWindow(display, screen_num);

        /* find the value of a white pixel on this screen. */
        white_pixel = WhitePixel(display, screen_num);

        /* find the value of a black pixel on this screen. */
        black_pixel = BlackPixel(display, screen_num);

        win = XCreateSimpleWindow(display,
                                  RootWindow(display, screen_num),
                                  0, 0, 
                                  screen_width, screen_height,
                                  2, 
                                  BlackPixel(display, screen_num),
                                  WhitePixel(display, screen_num));

        /*XQueryTree(display, win,
                   &root_win,
                   &parent_win,
                   &child_windows, &num_child_windows);
                   XFree(child_windows);*/

        screen = DefaultScreenOfDisplay(display);
        cmap = DefaultColormapOfScreen(screen);
        depth = XDefaultDepth(display, screen_num);


        XGetPointerControl( display,
                            &accel_num, &accel_den, &threshold );
        accel_num /= accel_den;   // integer acceleration only
        num_buttons = XGetPointerMapping(display, map, 5);


        XCloseDisplay(display);
        return 1;
}



***********************Test-program*********************************************************





***********************XF86Config-4********************************************************

#
# Copyright (c) 1999 by The XFree86 Project, Inc.
#
# Permission is hereby granted, free of charge, to any person obtaining 
a
# copy of this software and associated documentation files (the 
"Software"),
# to deal in the Software without restriction, including without 
limitation
# the rights to use, copy, modify, merge, publish, distribute, 
sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
# 
# The above copyright notice and this permission notice shall be 
included in
# all copies or substantial portions of the Software.
# 
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 
EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 
MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT 
SHALL
# THE XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
LIABILITY,
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 
OUT OF
# OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
# 
# Except as contained in this notice, the name of the XFree86 Project 
shall
# not be used in advertising or otherwise to promote the sale, use or 
other
# dealings in this Software without prior written authorization from the
# XFree86 Project.
#

# **********************************************************************
# Refer to the XF86Config(4/5) man page for details about the format of 
# this file.
# **********************************************************************

# **********************************************************************
# Module section -- this  section  is used to specify
# which dynamically loadable modules to load.
# **********************************************************************
#

#Section "Pointer"
#   Protocol        "Microsoft"
#   Device          "/dev/ttyS0"
#   Emulate3Timeout 50
#   Resolution      100
##   Buttons         2
#   Buttons         3
#   Emulate3Buttons
#EndSection


Section "Module"

# This loads the DBE extension module.
        Load        "dbe"       # Double buffer extension

# This loads the miscellaneous extensions module, and disables
# initialisation of the XFree86-DGA extension within that module.
    #SubSection  "extmod"
    #  Option    "omit xfree86-dga"   # don't initialise the DGA 
extension
    #EndSubSection

# This loads the Type1 and FreeType font modules
    Load        "type1"
    Load        "freetype"

# This loads the GLX module
    Load       "glx"
    Load       "GLcore"
    Load       "xie"
    Load       "record"
    Load       "dri"
EndSection

# **********************************************************************
# Files section.  This allows default font and rgb paths to be set
# **********************************************************************

Section "Files"

# The location of the RGB database.  Note, this is the name of the
# file minus the extension (like ".txt" or ".db").  There is normally
# no need to change the default.

    RgbPath     "/usr/X11R6/lib/X11/rgb"

# Multiple FontPath entries are allowed (which are concatenated 
together),
# as well as specifying multiple comma-separated entries in one FontPath
# command (or a combination of both methods)
# 
# If you don't have a floating point coprocessor and emacs, Mosaic or 
other
# programs take long to start up, try moving the Type1 and Speedo 
directory
# to the end of this list (or comment them out).
# 

#    FontPath   "/usr/X11R6/lib/X11/fonts/local/"
    FontPath   "/usr/X11R6/lib/X11/fonts/misc/"
    FontPath   "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled"
    FontPath   "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled"
    FontPath   "/usr/X11R6/lib/X11/fonts/Type1/"
    FontPath   "/usr/X11R6/lib/X11/fonts/Speedo/"
    FontPath   "/usr/X11R6/lib/X11/fonts/75dpi/"
    FontPath   "/usr/X11R6/lib/X11/fonts/100dpi/"

# The module search path.  The default path is shown here.

#    ModulePath "/usr/X11R6/lib/modules"

EndSection

# **********************************************************************
# Server flags section.
# **********************************************************************

Section "ServerFlags"

# Uncomment this to cause a core dump at the spot where a signal is 
# received.  This may leave the console in an unusable state, but may
# provide a better stack trace in the core dump to aid in debugging

#    Option "NoTrapSignals"

# Uncomment this to disable the <Crtl><Alt><BS> server abort sequence
# This allows clients to receive this key event.

#    Option "DontZap"

# Uncomment this to disable the <Crtl><Alt><KP_+>/<KP_-> mode switching
# sequences.  This allows clients to receive these key events.

#    Option "Dont Zoom"

# Uncomment this to disable tuning with the xvidtune client. With
# it the client can still run and fetch card and monitor attributes,
# but it will not be allowed to change them. If it tries it will
# receive a protocol error.

#    Option "DisableVidModeExtension"

# Uncomment this to enable the use of a non-local xvidtune client. 

#    Option "AllowNonLocalXvidtune"

# Uncomment this to disable dynamically modifying the input device
# (mouse and keyboard) settings. 

#    Option "DisableModInDev"

# Uncomment this to enable the use of a non-local client to
# change the keyboard or mouse settings (currently only xset).

#    Option "AllowNonLocalModInDev"

EndSection

# **********************************************************************
# Input devices
# **********************************************************************

# **********************************************************************
# Core keyboard's InputDevice section
# **********************************************************************

Section "InputDevice"

    Identifier  "Keyboard1"
    Driver      "Keyboard"
# For most OSs the protocol can be omitted (it defaults to "Standard").
# When using XQUEUE (only for SVR3 and SVR4, but not Solaris),
# uncomment the following line.

#    Option     "Protocol"      "Xqueue"

    Option "AutoRepeat" "500 30"

# Specify which keyboard LEDs can be user-controlled (eg, with xset(1))
#    Option     "Xleds"      "1 2 3"

#    Option "LeftAlt"     "Meta"
#    Option "RightAlt"    "ModeShift"

# To customise the XKB settings to suit your keyboard, modify the
# lines below (which are the defaults).  For example, for a non-U.S.
# keyboard, you will probably want to use:
#    Option "XkbModel"    "pc102"
# If you have a US Microsoft Natural keyboard, you can use:
#    Option "XkbModel"    "microsoft"
#
# Then to change the language, change the Layout setting.
# For example, a german layout can be obtained with:
#    Option "XkbLayout"   "de"
# or:
#    Option "XkbLayout"   "de"
#    Option "XkbVariant"  "nodeadkeys"
#
# If you'd like to switch the positions of your capslock and
# control keys, use:
#    Option "XkbOptions"  "ctrl:swapcaps"

# These are the default XKB settings for XFree86
#    Option "XkbRules"    "xfree86"
#    Option "XkbModel"    "pc101"
#    Option "XkbLayout"   "us"
#    Option "XkbVariant"  ""
#    Option "XkbOptions"  ""

#    Option "XkbDisable"


# **********************************************************************
# Core Pointer's InputDevice section Option "XkbRules"  "xfree86"
    Option "XkbModel"   "pc105"
    Option "XkbLayout"  "de"
    Option "XkbVariant" "nodeadkeys"
    Option "XkbOptions" "grp:toggle,ctrl:ctrl_aa,grp_led:caps"
# **********************************************************************


#    Option "XkbRules"  "xfree86"
#    Option "XkbModel"  "pc101"
#    Option "XkbLayout" "de"
#    Option "XkbVariant"        "nodeadkeys"
#    Option "XkbOptions"        "grp:switch,ctrl:nocaps,grp_led:num"
EndSection


Section "InputDevice"

# Identifier and driver

    Identifier  "Mouse1"
    Driver      "mouse"
    Option "Protocol"    "PS/2"
    #Option "Protocol"    "Microsoft"
    Option "Device"      "/dev/psaux"

# When using XQUEUE, comment out the above two lines, and uncomment
# the following line.

#    Option "Protocol"  "Xqueue"

# Baudrate and SampleRate are only for some Logitech mice. In
# almost every case these lines should be omitted.

#    Option "BaudRate"  "9600"
#    Option "SampleRate"        "150"

# Emulate3Buttons is an option for 2-button Microsoft mice
# Emulate3Timeout is the timeout in milliseconds (default is 50ms)

    Option "Emulate3Buttons"
    Option "Emulate3Timeout"    "50"

# ChordMiddle is an option for some 3-button Logitech mice

#    Option "ChordMiddle"

EndSection

Section "InputDevice"
          Identifier    "touchscreen"
          Driver        "lbtouch"
          Option        "Device"        "/dev/psaux" 
          #Option       "Device"        "/dev/ttyS1" 
          #Option       "DeviceName"    "touchscreen"
        #Option        "MinX"        "86"
        #Option        "MinY"        "37"
        #Option        "MaxX"        "955"
        #Option        "MaxY"        "937"
        Option        "MinX"        "86"
        Option        "MinY"        "37"
        Option        "MaxX"        "958"
        Option        "MaxY"        "940"
        Option        "x0"        "-9"
        Option        "y0"        "-2"
        Option        "x1"        "4"
        Option        "y1"        "-4"
        Option        "x2"        "6"
        Option        "y2"        "-6"
        Option        "x3"        "-7"
        Option        "y3"        "1"
        Option        "x4"        "3"
        Option        "y4"        "-1"
        Option        "x5"        "4"
        Option        "y5"        "-2"
        Option        "x6"        "-2"
        Option        "y6"        "1"
        Option        "x7"        "3"
        Option        "y7"        "0"
        Option        "x8"        "-1"
        Option        "y8"        "-2"
          Option        "ReportingMode" "Raw"
          #Option       "DebugLevel" "9"
          Option        "Emulate3Buttons" 
          Option        "Emulate3Timeout" "50"
          Option        "SendCoreEvents" "On"
          #Option        "Calibrate"   "1"
EndSection


# **********************************************************************
# Monitor section
# **********************************************************************

# Any number of monitor sections may be present

Section "Monitor"

    Identifier  "lcd"

# HorizSync is in kHz unless units are specified.
# HorizSync may be a comma separated list of discrete values, or a
# comma separated list of ranges of values.
# NOTE: THE VALUES HERE ARE EXAMPLES ONLY.  REFER TO YOUR MONITOR'S
# USER MANUAL FOR THE CORRECT NUMBERS.

    HorizSync   31.5 - 48.5

#    HorizSync  30-64         # multisync
#    HorizSync  31.5, 35.2    # multiple fixed sync frequencies
#    HorizSync  15-25, 30-50  # multiple ranges of sync frequencies

# VertRefresh is in Hz unless units are specified.
# VertRefresh may be a comma separated list of discrete values, or a
# comma separated list of ranges of values.
# NOTE: THE VALUES HERE ARE EXAMPLES ONLY.  REFER TO YOUR MONITOR'S
# USER MANUAL FOR THE CORRECT NUMBERS.

    VertRefresh 50-90
    DisplaySize 213 160
    

EndSection


# **********************************************************************
# Graphics device section
# **********************************************************************

# Any number of graphics device sections may be present

# Standard VGA Device:

Section "Device"
    Identifier  "Standard VGA"
    VendorName  "Unknown"
    BoardName   "Unknown"

# The chipset line is optional in most cases.  It can be used to 
override
# the driver's chipset detection, and should not normally be specified.

#    Chipset    "generic"

# The Driver line must be present.  When using run-time loadable driver
# modules, this line instructs the server to load the specified driver
# module.  Even when not using loadable driver modules, this line
# indicates which driver should interpret the information in this 
section.

    Driver     "vga"
# The BusID line is used to specify which of possibly multiple devices
# this section is intended for.  When this line isn't present, a device
# section can only match up with the primary video device.  For PCI
# devices a line like the following could be used.  This line should not
# normally be included unless there is more than one video device
# intalled.

#    BusID      "PCI:0:10:0"

#    VideoRam   256

#    Clocks     25.2 28.3

EndSection

# Device configured by xf86config:

Section "Device"
    Identifier  "mach64"
    Driver      "ati"
    #VideoRam    4096
    # Insert Clocks lines here if appropriate
EndSection


# **********************************************************************
# Screen sections
# **********************************************************************

# Any number of screen sections may be present.  Each describes
# the configuration of a single screen.  A single specific screen 
section
# may be specified from the X server command line with the "-screen"
# option.
Section "Screen"
    Identifier  "Screen 1"
    Device      "mach64"
    Monitor     "lcd"
    DefaultDepth 16

    Subsection "Display"
        Depth       8
        Modes       "640x480" "800x600" "1024x768" "1280x1024"
        ViewPort    0 0
    EndSubsection
    Subsection "Display"
        Depth       16
        Modes       "800x600" "1024x768" "1280x1024"
        ViewPort    0 0
    EndSubsection
    Subsection "Display"
        Depth       24
        Modes       "800x600" "1024x768" "1280x1024"
        ViewPort    0 0
    EndSubsection
EndSection

# **********************************************************************
# ServerLayout sections.
# **********************************************************************

Section "ServerLayout"

# The Identifier line must be present
    Identifier  "Simple Layout"

# Each Screen line specifies a Screen section name, and optionally
# the relative position of other screens.  The four names after
# primary screen name are the screens to the top, bottom, left and right
# of the primary screen.  In this example, screen 2 is located to the
# right of screen 1.

    Screen "Screen 1"

# Each InputDevice line specifies an InputDevice section name and
# optionally some options to specify the way the device is to be
# used.  Those options include "CorePointer", "CoreKeyboard" and
# "SendCoreEvents".

    #InputDevice "Mouse1" "CorePointer"
    InputDevice "Keyboard1" "CoreKeyboard"
    InputDevice "touchscreen" "CorePointer"
    #InputDevice "touchscreen"

EndSection

Section "DRI"
        Mode 0666
EndSection

***********************XF86Config-4********************************************************


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org

iD8DBQE8cTp/5tWSo2eXmVARAplsAJ97bWrLZCiucA/+3ivHcrguDy3HcwCgm6o7
quqEIQLDHAmuPUKXPr6lHVY=
=HYCi
-----END PGP SIGNATURE-----
_______________________________________________
Xpert mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/xpert

Reply via email to