How to set up a Wacom Tablet
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!
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]
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?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.
mike
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:
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.
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"
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]
- Pizzasgood
- Posts: 6183
- Joined: Wed 04 May 2005, 20:28
- Location: Knoxville, TN, USA
- Pizzasgood
- Posts: 6183
- Joined: Wed 04 May 2005, 20:28
- Location: Knoxville, TN, USA
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]
[img]http://www.browserloadofcoolness.com/sig.png[/img]
- Pizzasgood
- Posts: 6183
- Joined: Wed 04 May 2005, 20:28
- Location: Knoxville, TN, USA
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.
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.
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
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
Can you boil this thread down for me and my HP TC1100?
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
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
- Pizzasgood
- Posts: 6183
- Joined: Wed 04 May 2005, 20:28
- Location: Knoxville, TN, USA
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]
[img]http://www.browserloadofcoolness.com/sig.png[/img]
- Pizzasgood
- Posts: 6183
- Joined: Wed 04 May 2005, 20:28
- Location: Knoxville, TN, USA
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:
and add these lines:
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.
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:
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:
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:
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.
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"
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
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
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
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>
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.
- 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 583 times
-
- xev_standalone.pet
- The handy xev program pulled out of xorg_xorg_full_dri-7.3.
- (7.24 KiB) Downloaded 604 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]
[img]http://www.browserloadofcoolness.com/sig.png[/img]
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
Mike
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
Mike
- Pizzasgood
- Posts: 6183
- Joined: Wed 04 May 2005, 20:28
- Location: Knoxville, TN, USA
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]
[img]http://www.browserloadofcoolness.com/sig.png[/img]