HOWTO:Use a Genius MousePen 8x6 Tablet with Fedora 9

 Standard Disclaimer

These instructions are a work-in-progress, and not all issues have been fully worked out yet.  If you spot an error or have a quick fix, please comment below and help make this HOWTO more useful.  Thanks!

Please don't attempt this procedure unless you're comfortable with mucking around with your machine's configuration files.  If you're really that inexperienced, you should wait until someone publishes a proper RPM to auto-install and configure these things for you.  Thanks!

Install RPM Packages You May Need

yum groupinstall "Development Tools" "X Software Development"
yum install xorg-x11-server-devel

Download the Source Code (WizardPen 0.6.0.2 or Later)

http://specificcrap.arbitrarycrap.com/wizardpen-0.6.0.2.tar.gz
(If unavailable, scan this forum thread backwards to see if a more recent version was posted by "Miriad", and download that version if so.)

Unpack the Source Code

tar -xvzpf wizardpen*tar.gz
cd wizardpen-0.6.0.2

Compiling and Installing (64-Bit Systems)

./configure --with-xorg-modules-dir=/usr/lib64/xorg/modules/input/
make
strip src/.libs/wizardpen_drv.so
cp src/.libs/wizardpen_drv.so /usr/lib64/xorg/modules/input

Compiling and Installing (32-Bit Systems)

./configure --with-xorg-modules-dir=/usr/lib/xorg/modules/input/
make
strip src/.libs/wizardpen_drv.so
cp src/.libs/wizardpen_drv.so /usr/lib/xorg/modules/input

Disabling "evdev" handling of Keyboard and Mouse

*NOTE:  This is necessary because evdev "steals" events away from the wizardpen driver. 
I simply add ".BAD" to the end of the filename so it won't be processed; remove the ".BAD" extension if you need to undo this change.

mv /usr/share/hal/fdi/policy/10osvendor/10-x11-input.fdi /usr/share/hal/fdi/policy/10osvendor/10-x11-input.fdi.BAD

Modifying Xorg.conf (Part 1)

*NOTE:  This is wonky, but necessary because both the wizardpad driver and the kernel's usbhid driver will be posting Mouse Events.  Without this fix, you will receive twice the number of mouse events -- which is harmless for X/Y coordinates, but devastating for Button Clicks.  (i.e. a Single Click will register as a Double Click). 

