Wacom BAMBOO in SourceMage GNU/Linux on Inspiron 1420n
From TitanoWiki
OK, so here's my page to configure a Wacom BAMBOO in SourceMage GNU/Linux on an Inspiron 1420n
Wacom BAMBOO MTE-450
The Wacom BAMBOO tablet is an entry-level input device for drawing, marking, and other uses.
Bamboo - Features & Benefits
- Works with new handwriting recognition, inking and pen features in Windows Vista (all editions but Home Basic) and Apple operating systems (OS X) (NO LINUX?)
- Supports widescreen displays and has a textured work surface for a natural pen-on-paper feel
- High resolution and report rate for outstanding accuracy
- Precise control and 512 levels of pressure sensitivity on the pen
- Quick access to user-defined shortcuts with four Express Keys™ (MIGHT BE INTERESTING GETTING THESE TO WORK)
- Easy scrolling and zooming with finger-sensitive Touch Ring (DITTO)
- Patented, battery-free pen with customizable buttons for comfort and reliability
- Detachable USB cable unplugs from your computer and your tablet for easy storage and transport
- Ergonomic design provides a comfortable supplement to mouse and keyboard input
- Includes one year warranty
SourceMage GNU/Linux
[Some information on the distribution I am using goes here]
Dell Inspiron 1420n
[Some information on the Dell Inspiron 1420n laptop goes here]
Wacom BAMBOO in SourceMage GNU/Linux on an Inspiron 1420n
OK let's get to it. From a number of sources online, I found a xorg.conf that works. Later steps include udev rulemaking, as well as testing the tablet itself as a mouse pointer, and ultimately a successful tool in GIMP and INKSCAPE.
Linux kernel configuration for the Wacom BAMBOO
In SourceMage GNU/Linux one simply has to execute cast -r linux for kernel configuration/compilation/insallation.
In your preferred kernel config tool (I use menuconfig) make sure you have enabled kernel support for the device:
Device Drivers --->
Input device support --->
<*> Event interface
[*] Tablets --->
<M> Wacom Intuos/Graphire tablet support (USB)
Compile your kernel or do the make modules && make modules_install steps or however you compile your kernel support for your distro.
You can load the module and check that it loaded with the modprobe and lsmod commands:
root@SMGL-1420n:~# modprobe wacom
root@SMGL-1420n:~# lsmod Module Size Used by wacom 14976 0
With Linux kernel support for the device, now we move on to the configuration of the X server.
X11 server configuration for the Wacom BAMBOO
The following file is my /etc/X11/xorg.conf, you will need to adapt it to your own system.
# 20080103 : wacom edit
Section "Files"
RgbPath "/usr/share/X11/rgb"
ModulePath "/usr/lib/xorg/modules"
FontPath "/usr/lib/X11/fonts/misc/"
FontPath "/usr/lib/X11/fonts/TTF/"
FontPath "/usr/lib/X11/fonts/OTF"
FontPath "/usr/lib/X11/fonts/Type1/"
FontPath "/usr/lib/X11/fonts/100dpi/"
FontPath "/usr/lib/X11/fonts/75dpi/"
FontPath "/usr/share/fonts/misc/"
EndSection
Section "Module"
Load "extmod"
Load "record"
Load "dbe"
Load "glx"
Load "GLcore"
Load "dri"
Load "freetype"
Load "type1"
EndSection
Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
EndSection
Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/input/mice"
Option "ZAxisMapping" "4 5 6 7"
EndSection
Section "InputDevice"
Driver "wacom"
Identifier "stylus"
Option "Device" "/dev/input/tablet-bamboo"
Option "Type" "stylus"
#Option "ForceDevice" "ISDV4"# Tablet PC ONLY
Option "USB" "on"
Option "Vendor" "WACOM"
Option "tilt" "on" #add this if your tablet supports tilt
Option "Threshold" "5" #the official linuxwacom howto advised
Option "Mode" "Relative" # other option: "Absolute"
EndSection
Section "InputDevice"
Driver "wacom"
Identifier "eraser"
Option "Device" "/dev/input/tablet-bamboo"
Option "Type" "eraser"
#Option "ForceDevice" "ISDV4"# Tablet PC ONLY
Option "USB" "on"
Option "Vendor" "WACOM"
Option "tilt" "on" #add this if your tablet supports tilt
Option "Threshold" "5" #the official linuxwacom howto advised
Option "Mode" "Relative" # other option: "Absolute"
EndSection
Section "InputDevice"
Driver "wacom"
Identifier "cursor"
Option "Device" "/dev/input/tablet-bamboo"
Option "Type" "cursor"
#Option "ForceDevice" "ISDV4" # Tablet PC ONLY
Option "USB" "on"
Option "Vendor" "WACOM"
Option "Mode" "Relative" # other option: "Absolute"
EndSection
Section "InputDevice"
Identifier "pad"
Driver "wacom"
Option "Type" "pad"
Option "Device" "/dev/input/tablet-bamboo"
Option "ButtonsOnly" "on"
Option "Button9" "2"
Option "Button13" "3"
Option "USB" "on"
EndSection
Section "Monitor"
#DisplaySize 300 190 # mm
Identifier "Monitor0"
VendorName "SEC"
ModelName "3157"
EndSection
Section "Device"
#Option "NoAccel" # [bool]
#Option "SWcursor" # [bool]
#Option "ColorKey" # [i]
#Option "CacheLines" # [i]
#Option "Dac6Bit" # [bool]
#Option "DRI" # [bool]
#Option "NoDDC" # [bool]
#Option "ShowCache" # [bool]
#Option "XvMCSurfaces" # [i]
#Option "PageFlip" # [bool]
Identifier "Card0"
Driver "intel"
VendorName "Intel Corporation"
BoardName "Mobile Integrated Graphics Controller"
BusID "PCI:0:2:0"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
SubSection "Display"
Viewport 0 0
Depth 1
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 4
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 8
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 15
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 16
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 24
EndSubSection
EndSection
Section "ServerLayout"
Identifier "X.org Configured"
Screen 0 "Screen0" 0 0
InputDevice "Mouse0" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "stylus" "SendCoreEvents"
InputDevice "cursor" "SendCoreEvents"
InputDevice "eraser" "SendCoreEvents"
#InputDevice "pad" "SendCoreEvents"
EndSection
The linuxwacom package
You will need whatever linuxwacom package is required or supplied for your flavor of Linux. For my purposes in SourceMage GNU/Linux, I simply executed the following:
root@SMGL-1420n:~# gaze dependencies linuxwacom 2
linuxwacom ()
xproto (depends)
libxi (depends)
libx11 (depends)
X11-SERVER (depends)
tcl (depends)
tk (depends)
...(The '2' in the commandline was just to show dependencies only 2 layers deep.) SourceMage GNU/Linux tries to keep as close to upstream/author defaults as close as possible, so your mileage may vary in your flavor of distro, but you get the idea. Anyway, since I have all the dependencies, I simply call:
root@SMGL-1420n:~# cast linuxwacom
Computing previously installed dependencies...
linuxwacom preparing environment...
linuxwacom checking dependencies...
linuxwacom has a dependency on xproto
linuxwacom has a dependency on libxi
linuxwacom has a dependency on libx11
linuxwacom has a dependency on some X11-SERVER.
Continue to use xorg-server? [y] y
linuxwacom has a dependency on tcl
linuxwacom has a dependency on tk
xproto No work to do.
libxi No work to do.
libx11 No work to do.
xorg-server No work to do.
tcl No work to do.
tk No work to do.
Collating dependencies...
Spells are to be cast:
---------------------------
linuxwacom
Do you want to cast these spells? [y] y
...and the compilation and installation process completes...
udev rule configuration for the Wacom BAMBOO
Before editing the udev rules, you need to know what device it is. Start with lsusb:
root@SMGL-1420n:/etc/udev/rules.d# lsusb Bus 007 Device 001: ID 0000:0000 Bus 002 Device 001: ID 0000:0000 Bus 005 Device 001: ID 0000:0000 Bus 006 Device 007: ID 056a:0065 Wacom Co., Ltd Bus 006 Device 002: ID 045e:00e1 Microsoft Corp. Wireless Laser Mouse 6000 Reciever Bus 006 Device 001: ID 0000:0000 Bus 001 Device 001: ID 0000:0000 Bus 004 Device 001: ID 0000:0000 Bus 003 Device 001: ID 0000:0000 root@SMGL-1420n:/etc/udev/rules.d#
...So now we know that the Wacom vendor ID is 056a and the Bamboo device is 0065.
ryuji in irc.freenode.net #sourcemage pointed to this helpful link for finding the right syntax. You can click it or scroll down, I reproduced it at the bottom of this page. For our purposes, we note the following line as the one with the correct product:
KERNEL=="event[0-9]*", SYSFS{idVendor}=="056a", SYSFS{idProduct}=="0065", SYMLINK+="input/tablet-bamboo"
For your udev rules, you will probably want to create a specific rule for this. I created a 10-local.rules. The first few lines are for the 1420n dvd config, unrelated to this discussion. You can see the wacom entry below it.
root@SMGL-1420n:/etc/udev/rules.d# cat 10-local.rules
# /dev/hda [dvdrw] to /dev/dvd
KERNEL=="hda", NAME="%k", SYMLINK="dvd cdrom"
# cdrom device symlinks and permissions
# ENV{ID_CDROM}=="?*", GROUP="cdrom"
# ENV{ID_CDROM_CD_R}=="?*", MODE="0660", GROUP="video"
#Wacom Tablet
KERNEL=="event[0-9]*", SYSFS{idVendor}=="056a", SYSFS{idProduct}=="0065", SYMLINK+="input/tablet-bamboo"
root@SMGL-1420n:/etc/udev/rules.d#
...Now restart udev once you have created the rule with:
root@SMGL-1420n:/etc/udev/rules.d# udevcontrol --reload_rules root@SMGL-1420n:/etc/udev/rules.d#
...A point of clarification here: If you are running the latest udev, the command is now:
root@SMGL-1420n:~# udevadm control --reload_rules root@SMGL-1420n:~#
I then restarted X, and plugged the Bamboo tablet into any usb port. So to see if the /dev/input/tablet-bamboo is working, I checked:
briareus@SMGL-1420n:~$ ls -l /dev/input/tablet-bamboo lrwxrwxrwx 1 root root 6 2008-01-03 21:38 /dev/input/tablet-bamboo -> event7
linuxwacom commands
root@SMGL-1420n:/etc/udev/rules.d# wacdump /dev/input/tablet-bamboo
wacdump v0.7.4
MODEL=Wacom Bamboo ROM=1.0-8
CLS=USB VNDR=Wacom DEV=Bamboo SUB=MTE_450
TOOLTYPE=NONE SERIAL=0x00000000
IN_PROX=out BUTTON=+00000 (+00000 .. +00000)
POS_X=+00000 (+00000 .. +14760) POS_Y=+00000 (+00000 .. +09225)
DISTANCE=+00000 (+00000 .. +00063) PRESSURE=+00000 (+00000 .. +00511)
ABSWHEEL=+00000 (+00000 .. +00071) RELWHEEL=+00000 (-00001 .. +00001)
LEFT= MIDDLE= RIGHT= EXTRA=
SIDE= TOUCH= STYLUS= STYLUS2=
BT0= BT1= BT2= BT3=
BT4= BT5= BT6= BT7=
BT8= BT9= BT10= BT11=
BT12= BT13= BT14= BT15=
BT16= BT17= BT18= BT19=
BT20= BT21= BT22= BT23=
...This is normal view in the terminal with no activity (nothing touching) on the Bamboo pad.
- When you touch the stylus to the pad, you will see TOOLTYPE=Pen and the line below will read IN_PROX=in, TOUCH=down in the 2nd column.
- When you touch the eraser tip to the pad, you see TOOLTYPE=Eraser, IN_PROX=in, second column TOUCH=down.
- When you press lower stylus button: TOOLTYPE=Pen, IN_PROX=in, TOUCH=down, STYLUS=down.
- When you press upper stylus button: TOOLTYPE=Pen, IN_PROX=in, TOUCH=down, STYLUS2=down.
- When you press the tablet's top-left "<" button: TOOLTYPE=Pad, IN_PROX=in, BT0=down.
- When you press the tablet's lower-left FN1 button: TOOLTYPE=Pad, IN_PROX=in, BT1=down.
- When you press the tablet's top-right ">" button: TOOLTYPE=Pad, IN_PROX=in, BT2=down.
- When you press the tablet's lower-right FN2 button: TOOLTYPE=Pad, IN_PROX=in, BT3=down.
- When you spin your finger around the tablet's wheel: TOOLTYPE=Pad, IN_PROX=in, and ABSWHEEL=+00000 will cycle through +00071.
So far, this all appears to be normal, and the stylus does act like a mouse pointer with left/right clicks. But I still don't have the functionality in GIMP or INKSCAPE yet. In both programs I see no options under "extended inputs". So we are most of the way there I think, but more config is needed.
Troubleshooting
This section is for my troubleshooting use, you can safely ignore this and go to the next part below.
briareus@SMGL-1420n:/proc/bus/input$ cat devices [snip] I: Bus=0003 Vendor=056a Product=0065 Version=0108 N: Name="Wacom Bamboo" P: Phys= S: Sysfs=/class/input/input12 U: Uniq= H: Handlers=mouse3 event7 B: EV=1f B: KEY=1c63 0 70033 0 0 0 0 0 0 0 0 B: REL=100 B: ABS=100 3000103 B: MSC=1 [snip]
gtk+2 build requirements for fully functional Wacom BAMBOO
I had problems in Gimp and Inkscape. I could get the BAMBOO to act like a mouse, but not as a fully functional tablet device. In the Gimp menu FILE -> PREFERENCES -> INPUT DEVICES -> CONFIGURE EXTENDED DEVICES, I got an error of "No Extended Devices". The I discovered that I hadn't built gtk+2 with xinput enabled when I thought I had. I found out when someone in the #gimp channel of irc.freenode.net recommended that I see if the tablet works in Inkscape. It didn't. So that pointed a big flaming red arrow at my gtk+2 build as the culprit.
So let's build gtk+2 with xinput enabled, shall we? To do this, you will need to edit your configure file for gtk+2 and look for this:
# --with-xinput=[no/yes] enable Xinput
...and edit it to this:
--with-xinput=yes
...and then build it using whatever method your distro flavor uses. In SourceMage, when casting any spell from source, sorcery prompts you to edit the configure file and makes it really easy. Your mileage may vary.
The Gimp configuration for Wacom BAMBOO
For full functionality and pressure sensitivity in The GIMP, go to In the Gimp menu FILE -> PREFERENCES -> INPUT DEVICES -> CONFIGURE EXTENDED DEVICES. If you get a popup that says "No Input Devices" then you need to point your eyes a few lines above where you are looking now and read the gtk+2 build requirements. For each of your tools: eraser, stylus, and cursor, set the mode to Screen. I clicked Save for each, you might just need to click save once. I have read that the pad device should be kept disabled, but I don't know for sure. When I find out I'll edit this.
To use the buttons of your tablet you can map them to keyboard commands with a program such as Wacom ExpressKeys. More on this here when I learn it.
Once you save the above settings and press OK, you can then set it to remember your settings by clicking in the check mark box. I have read that there is a Gimp bug here that won't remember your settings, so your mileage may vary.
If after all the above configs, you can't get The Gimp to recognize your tablet, then unplug the tablet, restart your X server, plug the wacom back into the usb port, make sure the wacom driver is loaded with lsmod, and then open The Gimp and go to the Preferences menu again.
Inkscape configuration for Wacom BAMBOO
Inkscape will necessarily suffer from the same lack of device detection if you haven't built gtk+2 --with-xinput outlined in The Gimp section above. So with all things working well, you can then enable the devices in Inkscape in the same way as in The Gimp but in a slightly different place. In Inkscape go to FILE -> INPUT DEVICES and follow the same steps as above for The Gimp.
Tricks and Tips for using Wacom BAMBOO in The Gimp and Inkscape
I don't know any as yet, but as I get experience and learn any I will add them here.
Table of wacom usb devices and associated udev entries
This is reproduced here from this link for your benefit.
# udev rules for wacom tablets.
# These rules were compiled for the Debian GNU/Linux distribution,
# but others may, and indeed are encouraged to, use them also.
#
# Should you do so, PLEASE CO-ORDINATE ANY CHANGES OR ADDITIONS
# of new devices with Ron <ron@debian.org> so that we can try
# to present users with with a standard set of device nodes
# which they can rely on across the board.
#
# Convenience link for the common case of a single tablet.
KERNEL=="event[0-9]*", SYSFS{idVendor}=="056a", SYMLINK="input/wacom"
#
# You probably won't need this IMPORT rule, since an earlier file is
# likely to have already done it, but the rule that follows it does
# depend on that having happened to set ID_PATH.
# IMPORT{program}="path_id %p"
#
# Port specific link for users of multiple tablets of the same type.
KERNEL=="event[0-9]*", SYSFS{idVendor}=="056a", ENV{ID_PATH}=="?*", SYMLINK+="input/by-path/$env{ID_PATH}-wacom"
#
# Type-named links for multiple tablets. If you want to use multiple
# tablets of the _same_ type, you will probably need to use the links
# from /dev/input/by-path to identify which is plugged into what usb
# port. For different types though, just pick your links from the
# list below.
KERNEL=="event[0-9]*", SYSFS{idVendor}=="056a", SYSFS{idProduct}=="0000", SYMLINK+="input/tablet-penpartner"
KERNEL=="event[0-9]*", SYSFS{idVendor}=="056a", SYSFS{idProduct}=="0010", SYMLINK+="input/tablet-graphire"
KERNEL=="event[0-9]*", SYSFS{idVendor}=="056a", SYSFS{idProduct}=="0011", SYMLINK+="input/tablet-graphire2-4x5"
KERNEL=="event[0-9]*", SYSFS{idVendor}=="056a", SYSFS{idProduct}=="0012", SYMLINK+="input/tablet-graphire2-5x7"
KERNEL=="event[0-9]*", SYSFS{idVendor}=="056a", SYSFS{idProduct}=="0013", SYMLINK+="input/tablet-graphire3"
KERNEL=="event[0-9]*", SYSFS{idVendor}=="056a", SYSFS{idProduct}=="0014", SYMLINK+="input/tablet-graphire3-6x8"
KERNEL=="event[0-9]*", SYSFS{idVendor}=="056a", SYSFS{idProduct}=="0015", SYMLINK+="input/tablet-graphire4-4x5"
KERNEL=="event[0-9]*", SYSFS{idVendor}=="056a", SYSFS{idProduct}=="0016", SYMLINK+="input/tablet-graphire4-6x8"
KERNEL=="event[0-9]*", SYSFS{idVendor}=="056a", SYSFS{idProduct}=="0060", SYMLINK+="input/tablet-volito"
KERNEL=="event[0-9]*", SYSFS{idVendor}=="056a", SYSFS{idProduct}=="0061", SYMLINK+="input/tablet-penstation2"
KERNEL=="event[0-9]*", SYSFS{idVendor}=="056a", SYSFS{idProduct}=="0062", SYMLINK+="input/tablet-volito2-4x5"
KERNEL=="event[0-9]*", SYSFS{idVendor}=="056a", SYSFS{idProduct}=="0063", SYMLINK+="input/tablet-volito2-2x3"
KERNEL=="event[0-9]*", SYSFS{idVendor}=="056a", SYSFS{idProduct}=="0064", SYMLINK+="input/tablet-penpartner2"
KERNEL=="event[0-9]*", SYSFS{idVendor}=="056a", SYSFS{idProduct}=="0020", SYMLINK+="input/tablet-intuos-4x5"
KERNEL=="event[0-9]*", SYSFS{idVendor}=="056a", SYSFS{idProduct}=="0021", SYMLINK+="input/tablet-intuos-6x8"
KERNEL=="event[0-9]*", SYSFS{idVendor}=="056a", SYSFS{idProduct}=="0022", SYMLINK+="input/tablet-intuos-9x12"
KERNEL=="event[0-9]*", SYSFS{idVendor}=="056a", SYSFS{idProduct}=="0023", SYMLINK+="input/tablet-intuos-12x12"
KERNEL=="event[0-9]*", SYSFS{idVendor}=="056a", SYSFS{idProduct}=="0024", SYMLINK+="input/tablet-intuos-12x18"
KERNEL=="event[0-9]*", SYSFS{idVendor}=="056a", SYSFS{idProduct}=="0030", SYMLINK+="input/tablet-pl400"
KERNEL=="event[0-9]*", SYSFS{idVendor}=="056a", SYSFS{idProduct}=="0031", SYMLINK+="input/tablet-pl500"
KERNEL=="event[0-9]*", SYSFS{idVendor}=="056a", SYSFS{idProduct}=="0032", SYMLINK+="input/tablet-pl600"
KERNEL=="event[0-9]*", SYSFS{idVendor}=="056a", SYSFS{idProduct}=="0033", SYMLINK+="input/tablet-pl600sx"
KERNEL=="event[0-9]*", SYSFS{idVendor}=="056a", SYSFS{idProduct}=="0034", SYMLINK+="input/tablet-pl550"
KERNEL=="event[0-9]*", SYSFS{idVendor}=="056a", SYSFS{idProduct}=="0035", SYMLINK+="input/tablet-pl800"
KERNEL=="event[0-9]*", SYSFS{idVendor}=="056a", SYSFS{idProduct}=="0037", SYMLINK+="input/tablet-pl700"
KERNEL=="event[0-9]*", SYSFS{idVendor}=="056a", SYSFS{idProduct}=="0038", SYMLINK+="input/tablet-pl510"
KERNEL=="event[0-9]*", SYSFS{idVendor}=="056a", SYSFS{idProduct}=="0039", SYMLINK+="input/tablet-dtu710"
KERNEL=="event[0-9]*", SYSFS{idVendor}=="056a", SYSFS{idProduct}=="00c0", SYMLINK+="input/tablet-dtf521"
KERNEL=="event[0-9]*", SYSFS{idVendor}=="056a", SYSFS{idProduct}=="00c4", SYMLINK+="input/tablet-dtf720"
KERNEL=="event[0-9]*", SYSFS{idVendor}=="056a", SYSFS{idProduct}=="0003", SYMLINK+="input/tablet-cintiq_partner"
KERNEL=="event[0-9]*", SYSFS{idVendor}=="056a", SYSFS{idProduct}=="0041", SYMLINK+="input/tablet-intuos2-4x5"
KERNEL=="event[0-9]*", SYSFS{idVendor}=="056a", SYSFS{idProduct}=="0042", SYMLINK+="input/tablet-intuos2-6x8"
KERNEL=="event[0-9]*", SYSFS{idVendor}=="056a", SYSFS{idProduct}=="0043", SYMLINK+="input/tablet-intuos2-9x12"
KERNEL=="event[0-9]*", SYSFS{idVendor}=="056a", SYSFS{idProduct}=="0044", SYMLINK+="input/tablet-intuos2-12x12"
KERNEL=="event[0-9]*", SYSFS{idVendor}=="056a", SYSFS{idProduct}=="0045", SYMLINK+="input/tablet-intuos2-12x18"
KERNEL=="event[0-9]*", SYSFS{idVendor}=="056a", SYSFS{idProduct}=="00b0", SYMLINK+="input/tablet-intuos3-4x5"
KERNEL=="event[0-9]*", SYSFS{idVendor}=="056a", SYSFS{idProduct}=="00b1", SYMLINK+="input/tablet-intuos3-6x8"
KERNEL=="event[0-9]*", SYSFS{idVendor}=="056a", SYSFS{idProduct}=="00b2", SYMLINK+="input/tablet-intuos3-9x12"
KERNEL=="event[0-9]*", SYSFS{idVendor}=="056a", SYSFS{idProduct}=="00b3", SYMLINK+="input/tablet-intuos3-12x12"
KERNEL=="event[0-9]*", SYSFS{idVendor}=="056a", SYSFS{idProduct}=="00b4", SYMLINK+="input/tablet-intuos3-12x19"
KERNEL=="event[0-9]*", SYSFS{idVendor}=="056a", SYSFS{idProduct}=="00b5", SYMLINK+="input/tablet-intuos3-6x11"
KERNEL=="event[0-9]*", SYSFS{idVendor}=="056a", SYSFS{idProduct}=="003f", SYMLINK+="input/tablet-cintiq21ux"
KERNEL=="event[0-9]*", SYSFS{idVendor}=="056a", SYSFS{idProduct}=="0047", SYMLINK+="input/tablet-intuos2-6x8a"
KERNEL=="event[0-9]*", SYSFS{idVendor}=="056a", SYSFS{idProduct}=="0065", SYMLINK+="input/tablet-bamboo"
KERNEL=="event[0-9]*", SYSFS{idVendor}=="056a", SYSFS{idProduct}=="00c6", SYMLINK+="input/tablet-cintiq12wx"
KERNEL=="event[0-9]*", SYSFS{idVendor}=="056a", SYSFS{idProduct}=="0017", SYMLINK+="input/tablet-bamboofun-4x5"
KERNEL=="event[0-9]*", SYSFS{idVendor}=="056a", SYSFS{idProduct}=="0018", SYMLINK+="input/tablet-bamboofun-6x8"
KERNEL=="event[0-9]*", SYSFS{idVendor}=="056a", SYSFS{idProduct}=="0069", SYMLINK+="input/tablet-bamboo1"
#
# Check and repossess the device if a module other than the wacom one
# is already bound to it.
#
KERNEL=="event[0-9]*", SYSFS{idVendor}=="056a", ACTION=="add", RUN+="/lib/udev/check_driver wacom $devpath $env{ID_BUS}"
NOTES
insert something here.
