How to set up a Wacom Tablet

How to do things, solutions, recipes, tutorials
Post Reply
Message
Author
jamesbond
Posts: 3433
Joined: Mon 26 Feb 2007, 05:02
Location: The Blue Marble

#81 Post by jamesbond »

pizzasgood, you're fast ! I was about to point you to this thread from ubuntu forums http://ubuntuforums.org/archive/index.php/t-369359.html.

Ubuntu uses /dev/input/by-path to do the same, and it uses a program called path_id which is available in udev. Haven't tried it in my system (tablet pc) but yours definitely look simpler.

In my case, however:
a) there are 2 wacom devices I need to setup - the tablet, and the touchscreen
b) sometimes the events can exceed single digit numbers.

Got to explore this further.

cheers!
Fatdog64 forum links: [url=http://murga-linux.com/puppy/viewtopic.php?t=117546]Latest version[/url] | [url=https://cutt.ly/ke8sn5H]Contributed packages[/url] | [url=https://cutt.ly/se8scrb]ISO builder[/url]

User avatar
Argolance
Posts: 3767
Joined: Sun 06 Jan 2008, 22:57
Location: PORT-BRILLET (Mayenne - France)
Contact:

#82 Post by Argolance »

Bonjour !
... I succeed in installing my Wacom Graphire3 Tablet using the driver you compiled so kindly and quickly !
Bravo !
Thank you a lot.

User avatar
mikeb
Posts: 11297
Joined: Thu 23 Nov 2006, 13:56

#83 Post by mikeb »

Unplugged my tablet, plugged it in, and presto: there was a /dev/wacom symlinked to /dev/event8. Changed my xorg.conf file to point to /dev/wacom, restarted X, and sat back and enjoyed a happy little glow for a while.
I also read that having the xorg.conf include wacom setup without a tablet present was harmless..xorg would simply fail to install and carry on.....my thoughts are could puppy incorporate plug and play wacom support for the future?

mike

jamesbond
Posts: 3433
Joined: Mon 26 Feb 2007, 05:02
Location: The Blue Marble

#84 Post by jamesbond »

After more testing and reading, I concluded that Pizzasgood's solution is simpler and better than that those pointed in the ubuntu forum.

For the benefit of other tablet pc users, here is my 65-wacom.rules:

Code: Select all

ACTION=="add|change", KERNEL=="event[0-9]*", DRIVERS=="wacom", ATTRS{bInterfaceNumber}=="00", SYMLINK+="wacom-stylus"
ACTION=="add|change", KERNEL=="event[0-9]*", DRIVERS=="wacom", ATTRS{bInterfaceNumber}=="01", SYMLINK+="wacom-touch"
Then in xorg.conf refer to the stylus as /dev/wacom-stylus, eraser as /dev/wacom-eraser (actually they point to the same device), and touchscreen as /dev/wacom-touch.

Thanks Pizzasgood.

EDIT: stylus and eraser needs to point to the same device, i.e. /dev/wacom-stylus.
Fatdog64 forum links: [url=http://murga-linux.com/puppy/viewtopic.php?t=117546]Latest version[/url] | [url=https://cutt.ly/ke8sn5H]Contributed packages[/url] | [url=https://cutt.ly/se8scrb]ISO builder[/url]

User avatar
Pizzasgood
Posts: 6183
Joined: Wed 04 May 2005, 20:28
Location: Knoxville, TN, USA

#85 Post by Pizzasgood »

Okay, updated the first post.
[size=75]Between depriving a man of one hour from his life and depriving him of his life there exists only a difference of degree. --Muad'Dib[/size]
[img]http://www.browserloadofcoolness.com/sig.png[/img]

User avatar
mikeb
Posts: 11297
Joined: Thu 23 Nov 2006, 13:56

#86 Post by mikeb »

Hello again...
the wacom kernel driver in puppy 4.12 (and others?) retro does not appear to support the bamboo tablet so I assume its an older version

regards

mike

User avatar
Pizzasgood
Posts: 6183
Joined: Wed 04 May 2005, 20:28
Location: Knoxville, TN, USA

#87 Post by Pizzasgood »

Alrighty, I'm downloading Puppy 4.12 retro and its kernel source now. I should have some retro drivers out by tonight.
[size=75]Between depriving a man of one hour from his life and depriving him of his life there exists only a difference of degree. --Muad'Dib[/size]
[img]http://www.browserloadofcoolness.com/sig.png[/img]

User avatar
mikeb
Posts: 11297
Joined: Thu 23 Nov 2006, 13:56

#88 Post by mikeb »

Alrighty, I'm downloading Puppy 4.12 retro and its kernel source now. I should have some retro drivers out by tonight.
Once again you are pulling us from the fire :)

Will your drivers end up in new puppy releases?

mike

User avatar
Pizzasgood
Posts: 6183
Joined: Wed 04 May 2005, 20:28
Location: Knoxville, TN, USA

#89 Post by Pizzasgood »

Okay, done. Updated the first post, and am posting the link here as well:

http://www.browserloadofcoolness.com/so ... 6.21.7.pet

For the record in case I disappear or something and somebody else needs to do this, all I'm doing is grabbing the appropriate devx and kernel .sfs files for whichever version of Puppy we need, booting up a pristine install (other than those .sfs files), and compiling the sources from the Linux-Wacom-Project. They come with a perfectly good binary for the Xorg driver in the 'prebuilt/' directory, so I only have to compile the kernel driver. I disable everything else when running ./configure and enable the kerneldriver with the --enable-wacom option. After running 'make' there will be a wacom.ko file somewhere in the 'src/' directory - they have a bunch of subdirectories for different sets of kernel versions. I either poke through the ones that are closest to the one I'm compiling for, or I use 'find . -name wacom.ko' to find it quick. Then I take one of the previous packages I made and use it as a template to drop the new files into (doublechecking the kernel driver path however, as that changes sometimes).

EDIT: And don't strip them. It breaks the driver. It's small anyway.
Last edited by Pizzasgood on Fri 22 May 2009, 23:16, edited 1 time in total.

User avatar
mikeb
Posts: 11297
Joined: Thu 23 Nov 2006, 13:56

#90 Post by mikeb »

Cheers -- will test and report back.
Thanks for the info on compiling too..done some on puppy but no kernel modules ... yet

regards

mike

User avatar
mikeb
Posts: 11297
Joined: Thu 23 Nov 2006, 13:56

#91 Post by mikeb »

Ok passed the test with flying colors :)
apart from I used the eventn option in xorg.conf instead of /dev/wacom doh...now that is so slick

