View on GitHub
DIGImend
Improving Linux support for graphics tablets.

Tablet setup with xf86-input-wacom

It is intended that Waltop tablets be supported by the Wacom X driver. However things have been in a state of flux both in the kernel and with the Wacom and evdev X drivers. It is possible that your Waltop tablet might be better supported by the evdev driver.

The advantage the Wacom driver offers is stylus pressure on a Bezier curve rather than the simple linear curve of the evdev driver. This enables setting the stylus to firmer or softer feel. See the graphical javascript demo for viewing the results of manipulating the two control points.

In addition, the Wacom driver has a pressure threshold setting, while the evdev driver currently lacks it. With evdev, minimum pressure is always set to 0 and there is no option to vary that. If the stylus is too sensitive you can decrease the pressure sensitivity with the “Threshold” parameter.

A third benefit is the availability of the MapToOutput parameter if you are using your Waltop tablet in a multi-monitor setup.

Determining if you have a Waltop tablet

Because of re-branding it is not always obvious what tablet you actually have. You can determine your tablet’s Vendor ID and Product ID by entering the following command in a terminal:

lsusb

and looking for the tablet line in the output. A Waltop tablet has the following Vendor ID:

Waltop Vendor ID = 172F (0x172F)

The Product ID immediately follows the Vendor ID.

X.org configuration

If you have at least the 2.6.35 kernel, particularly the more recent versions, you should be able to get your tablet working on the Wacom X driver. Waltop tablets are often re-branded and will carry another OEM’s model name. To verify that your tablet/stylus is indeed identified as a WALTOP (which is also used as the keyword for a match) enter in a terminal the following.

xinput list

You should see WALTOP (capitalized) as part of the <device name> in the tablet/stylus line. WALTOP is used as the keyword match by the 50-wacom.conf and the custom 52-waltop.conf. If you see another tablet name in the line you do not have a Waltop.

50-wacom.conf

The 50-wacom.conf is located at /usr/share/X11/xorg.conf.d. If you do not know your xf86-input-wacom version you can determine it by running the following command:

xsetwacom -V

xf86-input-wacom-0.15.0 or later

In a current xf86-input-wacom 50-wacom.conf file there is a separate Waltop snippet:

# Waltop tablets
Section "InputClass"
    Identifier "Waltop class"
    MatchProduct "WALTOP"
    MatchIsTablet "on"
    MatchDevicePath "/dev/input/event*"
    Driver "wacom"
EndSection

This snippet only matches the Waltop event device classified as a tablet (i.e. the digitizer/pen). That allows the non-digitizer devices on separate event nodes (/dev/input) to be handled by xf86-input-evdev. Those include the on-the-frame controls such as the pad buttons, multifunction dials (controlling scroll, zoom, volume, and keyboard navigation), and keyboard modifier buttons. The xf86-input-wacom driver does not work with them.

xf86-input-wacom-0.12.0 to 0.14.0

With the 2.6.35 kernel Waltop tablet users reported the Waltops were again working with xf86-input-wacom. Because they were again working the WALTOP keyword was added back into the 50-wacom.conf USB snippet match with the release of xf86-input-wacom-0.12.0.

Section "InputClass"
    Identifier "Wacom class"
    MatchProduct "Wacom|WACOM|WALTOP|Hanwang|PTK-540WL"
    MatchDevicePath "/dev/input/event*"
    Driver "wacom"
EndSection

Which means the Waltop tablets are by default automatically matched to the Wacom X driver.

Prior to xf86-input-wacom-0.12.0 Waltop tablets were commented out from the USB snippet match in the 50-wacom.conf because the HID usb kernel driver for Waltops did not support xf86-input-wacom. Waltop tablets had worked with the linuxwacom X driver before the xf86-input-wacom fork from linuxwacom.

52-waltop.conf

Because .conf files at /usr/share/X11/xorg.conf.d are shipped by the distribution they may be overwritten by an update. For that reason it is not recommended to put any user-specific configuration files or changes in /usr/share/X11/xorg.conf.d. Instead user custom .conf files technically belong in /etc/X11/xorg.conf.d.

