# Need help getting wacom tablet to work

## Gentist

I'm trying to the tablet function of my Tablet PC (Asus R1E, apparently identical to the tablet of the older model R1F) to work, though from what I've gathered, the linuxwacom project doesn't support my type of tablet (Tablet PC with USB connected tablet).

Currently, I'm trying to implement the support myself, and need some help debugging (I should mention that I'm currently running Ubuntu, although I shouldn't have a problem adapting Gentoo specific stuff to Ubuntu and vice versa).

Before I start messing around too much I would like to know the answer to a few questions, starting with this:

In Ubuntu, a device called wacom is supposed to be created by udev rules. However, no such device is created. My assumption is that regardless of support, I should be able to get basic functionality from the tablet (acting as a normal mouse), but it appears that there is no attempt by the system to process the device. If it's possible, how can I get my tablet to "work" (i.e. get a device which corresponds to the hardware and outputs actual data)?

Some relevant output:

lsusb | grep Wacom:

```

Bus 003 Device 002: ID 056a:0090 Wacom Co., Ltd

```

/etc/udev/rules.d/50-xserver-xorg-input-wacom.rules (modified version):

```

# 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"

# R1E tablet added below

KERNEL=="event[0-9]*", SYSFS{idVendor}=="056a", SYSFS{idProduct}=="0090", SYMLINK+="input/tablet-r1series"

# 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}"

```

/proc/bus/input/devices:

```

I: Bus=0017 Vendor=0001 Product=0001 Version=0100

N: Name="Macintosh mouse button emulation"

P: Phys=

S: Sysfs=/class/input/input0

U: Uniq=

H: Handlers=mouse0 event0 

B: EV=7

B: KEY=70000 0 0 0 0 0 0 0 0

B: REL=3

I: Bus=0011 Vendor=0001 Product=0001 Version=ab41

N: Name="AT Translated Set 2 keyboard"

P: Phys=isa0060/serio0/input0

S: Sysfs=/class/input/input1

U: Uniq=

H: Handlers=kbd event1 

B: EV=120013

B: KEY=4 2000000 3802078 f840d001 feffffdf ffefffff ffffffff ffffffff

B: MSC=10

B: LED=7

I: Bus=0010 Vendor=001f Product=0001 Version=0100

N: Name="PC Speaker"

P: Phys=isa0061/input0

S: Sysfs=/class/input/input2

U: Uniq=

H: Handlers=kbd event2 

B: EV=40001

B: SND=6

I: Bus=0011 Vendor=0002 Product=0007 Version=01b1

N: Name="SynPS/2 Synaptics TouchPad"

P: Phys=isa0060/serio4/input0

S: Sysfs=/class/input/input3

U: Uniq=

H: Handlers=mouse1 event3 

B: EV=b

B: KEY=6420 0 70000 0 0 0 0 0 0 0 0

B: ABS=11000003

I: Bus=0019 Vendor=0000 Product=0002 Version=0000

N: Name="Power Button (FF)"

P: Phys=button_power/button/input0

S: Sysfs=/class/input/input4

U: Uniq=

H: Handlers=kbd event4 

B: EV=3

B: KEY=100000 0 0 0

I: Bus=0019 Vendor=0000 Product=0003 Version=0000

N: Name="Sleep Button (CM)"

P: Phys=PNP0C0E/button/input0

S: Sysfs=/class/input/input5

U: Uniq=

H: Handlers=kbd event5 

B: EV=3

B: KEY=4000 0 0 0 0

I: Bus=0019 Vendor=0000 Product=0005 Version=0000

N: Name="Lid Switch"

P: Phys=PNP0C0D/button/input0

S: Sysfs=/class/input/input6

U: Uniq=

H: Handlers=event6 

B: EV=21

B: SW=1

```

----------

## Farthom

I am having the exact same problem with my ASUS R1F laptop. This problem i believe has nothing to do with the linuxwacom project. It seems to be with the Gentoo kernel. There should be a device node /dev/input/event* corresponding to the tablet.  If you have installed the latest linuxwacom package... the wacom udev rules are installed, and there should be a symlink linking /dev/input/wacom to one of these event nodes. This is not the case. There is no wacom symlink. I do have event0 through event5, however running "cat event*" on each of them, I find that none react to me tapping my pen on the screen. According to the linuxwacom project, the USB tablet used in the Asus R1F and R1E tablet uses a different protocol, called "ISDV4" which is supported in the latest version of linuxwacom. It can be enabled by adding

Option "ForceDevice" "ISDV4" to each of the wacom input device sections in xorg.conf.

Unfortunatly, since the kernel doesnt handle the device correctly in the first place... this new support from linuxwacom doesnt help us. The newest version of Ubuntu apparantly got this tablet to work, so it is possible. Hopefully we can get a kernel patch which will handle this "different" wacom tablet properly... and set up the required device nodes. 

Does anyone have any additional info on this issue? Is there anyone working on getting this fixed?

Thanks in advance

Farthom

----------

## Farthom

Ok i have found some additional info about what some of the other distros are doing. Both Ubuntu and Slax boot up with the Tablet working OK. HOWEVER when i look in /proc/bus/usb/devices I see the entry for the tablet is actually being controlled by usbhid and NOT wacom. The other interesting thing to note... is these distros use an OLDER kernel version than currently available in portage (2.6.23) Therefore my suspicion is that the newer kernel is smarter and realizes that its a tablet, and wont use the usbhid driver. This could be why.. the entry under devices shows "Driver=(none)"

So I guess unless we can get the wacom kernel module to work, an alternate route would be to somehow force the tablet to be controlled by usbhid. Does anyone know how this could be done? I have usbhid enabled in my kernel, and wacom tablet disabled. but i still get "Driver=(none)"  The unfortunate side to this route.. is that the tablet will basically act as a second mouse, and wont have any pressure sensitivity. I wonder if we could get it to be recognized as a RAW hid device..... and ideas?

----------

