This wiki contains information about the aiptek-based USB tablet for Linux and X11, not to be confused with the older serial-based hyperpen module. This tablet is also known as a Dolphin, Medion (Aldi tablet), Nisis and other generic brands.
The xserver-xorg-input-aiptek package must be installed to use this tablet.
Support for the Aiptektablet has improved a lot since Ubuntu 8.04, but there are still many problems. The main problem is setting the correct configuration.
Ubuntu 13.10 (Saucy Salamander)
Configuration
for Saucy as usual make sure first to install aiptek xorg driver with:
sudo apt-get install xserver-xorg-input-aiptek
Then in /usr/share/X11/xorg.conf.d add a config file called 50-aiptek.conf (the 50 is important), containing following text:
Section "InputClass" Identifier "Aiptek class" MatchProduct "Aiptek|AIPTEK|aiptek" MatchDevicePath "/dev/input/event*" Driver "aiptek" Option "USB" "on" Option "Type" "stylus" Option "Mode" "absolute" Option "zMin" "0" Option "zMax" "511" EndSection
reboot and check in xorg log if the driver has been correctly loaded. This should work also for previous versions of Ubuntu as 12.04.
Ubuntu 10.10 (Maverick Meerkat)
Configuration
Maverick users will have to face yet another change in configuration system. Follow instructions for Lucid Lynx that you find on this page, but pay attention because the location where you have to put the X server config file has changed again: instead of writing a 10-aiptek.conf in /usr/lib/X11/xorg.conf.d directory, you must put it in /usr/share/X11/xorg.conf.d The rest of the instructions for Lucid should work in Maverick as well. We need some testing in order to find out if the problems with function-keys that were present in xorg under Lucid are solved in Maverick. If, after following the instructions below, your tablet functions using only the minimal fail-safe evdev drivers or has other problems, try changing the name of the 10-aiptek.conf file into 50-aiptek.conf.
Ubuntu 10.04 (Lucid Lynx)
Configuration
With 'Lucid' (10.04), HAL has been dropped in favor of a udev based system, so the configuration system for our Aiptek tablets has to be changed again. Basically we use an approach similar to the one used with older Ubuntu releases:
at startup, udev by default will identify our tablet as an evdev input device, so we must write an udev rule to tell xorg to load aiptek driver: in /lib/udev/rules.d add a file (e.g. 69-xserver-xorg-input-aiptek.rules) with something like this:
ACTION!="add|change", GOTO="xorg_aiptek_end" KERNEL!="event[0-9]*", GOTO="xorg_aiptek_end" ATTRS{idVendor}=="08ca", ENV{x11_driver}="aiptek", SYMLINK+="input/aiptektablet" LABEL="xorg_aiptek_end"
'08ca' is for Aiptek tablets in general, maybe it would be nicer and wiser to fine-tune better the udev rule using product id, but this is just an example.
Then we must configure the xorg driver. In Lucid you can write an old style 'xorg.conf', but the recomended method uses sort of config snippets located in /usr/lib/X11/xorg.conf.d directory. There you must add our tablet config file (e.g. 10-aiptek.conf) containing something like:
Section "InputClass" Identifier "pen" MatchProduct "Aiptek|AIPTEK|aiptek" MatchDevicePath "/dev/input/event*" Driver "aiptek" Option "SendCoreEvents" "true" Option "USB" "on" Option "Type" "stylus" Option "Mode" "absolute" Option "zMin" "0" Option "zMax" "511" EndSection
Restart udev and X, and you should have a working tablet, with pressure working.
Unfortunately not all is ironed out: you will probably have a stylus tip acting as left-mouse button, but no other button working. In this case open a terminal and try:
xinput get-button-map Aiptek
it will probably return "1 2 3 4 5" try then to remap the buttons with:
xinput set-button-map Aiptek 1 3 2 4 5
You should have now a stylus with tip acting as button 1, and probably partially working stylus buttons, acting as right click (and middle click if you're really lucky), but the button mapping needs a bit more investigation. Button mapping will be lost at session restart, so you must add it to session startup configuration if you want to make it permanent. In case your buttons won't work, it may be due to some work yet to be done on the driver in order to make it interact better with newer version of xserver, but first of all check your stylus battery (I had buttons working much better after replacing mine).
As a final note, be aware that at present tablet's function-keys won't work under Lucid as X server 1.7 has a different initialization method for key events that is currently not employed at all by the aiptek driver. So under 1.7, the driver has no key symbols at all
Ubuntu 8.10 - Ubuntu 9.10
Configuration
Make sure your tablet is not plugged in
The settings for the tablet are now stored with HAL, so no longer does one have to edit xorg.conf
After the xserver-xorg-input-aiptek package has been installed, create the file 10-linuxaiptek.fdi, in the directory /usr/share/hal/fdi/policy with content:
<?xml version="1.0" encoding="UTF-8"?> <deviceinfo version="0.2"> <device> <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.USB" type="string">On</merge> <merge key="input.x11_options.Type" type="string">stylus</merge> <merge key="input.x11_options.Mode" type="string">absolute</merge> </match> </device> </deviceinfo>
Then plug in your tablet to get it working.
If clicks and pressure are not working as expected, add the following lines
<merge key="input.x11_options.zMin" type="string">0</merge> <merge key="input.x11_options.zMax" type="string">511</merge>
just above the </match> line in the above file, then unplug and plugin your tablet again. Note that at the time of this writing there's a bug that causes X to restart when you unplug your tablet: Unplugging USB tablet crashes xserver Check if it's fixed, if not you may want to close all open applications before unplugging your tablet.
If your tablet has 1024 levels of pressure sensitivity, change that the to 1023, although 511 should work just fine.
If your monitor's screen ratio differs from your tablet's active area's ratio, or if you may want to use your monitor in a portrait orientation, adding this line (also before the </match> line) will crop down the tablet's area to fit your screen.
<merge key="input.x11_options.KeepShape" type="string">On</merge>
udev rules
Ubuntu 8.10 - 9.10 does not require special udev rules for the tablet to work.
Wacom driver
Some tablets (6000U, 12000U, 14000U) seems to use Wacom drivers, if you experience problems with button presses (Your mouse pointer freezes), but you can move the cursor try the updated packets for Wacom.
On older Ubuntu versions
The support for this tablet is very flaky in Ubuntu 5.04 (Hoary Hedgehog), 5.10 (Breezy Badger), and possibly 6.06 (Dapper Drake), but it is possible to get half-working. Ubuntu does have the module in the kernel and the X11 driver, but they don't work very well and need to be replaced with the ones from CVS (especially the xorg driver). The unified_package is too out of date and should not be used at all.
Setup
This tablet is a little tricky to set up, but this is what I have done to get it to work at least in Wine Photoshop 7:
Before beginning you should back up your current version of xorg.conf. If anything goes wrong in the steps below, you could be prevented from booting into X. Having an easily restored working version of xorg.conf could save you a lot of trouble. (if you have already modified xorg.conf and are now stuck at a terminal screen unable to load X, use
sudo nano /etc/x11/xorg.conf
to edit xorg.conf back to it's original state.Create an udev rules file called '/etc/udev/rules.d/61-aiptek.rules' and add the following content to it:
BUS=="usb", DRIVER=="aiptek", KERNEL=="event[0-9]*", SYMLINK+="input/aiptektablet" KERNEL=="event[0-9]*", SYSFS{vendor_id}=="0x08ca", SYMLINK+="input/aiptektablet"
Then restart udev with
sudo /etc/init.d/udev restart
and your /dev/input/aiptektablet symlink should now appear.If it does not, see UDEV-TroubleShooting.
In your xorg.conf, put the following under your other input device entries:
Section "InputDevice" Identifier "pen" Driver "aiptek" # Option "Device" "/dev/input/eventX" Option "Device" "/dev/input/aiptektablet" Option "Type" "stylus" Option "Mode" "absolute" Option "Cursor" "stylus" Option "PressCurve" "0,5,95,100" Option "zMin" "0" Option "zMax" "512" Option "zThreshold" "0" Option "USB" "on" Option "KeepShape" "on" Option "AlwaysCore" "on" EndSection
Under Section "ServerLayout" (at or near the bottom of xorg.conf), put:
InputDevice "pen" "SendCoreEvents"
Under Ubuntu Intrepid, input devices configuration is not done with xorg.conf. Instead, create the file /etc/hal/fdi/policy/10-aiptek.fdi containing :<?xml version="1.0" encoding="ISO-8859-1" ?> <deviceinfo version="0.2"> <device> <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> </match> </device> </deviceinfo>
Ensure your mouse (probably Configured Mouse) is set to CorePointer. See man xorg.conf for a description of the AlwaysCore and SendCoreEvents options. All other options are explained in man aiptek.
Make sure the aiptek module is loaded (and the tablet is plugged in!), check by using either:
dmesg |grep aiptek
or
lsmod |grep aiptek
if neither of these work, try
sudo modprobe aiptek
Restart X by logging out and back in, with your fingers crossed if this is possible...
- PROFIT!
If the tablet plays around like the "absolute" option isn't all that "absolute" to your screen, or pressure sensitivity doesn't work at all, try using the aiptek CVS. There is a newer module to update for kernel 2.4.x and 2.6.x as well as an imake for the xserver driver (this might mean trouble for the new modular xorg7). If you can't compile it like me (it compiles on fedora core and opensuse just fine with the right stuff installed) then try to copy the pre-made driver out of the unified package.
Issues
- Once pressure-sensitivity is enabled, programs such as GIMP (with it enabled in preferences) have a weird bug where the tablet has locked focus and never registers that the pen is off of the tablet, thus locking up the mouse from anything else and will continue to draw forever unless GIMP is killed. I hope this is just an issue with Gnome/GIMP and a later version fixes this (I've only tested the one which came with Ubuntu 5.10). Krita also plays up with pressure sensitivity but not in the same way, but I haven't really tested this program all that much. Photoshop 7 under Wine/Crossover Office works perfectly with this tablet and sensitivity.
Untested: This is easily fixed (at least with every version of the aiptek kernel and X drivers I have used so far). The problems is that the tablet is simultaneously set up both as a mouse (delivering events via /dev/input/mice or some such) and a tablet (/dev/input/eventX) in the X configuration. The solution is to change the mouse device to the device that is ONLY the mouse (eg /dev/input/mouse0), not one that is a mix of all input devices. Gimp then behaves as it should (and the system locks up less!)
- When the tablet isn't plugged in, xorg will fail to start due to no /dev/input/eventX being listed. Is there a way so that xorg can just ignore this entry and start without it? When there's no keyboard and mouse it doesn't halt this way.
- In the old unified_package, there is an entry for hotplug information so that it makes a /dev/input/AiptekTablet rather than a random /dev/input/eventX point (very good for xorg to find it with this entry instead of manually editing the xorg.conf when there's another input device plugged in and changes the aiptek's event number). But hotplug has been replaced with udev. You need a rule now which detects the tablet info and creates the right device entry. How to do this is now step #2 in the above list.
If clicks and pressure are not working in Intrepid add the following lines to aforementioned 10-aiptek.fdi just after the other <merge's>
<merge key="input.x11_options.zMin" type="string">0</merge> <merge key="input.x11_options.zMax" type="string">1023</merge>
Preventing the tablet from acting as a mouse in intrepid is easier by setting in 10-aiptek.fdi:
<merge key="input.x11_options.SendCoreEvents" type="string">off</merge>
Other Notes
Comments below apply specifically to Ubuntu 6.06, but may apply to other versions as well:
- Removing the entries for wacom (I don't have one so i hoped disabling the entry might help) caused several errors in xorg since the server section had entries for the wacom tablet. Eventually, I could use startx and get a desktop.
- In use it's tricky to maintain registration, which seems to drift. Adjusting mouse speed settings helped but GIMP didn't recognise the tablet as such, although it is usable.
- I was using the tablet on a laptop so had a synaptic touch pad working at the same time. I found if I set some points on the edges of my sketch I could kind of calibrate the pen so I wouldn't drift too far off. After this, sketching using GIMP was quite easy, but tracing was a lot more difficult. Probably using just the mouse that comes with the tablet and the pen would result in fewer problems. Ksynaptic or qsynaptic should be able to disable the built in trackpad on the laptop.
UDEV-TroubleShooting
If the rule did not work, you want to write your own.
Get Information about your device by plugging it in and calling
dmesg | tail
which should you give something like this:
[ 6452.359600] usb 1-1: new low speed USB device using uhci_hcd and address 5 [ 6452.538397] usb 1-1: configuration #1 chosen from 1 choice [ 6455.002229] /build/buildd/linux-2.6.24/drivers/input/tablet/aiptek.c: input: Aiptek using 400 ms programming speed [ 6455.002232] [ 6455.002321] input: Aiptek as /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1:1.0/input/input9
Here we need the devpath /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1:1.0/input/input9 for udevinfo
devpath=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1:1.0/input/input9 udevinfo -a -p $devpath | less
to get
# ... looking at device '/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1:1.0/input/input9': KERNEL=="input9" SUBSYSTEM=="input" DRIVER=="" ATTR{name}=="Aiptek" ATTR{phys}=="usb-0000:00:1a.0-1/input0" # ... looking at parent device '/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1:1.0': KERNELS=="1-1:1.0" SUBSYSTEMS=="usb" DRIVERS=="aiptek" ATTRS{size}=="3000x2250" ATTRS{pointer_mode}=="either" ATTRS{model_code}=="0x0064" # ...
Add udev-rule, that matches attributes which uniquely identify our device and adds a symlink:
sudo bash rule='SUBSYSTEMS=="usb", DRIVERS=="aiptek", ATTRS{size}=="3000x2250", ATTRS{model_code}=="0x0064", SYMLINK+="input/aiptektablet"' echo $rule > /etc/udev/rules.d/61-aiptek.rules exit
Restart udev and see if the device is there:
sudo /etc/init.d/udev restart ls /dev/input/ | grep aiptek
Links
Launchpad xserver-xorg-input-aiptek package
SVN Svn repository where original development happened. X driver is now in xorg, and kernel driver in kernel development. Gaiptek in svn is unmaintained.
http://ubuntuforums.org/showthread.php?t=122735