The 52-waltop.conf enables multifunction dials on evdev if your tablet has them. It also provides you with a way to apply static xorg.conf.d Wacom Options to your pen. Provided the kernel supports Waltop on xf86-input-evdev and xf86-input-wacom or has been patched for support. The WALTOP key word is again used in the match line with each of the following snippets. Place the snippets below into a new file you’ll create in /etc/X11/xorg.conf.d called 52-waltop.conf.

Section "InputClass"
    Identifier "Waltop buttons"
    MatchProduct "WALTOP"
    MatchIsKeyboard "on"
    MatchDevicePath "/dev/input/event*"
    Driver "evdev"
EndSection

Section "InputClass"
    Identifier "Waltop scroll"
    MatchProduct "WALTOP"
    MatchIsPointer "off"
    MatchIsKeyboard "off"
    MatchIsTouchpad "off"
    MatchIsTablet "off"
    MatchIsTouchscreen "off"
    MatchDevicePath "/dev/input/event*"
    Driver "evdev"
EndSection

Section "InputClass"
    Identifier "Waltop pen"
    MatchProduct "WALTOP"
    MatchIsTablet "on"
    MatchDevicePath "/dev/input/event*"
    Driver "wacom"
    # Apply custom Options below this line.
EndSection

Since it is a system file you need root privileges. If your system has gnome and sudo installed you can use:

gksudo gedit /etc/X11/xorg.conf.d/52-waltop.conf

You would use whatever text editor and root privilege access your distribution supplies of course.

52-waltop.conf explained

“Waltop buttons” snippet
The tablet’s frame/bezel buttons are handled as key events by the 10-evdev.conf “evdev keyboard catchall” snippet. This snippet functionally duplicates it with MatchIsKeyboard. The “Waltop buttons” identifier is a bit of a misnomer as dial zooming and volume control functions are also implemented as key presses.
“Waltop scroll” snippet
This snippet is currently required for the scroll feature of the multifunction dials. The multifunction dial’s scroll is exported from the kernel by hid-waltop.ko as a separate device input event but X.Org does not recognize its specific device type. This means it needs to be reclaimed from any 10-evdev.conf snippet that may have mistakenly claimed it.
“Waltop pen” snippet
This snippet places only the Waltop pen on the Wacom X driver by use of MatchIsTablet. It duplicates the new “Waltop class” snippet in xf86-input-wacom-0.15.0’s 50-wacom.conf. Static Wacom options may be added below the Driver line.

Waltop models supported by the wacom X driver

The Wacom X driver is xf86-input-wacom. It has support for the Waltop tablets built-in as can be seen at xf86-input-wacom/src/wcmUSB.c in the source code.

Product ID Corresponding WacomModelPtr
0x24 &usbGraphire
0x25 &usbGraphire2
0x26 &usbGraphire2
0x27 &usbGraphire3
0x28 &usbGraphire3
0x30 &usbGraphire4
0x31 &usbGraphire4
0x32 &usbBambooFun
0x33 &usbBambooFun
0x34 &usbBamboo1
0x35 &usbGraphire4
0x36 &usbGraphire4
0x37 &usbGraphire4
0x38 &usbBambooFun
0x39 &usbBambooFun
0x51 &usbBamboo
0x52 &usbBamboo
0x53 &usbBamboo
0x54 &usbBamboo
0x55 &usbBamboo
0x56 &usbBamboo
0x57 &usbBamboo
0x58 &usbBamboo
0x500 &usbBamboo
0x501 &usbBamboo
0x502 &usbIntuos4
0x503 &usbIntuos4

Further wacom set up information

If you are using the Wacom X driver for your Waltop tablet the Linux Wacom Project’s mediawiki HOWTO page has information on Calibration, Dual and MultiMonitor Set Up, Tablet Configuration, Xsetwacom, etc.