Hello, I've just acquired an Atom tablet PC with a 10.1-inch touchscreen. The screen appear to be a USB HID device, showing up in lsusb as Bus 005 Device 002: ID 03eb:201c Atmel Corp. at90usbkey sample firmware (HID mouse) with manufacturer, product as "CDT", "10.1" in its sysfs entry. Please find the output of report.py included at the end of this e-mail. What I find is that attempting to use it in X, at a first attempt after the machine is started or after resume from suspend-to-RAM, quickly hoses the desktop: the cursor moves around, but clicks are obstructed --- even those from other pointing devices. I then kill X via another VT, which results in something less troublesome, but still not really useful. In this state, monitoring with xinput test: - dragging one finger over the screen produces a slew of items of the form motion <co-ordinates> button press 1 button release 1 - a single "tap" can produce a bunch of events like this, resulting in an inability to sensibly click or double-click - *BUT* holding one finger on the screen and then dragging with the other gives something like button press 1 motion <co-ordinates> . . button release 1 (sometimes there are multiple press/releases at the end). This *sometimes* results in click-and-drag behaviour. - Seen a few sporadic "phantom" taps in a certain region of the screen. (Consequently, I normally float this device.) In the Xorg log, there's the following: [ 27.229] (II) config/udev: Adding input device CDT 10.1 (/dev/input/event5) [ 27.229] (**) CDT 10.1 : Applying InputClass "evdev tablet catchall" [ 27.229] (**) CDT 10.1 : always reports core events [ 27.229] (**) CDT 10.1 : Device: "/dev/input/event5" [ 27.230] (--) CDT 10.1 : Found 2 mouse buttons [ 27.230] (--) CDT 10.1 : Found absolute axes [ 27.230] (--) CDT 10.1 : Found x and y absolute axes [ 27.230] (--) CDT 10.1 : Found absolute tablet. [ 27.230] (II) CDT 10.1 : Configuring as tablet [ 27.230] (**) CDT 10.1 : YAxisMapping: buttons 4 and 5 [ 27.230] (**) CDT 10.1 : EmulateWheelButton: 4, EmulateWheelInertia: 10, EmulateWheelTimeout: 200 [ 27.230] (II) XINPUT: Adding extended input device "CDT 10.1 " (type: TABLET) [ 27.231] (II) CDT 10.1 : initialized for absolute axes. [ 27.232] (II) config/udev: Adding input device CDT 10.1 (/dev/input/mouse0) [ 27.232] (II) No input driver/identifier specified (ignoring) Apologies for the length of this post, but I hope it's of some use. Let me know if any more info would be helpful. Thanks, James. Bus 005 Device 002: ID 03eb:201c Atmel Corp. at90usbkey sample firmware (HID mouse) Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 32 idVendor 0x03eb Atmel Corp. idProduct 0x201c at90usbkey sample firmware (HID mouse) bcdDevice 10.04 iManufacturer 1 CDT iProduct 2 10.1 iSerial 0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 34 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0x00 (Missing must-be-set bit!) (Bus Powered) MaxPower 100mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 3 Human Interface Device bInterfaceSubClass 0 No Subclass bInterfaceProtocol 0 None iInterface 0 HID Device Descriptor: bLength 9 bDescriptorType 33 bcdHID 1.11 bCountryCode 0 Not supported bNumDescriptors 1 bDescriptorType 34 Report wDescriptorLength 177 Report Descriptor: (length is 177) Item(Global): Usage Page, data= [ 0x0d ] 13 Digitizer Item(Local ): Usage, data= [ 0x04 ] 4 Touch Screen Item(Main ): Collection, data= [ 0x01 ] 1 Application Item(Global): Report ID, data= [ 0x01 ] 1 Item(Local ): Usage, data= [ 0x22 ] 34 Finger Item(Main ): Collection, data= [ 0x02 ] 2 Logical Item(Local ): Usage, data= [ 0x42 ] 66 Tip Switch Item(Global): Logical Minimum, data= [ 0x00 ] 0 Item(Global): Logical Maximum, data= [ 0x01 ] 1 Item(Global): Report Size, data= [ 0x01 ] 1 Item(Global): Report Count, data= [ 0x01 ] 1 Item(Main ): Input, data= [ 0x02 ] 2 Data Variable Absolute No_Wrap Linear Preferred_State No_Null_Position Non_Volatile Bitfield Item(Local ): Usage, data= [ 0x32 ] 50 In Range Item(Main ): Input, data= [ 0x02 ] 2 Data Variable Absolute No_Wrap Linear Preferred_State No_Null_Position Non_Volatile Bitfield Item(Local ): Usage, data= [ 0x47 ] 71 Confidence Item(Main ): Input, data= [ 0x02 ] 2 Data Variable Absolute No_Wrap Linear Preferred_State No_Null_Position Non_Volatile Bitfield Item(Global): Report Count, data= [ 0x05 ] 5 Item(Main ): Input, data= [ 0x03 ] 3 Constant Variable Absolute No_Wrap Linear Preferred_State No_Null_Position Non_Volatile Bitfield Item(Local ): Usage, data= [ 0x51 ] 81 Contact ID Item(Global): Report Size, data= [ 0x08 ] 8 Item(Global): Report Count, data= [ 0x01 ] 1 Item(Main ): Input, data= [ 0x02 ] 2 Data Variable Absolute No_Wrap Linear Preferred_State No_Null_Position Non_Volatile Bitfield Item(Global): Usage Page, data= [ 0x01 ] 1 Generic Desktop Controls Item(Global): Physical Minimum, data= [ 0x00 ] 0 Item(Global): Unit Exponent, data= [ 0x0e ] 14 Unit Exponent: 14 Item(Global): Unit, data= [ 0x33 ] 51 System: English Linear, Unit: Inch^3 Item(Global): Report Size, data= [ 0x10 ] 16 Item(Global): Report Count, data= [ 0x01 ] 1 Item(Local ): Usage, data= [ 0x30 ] 48 Direction-X Item(Global): Logical Maximum, data= [ 0xff 0x4b ] 19455 Item(Global): Physical Maximum, data= [ 0x70 0x03 ] 880 Item(Main ): Input, data= [ 0x02 ] 2 Data Variable Absolute No_Wrap Linear Preferred_State No_Null_Position Non_Volatile Bitfield Item(Local ): Usage, data= [ 0x31 ] 49 Direction-Y Item(Global): Logical Maximum, data= [ 0xff 0x2b ] 11263 Item(Global): Physical Maximum, data= [ 0xf1 0x01 ] 497 Item(Main ): Input, data= [ 0x02 ] 2 Data Variable Absolute No_Wrap Linear Preferred_State No_Null_Position Non_Volatile Bitfield Item(Global): Physical Maximum, data= [ 0x00 0x00 ] 0 Item(Main ): End Collection, data=none Item(Main ): Collection, data= [ 0x02 ] 2 Logical Item(Global): Usage Page, data= [ 0x0d ] 13 Digitizer Item(Local ): Usage, data= [ 0x42 ] 66 Tip Switch Item(Global): Logical Minimum, data= [ 0x00 ] 0 Item(Global): Logical Maximum, data= [ 0x01 ] 1 Item(Global): Report Size, data= [ 0x01 ] 1 Item(Global): Report Count, data= [ 0x01 ] 1 Item(Main ): Input, data= [ 0x02 ] 2 Data Variable Absolute No_Wrap Linear Preferred_State No_Null_Position Non_Volatile Bitfield Item(Local ): Usage, data= [ 0x32 ] 50 In Range Item(Main ): Input, data= [ 0x02 ] 2 Data Variable Absolute No_Wrap Linear Preferred_State No_Null_Position Non_Volatile Bitfield Item(Local ): Usage, data= [ 0x47 ] 71 Confidence Item(Main ): Input, data= [ 0x02 ] 2 Data Variable Absolute No_Wrap Linear Preferred_State No_Null_Position Non_Volatile Bitfield Item(Global): Report Count, data= [ 0x05 ] 5 Item(Main ): Input, data= [ 0x03 ] 3 Constant Variable Absolute No_Wrap Linear Preferred_State No_Null_Position Non_Volatile Bitfield Item(Local ): Usage, data= [ 0x51 ] 81 Contact ID Item(Global): Report Size, data= [ 0x08 ] 8 Item(Global): Report Count, data= [ 0x01 ] 1 Item(Main ): Input, data= [ 0x02 ] 2 Data Variable Absolute No_Wrap Linear Preferred_State No_Null_Position Non_Volatile Bitfield Item(Global): Usage Page, data= [ 0x01 ] 1 Generic Desktop Controls Item(Global): Physical Minimum, data= [ 0x00 ] 0 Item(Global): Unit Exponent, data= [ 0x0e ] 14 Unit Exponent: 14 Item(Global): Unit, data= [ 0x33 ] 51 System: English Linear, Unit: Inch^3 Item(Global): Report Size, data= [ 0x10 ] 16 Item(Global): Report Count, data= [ 0x01 ] 1 Item(Local ): Usage, data= [ 0x30 ] 48 Direction-X Item(Global): Logical Maximum, data= [ 0xff 0x4b ] 19455 Item(Global): Physical Maximum, data= [ 0x70 0x03 ] 880 Item(Main ): Input, data= [ 0x02 ] 2 Data Variable Absolute No_Wrap Linear Preferred_State No_Null_Position Non_Volatile Bitfield Item(Local ): Usage, data= [ 0x31 ] 49 Direction-Y Item(Global): Logical Maximum, data= [ 0xff 0x2b ] 11263 Item(Global): Physical Maximum, data= [ 0xf1 0x01 ] 497 Item(Main ): Input, data= [ 0x02 ] 2 Data Variable Absolute No_Wrap Linear Preferred_State No_Null_Position Non_Volatile Bitfield Item(Global): Physical Maximum, data= [ 0x00 0x00 ] 0 Item(Main ): End Collection, data=none Item(Global): Usage Page, data= [ 0x0d ] 13 Digitizer Item(Local ): Usage, data= [ 0x54 ] 84 Contact Count Item(Global): Report Size, data= [ 0x08 ] 8 Item(Global): Report Count, data= [ 0x01 ] 1 Item(Main ): Input, data= [ 0x02 ] 2 Data Variable Absolute No_Wrap Linear Preferred_State No_Null_Position Non_Volatile Bitfield Item(Global): Usage Page, data= [ 0x0d ] 13 Digitizer Item(Global): Report ID, data= [ 0x02 ] 2 Item(Local ): Usage, data= [ 0x55 ] 85 Maximum Contact Number Item(Global): Logical Maximum, data= [ 0x02 ] 2 Item(Global): Report Size, data= [ 0x08 ] 8 Item(Global): Report Count, data= [ 0x01 ] 1 Item(Main ): Feature, data= [ 0x02 ] 2 Data Variable Absolute No_Wrap Linear Preferred_State No_Null_Position Non_Volatile Bitfield Item(Main ): End Collection, data=none Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0020 1x 32 bytes bInterval 5 Device Status: 0x00e3 Self Powered Remote Wakeup Enabled Debug Mode -- James TheHolyettlz@xxxxxxxxx PGP key ID: 03F94B5D -----------------------------------------------------------------------
Attachment:
signature.asc
Description: This is a digitally signed message part