groovy

mike

User avatar
mikeb
Posts: 11297
Joined: Thu 23 Nov 2006, 13:56

#92 Post by mikeb »

Ok the udev detection is great but I'm trying to do the same with hotplug.
A script to remove the link then create a new one pointing to the correct device....no probs...but how is it launched?
All the info I find relating to hotplug mentions files that do not seem to be in puppy... Somewhere to list the device and name the script to run I believe

mike

milosz
Posts: 16
Joined: Sun 08 Feb 2009, 10:17

Can you boil this thread down for me and my HP TC1100?

#93 Post by milosz »

I have a little experience with Puppy, having installed this wonderful distro on some old notebooks.

I'd like to try it on my HP TC1100 - I tried to follow this discussion thread to find if there is a PET package here someplace that will install what I need for the digitizer & pen..... is there one in existence? Can someone tell me where to get it?

ALSO: is there any way to get screen rotation to work using the TC1100's built-in rotate screen "button" which is on the frame of the PC?

It seems this thread is relevant to the topic of pen function on TC1100 , but I see a lot of development going on and am not exactly sure where the "product" of all that hard work is to be found.....

Thanks

User avatar
Pizzasgood
Posts: 6183
Joined: Wed 04 May 2005, 20:28
Location: Knoxville, TN, USA

#94 Post by Pizzasgood »

I don't have one to test with, so I'm not certain I can sort it out, but I'll see what I can do anyway. I see from a post in the Ubuntu forum that it should be doable. But you're going to need the wacom-tools package which I haven't compiled recently, so I'll have to do that first. Hopefully I'll have a guide ready for you by this evening.
[size=75]Between depriving a man of one hour from his life and depriving him of his life there exists only a difference of degree. --Muad'Dib[/size]
[img]http://www.browserloadofcoolness.com/sig.png[/img]

User avatar
Pizzasgood
Posts: 6183
Joined: Wed 04 May 2005, 20:28
Location: Knoxville, TN, USA

#95 Post by Pizzasgood »

