Aiptek Tablet

From Gentoo-en
Jump to: navigation, search


This HOWTO is going to explain how to make your USB Aiptek tablet work, including pressure sensitivity.

The two main tablet manufacturers are Aiptek and Wacom, of which Aiptek is the cheaper one. Most Aiptek tablets are rebranded by local distributors, so when you buy a cheap tablet from your local discounter, it'll probably be an Aiptek. lsusb should tell you the manufacturer if you want to be sure.

Installing the kernel driver

The Aiptek kernel driver is included in the main kernel tree since 2.6.23, so no additional packages are needed. In addition to your usual USB drivers, you'll need the following:

Linux Kernel Configuration: Enabling aiptek tablets in the kernel (2.6.23+)
Device Drivers --->
    Input device support --->
        <*> Event interface
        [*] Tablets --->
             <M> Aiptek 6000U/8000U tablet support (USB)

Exit menuconfig and make the kernel.

make && make modules_install

Normally everyone has Event interface support compiled in so all you need is the Aiptek driver itself.

Try modprobing the module:

modprobe aiptek

If you see errors (check with dmesg), install your new kernel and reboot to apply the changes.

You may also want to add the following into your udev rules:

File: /etc/udev/rules.d/85-tablet-drivers.rules
# for Aiptek (vendor: 08ca) tablets
SUBSYSTEM=="usb", KERNEL=="event[0-9]*", ATTRS{idVendor}=="08ca", SYMLINK+="input/aiptek_event", OWNER="root", MODE="0666"
SUBSYSTEM=="usb", KERNEL=="mouse[0-9]*", ATTRS{idVendor}=="08ca", SYMLINK+="input/aiptek_mouse", OWNER="root", MODE="0666"

Install X11 drivers and configure xorg.conf

X11 drivers

This hasn't been verified, but you'll probably need {{>=x11-base/xorg-x11-7.3}}. Presently (29Nov08), this needs a little unmasking. Autounmask is recommended for this.

autounmask =x11-base/xorg-x11-7.3
emerge =x11-base/xorg-x11-7.3

and then

autounmask =x11-drivers/xf86-input-aiptek-1.1.1
emerge =x11-drivers/xf86-input-aiptek-1.1.1

xorg.conf (static configuration)

If you're using a static X11 configuration, edit /etc/X11/xorg.conf.

File: /etc/X11/xorg.conf
Section "ServerLayout"
        Identifier     " Configured"
        Screen      0  "Screen0" 0 0
        InputDevice    "Keyboard0" "CoreKeyboard"
        InputDevice     "Mouse0"        "CorePointer"
        InputDevice     "pen"           "AlwaysCore"
        InputDevice     "cursor"        "AlwaysCore"
        InputDevice     "eraser"        "AlwaysCore"

# From
Section "InputDevice"
        Identifier      "pen"
        Driver          "aiptek"
        Option          "Device"        "/dev/input/aiptek_event"
        Option          "Type"          "stylus"
        Option          "Mode"          "absolute"
        Option          "Cursor"        "stylus"
        Option          "USB"           "on"
        Option          "KeepShape"     "on"
        Option          "debuglevel"    "20"
        Option          "zMin"          "0"
        Option          "zMax"          "512"
        Option          "PressCurve"    "0,5,95,100"

Section "InputDevice"
        Identifier      "cursor"
        Driver          "aiptek"
        Option          "Device"        "/dev/input/aiptek_event"
        Option          "Type"          "cursor"
        Option          "Mode"          "absolute"
        Option          "Cursor"        "puck"
        Option          "USB"           "on"
        Option          "KeepShape"     "on"
        Option          "debuglevel"    "20"
        Option          "zMin"          "0"
        Option          "zMax"          "511"

Section "InputDevice"
        Identifier      "eraser"
        Driver          "aiptek"
        Option          "Device"        "/dev/input/aiptek_event"
        Option          "Type"          "eraser"
        Option          "Mode"          "absolute"
        Option          "Cursor"        "stylus"
        Option          "USB"           "on"
        Option          "KeepShape"     "on"
        Option          "debuglevel"    "20"
        Option          "zMin"          "0"
        Option          "zMax"          "511"

xf86-input-aiptek-1.1.1does not include sanity checking on zMax, and will clip pressure sensitivity to -1 if this is not set.

Option "PressCurve" "0,5,95,100" may or may not be a valid parameter.

with HAL (dynamic configuration)

If you're using HALD for automatic configuring your devices, you need to set some parameters in a FDI-file in /etc/hal/fdi/policy.

File: /etc/hal/fdi/policy/10-aiptek.fdi
<?xml version="1.0" encoding="ISO-8859-1" ?>
<deviceinfo version="0.2">
<match key="info.product" contains="Aiptek">
<merge key="input.x11_driver" type="string">aiptek</merge>
<merge key="input.x11_options.SendCoreEvents" type="string">true</merge>
<merge key="input.x11_options.Type" type="string">stylus</merge>
<merge key="input.x11_options.Mode" type="string">absolute</merge>
<merge key="input.x11_options.zMin" type="string">0</merge>
<merge key="input.x11_options.zMax" type="string">512</merge>

Here, too, you must not forget the "zMin" and "zMax" options. To be sure, restart both /etc/init.d/hald and /etc/init.d/xdm to be sure the correct configuration is loaded.


The tablet is configured under Inkscapeand Gimpin the same way: under Inkscape, File and Input devices, and under Gimp, File, Preferences, Input devices and Configure Extended Input devices. In the menu Device = Mouse, Mode = Screen. Device = pen, Mode = Screen and Pressure = 3: Save and Close.

There was a tablet manager called the Gaiptek Tablet Manager. This is no longer maintained and is not easy to install.


The tabled just keeps blinking

If the tablet is not working, check the battery in the pen. Always a good idea!

No move events

Sometimes the Kernel-driver selects a wrong "communication delay". In these cases the file /sys/module/aiptek/drivers/usb:aiptek/*/diagnostic (replace '*' with the correct UBS bus path) shows "Error: receiving relative reports", if the tablet was set to "absolute".

You need to set a delay more suiting your specific device (the actually needed value might vary from device to device). Usual values are 50 and 400ms. You can try any value this way:

echo "50" > /sys/module/aiptek/drivers/usb:aiptek/*/delay
echo done > /sys/module/aiptek/drivers/usb:aiptek/*/execute

After changing anything, you must write something to /sys/module/aiptek/drivers/usb:aiptek/*/execute, otherwise the changes are not applied.

After you found a working value (/sys/module/aiptek/drivers/usb:aiptek/*/diagnostic says "No errors." after moving the stylus around the tablet), you should tell modprobe to automatically set it when loading the module:

File: /etc/modprobe.d/aiptek.conf
options aiptek programmableDelay=50

Don't forget to run update-modules afterwards!

Links - The driver project with lots of information.

The original of this article is here