Wacom

I have a wacom; “listusb -v” tells me it’s a

Vendor ID .............. 0x056a (Wacom Co., Ltd)
Product ID ............. 0x00de (CTH-470 [Bamboo Fun Pen & Touch])

"listimage | grep drivers " tells me that a wacom driver is loaded:
1990 /boot/system/add-ons/kernel/drivers/dev/input/wacom 0x81887000 0x81889000 0 0

but I don’t know if it’s recognized and how to use it, since every move on the device is useless

Haiku uses two drivers for each Wacom device, a kernel driver and then a userspace “input server” driver.

The driver that’s loaded on your machine is the kernel driver. This is actually rather clumsily triggered for all USB HID devices that claim to offer boot protocol mouse support, but the driver subsequently rejects non-Wacom devices. This part is working.

The other driver you need is the Wacom input server driver. Several Wacom tablet products are supported, but yours is not, so the tablet is ignored completely. You (or a developer on your behalf) will need to modify this driver to incorporate support for your particular model of tablet before it becomes usable.

You can eventually add an entry for your device (0xde) at http://cgit.haiku-os.org/haiku/tree/src/add-ons/input_server/devices/wacom/TabletDevice.cpp#n257

case 0xDE: // Wacom Bamboo CTH-470 (from Linux Wacom Project) SetDevice(14720.0, 9200.0, DEVICE_BAMBOO_PT); break;

and at http://cgit.haiku-os.org/haiku/tree/src/add-ons/input_server/devices/wacom/TabletDevice.cpp#n850

case 0xDE: *name = "Wacom Bamboo (CTH-470)"; break;

then to rebuild the wacom input device addon: jam -q "wacom"

It seems though that the packet format has changed from this generation of devices, only the stylus could work.

Bye,
Jerome

I have a Wacom Intuos CTH-680 which seems to be recognized by the system, but is not functional in any way.

listimage | grep wacom:

 8175 0xffffffff80699000 0xffffffff8069b000     0          0 /boot/system/add-ons/kernel/drivers/dev/input/wacom
 3226 0x0000013c29120000 0x0000013c29328000     0          0 /boot/system/add-ons/input_server/devices/wacom

listusb -v:

[Device /dev/bus/usb/0/0]
    Class .................. 0x00 (Per-interface classes)
    Subclass ............... 0x00
    Protocol ............... 0x00
    Max Endpoint 0 Packet .. 64
    USB Version ............ 2.0
    Vendor ID .............. 0x056a (Wacom Co., Ltd)
    Product ID ............. 0x0303 (CTH-680 [Intuos Pen & Touch (M)])
    Product Version ........ 0x0100
    Manufacturer String .... "Wacom Co.,Ltd."
    Product String ......... "Intuos PTM"
    Serial Number .......... ""
    [Configuration 0]
        Configuration String . ""
        [Interface 0]
            [Alternate 0 active]
                Class .............. 0x03 (HID)
                Subclass ........... 0x00
                Protocol ........... 0x00
                Interface String ... ""
                [Endpoint 0]
                    MaxPacketSize .... 16
                    Interval ......... 2
                    Type ............. Interrupt
                    Direction ........ Input
                [Descriptor 0]
                    Type ............. 0x21
                    Data ............. 10 01 00 01 22 c0 00 
        [Interface 1]
            [Alternate 0 active]
                Class .............. 0x03 (HID)
                Subclass ........... 0x00
                Protocol ........... 0x00
                Interface String ... ""
                [Endpoint 0]
                    MaxPacketSize .... 64
                    Interval ......... 2
                    Type ............. Interrupt
                    Direction ........ Input
                [Descriptor 0]
                    Type ............. 0x21
                    Data ............. 10 01 00 01 22 26 00 
        [Interface 2]
            [Alternate 0 active]
                Class .............. 0x03 (HID)
                Subclass ........... 0x01
                Protocol ........... 0x02
                Interface String ... ""
                [Endpoint 0]
                    MaxPacketSize .... 64
                    Interval ......... 2
                    Type ............. Interrupt
                    Direction ........ Input
                [Descriptor 0]
                    Type ............. 0x21
                    Data ............. 10 01 00 01 22 34 00

Wacom input events from syslog:

KERN: usb hub 2: port 0: new device connected
KERN: wacom: add_device() - wacom detected
KERN: wacom:  ... success!
KERN: wacom: device_open() open: 2
KERN: usb hub 2: port 0: device removed
KERN: wacom: device_removed() open: 0
KERN: usb xhci 0: KERN: cancel queued transfers (0) for pipe 0xffffffff9685af08 (3)
KERN: usb xhci 0: cancel queued transfers (0) for pipe 0xffffffff9697ae80 (0)
KERN: usb xhci 0: cancel queued transfers (0) for pipe 0xffffffff96842640 (1)
KERN: usb xhci 0: transfer error on slot 2 endpoint 3: Length invalid
KERN: usb error xhci 0: TRB 0x1639220 was not found in the endpoint!
KERN: usb xhci 0: cancel queued transfers (0) for pipe 0xffffffff9690d110 (2)
KERN: usb error xhci 0: unsuccessful command 15, error Context state (19)
KERN: usb error xhci 0: unsuccessful command 12, error Context state (19)
KERN: usb xhci 0: KERN: cancel queued transfers (0) for pipe 0xffffffff9685af08 (3)
KERN: usb error xhci 0: unsuccessful command 15, error Context state (19)
KERN: usb error xhci 0: unsuccessful command 12, error Context state (19)

Testing steps:

  1. Plug in device
  2. Press top left button
  3. Press top right button
  4. Press bottom left button
  5. Press bottom right button
  6. Hover pen tip
  7. Hover pen eraser
  8. Press pen down button
  9. Press pen up button
  10. Tap pen tip
  11. Tap pen eraser
  12. Draw circle (pen tip)
  13. Draw circle (pen eraser)
  14. Switch on finger recognition
  15. Tap finger
  16. Draw circle (finger)
  17. Turn off finger recognition
  18. Plug out device

Is there any other data that is needed before submitting a ticket? That is, if a ticket should be filed.

That would be preferable to resurrecting a 7 year old thread… :slight_smile:
The Welcome page has Tips for a helpful bug report.

1 Like

Beyond submitting the necessary text files, is there a way to see syslog updates live? I tried using watch, but only permission denial errors came out. MIght try to help pinpoint which errors are caused by what input events.

You can do tail -f /var/logs/syslog.

Filed a ticket here:
https://dev.haiku-os.org/ticket/16793

1 Like