Menu

i2c HID touch - Wacom digitizer support question

2017-03-06
2017-11-29
  • Guillaume Giraudon

    Hello everyone,

    I am trying to get refind to work with a Kaby Lake tablet (Cube Mix Plus).
    Everything works find except for the touch input part, which makes it rather problematic if I dont have a keyboard attached.

    I'm trying to figure out how I might get started in adding the necessary driver/support into refind.

    Since I can boot into linux, I tought I might start by looking at what hardware is being detected.
    These are the relevant parts I could find in the boot logs :

    [   11.431621] input: Lid Switch as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:18/PNP0C09:00/PNP0C0D:00/input/input0
    [   11.432206] input: Sleep Button as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0E:00/input/input1
    [   11.432263] input: Power Button as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0C:00/input/input2
    [   11.432319] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input3
    [   11.489282] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input4
    [   22.702861] input: Intel Virtual Button driver as /devices/pci0000:00/0000:00:1f.0/PNP0C09:00/INT33D6:00/input/input8
    [   23.860963] input: Wacom HID 104 Pen as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-7/i2c-WCOM4002:01/0018:056A:0104.0004/input/input14
    [   23.947469] input: FTSC1000:00 2808:5012 as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-7/i2c-FTSC1000:00/0018:2808:5012.0003/input/input17
    [   23.947567] hid-multitouch 0018:2808:5012.0003: input,hidraw3: I2C HID v1.00 Device [FTSC1000:00 2808:5012] on i2c-FTSC1000:00
    

    As far as modules go, the relevant parts of lsmod would be :

    i2c_designware_platform    16384  0
    i2c_designware_core    20480  1 i2c_designware_platform
    i2c_algo_bit           16384  1 i915
    i2c_hid                20480  0
    hid                   118784  5 i2c_hid,hid_generic,usbhid,hid_multitouch,wacom
    

    Since touch seems to work under X, I also looked at Xorg logs and found this :

    [    28.913] (**) FTSC1000:00 2808:5012: Applying InputClass "evdev touchscreen catchall"
    [    29.113] (--) evdev: FTSC1000:00 2808:5012: Found absolute multitouch axes
    [    29.113] (--) evdev: FTSC1000:00 2808:5012: Found absolute touchscreen
    [    29.113] (II) evdev: FTSC1000:00 2808:5012: Configuring as touchscreen
    [    29.113] (II) XINPUT: Adding extended input device "FTSC1000:00 2808:5012" (type: TOUCHSCREEN, id 12)
            CTL-461/S, Bamboo Touch, CTH-460/K, CTH-461/S, CTH-661/S1, CTH-461/L,
            Intuos4 WL Bluetooth Endpoint, Intuos5 touch S, Intuos5 touch M,
            Intuos5 touch L, Intuos5 S, Intuos5 M, Intuos Pro S, Intuos Pro M,
            Cintiq 24HD, Cintiq 22HD, Cintiq 24HD touch (EMR digitizer),
    [    29.130] (EE) Wacom HID 104 Pen stylus: Invalid type 'touch' for this device.
    

    I may be wrong on this but from what I can gather, it looks like the Wacom surface doesnt even come into play at the X level (given the last error in Xorg logs. For the rest, it looks like the touch surface (FTSC ?) is pretty standard and is handled by the default hid_multitouch driver in the linux kernel.

    Is it possible that because the device is i2c instead of USB, it doesnt get initialized at boot and is therefore unseen at the EFI level ?
    Is there anything I may do to lookup devices within an EFI shell ?

    Any tips or hints will be grately appreciated.

     
  • Roderick W. Smith

    First, note that rEFInd's touch support requires that the enable_touch option be uncommented in refind.conf. If you haven't already done that, please try it.

    Beyond that, it's possible that finding and loading the right driver will get your tablet's touch panel to work in rEFInd; however, I can't promise that such a driver even exists, much less that you'll be able to find it and get it working on your system. It's also conceivable that a driver exists, but doesn't provide the features upon which rEFInd relies.

    If you have sufficient coding experience, you could try writing your own driver for your tablet, but I don't really have much advice on how to get started. Although rEFInd includes several filesystem drivers, I didn't write any of them, and I have yet to delve far enough into that topic to be able to provide guidance.

    In an EFI shell, you can type drivers (or drivers -b to get paged output) to see the drivers that are currently loaded.

     
  • おとめ座 ひなたぼっこ

    any new? I own this exact thing too

     

    Last edit: おとめ座 ひなたぼっこ 2017-03-20
  • CJ Vaughter

    CJ Vaughter - 2017-04-03

    Can you post the output you get from drivers?

     
  • Link Sekera

    Link Sekera - 2017-06-14

    I have the same device of Guillaume Giraudon (Cube Mix Plus tablet), refind work well, I had uncomment enable_touch option in the refind.conf file, but touch screen does not work. When sistem boot into linux touch screen works perfectly with module hid_multitouch, indeed, I get system log files pretty similar to the mr. Giraudon. I boot in EFI Shell and run the command drivers, I attach the output, driver for touch is listed as C0, Integrated Touch Driver. Thanks in advance!

                T   D
    D           Y C I
    R           P F A
    V  VERSION  E G G #D #C DRIVER NAME                         IMAGE NAME
    == ======== = = = == == =================================== ===================
    1A 0000000A ? - -  -  - TPM Driver                          Tcg2Dxe
    57 00000010 D - -  1  - AMI USB Driver                      Uhcd
    59 00000010 B - -  1  5 USB bus                             Uhcd
    5A 00000002 D - -  2  - USB Hid driver                      Uhcd
    5B 00000001 ? - -  -  - USB Mass Storage driver             Uhcd
    6B 00010000 D - -  2  - AMI NTFS Driver                     NTFS
    6F 00000001 B - -  1  1 AMI AHCI BUS Driver                 Ahci
    71 00000010 ? - -  -  - <UNKNOWN>                           SerialIo
    AB 00000010 D - -  1  - Intel(R) PCH Serial ATA Controller  SataController
    AC 00000010 ? - -  -  - PCI Serial Driver                   SerialOverLan
    B7 00000010 B - -  1  1 AMI Console Splitter Text Out Drive ConSplitter
    B8 00000010 B - -  2  2 AMI Console Splitter Text In Driver ConSplitter
    B9 00000010 B - -  2  2 AMI Console Splitter Pointer Driver ConSplitter
    BC 00000010 D - -  1  - AMI Graphic Console Driver          GraphicsConsole
    BD 0000000A D - -  6  - Generic Disk I/O Driver             DiskIoDxe
    BE 0000000B B - -  1  5 Partition Driver(MBR/GPT/El Torito) PartitionDxe
    C0 00000000 ? - -  -  - Integrated Touch Driver             IntegratedTouch
    C2 00000001 ? - -  -  - AMI IDE BUS Driver                  IdeBusSrc
    C4 00A5010B B - -  1 22 <UNKNOWN>                           PciBus
    C6 00000010 D - -  2  - AMI PS/2 Driver                     Ps2Main
    C8 00000010 ? - -  -  - <UNKNOWN>                           TerminalSrc
    C9 0000000A ? - -  -  - Simple Network Protocol Driver      SnpDxe
    CA 0000000A ? - -  -  - MNP Network Service Driver          MnpDxe
    CB 0000000A ? - -  -  - ARP Network Service Driver          ArpDxe
    CC 0000000A ? - -  -  - TCP Network Service Driver          TcpDxe
    CD 0000000A ? - -  -  - TCP Network Service Driver          TcpDxe
    CE 0000000A ? - -  -  - UEFI PXE Base Code Driver           UefiPxeBcDxe
    CF 0000000A ? - -  -  - UEFI PXE Base Code Driver           UefiPxeBcDxe
    D0 0000000A ? - -  -  - UEFI HTTP Boot Driver               HttpBootDxe
    D1 0000000A ? - -  -  - UEFI HTTP Boot Driver               HttpBootDxe
    D2 0000000A ? - -  -  - HttpDxe                             HttpDxe
    D3 0000000A ? - -  -  - HttpDxe                             HttpDxe
    D4 00000000 ? - -  -  - DNS Network Service Driver          DnsDxe
    D5 00000000 ? - -  -  - DNS Network Service Driver          DnsDxe
    D6 0000000A ? - -  -  - DHCP Protocol Driver                Dhcp4Dxe
    D7 0000000A ? - -  -  - IP4 Network Service Driver          Ip4Dxe
    D8 0000000A ? - -  -  - MTFTP4 Network Service              Mtftp4Dxe
    D9 0000000A ? - -  -  - UDP Network Service Driver          Udp4Dxe
    DD 0000000A D - -  1  - FAT File System Driver              Fat
    EC 0000000A ? - -  -  - ASIX AX88179 Ethernet Driver 2.2.0  FvFile(B15239D6-6A
    12E 00000010 D - -  2  - AMI SDIO Driver                     SdioDriver
    137 0900041D B - -  1  1 Intel(R) GOP Driver [9.0.1053]      MemoryMapped(0x3,0
    
     

    Last edit: Link Sekera 2017-06-14
  • Link Sekera

    Link Sekera - 2017-06-16

    I have some basic knowledge in C, but I have not programmed in EFI. I am reading UEFI specification and other documentations for EDK II. I noticed from source code of refind at EfiLib/AbsolutePointer.h that EFI_ABSOLUTE_POINTER_PROTOCOL is used to handle touch screen devices, I run the command guid in EFI Shell, the AbsolutePointer protocol seems to be present with the same identifier that is in the code, I attach the complete output:

      Image                     : 5B1B31A1-9562-11D2-8E3F-00A0C969723B  *
      Dpath                     : 09576E91-6D3F-11D2-8E39-00A0C969723B  *
      ImageDpath                : BC62157E-3E33-4FEC-9920-2D3B36D750DF  *
      DpathUtil                 : 0379BE4E-D706-437D-B037-EDB82FB772A4   
      DpathToText               : 8B843E20-8132-4852-90CC-551A4E4A7F1C   
      DpathFromText             : 05C99A21-C70F-4AD2-8A5F-35DF3343F51E   
      PcAnsi                    : E0C14753-F9BE-11D2-9A0C-0090273FC14D   
      Vt100                     : DFA66065-B419-11D3-9A2D-0090273FC14D   
      Vt100+                    : 7BAEC70B-57E0-4C76-8E87-2F9E28088343   
      VtUtf8                    : AD15A0D6-8BEC-4ACF-A073-D01DE77E2D88   
      DriverBinding             : 18A031AB-B443-4D1A-A5C0-0C09261E9F71   
      PlatformOverride          : 6B30C738-A391-11D4-9A3B-0090273FC14D   
      BusSpecificDriverOverride : 3BC1B285-8A15-4A82-AABF-4D7D13FB3265  *
      Diagnostics               : 0784924F-E296-11D4-9A49-0090273FC14D   
      Diagnostics2              : 4D330321-025F-4AAC-90D8-5ED900173B63   
      ComponentName             : 107A772C-D5E1-11D4-9A46-0090273FC14D   
      ComponentName2            : 6A7A5CFF-E8D9-4F70-BADA-75AB3025CE14   
      PlatformDriverConfig      : 642CD590-8059-4C0A-A958-C5EC07D23C4B   
      DriverEFIVersion          : 5C198761-16A8-4E69-972C-89D67954F81D  *
      TxtinEx                   : DD9E7534-7762-4698-8C14-F58517A625AA   
      Txtin                     : 387477C1-69C7-11D2-8E39-00A0C969723B   
      Txtout                    : 387477C2-69C7-11D2-8E39-00A0C969723B  *
      SimplePointer             : 31878C87-0B75-11D5-9A4F-0090273FC14D   
      AbsolutePointer           : 8D59D32B-C655-4AE9-9B15-F25904992A43   
      SerialIo                  : BB25CF6F-F1D4-11D2-9A0C-0090273FC1FD   
      GraphicsOutput            : 9042A9DE-23DC-4A38-96FB-7ADED080516A  *
      EdidDiscovered            : 1C0C34F6-D380-41FA-A049-8AD06C1A66AA   
      EdidActive                : BD8C1056-9F36-44EC-92A8-A6337F817986   
      EdidOverride              : 48ECB431-FB72-45C0-A922-F458FE040BD5   
      ConIn                     : D3B36F2B-D551-11D4-9A46-0090273FC14D   
      ConOut                    : D3B36F2C-D551-11D4-9A46-0090273FC14D   
      StdErr                    : D3B36F2D-D551-11D4-9A46-0090273FC14D   
      Load                      : 56EC3091-954C-11D2-8E3F-00A0C969723B   
      Load2                     : 4006C0C1-FCB3-403E-996D-4A6C8724E06D   
      Fs                        : 964E5B22-6459-11D2-8E39-00A0C969723B   
      GenFileInfo               : 09576E92-6D3F-11D2-8E39-00A0C969723B   
      TapeIo                    : 1E93E633-D65A-459E-AB84-93D9EC266D18   
      DiskIo                    : CE345171-BA0B-11D2-8E4F-00A0C969723B   
      BlkIo                     : 964E5B21-6459-11D2-8E39-00A0C969723B  *
      UnicodeCollation          : 1D85CD7F-F43D-11D2-9A0C-0090273FC14D   
      UnicodeCollation2         : A4C751FC-23AE-4C3E-92E9-4964CF63F349   
      PciRootBridgeIo           : 2F707EBB-4A1A-11D4-9A38-0090273FC14D  *
      PciIo                     : 4CF5B200-68B8-4CA5-9EEC-B23E3F50029A  *
      ScsiPassThru              : A59E8FCF-BDA0-43BB-90B1-D3732ECAA877   
      ScsiIo                    : 932F47E6-2362-4002-803E-3CD54B138F85   
      ExtScsiPassThru           : 143B7632-B81B-4CB7-ABD3-B625A5B9BFFE   
      IScsiInitName             : 59324945-EC44-4C0D-B1CD-9DB139DF070C   
      UsbIo                     : 2B2F68D6-0CD2-44CF-8E8B-BBA20B1B5B75  *
      UsbHc                     : F5089266-1AA0-4953-97D8-562F8A73B519   
      UsbHc2                    : 3E745226-9818-45B6-A2AC-D7CD0E8BA2BC   
      DebugSupport              : 2755590C-6F3C-42FA-9EA4-A3BA543CDA25  *
      DebugPort                 : EBA4E8D2-3858-41EC-A281-2647BA9660D0   
      Decompress                : D8117CFE-94A6-11D4-9A3A-0090273FC14D   
      AcpiTable                 : FFE06BDD-6107-46A6-7BB2-5A9C7EC5275C   
      EbcInterp                 : 13AC6DD1-73D0-11D4-B06B-00AA00BD6DE7   
      Net                       : A19832B9-AC25-11D3-9A2D-0090273FC14D   
      Nii                       : E18541CD-F755-4F73-928D-643C8A79B229   
      Pxebc                     : 03C4E603-AC28-11D3-9A2D-0090273FC14D   
      PxebcCallback             : 245DCA21-FB7B-11D3-8F01-00A0C969723B   
      Bis                       : 0B64AAB0-5429-11D4-9816-00A0C91FADCF   
      MNPSb                     : F36FF770-A7E1-42CF-9ED2-56F0F271F44C   
      MNP                       : 7AB33A91-ACE5-4326-B572-E7EE33D39F16   
      ARPSb                     : F44C00EE-1F2C-4A00-AA09-1C9F3E0800A3   
      ARP                       : F4B427BB-BA21-4F16-BC4E-43E416AB619C   
      DHCPv4Sb                  : 9D9A39D8-BD42-4A73-A4D5-8EE94BE11380   
      DHCPv4                    : 8A219718-4EF5-4761-91C8-C0F04BDA9E56   
      TCPv4Sb                   : 00720665-67EB-4A99-BAF7-D3C33A1C7CC9   
      TCPv4                     : 65530BC7-A359-410F-B010-5AADC7EC2B62   
      IPv4Sb                    : C51711E7-B4BF-404A-BFB8-0A048EF1FFE4   
      IPv4                      : 41D94CD2-35B6-455A-8258-D4E51334AADD   
      IPv4Config                : 3B95AA31-3793-434B-8667-C8070892E05E   
      UDPv4Sb                   : 83F01464-99BD-45E5-B383-AF6305D8E9E6   
      UDPv4                     : 3AD9DF29-4501-478D-B1F8-7F7FE70E50F3   
      MTFTPv4Sb                 : 2FE800BE-8F01-4AA6-946B-D71388E1833F   
      MTFTPv4                   : 78247C57-63DB-4708-99C2-A8B4A9A61F6B   
      AuthInfo                  : 7671D9D0-53DB-4173-AA69-2327F21F0BC7   
      HashSb                    : 42881C98-A4F3-44B0-A39D-DFA18667D8CD   
      Hash                      : C5184932-DBA5-46DB-A5BA-CC0BDA9C1435   
      HiiFont                   : E9CA4775-8657-47FC-97E7-7ED65A084324   
      HiiString                 : 0FD96974-23AA-4CDC-B9CB-98D17750322A   
      HiiImage                  : 31A6406A-6BDF-4E46-B2A2-EBAA89C40920   
      HiiDatabase               : EF9FC172-A1B2-4693-B327-6D32FC416042   
      HiiConfRouting            : 587E72D7-CC50-4F79-8209-CA291FC1A10F   
      HiiConfAccess             : 330D4706-F2A0-4E4F-A369-B66FA8D54385   
      FormBrowser2              : B9D4C360-BCFB-4F9B-9298-53C136982258   
      ShellInt                  : 47C7B223-C42A-11D2-8E57-00A0C969723B   
      SEnv                      : 47C7B224-C42A-11D2-8E57-00A0C969723B   
      ShellProtId               : 47C7B226-C42A-11D2-8E57-00A0C969723B   
      ShellDevPathMap           : 47C7B225-C42A-11D2-8E57-00A0C969723B   
      ShellAlias                : 47C7B227-C42A-11D2-8E57-00A0C969723B   
      G0                        : 00000000-0000-0000-0000-000000000000   
      DevIo                     : AF6AC311-84C3-11D2-8E3C-00A0C969723B   
      Tcp                       : 02B3D5F2-AC28-11D3-9A2D-0090273FC14D   
      UgaDraw                   : 982C298B-F4FA-41CB-B838-77AA688FB839   
      UgaIo                     : 61A4D49E-6F68-4F1B-B922-A86EED0B07A2   
      Efi                       : 8BE4DF61-93CA-11D2-AA0D-00E098032B8C   
      FileSysInfo               : 09576E93-6D3F-11D2-8E39-00A0C969723B   
      ESP                       : C12A7328-F81F-11D2-BA4B-00A0C93EC93B   
      GPT MBR                   : 024DEE41-33E7-11D3-9D69-0008C781F39F   
      Configuration             : 107A772B-D5E1-11D4-9A46-0090273FC14D   
      Configuration2            : BFD7DC1D-24F1-40D9-82E7-2E09BB6B4EBE   
      IsaIo                     : 7EE2BD44-3DA0-11D4-9A38-0090273FC14D  *
      IsaAcpi                   : 64A892DC-5561-4536-92C7-799BFC183355   
      WinNtThunk                : 58C518B1-76F3-11D4-BCEA-0080C73C8881   
      WinNtDriverIo             : 96EB4AD6-A32A-11D4-BCFD-0080C73C8881   
      SerialPrivate             : 0C95A93D-A006-11D4-BCFA-0080C73C8881   
      Unknown Device            : CF31FAC5-C24E-11D2-85F3-00A0C93EC93B   
    

    I don't know if refind has some kind of vervose mode, in order to see where is problem, or if there exist some tool for EFI Shell to test the device support and/or state of it.

    I don't know how to increase to esposure of this publication, or if I should start a new topic. I hope CJ Vaughter or another developer can guide us to solve the touch screen support on refind. Thanks in advance!

     
  • CJ Vaughter

    CJ Vaughter - 2017-06-16

    It's a good sign that the touch driver shows up. I've submitted a merge request with some changes that may enable your touchscreen, but it's hard to say for sure. I've attached a binary with those changes. Try it and let me know if it works.

     
    • Link Sekera

      Link Sekera - 2017-06-17

      Thanks for the prompt response, I replaced the original binary /EFI/refind/refind_x64.efi for the attached in the your message. I test the binary and it works ok, but unfortunately without touch screen support.

       
      • CJ Vaughter

        CJ Vaughter - 2017-06-17

        It should open all devices that support the protocol, so your firmware may not support it. Without access to your machine it's hard to say, and there's not much I can do.

        Does the touchscreen work in the system setup utility (what some people still refer to as the BIOS settings)?

         
        • Link Sekera

          Link Sekera - 2017-06-17

          The system setup utility (BIOS settings) does not make use of touch screen or any other pointer, it is like old usual DOS menu without graphical interface (American Megatrens). It was a clever solution, at least we know the problem may be due to the firmware and move on, indeed I think so becuse the touchpad of external logitech keyboard works well with this binary. I appreciate very much your time for response, and in general the work of Mr Smith and other all developers of refind, it is the better efi boot manager, thanks!

           
  • おとめ座 ひなたぼっこ

    Sorry for off topic, but anyone here with linux on Mix Plus has OmniVision Webcam work?

     

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.