We will do things "the hard way" by telling Xorg about each and every mouse device currently installed.  (Excluding your Genius MousePen Tablet, which we'll configure below).  The first section must be named "Configured Mouse", otherwise, Xorg will silently auto-create a "Configured Mouse" section on startup.

The whole point of this procedure is to prevent Xorg from using /dev/input/mice so we don't have the "Double Mouse Event" problem.  OK, so let's make a backup of our Xorg configuration file, and then edit it with nano:

cp /etc/X11/xorg.conf /etc/X11/xorg.conf.BAK   # Always make a backup just in case!
nano /etc/X11/xorg.conf

Now, add a line to the ServerLayout Section:

InputDevice    "Configured Mouse" "CorePointer"

Then, add an InputDevice Section to configure the Configured Mouse Device:

Section "InputDevice"
       Identifier     "Configured Mouse"
       Driver         "mouse"
       Option         "CorePointer"
#      Option         "Device" "/dev/input/mice"
       Option         "Device" "/dev/input/mouse0"
       Option         "Protocol" "ImPS/2"
EndSection

Depending on your hardware, you may need to change "mouse0" above to a different number (mouse1, mouse2, etc..).  do an ls /dev/input/mouse* to see how many mouse devices you need to work with.

Repeat for other Mouse devices, if necessary.  If you prefer to view these changes in Diff/Patch Form, here's what my configuration looks like (Note the location of "mouse2" versus "mouse0" devices for my hardware):

--- xorg.conf.BAK       2008-06-16 15:45:02.000000000 -1000
+++ xorg.conf.part1     2008-06-19 04:52:54.000000000 -1000
@@ -4,6 +4,8 @@
        Identifier     "Default Layout"
        Screen      0  "Screen0" 0 0
        InputDevice    "Keyboard0" "CoreKeyboard"
+       InputDevice    "Configured Mouse" "CorePointer"
+       InputDevice    "Synaptics Touchpad"
 EndSection
 
 Section "InputDevice"
@@ -29,3 +31,19 @@
        EndSubSection
 EndSection
 
+Section "InputDevice"
+       Identifier     "Configured Mouse"
+       Driver         "mouse"
+       Option         "CorePointer"
+#      Option         "Device" "/dev/input/mice"
+       Option         "Device" "/dev/input/mouse2"
+       Option         "Protocol" "ImPS/2"
+EndSection
+
+Section "InputDevice"
+        Identifier      "Synaptics Touchpad"
+        Driver          "synaptics"
+        Option          "Device"        "/dev/input/mouse0"
+        Option          "Protocol"      "auto-dev"
+        Option          "HorizScrollDelta"      "0"
+EndSection

Before moving on to Part 2, you should test configuration to make sure your mouse devices are operating as you expect.  Simply log out of Fedora's Desktop to restart your Xorg server, and log in again.  If your mouse isn't functional, you can pop into a Virtual Console (CTRL-ALT-F1) to log in as root and use nano to make any changes to /etc/X11/xorg.conf.  Then do a CTRL-ALT-F7 to pop back into Fedora Desktop, and do a CTRL-ALT-BACKSPACE to hard-reset Xorg.

Modifying Xorg.conf (Part 2)

Now, add a line to the ServerLayout Section:

InputDevice   "Tablet0"   "SendCoreEvents"

Then, add an InputDevice Section to configure the Tablet0 Device:

Section "InputDevice"
       Identifier  "Tablet0"
       Option "Name" "UC-LOGIC Tablet WP8060U"
       Driver          "wizardpen"
       Option          "TopX"          "10"
       Option          "TopY"          "10"
       Option          "TopZ"          "10"
       Option          "BottomX"      "32747"
       Option          "BottomY"      "32762"
       Option          "BottomZ"      "1023"
EndSection

Or if you prefer to view these changes in Diff/Patch Form:

--- xorg.conf.BAK       2008-06-16 15:45:02.000000000 -1000
+++ xorg.conf   2008-06-19 02:05:49.000000000 -1000
@@ -4,6 +4,7 @@
        Identifier     "Default Layout"
        Screen      0  "Screen0" 0 0
        InputDevice    "Keyboard0" "CoreKeyboard"
+       InputDevice    "Tablet0"   "SendCoreEvents"
 EndSection
 
 Section "InputDevice"
@@ -29,3 +30,14 @@
        EndSubSection
 EndSection
 
+Section "InputDevice"
+       Identifier  "Tablet0"
+       Option "Name" "UC-LOGIC Tablet WP8060U"
+       Driver          "wizardpen"
+       Option          "TopX"          "10"
+       Option          "TopY"          "10"
+       Option          "TopZ"          "10"
+       Option          "BottomX"      "32747"
+       Option          "BottomY"      "32762"
+       Option          "BottomZ"      "1023"
+EndSection

If you are using a different device (Not a MousePen 8x6, but something that uses the wizardpen driver), you must change the Option "Name" line above to exactly match your device's name.  Do a cat /proc/bus/usb/devices and deduce which entry corresponds to your device, and make the necessary changes.  For reference, here's what the MousePen 8x6 entry looks like:

T:  Bus=05 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  3 Spd=1.5 MxCh= 0
D:  Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=5543 ProdID=0005 Rev= 0.00
S:  Manufacturer=UC-LOGIC
S:  Product=Tablet WP8060U
C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=100mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=01 Prot=02 Driver=usbhid
E:  Ad=81(I) Atr=03(Int.) MxPS=   8 Ivl=10ms

Restart X, Cross Those Fingers
Log out of your Fedora Session, which should restart the X Server.  If all went well, you should still have your original mouse functionality.  At this writing (using the 0.6.0.2 driver), the MousePen Tablet will only work when you use the pen -- the "mouse" sends a different set of events, and the driver author hasn't yet added support to handle BOTH sets of events concurrently.  He's reportedly working on it, so expect it Real Soon Now. 

If you have serious problems with getting X started, you may need to revert your xorg.conf changes.  If so, press CTRL-ALT-F1 to get into a Virtual Console, log in as root, and restore your xorg.conf backup:

mv /etc/X11/xorg.conf /etc/X11/xorg.conf.BORKED
cp /etc/X11/xorg.conf.BAK /etc/X11/xorg.conf
 

You can then do a CTRL-ALT-F7 to try to get back into the Graphical Desktop.  If the Desktop is still a bit stubborn, you might need to do a CTRL-ALT-BACKSPACE, do an "init 3 ; init 5", or simply restart your machine. 

At this point, you should probably test your Touchpad's Button Clicks to make sure everything is working properly.  Go to System > Preferences > Hardware > Mouse, and test the Double-Click speed applet.  You should get a "Half Illuminated" image on a single click, and a "Fully Illuminated" image on a double click.  If you're always getting the "Fully Illuminated" image when you click with the MousePen Tablet, chances are good that Xorg is still using /dev/input/mice -- you may need to doublecheck your work, or dig deeper in /var/log/Xorg.0.log and dmesg to weed out the problem.

Other than that, enjoy!  This took me several days of research, and I hope this article has saved you from the aggravation I endured trying to get this all working!

Gimp and Pressure-Sensitivity
Pressure-Sensitivity works in 0.6.0.2, by the way.  Gimp needs to be configured to recognize Pressure Sensitivity, though.  (File>Preferences>Input Devices>Extended Input Devices, select "Tablet0" in the drop-down, select "Screen" in the Mode drop-down, and ensure Pressure is set to Axis 3.  Apply and enjoy.

Credit Where Credit Is Due

This article could not have been written without referring to these older resources:

http://www.stud.fit.vutbr.cz/~xhorak28/unb/forum.php?req=thread&id=71 - User "Miriad" is the lead developer of the "0.6.x" Driver, based on the acecad driver.

About the Author
Laurence A. Lee is a Fedora Ambassador representing Honolulu, Hawaii.  He is a Microsoft Certified Enterprise Applications Developer, and currently develops software in Ruby on Rails and other popular platforms.  (Full Profile)

Thanks

Just used this guide to get my tablet working - I'm a linux noob so it was very useful - can't thank enough :D

wizardpen with opensuse 11.0

Hi. The driver works great with opensuse. The extra package you need (apart from kernel source and headers and the gcc compiler) is xorg-server-SDK. The only problem I had was which mouse was which. Maybe in your (excellent) explanation above where it says ls /dev/input/mouse* maybe you should add to that, do it once with your tablet plugged in and then again unplugged. Then you can work out which. Like you, I had a real mouse and a synaptic touchpad on my laptop. Thanks for a great piece of work.