If you have already attempted to install the G2, it is best to start from scratch. Unplug the tablet, and
comment out any related lines in your XF86Config file. Then examine what
modules are currently loaded:
lsmod
You should get something similar to the following:
Module Size Used by Not tainted
nls_iso8859-1 2880 1 (autoclean)
nls_cp437 4384 1 (autoclean)
vfat 9244 1 (autoclean)
fat 28984 0 (autoclean) [vfat]
snd-pcm-oss 45152 1 (autoclean)
snd-mixer-oss 11136 1 (autoclean)
tdfx 34424 28
nfsd 64800 4 (autoclean)
parport_pc 25448 1 (autoclean)
lp 5824 0 (autoclean)
parport 21856 1 (autoclean) [parport_pc lp]
ipv6 123424 -1 (autoclean)
snd-ens1371 12036 2
snd-pcm 58528 0 [snd-pcm-oss snd-ens1371]
snd-timer 11456 0 [snd-pcm]
snd-rawmidi 13536 0 [snd-ens1371]
snd-seq-device 4336 0 [snd-rawmidi]
snd-ac97-codec 24196 0 [snd-ens1371]
snd 31720 0 [snd-pcm-oss snd-mixer-oss snd-ens1371 snd-pcm snd-timer
snd-rawmidi snd-seq-device snd-ac97-codec]
soundcore 3268 6 [snd]
isa-pnp 27816 0 (unused)
joydev 5728 0 (unused)
evdev 3904 0
input 3072 0 [joydev evdev]
st 25844 0 (autoclean) (unused)
sg 23620 0 (autoclean)
usb-uhci 20996 0 (unused)
usbcore 55136 1 [usb-uhci]
via-rhine 11748 1
mii 1040 0 [via-rhine]
ide-scsi 7648 0
reiserfs 158816 1
advansys 82368 0
If the module wacom is loaded, unload it:
rmmod wacom
Check for the existence of /dev/input/mouse0 and event0:
su
cd /dev/input
ls -al mouse0 event0
You should get:
crw-r--r-- 1 root root 13, 64 Mar 23 2002 event0
crw-r----- 1 root root 13, 32 Mar 23 2002 mouse0
Then run xxd on each of these devices (xxd "creates a hexdump of a given file or input",
according to the man page):
xxd mouse0
xxd event0
You should get a response saying "No such device" to each. If you get a blank
response for evdev, try:
modprobe joydev
and then try it again.
Check that graphireusb_drv.o is in /usr/X11R6/lib/modules/input:
locate graphireusb
(If you get a message that locate is an unknown command, install the package find-utils, which is
not installed by default on a new system, and run updatedb. Then repeat the command).
Start usbview if it is not already running: (Alt+F2) usbview
and also get a window into the message log:
su
tail -f /var/log/messages
Plug the tablet into a USB socket. You should hear two beeps, and usbview should show a new device in the tree.
The log should show something like this:
Nov 6 11:39:58 babylon kernel: hub.c: USB new device connect on bus2/2/2, assigned device number 3
Nov 6 11:39:58 babylon kernel: usb.c: USB device 3 (vend/prod 0x56a/0x11) is not claimed by any active driver.
Nov 6 11:39:58 babylon kernel: usb.c: registered new driver wacom
Nov 6 11:39:58 babylon kernel: usb-uhci.c: interrupt, status 3, frame# 1364
Nov 6 11:39:58 babylon insmod: Using /lib/modules/2.4.18-4GB/kernel/drivers/usb/wacom.o
Nov 6 11:39:58 babylon insmod: Symbol version prefix ''
Nov 6 11:39:58 babylon kernel: input0: Wacom Graphire2 4x5 on usb2:3.0
Nov 6 11:39:58 babylon kernel: wacom.c: v1.21.3 Vojtech Pavlik <vojtech@suse.cz>
Nov 6 11:39:58 babylon kernel: wacom.c: USB Wacom Graphire and Wacom Intuos tablet driver
Nov 6 11:39:58 babylon insmod: Using /lib/modules/2.4.18-4GB/kernel/drivers/usb/hid.o
Nov 6 11:39:58 babylon insmod: Symbol version prefix ''
Nov 6 11:39:58 babylon kernel: usb.c: registered new driver hiddev
Nov 6 11:39:58 babylon kernel: usb.c: registered new driver hid
Nov 6 11:39:58 babylon kernel: hid-core.c: v1.8.1 Andreas Gal, Vojtech Pavlik <vojtech@suse.cz>
Nov 6 11:39:58 babylon kernel: hid-core.c: USB HID support drivers
Nov 6 11:39:58 babylon insmod: Using /lib/modules/2.4.18-4GB/kernel/drivers/input/mousedev.o
This shows the new device being recognised and assigned to input0 - information on pressure etc will be received
on /dev/input/event0. The module wacom is loaded, followed by further modules, eg hid (Human Interface
Device), and mousedev - mouse information will appear at /dev/input/mouse0.
Now you can check whether the PC is receiving a data stream from the
device:
su
cd /dev/input
xxd event0
Bring the mouse or stylus into contact with the tablet and move it about. You
should get something like this:
0000000: 2c01 c93d 1cf1 0600 0400 0000 0000 0000 ,..=............
0000010: 2c01 c93d 4b10 0700 0400 0000 0000 0000 ,..=K...........
0000020: 2c01 c93d 892f 0700 0400 0000 0000 0000 ,..=./..........
0000030: 2c01 c93d c84e 0700 0400 0000 0000 0000 ,..=.N..........
0000040: 2c01 c93d ebde 0900 0400 0000 0000 0000 ,..=............
0000050: 2c01 c93d 28fe 0900 0400 0000 0000 0000 ,..=(...........
0000060: 2c01 c93d 661d 0a00 0400 0000 0000 0000 ,..=f...........
0000070: 2c01 c93d e35b 0a00 0400 0000 0000 0000 ,..=.[..........
0000080: 2c01 c93d 227b 0a00 0400 0000 0000 0000 ,..="{..........
0000090: 2c01 c93d 5f9a 0a00 0400 0000 0000 0000 ,..=_...........
00000a0: 2c01 c93d ddd8 0a00 0400 0000 0000 0000 ,..=............
00000b0: 2c01 c93d 1cf8 0a00 0400 0000 0000 0000 ,..=............
00000c0: 2c01 c93d 5917 0b00 0400 0000 0000 0000 ,..=Y...........
00000d0: 2c01 c93d 9936 0b00 0400 0000 0000 0000 ,..=.6..........
00000e0: 2c01 c93d 1875 0b00 0400 0000 0000 0000 ,..=.u..........
00000f0: 2c01 c93d 5594 0b00 0400 0000 0000 0000 ,..=U...........
0000100: 2c01 c93d 9ab3 0b00 0400 0000 0000 0000 ,..=............
0000110: 2c01 c93d d3d2 0b00 0400 0000 0000 0000 ,..=............
Press Ctrl-C to exit xxd. You can then try:
xxd mouse0
and you should get something similar.
Running lsmod should now show something like:
Module Size Used by Not tainted
mousedev 3872 0 (unused)
hid 17824 0 (unused)
wacom 6048 0 (unused)
nls_iso8859-1 2880 1 (autoclean)
nls_cp437 4384 1 (autoclean)
vfat 9244 1 (autoclean)
fat 28984 0 (autoclean) [vfat]
snd-pcm-oss 45152 0 (autoclean)
snd-mixer-oss 11136 1 (autoclean)
tdfx 34424 21
nfsd 64800 4 (autoclean)
parport_pc 25448 1 (autoclean)
lp 5824 0 (autoclean)
parport 21856 1 (autoclean) [parport_pc lp]
ipv6 123424 -1 (autoclean)
snd-ens1371 12036 1
snd-pcm 58528 0 [snd-pcm-oss snd-ens1371]
snd-timer 11456 0 [snd-pcm]
snd-rawmidi 13536 0 [snd-ens1371]
snd-seq-device 4336 0 [snd-rawmidi]
snd-ac97-codec 24196 0 [snd-ens1371]
snd 31720 0 [snd-pcm-oss snd-mixer-oss snd-ens1371 snd-pcm snd-timer
snd-rawmidi snd-seq-device snd-ac97-codec]
soundcore 3268 6 [snd]
isa-pnp 27816 0 (unused)
joydev 5728 0 (unused)
evdev 3904 0
input 3072 0 [mousedev hid wacom joydev evdev]
st 25844 0 (autoclean) (unused)
sg 23620 0 (autoclean)
usb-uhci 20996 0 (unused)
usbcore 55136 1 [hid wacom usb-uhci]
via-rhine 11748 1
mii 1040 0 [via-rhine]
ide-scsi 7648 0
reiserfs 158816 1
advansys 82368 0
The next thing is to set up the tablet in X. Launch the mouse portion of Sax2:
sux
sax2 -F mouse
(the sux is needed because this is a GUI application)
Select Add, Tablet, Wacom, Graphire/Intuos (USB), and from the Expert tab change the driver to graphireusb. Then
press OK. Then select Add, Pen, Wacom, Graphire/Intuos Stylus (USB), change the driver, and press OK. Finally,
select Add, Pen, Wacom, Graphire/Intuos Eraser (USB), change the driver, and press OK. Then press Finish,
Save configuration, and Yes to exit Sax2.
XF86Config will now have additional InputDevice sections for the tablet, as
shown here:
Section "InputDevice"
Driver "graphireusb"
Identifier "Mouse[3]"
Option "Device" "/dev/input/event0"
Option "InputFashion" "Tablet"
Option "KeepShape" "on"
Option "Mode" "Absolute"
Option "Name" "Graphire/Intuos (USB)"
Option "Protocol" "Auto"
Option "SendCoreEvents" "on"
Option "Tilt" "on"
Option "Type" "cursor"
Option "USB" "on"
Option "Vendor" "Wacom"
EndSection
Section "InputDevice"
Driver "graphireusb"
Identifier "Mouse[5]"
Option "Device" "/dev/input/event0"
Option "InputFashion" "Pen"
Option "KeepShape" "on"
Option "Mode" "Absolute"
Option "Name" "Graphire/Intuos Stylus (USB)"
Option "Protocol" "Auto"
Option "SendCoreEvents" "on"
Option "Tilt" "on"
Option "Type" "stylus"
Option "USB" "on"
Option "Vendor" "Wacom"
EndSection
Section "InputDevice"
Driver "graphireusb"
Identifier "Mouse[7]"
Option "Device" "/dev/input/event0"
Option "InputFashion" "Pen"
Option "KeepShape" "on"
Option "Mode" "Absolute"
Option "Name" "Graphire/Intuos Eraser (USB)"
Option "Protocol" "Auto"
Option "SendCoreEvents" "on"
Option "Tilt" "on"
Option "Type" "eraser"
Option "USB" "on"
Option "Vendor" "Wacom"
EndSection
However, these need to be edited, and further items need to be added.
Open the file in an editor:
su
pico /etc/X11/XF86Config
and make changes as follows.
In the Module section, add:
Load "graphireusb"
to load the tablet driver.
In the InputDevice section for the tablet, change the lines:
Identifier "Mouse[3]"
Option "Type" "cursor"
to read:
Identifier "gmouse"
Option "Type" "gmouse"
In the InputDevice section for the stylus, change the lines:
Identifier "Mouse[5]"
Option "Type" "stylus"
to read:
Identifier "gstylus"
Option "Type" "gstylus"
In the InputDevice section for the eraser, change the lines:
Identifier "Mouse[7]"
Option "Type" "eraser"
to read:
Identifier "geraser"
Option "Type" "geraser"
Note that you MUST use these names with the graphireusb driver. If you use any others, the XServer will error on
startup: "No type or invalid type specified" (the message will be in the log at /var/log/XFree86.0.log). This
means that using graphireusb gives fewer options than using the wacom driver, since you can't set up the same
physical device as two logical devices (see section 5.12 of the Wacom HOWTO).
Next, in the ServerLayout section, add:
InputDevice "gmouse" "SendCoreEvents"
InputDevice "gstylus" "SendCoreEvents"
InputDevice "geraser" "SendCoreEvents"
The revised sections should then look something like this:
Section "Module"
Load "type1"
Load "speedo"
Load "extmod"
Load "freetype"
Load "glx"
Load "graphireusb"
EndSection
Section "InputDevice"
Driver "Keyboard"
Identifier "Keyboard[0]"
Option "Protocol" "Standard"
Option "XkbLayout" "gb"
Option "XkbModel" "pc105"
Option "XkbRules" "xfree86"
EndSection
Section "InputDevice"
Driver "mouse"
Identifier "Mouse[1]"
Option "ButtonNumber" "5"
Option "Device" "/dev/mouse"
Option "InputFashion" "Mouse"
Option "Name" "Autodetection"
Option "Protocol" "imps/2"
Option "Vendor" "Sysp"
Option "ZAxisMapping" "4 5"
EndSection
Section "InputDevice"
Driver "graphireusb"
Identifier "gmouse"
Option "Device" "/dev/input/event0"
Option "InputFashion" "Tablet"
Option "KeepShape" "on"
Option "Mode" "Absolute"
Option "Name" "Graphire/Intuos (USB)"
Option "Protocol" "Auto"
Option "SendCoreEvents" "on"
Option "Tilt" "on"
Option "Type" "gmouse"
Option "USB" "on"
Option "Vendor" "Wacom"
EndSection
Section "InputDevice"
Driver "graphireusb"
Identifier "geraser"
Option "Device" "/dev/input/event0"
Option "InputFashion" "Pen"
Option "KeepShape" "on"
Option "Mode" "Absolute"
Option "Name" "Graphire/Intuos Eraser (USB)"
Option "Protocol" "Auto"
Option "SendCoreEvents" "on"
Option "Tilt" "on"
Option "Type" "geraser"
Option "USB" "on"
Option "Vendor" "Wacom"
EndSection
Section "InputDevice"
Driver "graphireusb"
Identifier "gstylus"
Option "Device" "/dev/input/event0"
Option "InputFashion" "Pen"
Option "KeepShape" "on"
Option "Mode" "Absolute"
Option "Name" "Graphire/Intuos Stylus (USB)"
Option "Protocol" "Auto"
Option "SendCoreEvents" "on"
Option "Tilt" "on"
Option "Type" "gstylus"
Option "USB" "on"
Option "Vendor" "Wacom"
EndSection
Section "ServerLayout"
Identifier "Layout[all]"
InputDevice "Keyboard[0]" "CoreKeyboard"
InputDevice "Mouse[1]" "CorePointer"
InputDevice "gmouse" "SendCoreEvents"
InputDevice "gstylus" "SendCoreEvents"
InputDevice "geraser" "SendCoreEvents"
Option "Clone" "off"
Option "Xinerama" "off"
Screen "Screen[0]"
EndSection
Save the file XF86Config, and then close all windows and log out (to restart X). When X starts up again,
log back in. If X does not start, log in as root at the console, and
run:
grep -i XINPUT /var/log/XFree86.0.log
and
grep -i graphireusb /var/log/XFree86.0.log
which should give you an indication of the error. Correct it, log out, then log in as yourself, and run
startx to launch X. If it still doesn't oblige, log back in as root, and
revert to the old XF86Config file:
cd /etc/X11
cp XF86Config.orig XF86Config
Then go through the above steps again from scratch. Note that the USB subsystem is a bit fiddly on 8.0, and
you may have to experiment with unloading various modules, or even rebooting to get a clean start environment.
If all has gone well, and X has started without any problems, the above two commands should show something
like this:
babylon:/home/kevin # grep -i XINPUT /var/log/XFree86.0.log
XFree86 XInput driver : 0.3
Module class: XFree86 XInput Driver
ABI class: XFree86 XInput driver, version 0.3
Module class: XFree86 XInput Driver
ABI class: XFree86 XInput driver, version 0.3
(II) Initializing built-in extension XInputExtension
(II) XINPUT: Adding extended input device "geraser" (type: Graphire Eraser)
(II) XINPUT: Adding extended input device "gstylus" (type: Graphire Stylus)
(II) XINPUT: Adding extended input device "gmouse" (type: Graphire Mouse)
(II) XINPUT: Adding extended input device "Mouse[1]" (type: MOUSE)
babylon:/home/kevin # grep -i graphireusb /var/log/XFree86.0.log
(II) LoadModule: "graphireusb"
(II) Loading /usr/X11R6/lib/modules/input/graphireusb_drv.o
(II) Module graphireusb: vendor="The XFree86 Project"
(II) LoadModule: "graphireusb"
(II) Reloading /usr/X11R6/lib/modules/input/graphireusb_drv.o
(==) GraphireUSB tablet top X=0 top Y=0 bottom X=9897 bottom Y=7422
(==) GraphireUSB tablet top X=0 top Y=0 bottom X=9897 bottom Y=7422
(==) GraphireUSB tablet top X=0 top Y=0 bottom X=9897 bottom Y=7422
This shows that the 3 new devices have been recognised, and that the driver for the tablet has been loaded OK.
It is also possible to use the wacom driver instead of the graphireusb driver. To do this, just replace in
the XF86Config file the words "graphireusb" with "wacom", "gmouse" with "cursor", "gstylus" with "stylus", and
"geraser" with "eraser", so that the end result looks like this:
Section "Module"
Load "type1"
Load "speedo"
Load "extmod"
Load "freetype"
Load "glx"
Load "dri"
Load "wacom"
EndSection
Section "InputDevice"
Driver "keyboard"
Identifier "Keyboard[0]"
Option "Protocol" "Standard"
Option "XkbKeyCodes" "xfree86"
Option "XkbLayout" "gb"
Option "XkbModel" "pc104"
Option "XkbRules" "xfree86"
EndSection
Section "InputDevice"
Driver "mouse"
Identifier "Mouse[1]"
Option "ButtonNumber" "5"
Option "Device" "/dev/psaux"
Option "InputFashion" "Mouse"
Option "Name" "AutoDetected"
Option "Protocol" "imps/2"
Option "Vendor" "AutoDetected"
Option "ZAxisMapping" "4 5"
EndSection
Section "InputDevice"
Driver "wacom"
Identifier "cursor"
Option "Device" "/dev/input/event0"
Option "InputFashion" "Tablet"
Option "KeepShape" "on"
Option "Mode" "Absolute"
Option "Name" "Graphire/Intuos (USB)"
Option "Protocol" "Auto"
Option "SendCoreEvents" "on"
Option "Tilt" "on"
Option "Type" "cursor"
Option "USB" "on"
Option "Vendor" "Wacom"
EndSection
Section "InputDevice"
Driver "wacom"
Identifier "stylus"
Option "Device" "/dev/input/event0"
Option "InputFashion" "Pen"
Option "KeepShape" "on"
Option "Mode" "Absolute"
Option "Name" "Graphire/Intuos Stylus (USB)"
Option "Protocol" "Auto"
Option "SendCoreEvents" "on"
Option "Tilt" "on"
Option "Type" "stylus"
Option "USB" "on"
Option "Vendor" "Wacom"
EndSection
Section "InputDevice"
Driver "wacom"
Identifier "eraser"
Option "Device" "/dev/input/event0"
Option "InputFashion" "Pen"
Option "KeepShape" "on"
Option "Mode" "Absolute"
Option "Name" "Graphire/Intuos Eraser (USB)"
Option "Protocol" "Auto"
Option "SendCoreEvents" "on"
Option "Tilt" "on"
Option "Type" "eraser"
Option "USB" "on"
Option "Vendor" "Wacom"
EndSection
Section "ServerLayout"
Identifier "Layout[all]"
InputDevice "Keyboard[0]" "CoreKeyboard"
InputDevice "Mouse[1]" "CorePointer"
InputDevice "cursor" "SendCoreEvents"
InputDevice "stylus" "SendCoreEvents"
InputDevice "eraser" "SendCoreEvents"
Option "Clone" "off"
Option "Xinerama" "off"
Screen "Screen[0]"
EndSection
Log out and back in again, and a grep of the X log will show that the device
has been started OK:
babylon:/home/kevin # grep -i wacom /var/log/XFree86.0.log
(II) LoadModule: "wacom"
(II) Loading /usr/X11R6/lib/modules/input/wacom_drv.o
(II) Module wacom: vendor="The XFree86 Project"
(II) Wacom driver level: 26 $
(II) LoadModule: "wacom"
(II) Reloading /usr/X11R6/lib/modules/input/wacom_drv.o
(II) Wacom driver level: 26 $
(II) XINPUT: Adding extended input device "eraser" (type: Wacom Eraser)
(II) XINPUT: Adding extended input device "stylus" (type: Wacom Stylus)
(II) XINPUT: Adding extended input device "cursor" (type: Wacom Cursor)
(==) Wacom Kernel Input device name: "Wacom Graphire2 4x5"
(==) Wacom tablet maximum X=10206 maximum Y=7422 X resolution=0 Y resolution=0 suppress=9
(==) Wacom tablet top X=0 top Y=0 bottom X=9897 bottom Y=7422
(==) Wacom tablet top X=0 top Y=0 bottom X=9897 bottom Y=7422
(==) Wacom tablet top X=0 top Y=0 bottom X=9897 bottom Y=7422
There may be good arguments for using one driver rather than the other, but I don't know what they are! The
best one I can see for using the wacom driver is that the graphireusb driver seems not to start properly sometimes.
It complains that an invalid threshold has been set, and resets that to 0, which seems to prevent the pen and
eraser working. Inserting
Option "Threshold" "5"
or
Option "Threshold" "1"
into the InputDevice sections for the pen and eraser worked sometimes, but not always.
More serious is the fact that under both drivers, unplugging and replugging the tablet will mean that the GIMP loses
contact with it, and doesn't see it when it is plugged in again. It is recognised OK by the system, so this may
be a GIMP failing. The tablet input devices are still listed, but they are not operational. Logging in again and
restarting GIMP leads to no devices at all being recognised. The only thing that works is a reboot! Pretty drastic.