Okay, turns out there are precompiled binaries of them included with the source, so I just packaged those. They're at the bottom of the first post in this thread.

Step One: Wacom Driver

You need to go through the first post in this thread and get the wacom driver installed, along with the wacom_tools package.

Additionally, you need to find the "Device" section in /etc/X11/xorg.conf, which begins with:

Code: Select all

Section "Device"
and add these lines:

Code: Select all

Option    "RandRRotation"    "on"
Option     "NvAGP"     "1"
Option    "Button2"    "3"

At this point you should make sure that you're able to draw on the tablet properly. We want to go one step at a time. When the "mouse" is behaving properly, we can move on to the rest. In particular, I think that the Udev rule probably isn't going to work. Jamesbond posted a more complex rule that might help.


Note: any time you run xorgwizard, your /etc/X11/xorg.conf file will be modified. If that happens the above changes to the file will be lost and you'll have to redo them. So I recommend that once you get everythign working, make a copy of the xorg.conf file as 'xorg.conf.WORKS' or something. Don't use the more obvious backup names like 'xorg.conf.bak' because other programs that edit the xorg.conf file might overwrite the backup.




Step Two: A Rotation Script

Next, according to that thread you need a script to rotate the screen when you press the button. One is attached to this post, but I'm also going to show it here since it's short. It's basically the same script that was in the Ubuntu thread, with a couple adjustments to make it work with Puppy. It should be placed in /usr/bin or some other location in the $PATH.

Code: Select all

#!/bin/sh

# Change System Input orientation for Tablet Mode
# Depends on wacom_tools and xrandr

ORIENTATION="$(xrandr | egrep -o 'current [0-9]+ x [0-9]+' | sed 's/current \([0-9]\+\) x \([0-9]\+\)/\1 \2/')"
WIDTH=$(echo "$ORIENTATION" | cut -f 1 -d ' ')
HEIGHT=$(echo "$ORIENTATION" | cut -f 2 -d ' ')
if [  $WIDTH -gt $HEIGHT ]; then
	xrandr -o left
	xsetwacom set stylus Rotate CCW
else
	xrandr -o normal
	xsetwacom set stylus Rotate none
fi
What it does is rotate the screen counter-clockwise if it isn't rotated yet, otherwise it puts it back. It determines the current orientation by looking at the aspect ratio - it makes the assumption that "normal" is wider than it is tall, so users with really funky monitors would need to adjust that part, but it will be fine for you.


Step Three: Finding/Setting the Keysym

Now we need to bind the script to the button, which is a two part process. The command can be bound to a "keysym" very easily. However, first we need to know the keysym of the button you referred to, and if it does not have one we must assign it.


So. To find the keysym (or keycode if there is none) we need the xev program, which Puppy doesn't include by default. It's in the xorg_xorg_full_dri-7.3 package, but that's pretty big (50 megs or so, IIRC). So in case you don't already have that, I've pulled out the xev executable and attached it.

Now that you have xev, use it: Open a terminal and run the command xev. This will open a window with whiteness and a square. Click on the window to make sure it has the focus, and move it to the side so you can see the terminal window too. Now whenever you press or release most keys, it will spout out information. So press the button that you want to control the rotation, and then examine the output. It will look something like this:

Code: Select all

KeyPress event, serial 29, synthetic NO, window 0x2c00001,
    root 0x45, subw 0x0, time 2505691954, (180,42), root:(643,108),
    state 0x2, keycode 65 (keysym 0x20, space), same_screen YES,
    XLookupString gives 1 bytes: (20) " "
    XmbLookupString gives 1 bytes: (20) " "
    XFilterEvent returns: False

KeyRelease event, serial 29, synthetic NO, window 0x2c00001,
    root 0x45, subw 0x0, time 2505692210, (180,42), root:(643,108),
    state 0x2, keycode 65 (keysym 0x20, space), same_screen YES,
    XLookupString gives 1 bytes: (20) " "
    XFilterEvent returns: False
The part you're interested in is the (keysym 0x20, space). As you may have guessed, this output was from my spacebar. Push your button and see if it puts any text there (besides the hexadecimal number - we don't care about that). If it does, that text is the keysym. Note it and skip the rest of this section and go straight to Section Four.


