Acecad for linux Acecat Flair Acecat 302
D-Series, A-Series and Acecat I, II, III
Xfree86 Xorg Linux

Navigation

Home
Documentation
Mailling List
Downloads
SourceForge

Abstract

The acecad X server input module involves two components:
  • the first one is a linux kernel device that reads events from the acecad tablet (for USB models)
  • the second is a Xfree/Xorg module that allow the X server to use these events. The following instructions apply for 2.6 linux kernel, and Xfree 4.x, Xorg 7.x versions
  • Depending on the linux distribution you use, you may have only to configure the X server, or in the most complicated case, configure and build the linux kernel module, then X server module.

    Linux kernel side

    Checking for kernel module

    The usb acecad driver is part of the linux kernel since version 2.6.13. Most distributions will built it as a module. You can check it exists by typing 'modprobe acecd' logged as root in a command shell. If you get:
    FATAL: Module acecad not found.
    The driver is not compiled as a module and you have to follow the instructions in the next part, else you can go to the configuration section.

    building module

    In this case, first make sure you have installed the components needed from your distribution: kernel sources (with includes!) and a C compiler.
    Then, in a command shell go to the top of kernel sources. Which is often /usr/src/linux-2.6.x.y. the 'uname -a' command will tell the "x.y" version numbers.
    You have two ways of configuring the compilation of the module: make menuconfig or make xconfig. Use one of these and from top menu, go into 'Device Drivers' section. Then into 'USB support' section. There in 'USB Input Devices', tag the 'Acecad Flair tablet support' entry for modular build, and leave the configuration tool.
    Then compile it by 'make'. Intall it with 'make modules_install'.

    testing driver

    The acecad kernel module sends events from the table through an event device. Thes events devices are localted in the /dev/event directory. There will be a number of devices there for mouses, keyboards and tablets. Usually, these devices aren't readable for regular accounts, so you will ned to be logged as root to test.
    In case sysfs is working on your system, the /sys/bus/usb/drivers/usb_acecad directory will contain a link (named like '2-2:1.0') to another directory with all the informations on the device. There you'll find the name of the event device:
    # ls -l
    total 0 -r--r--r-- 1 root root 4096 2006-07-31 07:17 bAlternateSetting
    -r--r--r-- 1 root root 4096 2006-07-31 06:13 bInterfaceClass
    -r--r--r-- 1 root root 4096 2006-07-31 07:17 bInterfaceNumber
    -r--r--r-- 1 root root 4096 2006-07-31 06:13 bInterfaceProtocol
    -r--r--r-- 1 root root 4096 2006-07-31 06:13 bInterfaceSubClass
    -r--r--r-- 1 root root 4096 2006-07-31 07:17 bNumEndpoints
    lrwxrwxrwx 1 root root 0 2006-07-31 07:17 bus -> ../../../../../../bus/usb
    lrwxrwxrwx 1 root root 0 2006-07-31 07:17 driver -> ../../../../../../bus/usb/drivers/usb_acecad
    drwxr-xr-x 2 root root 0 2006-07-31 06:12 ep_81
    lrwxrwxrwx 1 root root 0 2006-07-31 07:26 input:event2 -> ../../../../../../class/input/input2/event2
    lrwxrwxrwx 1 root root 0 2006-07-31 07:17 input:input2 -> ../../../../../../class/input/input2
    lrwxrwxrwx 1 root root 0 2006-07-31 07:17 input:mouse1 -> ../../../../../../class/input/input2/mouse1
    -r--r--r-- 1 root root 4096 2006-07-31 07:17 modalias
    drwxr-xr-x 2 root root 0 2006-07-31 06:12 power
    --w------- 1 root root 4096 2006-07-31 07:17 uevent

    Here, the event device is event2. If you get:
    # cat -uv /dev/input/event2
    cat: /dev/input/event2: No such device

    Or no event device is listed, make sure that the evdev kernel module is loaded with:
    # modprobe evdev

    You can also try the few event devices you have until you found the right one (as the Xinput module does...).
    When doing 'cat -uv /dev/input/event2' there should be 'garbage' characters appearing in the console when you move the stylus. Do CTRL-C to stop it. You have a working kernel driver.

    X server side

    XFree

    Getting the sources

    svn co https://svn.sourceforge.net/svnroot/acecad acecad

    This will create an 'acecad' subdirectory in the current directory where you issued the command.

    Compiling and installing

    The Xfree version of the X input module is in acecad/acecad-xinput. Change to this directory. The build is configured by the following command:
    # xmkmf
    To compile, you only have to type 'make'. Installing is done by 'make install'.

    Configuration

    The Xfree configuration file is usually named XF86Config and located in /etc/X11 or /etc. Most recent linux distributions have a tool to configure the X server. Refer to their documentation if you use them. Else if you have problems or are configuring manually the server, use the instructions for configuring the Xorg driver. The only difference is the name of the configuration file you'll edit.

    Xorg

    The Xorg driver is for Xorg 7.x releases. For previous versions, or for the XFree X server, use the Xfree input module.

    Getting the sources

    You can get all the sources of the repository by doing:
    svn co https://svn.sourceforge.net/svnroot/acecad acecad

    This will create an 'acecad' subdirectory in the current directory where you issued the command.
    The Xorg version of the X module is in acecad/xf86-input-acecad . You have to change to this directory to configure and compile it.

    Compiling and installing

    Configuration is easy, just type './configure'.

    If you get:
    ...
    checking pkg-config is at least version 0.9.0... yes
    checking for XORG... configure: error: Package requirements (xorg-server >= 1.0.99.901 xproto ) were not met:

    No package 'xorg-server' found
    No package 'xproto' found

    Consider adjusting the PKG_CONFIG_PATH environment variable if you
    installed software in a non-standard prefix.

    Alternatively, you may set the environment variables XORG_CFLAGS
    and XORG_LIBS to avoid the need to call pkg-config.
    See the pkg-config man page for more details.

    You haven't the modular version installed, or installed in a non-stabdard location. You have to either upgrade your system to Xorg 7.X, or provide it's location in PKG_CONFIG_PATH. For instance, if it has been installed in /usr/X11R7, do :
    # export PKG_CONFIG_PATH=/usr/X11R7/lib/pkgconfig/:$PKG_CONFIG_PATH

    Once the configure step has been ran successfully, you can now build the driver just by typing 'make'. Intalling is done by 'make install'.

    Configuration

    The Xorg configuration file is usually named xorg.conf and located in /etc/X11 or /etc. Most recent linux distributions have a tool to configure the X server. Refer to their documentation if you use them. The following instructions are for configuring manually the server.
    The first step is to add the tablet as an input device to the X server. This done by addind an "InputDevice" section:
    Section "InputDevice"
        Identifier     "MyTablet"
        Driver         "acecad"
        Option         "Device" "auto-dev"
    EndSection
    
    This the minimal configuration to make the usb model work. You you have a serial model you have to specify the device used, and optionally the model:
    	Option "Device" "/dev/ttyS0"
    	Option "Model"  "A-Series"	# or use the "Flair", depending on your tablet
    

    Then you have to modify server layout to make use of this device:
    Section "ServerLayout"
    # The Identifier line must be present
    # 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.
    # 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"
        Identifier     "Simple Layout"
        Screen         "Screen 1" 0 0
        InputDevice    "Mouse1" "CorePointer"
        InputDevice    "Keyboard1" "CoreKeyboard"
        InputDevice    "Joystick1"
        InputDevice    "Joystick2"
        InputDevice    "MyTablet" "SendCoreEvents"
    EndSection
    
    The line InputDevice "MyTablet" instructs the server to add an input device, named MyTablet. This name has to be the same give in the "InputDevice" Section.
    The "SendCoreEvents" option tells the X server to use your stylus as a mean to move the pointer as well as the mouse. If you don't want such a behaviour, simply remove this option. Then only the mouse will move the pointer, and the tablet's stylus will be used only by applications making use of XInput device (such as gimp for instance).
    Once the server configured, you have to restart it.
    IN the server log (usualy /var/log/Xorg.0.log for Xorg or /var/log/Xfree.0.log for Xfree), there will be lines like this ones for an USB model:
    ...
    (**) Keyboard1: CustomKeycodes disabled
    (II) Acecad Tablet xinput driver v3.99 expe 07
    (**) Acecad Tablet is in absolute mode
    (**) Tablette Tablet is using standard button map
    (**) Tablette Tablet model is unspecified
    (**) Acecad Tablet reports 85 points/s
    (**) Option "SendCoreEvents"
    (**) Tablette: always reports core events
    (II) XINPUT: Adding extended input device "MyTablet" (type: TABLET)
    (II) XINPUT: Adding extended input device "Keyboard1" (type: KEYBOARD)
    (II) XINPUT: Adding extended input device "Mouse1" (type: MOUSE)
    (II) XINPUT: Adding extended input device "NVIDIA Event Handler" (type: Other)
    (**) Acecad Tablet Increment: 1
    (II) Mouse1: ps2EnableDataReporting: succeeded
    (--) MyTablet auto-dev sets Acecad Device to /dev/input/event2
    (**) Option "Device" "/dev/input/event2"
    (II) MyTablet grabbed event device
    (--) Kernel Input driver version is 1.0.0
    (--) Kernel Input device name: "Acecad USB Tablet"
    (--) Acecad Tablet MaxX:5000 MaxY:3750 MaxZ:512
    ...
    

    Copyright 2003-2006 E.TISSERANT and S. VOLTZ
    Unless otherwise noted, all material is licensed under the GPL License

    SourceForge Logo