Thursday, October 23, 2008

Genius Wizardpen with Intrepid Ibex

NOTE

The tutorial currently still works with Ubuntu 9.04 (Jaunty Jackalope)

NEWS UPDATE

An updated (though not thoroughly tested) driver is available thanks to Mike! Please find full details by clicking on this link.

UPDATE HISTORY:

21 October 2008

Obtaining the driver
Option 1: Using a precompiled driver - UNTESTED!!

Miriad have provided a precompiled driver for Hardy and can be obtained from http://specificcrap.arbitrarycrap.com/wizardpen_drv.so. Just download the driver and put it in /usr/lib/xorg/modules/input/.

Once that's done, follow the steps outlined in "Configuring and using your Wizardpen".

For the latest version (0.7.0-alpha2): Alternatively, you could use the Debian package done by Giorgo Enrico, which you can download it here http://www.mediafire.com/file/nyzyynygiyy/wizardpen_0.7.0-alpha2_i386.deb

Option 2: Building from source
  1. Download the source package: http://specificcrap.arbitrarycrap.com/wizardpen-0.6.0.2.tar.gz
    (or the latest, untested driver here:
  2. Unpack it somewhere with following command: tar -zxvf wizardpen-0.6.0.2.tar.gz
  3. Grab the necessary packages:sudo aptitude install xutils libx11-dev libxext-dev build-essential xautomation xinput xserver-xorg-dev
  4. Change directory to where you unpacked the source code: cd wizardpen-0.6.0.2
  5. Compile and install the driver: ./configure --with-xorg-module-dir=/usr/lib/xorg/modules && make && sudo make install
  6. Verify that the driver is installed correctly (Check for wizardpen_drv.la and wizardpen_drv.so): ls /usr/lib/xorg/modules/input/wizardpen_drv.*
Configuring and using your Wizardpen

For Xorg7.3, the recommended way to configure your input device is by adding HAL fdi files, which in turn allows you to hotplug your Wizardpen. This step is not only recommended, it's essentially CRUCIAL in the case of Intrepid Ibex as the xorg.conf method used in my Hardy tutorial WILL NOT WORK.

This new configuration method may be supported by Hardy Heron, but I greatly appreciate anyone who is able to confirm this to me :).

  1. Connect your Wizardpen tablet (if you haven't already done so)
  2. Find out the name of your tablet : grep -i name /proc/bus/input/devices
  3. Double confirm that HAL captured the name of the tablet correctly as well: lshal | less
  4. Create a new file with the name /etc/hal/fdi/policy/99-x11-wizardpen.fdi
    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <deviceinfo version="0.2">
    <device>
    <!-- This MUST match with the name of your tablet -->
    <match key="info.product" contains="NAME OF YOUR TABLE OBTAINED FROM PREVIOUS STEP">
    <merge key="input.x11_driver" type="string">wizardpen</merge>
    <merge key="input.x11_options.SendCoreEvents" type="string">true</merge>
    <merge key="input.x11_options.TopX" type="string">5619</merge>
    <merge key="input.x11_options.TopY" type="string">6554</merge>
    <merge key="input.x11_options.BottomX" type="string">29405</merge>
    <merge key="input.x11_options.BottomY" type="string">29671</merge>
    <merge key="input.x11_options.MaxX" type="string">29405</merge>
    <merge key="input.x11_options.MaxY" type="string">29671</merge>
    </match>
    </device>
    </deviceinfo>
  5. Reboot your computer (*Note: Thanks to Ociosu for the update)
  6. If X fails to start up, or that the cursor runs amok with unpredictable and unacceptable behaviour (e.g. button mapping screw-ups), I greatly recommend that you start to debug your configuration.

TROUBLESHOOTING - IMPORTANT STEPS:

Should you find your Wizardpen not working yet, check out the /var/log/Xorg.0.log to see what went wrong (Search for "EE" and "WW" would give you some important hint). Google and the UbuntuForums are always your friend when it come to troubleshooting things ;).

Calibrating your tablet
  1. Execute the following command: lshal | less
  2. Search the section with the name of your tablet, as obtained from Step 2 in the configuration step. The line should read something like: info.product = '[Name of your tablet]'
  3. Scroll down until you find the following line: linux.device_file = '/dev/input/eventN' (N will a number)
  4. The source package contains a program called 'wizardpen-calibrate', which is in the 'calibrate' folder, which actually echoes the appropriate X11 calibration settings
  5. Using a terminal/console, execute the calibration program: calibrate/wizardpen-calibrate /dev/input/eventN (*Note: Subtitute /dev/input/eventN with the one obtained from Step 3)
  6. Follow the instructions issued by the program, which will ask you to touch the top-left corner and bottom-right corner. Once completed, the program will echo the corresponding xorg.conf setting
  7. Edit the FDI file (/etc/hal/fdi/policy/99-x11-wizardpen.fdi) and subtitute the Top/Bottom/MaxX and Top/Bottom/MaxY values to the one obtained from the wizardpen-calibrate command
  8. Once done, restart your computer and test your tablet (UPDATE: Noy noted in the comments that you don't have to restart, but rather unplug and replug the tablet for the new settings to take effect. I'm pretty sure it'd work but I haven't tested it yet)

Till then, good luck and have fun!

FAQ - Draft, TODO
  1. Wireless mouse for Wizardpen support is only available in the latest wizardpen-0.7.0-* driver.
  2. Pressure sensitivity not working in GIMP: Check your GIMP preferences at "Edit > Preferences". Under the "Input Devices" menu item, click on "Configure Extended Input Devices...". Choose the WizardPen device and MAKE SURE YOU SET THE MODE TO SCREEN/WINDOW (not "Disabled"). Without that setting, it won't work ;)

[REFERENCE AND RESOURCES]

  1. TabletSetupWizardpen (Ubuntu Community Help)
  2. HOWTO: Setup a wizardpen-based tablet (Ubuntu Forums)
NOTES:
  • Thanks to Pedro for his unexpected email and helping me out to test out my HAL fdi policy file.
  • TODO: Add stuff to the FAQ (Contribution appreciated)
  • Wishlist:
    1. Someone helping me out to test whether the HAL fdi rule method works with Hardy Heron
    2. Have the tutorial posted in Ubuntu Community wiki (too lazy to bother doing it myself :lol)