If it doesn't give a keysym, that means you'll need to define one. Not hard. But we need the keycode for that, so now look at the part of the output that looks like this: keycode 65 (it comes just before the keysym section, on the same line). That gives you the decimal number that corresponds to the key. If it doesn't give you one of those (or worse - doesn't even generate an event) then we have a Problem, which will require some research and experimentation to fix... Assuming that it does give you a keycode, we will bind that number (the keycode) to a textual string (the keysym).

To do that you need to create the text file /root/.Xmodmap (if it doesn't already exist). Because the name starts with a '.' it is a hidden file, so you'll need to click on the "eye" icon in the filemanager's toolbar to be able to see it after you create it (or if it already exists). Anyway, open (or create) it and insert the following:

Code: Select all

keycode ??? = XF86Launch0
Except replace the ??? with the keycode you just found. Save the file. Now the next time X starts, it should give the button the keysym 'XF86Launch0'. Use that as the keysym for the next stage.


Step Four: Bind the script to the keysym

Okay, so by this point you should have the wacom driver working, know the keysym for the button, and have the rotatescreen.sh script in the $PATH somewhere (e.g. /usr/bin). Now, assuming you use JWM, edit the file /root/.jwm/jwmrc-personal. This is in the hidden '.jwm' directory, so you'll have to click the "eye" icon in the file manager's toolbar to see it. Okay, now scroll down near the bottom. There should already be some key bindings in there, but whether there are or not is irrelevant. I just want you to put it near them if there already are some, so that things are nice and tidy. Insert the following:

Code: Select all

<Key key="XF86Launch0">exec:rotatescreen.sh</Key>
But replace XF86Launch0 with whatever your keysym is. Make sure you place this somewhere ABOVE the </JWM> line. Save the file.

Now restart X. Hopefully it should all work.


If you don't use JWM then you need to do the equivalent procedure for whatever you do have. Post it and we can help.





FYI, tomorrow night I leave for a week to visit my dad (who also happens to be getting married on Saturday). He doesn't have internet access out there, so please don't think I'm ignoring you if I don't respond right away. I'll get back on Tuesday 28, barring airport-idiocy. :roll:
Attachments
rotatescreen.tar.gz
A script to rotate the screen and tablet 90 degrees. Extract it and place in the $PATH somewhere (e.g. /usr/bin)
(399 Bytes) Downloaded 575 times
xev_standalone.pet
The handy xev program pulled out of xorg_xorg_full_dri-7.3.
(7.24 KiB) Downloaded 601 times
[size=75]Between depriving a man of one hour from his life and depriving him of his life there exists only a difference of degree. --Muad'Dib[/size]
[img]http://www.browserloadofcoolness.com/sig.png[/img]

User avatar
gymnart
Posts: 105
Joined: Wed 10 Dec 2008, 20:32
Contact:

#96 Post by gymnart »

How about for Puppy 4.3, will this work since it is a newer version?

User avatar
mikeb
Posts: 11297
Joined: Thu 23 Nov 2006, 13:56

#97 Post by mikeb »

If it uses the same kernel as 4.21 and same xorg (7.3) then you may be in look. Look in /lib/modules/ for 2.6.25.16...of it exists if so then hopeful.
Plus it needs the fixed xinput gtk2, or a later proprly compiled version.
As you are being a beta tester be prepared to fix things generally.

I may be being pessimistic :D

Mike

User avatar
gymnart
Posts: 105
Joined: Wed 10 Dec 2008, 20:32
Contact:

#98 Post by gymnart »

Puppy 4.3 is beta? My husband got it so I didn't see exactly what the link said.

User avatar
mikeb
Posts: 11297
Joined: Thu 23 Nov 2006, 13:56

#99 Post by mikeb »

Well perhaps try it anyway........if you have no success use an earlier puppy that the packages here do work on

mike

User avatar
Pizzasgood
Posts: 6183
Joined: Wed 04 May 2005, 20:28
Location: Knoxville, TN, USA

#100 Post by Pizzasgood »

4.3 probably includes whatever the latest version of the kernel driver was at the time that that version of the kernel was released. So unless you use a newer tablet, that kernel driver should be sufficient, and you'd just need to install the xorg driver and then do the configuration. Unless it uses a different version of Xorg, that probably won't be a problem.
[size=75]Between depriving a man of one hour from his life and depriving him of his life there exists only a difference of degree. --Muad'Dib[/size]
[img]http://www.browserloadofcoolness.com/sig.png[/img]

Post Reply