Getting a Wacom Bamboo CTH-470 tablet to work

Having only a few months of experience with FreeBSD I have been struggling almost a full day trying to get my new Wacom Bamboo Pen & Touch (CTH-470) to work, so by now some guidance would be most welcome.

This is what needs to work together:

[CMD=]uname -a[/CMD]
Code:
FreeBSD hamutaro 9.0-RELEASE FreeBSD 9.0-RELEASE #0: Tue Jan  3 07:46:30 UTC 201
2     root@farrell.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  amd64
[CMD=]usbconfig -d ugen0.3 dump_device_desc[/CMD]
Code:
ugen0.3: <CTH-470 Wacom Co.,Ltd.> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON

  bLength = 0x0012 
  bDescriptorType = 0x0001 
  bcdUSB = 0x0200 
  bDeviceClass = 0x0000 
  bDeviceSubClass = 0x0000 
  bDeviceProtocol = 0x0000 
  bMaxPacketSize0 = 0x0020 
  idVendor = 0x056a 
  idProduct = 0x00de 
  bcdDevice = 0x0100 
  iManufacturer = 0x0001  <Wacom Co.,Ltd.>
  iProduct = 0x0002  <CTH-470>
  iSerialNumber = 0x0000  <no string>
  bNumConfigurations = 0x0001

I have been trying to follow this guide, but webcamd-3.2.0.2 from ports does not work with this tablet (or I'm using it wrong).

[CMD=]sudo kldload cuse4bsd[/CMD]
[CMD=]sudo webcamd -U root -G operator[/CMD]
Code:
Cannot find USB device
cuse4bsd-kmod-0.1.23 and input-wacom-40.0.11.1 are installed from ports.

As recommended here I did a search for webcamd-3.4.0.1, but could not find it. Instead I followed the guide on the Webcamd website to get the latest code, except I kept cuse4bsd-kmod-0.1.23 from ports.

This build was not without problems.

[CMD=]make fetch[/CMD]
Code:
Try make fetch_clean if you get problems below!
[ -L media_tree ] || [ -d media_tree ] || (git clone git://linuxtv.org/media_tree.git media_tree)
Cloning into 'media_tree'...
remote: Counting objects: 2409225, done.
remote: Compressing objects: 100% (376989/376989), done.
remote: Total 2409225 (delta 2016607), reused 2399839 (delta 2009358)
Receiving objects: 100% (2409225/2409225), 454.36 MiB | 7.12 MiB/s, done.
Resolving deltas: 100% (2016607/2016607), done.
cd media_tree ; git pull
Already up-to-date.
[CMD=]cd patches[/CMD]
[CMD=]./do_patch.sh[/CMD]
Code:
2 out of 3 hunks failed--saving rejects to ../media_tree/drivers/media/dvb/dvb-core/[URL=http://jhofmann.se/perm/2012/FreeBSD-forum/dvb_frontend.c.rej.txt]dvb_frontend.c.rej[/URL]
1 out of 1 hunks failed--saving rejects to ../media_tree/drivers/media/video/[URL=http://jhofmann.se/perm/2012/FreeBSD-forum/videobuf2-core.c.rej.txt]videobuf2-core.c.rej[/URL]
1 out of 2 hunks failed--saving rejects to ../media_tree/drivers/media/video/[URL=http://jhofmann.se/perm/2012/FreeBSD-forum/videobuf2-memops.c.rej.txt]videobuf2-memops.c.rej[/URL]
2 out of 2 hunks failed--saving rejects to ../media_tree/drivers/media/video/[URL=http://jhofmann.se/perm/2012/FreeBSD-forum/videobuf2-vmalloc.c.rej.txt]videobuf2-vmalloc.c.rej[/URL]
patch: **** can't find ../media_tree/drivers/staging/media/as102/as102_drv.h
sed: ../media_tree/drivers/media/dvb/frontends/m88rs2000.c: No such file or directory
Some fixes was then needed before the code could compile, one set of changes was removing files from the Makefile that make did not know how to make.
[CMD=]svn diff[/CMD]
Output

Another set of changes is needed partly or fully due to the rejects, unfortunately I do not have a diff with only my changes. The following diff is the combined result of do_patch.sh and my changes to commit 2c699499df3f57e62725fcd56842090fb5e82600.
[CMD=]git diff[/CMD]
Output

The build then worked, or at least worked as good for me as the port.
[CMD=]sudo ./webcamd -U root -G operator[/CMD]
Code:
Cannot find USB device
 
Partially solved...

New versions of multimedia/webcamd and x11-drivers/input-wacom have arrived in ports and after installing these I can now use my tablet, but not without problems.

What works
I can use the pen in gimp, both the tip and the eraser (this works even better then expected, since gimp remembers the tool/brush you last used and switches to it automatically when you flip the pen). Pressure sensitivity and both buttons on the pen (2 and 3) also works.

In short: while in gimp everything is almost perfect.

The setup
Most things have not changed since the previous post, but multimedia/webcamd is now 3.5.0.2 and x11-drivers/input-wacom is 40.0.11.1_1.

To deactivate the touchpad functionality I have made these changes to /etc/devd.conf:
Code:
attach 100 {
# We don't want moused to try to use the Wacom tablet
#       device-name "ums[0-9]+";
        device-name "ums0";
        action "/etc/rc.d/moused quietstart $device-name";
};

detach 100 {
# We don't want moused to try to use the Wacom tablet
#       device-name "ums[0-9]+";
        device-name "ums0";
        action "/etc/rc.d/moused stop $device-name";
};
It is not a prefect solution, but it should not be a problem since I don't start the system with the tablet connected.

Some configuration of gimp was also needed.

The problem
As long as the tablet is connected the system only responds to every second event from my trackball. So if i scroll one step nothing happens until I scroll again, clicks or moves the pointer, then both events happen.

The trackball can also prevent input from the tablet entirely, you then need to poke the trackball and try again (repeat if necessary). Sometimes the keyboard is also blocked, but it might be less common. If the trackball is not touched, the keyboard and tablet can work in harmony.

This happens as soon as the tablet is connected, it doesn't matter if cuse4bsd is loaded or not, if webcamd is running or if /etc/rc.d/moused quietstart ums<ID of tablet> has been run. If the tablet is disconnected the trackball stops working completely, removing and reinserting the trackball will restore it to full operation (all events are "instant").

I am not certain if this problem existed prior to the upgrade or not, but all ports were upgraded.
 
This seems like a generic X11 input issue. I have the same tablet (CTH-470) and scrolling on my mouse works fine.

Have you tried to do away with moused(8) entirely (even for the trackball), i.e.
Code:
moused_nondefault_enable=NO
?

Unless you're sure that /dev/ums0 doesn't change (it varies on every reboot here) set up a symlink, e.g.
Code:
# [b][file]/etc/devd/mouse.conf[/file][/b]
attach 200 {
        device-name "ums[0-9]+";
        match "vendor" "0x046d"; # "logitech", change to you brand
        action "cd /dev; ln -sf $device-name mouse";
};
Code:
# [b][file]xorg.conf[/file][/b]
Section "InputDevice"
        Identifier      "mouse"
        Driver          "mouse"
        Option          "Device"        "/dev/mouse"
EndSection
 
I didn't have that moused(8) line in my /etc/rc.conf. I don't remember why I didn't put it in, but after I finally got it working I really didn't want to put more energy in to it and wrote the second post mostly to report back that I got it to work at all.

I'm still confused about how the mouse handling works, but now it does. I no longer get interference from my trackball.
 
Back
Top