Last Updated: August 19, 2012
A wacom_serial.ko has been written by tokenrove. Together with a patched inputattach the protocol IV serial tablets are supported. Protocol IV devices include the Digitizer II (UD series), PenPartner, Graphire, and Cintiq series of Wacom serial tablets. This serio-based driver is close to feature complete (pad buttons, tilt, suppression, Graphire relative wheel). This is a link to the newest driver and inputattach patch: wacom_serial-120327-1.tar.bz2 See post #349. Instructions are on tokenrove's page "A kernel driver for legacy Wacom serial tablets" here: http://cipht.net/2011/07/02/wacom_seria ... lease.html Those of you with the appropriate model should consider helping tokenrove with testing, as he has requested, in order to shake out any bugs and add the feature support in. The PenPartners now work thanks to bserem, see post #314. Graphire tablets now work thanks to the response of Graiden and jellysheep. The eraser just needs to be re-enabled and the mouse scroll wheel confirmed.
Feedback on the new version of wacom_serial.ko appreciated. If your tablet didn't work with it before please try it now
Update (6-6-12): we are very close to having all of the wacom_serial.ko driver features functional and tested! The next steps will be submission to the kernel and input-wacom when tokenrove has time. Thank you testers!
Roaldfre has written a wacom_serial5.ko. Protocol V devices include the Intuos and Intuos2 models. The code is here: https://github.com/RoaldFre/wacom_serial5
Update (1-16-12): with the addition of the 4D mouse support roaldfre now has all of the wacom_serial5.ko driver features functional and tested! The next steps will be submission to the kernel and input-wacom when roaldfre has time. Thank you testers!
Thank you tokenrove and roaldfre. This is awesome!
Sources
"A kernel driver for legacy Wacom serial tablets" by tokenrove: http://cipht.net/2011/07/02/wacom_seria ... lease.html
"Serial Protocol IV" by tokenrove: http://sourceforge.net/apps/mediawiki/l ... rotocol_IV
"Driver for old serial Wacom protocol V tablets (Intuos and Intuos2)" by roaldfre: https://github.com/RoaldFre/wacom_serial5
Linux Console Project (for inputattach) by esr, jsimmons, skitt, vojtech: http://sourceforge.net/projects/linuxconsole/
"Wacom Hacking" by John Tsiombikas: http://codelab.wordpress.com/2010/02/21/wacom-hacking/ - the original xf86-input-wacom serial patch.
"Problems with Wacom Intuos2 serial and Xserver 1.7 (ubuntu lucid)" by Sebastian Berthold: http://sourceforge.net/mailarchive/foru ... om-discuss - first serial patch and second serial patch set on linuxwacom-discuss.
Sources for regenerating the xf86-input-wacom build scripts, WWWWolf at: http://codelab.wordpress.com/2010/02/21/wacom-hacking/ and: http://forums.opensuse.org/english/get- ... ablet.html
"dixScreenOrigins has been removed from server" by Gaetan Nadon: http://sourceforge.net/mailarchive/foru ... acom-devel - patch to build on X server 1.9.
"Wacom Graphire I serial and Lucid" thread: http://ubuntuforums.org/showthread.php?t=1480915
"Wacom Artpad II serial and Lucid" thread: http://ubuntuforums.org/showthread.php?t=1593973
"Configuring A Wacom Tablet In Lucid Lynx" thread: http://ubuntuforums.org/showthread.php?t=1462026&page=3 - setting up a serial Wacom ArtzII tablet using a Keyspan serial->USB adapter, posts #24 to #34 with HOW TO at #34. Kernel patch for the Keyspan serial-to-USB driver, adds a dummy TIOCGSERIAL ioctl, on post #30.
"Wacom DigitizerII 12x18 UD1218R Problems with Maverick Server" thread: http://ubuntuforums.org/showthread.php?t=1649439
The Linux Wacom Tablet Project sourceforge site.
The Linux Wacom Project's mediawiki main page.
The Linux Wacom Project's mediawiki linuxwacom HOWTO's.
The Linux Wacom Project's mediawiki xf86-input-wacom HOWTO's.
The Linux Wacom Project's mediawiki DeveloperPages.
Previous versions of wacom_serial.ko:
original version: http://cipht.net/releases/wacom_serial-110702-0.tar.gz
first version to support the PenPartner: http://cipht.net/releases/wacom_serial-120301-1.tar.bz2
Mint/Ubuntu Release Specific Notes
Maya (Mint 13)/Precise Pangolin (12.04): The default xf86-input-wacom is 0.14.0. Tokenrove's and roaldfre's new wacom_serial.ko serial tablet drivers also work in Maya, provided you make the appropriate edit to wacom_serial.c noted below.
Lisa (Mint 12)/Oneiric Ocelot (11.10): The default xf86-input-wacom is 0.11.0. Tokenrove's and roaldfre's new wacom_serial.ko serial tablet drivers also work for Lisa.
Katya (Mint 11)/Natty Narwhal (11.04): The default xf86-input-wacom is 0.10.11. Tokenrove's and roaldfre's new wacom_serial.ko serial tablet drivers are basically for Katya (kernel 2.6.38 or better). The new serial drivers use inputattach to present the incoming raw data from the wacom_serial.ko's to xf86-input-wacom, which treats the incoming data as usb packets. As part of the set up tokenrove has supplied a 70-serial-wacom.rules file for protocol IV serial tablets you can add to your local udev rules (in /etc/udev/rules.d). Tokenrove has also supplied a test version for protocol 4 tablets that does build in Isadora and Jullia but describes it as "crippled".
Julia (Mint 10)/Maverick Meerkat (10.10): The default xf86-input-wacom is 0.10.8. In order for 0.10.6 xf86-input-wacom to build on Julia's 1.9 Xserver you need to apply a third patch: "0003-dixScreenOrigins has been removed from server".
Isadora (Mint 9)/Lucid Lynx (10.04): The default xf86-input-wacom is 0.10.5. You apply the version 3 0.10.6 patch set to the xf86-input-wacom-0.10.6 source code following the instructions below in part I. Then after regenerating the build scripts you can compile and install as you normally would.
Summary
Wacom serial tablet support was dropped from xf86-input-wacom due to a lack of developer resources. The Wacom X driver was switched to Xorg's xf86-input-wacom beginning with Xserver 1.7. This means that starting with Isadora/Lucid there has been no official Wacom driver support for the UD series, PenPartner, and the Graphire, Intuos, and Cintiq series of serial tablets. However serial ISDv4 devices (tablet PCs) have been and continue to be supported.
Tokenrove and roaldfre have developed new wacom_serial.ko's (serio kernel drivers/modules) as the way forward for Wacom serial tablet support with xf86-input-wacom.
A patch set for serial tablets by John Tsiombikas & Sebastian Berthold, using the old linuxwacom serial driver, was partially developed and works for enabling serial tablets when applied to xf86-input-wacom-0.10.6. It does not apply cleanly to versions later than 0.10.6. It was not included in the xf86-input-wacom driver because it needed further work. Unfortunately development stopped after the second patch set was submitted on 5-24-10. Which places the patch set about 20 commits into the 0.10.6+ git tree. Sebastian had a serial Wacom Intuos2 GD-1218-R, and of course his patch set worked for it. A number of serial tablet owners have successfully applied this patch set and gotten their tablets working in Lucid and Maverick.
This HOW TO shows you how to enable your serial tablet in all Mint/Ubuntu releases starting with Isadora/Lucid. The wacom_serial.ko drivers although new have been tested and work well. Remember the old linuxwacom serial driver patch set is not finished driver worthy code, so be prepared for some glitches with it, but it seems to work well also.
The HOW TO essentially consists of two parts. The first deals with the new kernel serial drivers for Katya/Natty, Lisa/Oneiric and Maya/Precise and the second uses the old linuxwacom serial driver with a patch set applied for Isadora/Lucid and Julia/Maverick. Use the patch set attached below [v3]xf86-input-wacom-0.10.6_serial-patches to make the serial grahics tablet driver compatible with xf86-input-wacom-0.10.6.
New serial tablet drivers - for Katya/Natty and later releases
Testers reporting success
First wacom_serial.ko tester on Maverick was dreh for a Wacom Digitizer II UD-1218-R.
First wacom_serial5.ko tester on Natty was firstattempt for a Wacom Intuos GD-0405-R. Second was alexcrow for a Intuos2 A4 0912-R. Third was luminol for a Intuos2 XD-0912-R.
First wacom_serial.ko tester on Oneiric was mpGoodwin for a Wacom Artpad. Second was dreh for a Wacom Digitizer II UD-1218-R.
First wacom_serial5.ko tester on Oneiric was thorwil for a Wacom Intuos2 GD-1212-R.
I. Prepare your system to build the wacom_serial.ko or wacom_serial5.ko kernel module
Updating the Wacom X driver xf86-input-wacom is optional with Julia/Natty or later releases. See either the Linux Wacom HOW TO or the Wacom Bamboo Pen and Touch tablet HOW TO.
Note: The following instructions assume you are downloading packages, extracting them, and compiling them on your Desktop. If you use another directory change the directory paths in the commands accordingly.
Copy and paste each line into a terminal (Applications > Accesories > Terminal) and hit enter after each line (except the ones in parenthesis). Careful, some lines extend past the right side of the "box". Get all of them.
Code: Select all
cd ./Desktop
sudo apt-get update
[I](For [B]Ubuntu[/B] use [B]libx11-dev[/B] instead of libX11-dev in the following command)[/I]
sudo apt-get install build-essential libX11-dev libxi-dev x11proto-input-dev xserver-xorg-dev libxrandr-dev libncurses5-dev xutils-dev autoconf libtool pkg-config libudev-dev
sudo apt-get upgrade
II. Build the serial kernel module/driver and the patched inputattach
The following is based on tokenrove's protocol 4 wacom_serial.ko package or roaldfre's protocol 5 wacom_serial5.ko package and their instructions in the above links. Compiling and installing either of the serial_wacom.ko's is shown as well as patching and compiling inputattach. Tokenrove has supplied a udev rule for wacom_serial.ko, see appendix 1 below.
For the 3.2 kernel (Maya/Precise) or later and protocol 4 (wacom_serial.ko) tablets you need to edit the wacom_serial.c source code in the wacom_serial folder after you unpack it. This is necessary to prevent placing your tablet on the recently added tsc40.ko kernel module which now claims 0x3d as its serio protocol. For wacom_serial5 (Intuos and Intuos2) you can ignore all of this unless you also use a protocol IV tablet.
In wacom_serial.c change line #49 from:
Code: Select all
#define SERIO_WACOM_IV 0x3d
Code: Select all
#define SERIO_WACOM_IV 0x3e
Code: Select all
/* XXX To be removed before (widespread) release. */
#ifndef SERIO_WACOM_IV
#define SERIO_WACOM_IV 0x3e
#endif
Code: Select all
# define SERIO_WACOM_IV 0x3e
In the unlikely event you also had an Intuos tablet (protocol V) you would need to change it's current 0x3e to 0x3f since we're now giving 0x3e to the protocol IV tablets. With 0x3e now claimed by wacom_serial.ko in you would in the wacom_serial5.c source code change line #46 to:
Code: Select all
#define SERIO_WACOM_V 0x3f
Code: Select all
/* XXX To be removed before (widespread) release. */
#ifndef SERIO_WACOM_V
#define SERIO_WACOM_V 0x3f
#endif
Code: Select all
# define SERIO_WACOM_IV 0x3e
[I]and[/I]
# define SERIO_WACOM_V 0x3f
a) Download and compile the protocol 4 wacom_serial.ko - by tokenrove
Rather than use the download link in post #314 we'll just grab tokenrove's new wacom_serial.ko tar directly:
Code: Select all
wget http://cipht.net/releases/wacom_serial-120327-1.tar.bz2
tar xjvf wacom_serial-120327-1.tar.bz2
cd wacom_serial
make all
sudo cp inputattach /usr/bin
sudo cp wacom_serial.ko /lib/modules/`uname -r`/kernel/drivers/input/tablet
sudo depmod -a
cd ..
a) Download and compile the protocol 5 wacom_serial5.ko (Intuos and Intuos2 tablets) - by roaldfre
You can either clone the wacom_serial5 git repository as below or use the download button on roaldfre's site for a tar or zip package. Note if you use the download button a 7 digit identifier representing the last commit is appended to wacom_serial5 along with RoaldFre's name as a prefix. I suggest you rename the extracted folder to wacom_serial5 or change the commands below to reflect the current name of the folder.
Code: Select all
(install git if you haven't before)
sudo apt-get install git-core
git clone https://github.com/RoaldFre/wacom_serial5.git
cd wacom_serial5
make all
sudo cp wacom_serial5.ko /lib/modules/`uname -r`/kernel/drivers/input/tablet
sudo depmod -a
cd ..
b) Download and compile inputattach for the Intuos (protocol 5) tablets
Note: You can skip this step with tokenrove's recent wacom_serial tars, including the most recent wacom_serial-120327-1.tar, because he includes a pre-patched inputattach.c in the package and the make all command compiles the inputattach.ko along with the wacom_serial.ko.
Tokenrove's instructions for input-attach don't work in Katya/Natty because they are referring to an older version in the joystick-20051019 package. So the patch doesn't apply to it. Instead get a newer version by downloading the linuxconsoletools-1.4.2 package at the Linux Console Project: http://sourceforge.net/projects/linuxconsole/. Lisa/Oneiric switches over to the newer inputattach from Linux Console. Then follow these instructions:
Code: Select all
sudo apt-get install libsdl1.2-dev
cd linuxconsoletools-1.4.2
[I](if you have an Intuos tablet)[/I]
patch -p1 < ~/Desktop/wacom_serial5/inputattach.patch
make
sudo PREFIX=/usr make install
cd ..
Using inputattach with the new kernel module
Then following tokenrove's instructions with your tablet connected, turn it on, and run the command for starting inputattach. Which would be either:
Code: Select all
sudo inputattach --wacom_iv /dev/ttyS0
or
sudo inputattach --wacom_v /dev/ttyS0
Code: Select all
# By default this script does nothing.
inputattach --wacom_iv /dev/ttyS0
or
inputattach --wacom_v /dev/ttyS0
exit 0
Code: Select all
gksudo gedit /etc/rc.local
Troubleshooting
On some systems adding the above inputattach command to rc.local doesn't work, perhaps because either inputattach or loading the wacom_serial.ko is a little slow and causes a bit of a hang. You can deal with that by adding a trailing ampersand like so:
Code: Select all
inputattach --wacom_iv /dev/ttyS0 &
* thanks to mpGoodwin for pointing this out.
The Wacom serial tablets are usually on /dev/ttyS0 (or /dev/ttyUSB0 if using a serial-to-usb convertor). If that doesn't work or you are not sure use:
Code: Select all
sudo dmesg | grep ttyS
or
sudo dmesg | grep ttyUSB
Something else that can cause problems is having two inputattach binaries installed. The inputattach binary should be in /usr/bin. If you also have another located in /usr/local/bin that will cause problems. Right click on the binaries and check in Properties for the date (they were compiled). You want to remove the duplicate in /usr/local/bin while also making sure the inputattach in /usr/bin is the one you compiled for your tablet.
* thanks to bruis for pointing this out.
Tablet configuration is done through the 50-wacom.conf in /usr/share/X11/xorg.conf.d. Since that is a distribution file users are encouraged to place their settings in a 52-wacom file. Alternatively, because xf86-input-wacom doesn't have wacomcpl (Wacom Control Panel), you can set up a script of xsetwacom commands to run when the system starts like wacomcpl's .xinitrc. Both linked pages are on the xf86-input-wacom mediawiki HOWTO page linked above in Sources. Also see man wacom & man xsetwacom entered in a terminal for more information on configuration options or parameters.
Old serial tablet driver - for Isadora/Lucid & Julia/Maverick
Testers reporting success
First [v2]xf86-input-wacom-0.10.6_serial-patches tester on Maverick was Gizmoatwork for an Intuos2 GD-0608-R.
First [v3]xf86-input-wacom-0.10.6_serial-patches tester on Lucid was timonoko for the Graphire ET-0405-R. Second on Maverick was Gizmoatwork for an Intuos2 GD-0608-R.
I. Download Xorg's xf86-input-wacom-0.10.6 tar, patch it, and compile (the X driver)
a) Download on your Desktop and, after installing the needed build libraries, unpack the xf86-input-wacom tar
Open a terminal and enter (copy and paste) the following commands:
Code: Select all
cd ./Desktop
wget http://sourceforge.net/projects/linuxwacom/files/xf86-input-wacom/xf86-input-wacom-0.10.6.tar.bz2
sudo apt-get update
[I](For [B]Ubuntu[/B] use [B]libx11-dev[/B] instead of libX11-dev in the following command)[/I]
sudo apt-get install build-essential libX11-dev libxi-dev x11proto-input-dev xserver-xorg-dev libxrandr-dev libncurses5-dev xutils-dev autoconf libtool pkg-config libudev-dev
sudo apt-get upgrade
tar xjvf xf86-input-wacom-0.10.6.tar.bz2
Download the patch set [v3]xf86-input-wacom-0.10.6_serial-patches attached below and extract it (right click). Copy the patches into the now uncompressed source code folder xf86-input-wacom-0.10.6. Then after changing directory into the xf86-input-wacom-0.10.6 folder apply the patches with the following commands.
Code: Select all
cd xf86-input-wacom-0.10.6
patch -p1 < 0001-rename-wcmICDV4Speed-to-wcmSerialSpeed.patch
patch -p1 < 0002-reenable-support-for-legacy-serial-tablets.patch
[I](apply the following only in Julia/Maverick, not needed for Isadora/Lucid)[/I]
patch -p1 < 0003-dixScreenOrigins-has-been-removed-from-server.patch
* thanks to thorwil for pointing out the third patch (to get 0.10.6 to build on 2.6.35).
c) Regenerate the xf86-input-wacom build scripts
The second patch adds the two new files wcmSerial.h and wcmSerial.c and also lists them in Makefile.am. But since the original auto-generated build scripts were generated without them we need to update them (aclocal.m4, etc.). So to regenerate the build scripts run in the terminal the following command:
Code: Select all
aclocal && automake && autoconf
d) Compile the patched xf86-input-wacom source code
Code: Select all
./configure --prefix=/usr
make
sudo make install
II. The xorg.conf
Currently the xorg.conf is used to configure serial tablets. The following example xorg.conf assumes your xorg.conf is either empty or not there and needs to be created. If you have a Wacom tablet mouse (cursor), you need to add a cursor section and add a cursor line to "ServerLayout" as shown. Otherwise the cursor section and line are not needed and shouldn't be added.
Code: Select all
Section "InputDevice"
Driver "wacom"
Identifier "stylus"
Option "Device" "/dev/ttyS0"
Option "Type" "stylus"
Option "ForceDevice" "Serial"
EndSection
Section "InputDevice"
Driver "wacom"
Identifier "eraser"
Option "Device" "/dev/ttyS0"
Option "Type" "eraser"
Option "ForceDevice" "Serial"
EndSection
Section "InputDevice"
Driver "wacom"
Identifier "cursor"
Option "Device" "/dev/ttyS0"
Option "Type" "cursor"
Option "ForceDevice" "Serial"
EndSection
Section "ServerLayout"
Identifier "X.org Configured"
InputDevice "stylus"
InputDevice "eraser"
InputDevice "cursor"
EndSection
* thanks to timonoko for confirming "Serial" works in the "ForceDevice" option and that the all capitalized "SERIAL" isn't necessary
As always before changing a X configuration file make a back up. In this case your current working xorg.conf if you have one. In a terminal enter:
Code: Select all
sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.bak
Code: Select all
sudo cp /etc/X11/xorg.conf.bak /etc/X11/xorg.conf
To edit it enter in a terminal:
Code: Select all
gksudo gedit /etc/X11/xorg.conf
The Wacom serial tablets are usually on /dev/ttyS0 (or /dev/ttyUSB0 if using a serial-to-usb convertor). If that doesn't work or you are not sure use:
Code: Select all
sudo dmesg | grep ttyS
or
sudo dmesg | grep ttyUSB
TO DO List
1) Show dev(ice) line examples for serial to usb conversion cable?
2) Add section with information on use of serial to usb conversion cable?
Appendix 1: 70-serial-wacom.rules for wacom_serial.ko
There is a typo in tokenrove's protocol 4 rule and it should read ENV{PRODUCT}=='13/3d/*' not ENV{PRODUCT}='13/3d/*', so:
Code: Select all
ACTION=="add|change", SUBSYSTEM=="pnp", ENV{PRODUCT}=='13/3d/*', ENV{NAME}=="Wacom protocol IV serial tablet", SYMLINK="input/wacom", ENV{ID_INPUT}="1", ENV{ID_INPUT_TABLET}="1"
Code: Select all
ACTION=="add|change", SUBSYSTEM=="pnp", ATTRS{id}=="PNP0501", ENV{NAME}=="Wacom protocol V serial tablet", SYMLINK="input/wacom", ENV{ID_INPUT}="1", ENV{ID_INPUT_TABLET}="1"
Code: Select all
gksudo gedit /etc/udev/rules.d/70-serial-wacom.rules