Menu

Touchscreen is not working on Surface Go 2 m3 verion

Joye Li
2020-07-16
2022-07-04
  • Joye Li

    Joye Li - 2020-07-16

    I am trying to get the touchscreen working on my Surface GO2. unfortunately, touchscreen seems not supported while I set "enable_touch" as true. The touchscreen is functioning in the Surface UEFI interface, but not working in the rEFInd. Something interesting is that on-screen keyboard pops up while I boot into the EFI shell which efi source comes from tianocore/edk2, and it is touchable. Here is the EFI drivers list from Surface GO2, hopes touchscreen can work in near future.

                T   D
    D           Y C I
    R           P F A
    V  VERSION  E G G #D #C DRIVER NAME                         IMAGE NAME
    == ======== = = = == == =================================== ===================
    7B 002026B1 ? - X  -  - Microsoft USB UNDI Driver(Beta)     MsUsbUndiDxe
    7C 0000000A ? - -  -  - ASIX AX88179 Ethernet Driver 2.2.0  Ax88179_X64
    7D 00002021 ? - X  -  - Realtek USB UNDI Driver             RtkUsbUndiDxe
    86 00000010 ? - -  -  - Storage Security Command Driver     StorageSecurityCommandDxe
    88 00000001 ? - -  -  - SD Host Controller Driver           SdHostDriver
    8A 00000001 ? - -  -  - MMC/SD Media Device Driver          SdMmcDevice
    97 00000001 D - -  1  - <UNKNOWN>                           IsaAcpi
    AD 00000010 ? - -  -  - PCI IDE/ATAPI Bus Driver            IdeBusDxe
    11E 00000020 D - -  1  - UEFI Usb XHCI Driver                XhciDxe
    11F 00000018 B - -  1  6 Usb Bus Driver                      UsbBusDxe
    126 00000010 D - -  1  - Usb Keyboard Driver                 UsbKbDxe
    127 00000010 ? - -  -  - Usb Mouse Driver                    UsbMouseDxe
    14B 00000010 ? - -  -  - <UNKNOWN>                           DelayUefiRaidOprom
    15E 0000000A D - -  2  - Platform Console Management Driver  ConPlatformDxe
    15F 0000000A D - -  1  - Platform Console Management Driver  ConPlatformDxe
    160 0000000A D - -  8  - Generic Disk I/O Driver             DiskIoDxe
    161 0000000A B - -  1  5 ISA Bus Driver                      IsaBusDxe
    162 0000000A ? - -  -  - VGA Class Driver                    VgaClassDxe
    163 0000000A D - -  1  - FAT File System Driver              Fat
    168 0000000A D - -  1  - PS/2 Keyboard Driver                Ps2KeyboardDxe
    169 0000000A ? - -  -  - PS/2 Mouse Driver                   Ps2MouseDxe
    16A 0000000A B - -  1 25 PCI Bus Driver                      PciBusDxe
    16C 0000000A ? - -  -  - ISA Serial Driver                   IsaSerialDxe
    16D 00000011 D - -  2  - Usb Mass Storage Driver             UsbMassStorageDxe
    16F 0000000A B - -  3  3 Console Splitter Driver             ConSplitterDxe
    170 0000000A ? - -  -  - Console Splitter Driver             ConSplitterDxe
    171 0000000A B - -  1  1 Console Splitter Driver             ConSplitterDxe
    172 0000000A B - -  1  1 Console Splitter Driver             ConSplitterDxe
    173 0000000A ? - -  -  - Console Splitter Driver             ConSplitterDxe
    175 0000000A D - -  1  - Graphics Console Driver             GraphicsConsoleDxe
    176 00000020 ? - -  -  - Vga Driver Policy                   VgaDriverPolicyDxe
    179 0000000B B - -  1  5 Partition Driver(MBR/GPT/El Torito) PartitionDxe
    17A 00000003 ? - -  -  - BIOS[INT16] Keyboard Driver         KeyboardDxe
    17C 00000010 ? - -  -  - I2C Enumerate Driver                I2cDxe
    17B 00000010 D - -  2  - I2c Host Driver                     I2cDxe
    17D 00000010 B - -  1  1 I2C Bus Driver                      I2cDxe
    17E 00000012 ? - -  -  - I2C Keyboard Driver                 I2cKbDxe
    17F 00000012 ? - -  -  - I2C Mouse Driver                    I2cMouseDxe
    183 0000000A ? - -  -  - Simple Network Protocol Driver      SnpDxe
    184 0000000A ? - -  -  - MNP Network Service Driver          MnpDxe
    185 0000000A ? - -  -  - IP4 Network Service Driver          Ip4Dxe
    186 0000000A ? - -  -  - IP4 CONFIG Network Service Driver   Ip4ConfigDxe
    187 0000000A ? - -  -  - UDP Network Service Driver          Udp4Dxe
    188 0000000A ? - -  -  - DHCP Protocol Driver                Dhcp4Dxe
    189 0000000A ? - -  -  - MTFTP4 Network Service              Mtftp4Dxe
    18A 0000000A ? - -  -  - ARP Network Service Driver          ArpDxe
    18B 0000000A ? - -  -  - IP6 Network Service Driver          Ip6Dxe
    18C 0000000A ? - -  -  - UDP6 Network Service Driver         Udp6Dxe
    18D 0000000A ? - -  -  - DHCP6 Protocol Driver               Dhcp6Dxe
    18E 0000000A ? - -  -  - MTFTP6 Network Service Driver       Mtftp6Dxe
    18F 0000000A ? - -  -  - UEFI PXE Base Code Driver           UefiPxeBcDxe
    190 0000000A ? - -  -  - UEFI PXE Base Code Driver           UefiPxeBcDxe
    196 00000000 ? - -  -  - Touch Input Filter Driver           TouchInputFilterDriver
    198 00000010 ? - -  -  - Intel(R) PCH Serial ATA Controller  SataController
    1A1 00000000 ? - -  -  - Integrated Touch Driver             IntegratedTouch
    1A8 00000001 ? - -  -  - AHCI Bus Driver                     AhciBusDxe
    1AB 00000010 B - -  1  1 NVM Express Driver                  NvmExpressDxe
    1C2 000000AA ? - -  -  - <UNKNOWN>                           PxeDummyDxe
    1C3 09000447 B - -  1  1 Intel(R) GOP Driver [9.0.1095]      IntelGopDriver
    20F 00000012 D - -  1  - I2C Touch Panel Driver              I2cTouchPanelDxe
    224 00000010 ? - -  -  - rEFInd 0.12.0 btrfs File System Dri EFI\BOOT\drivers_x
    225 00000010 ? - -  -  - rEFInd 0.12.0 ext2 File System Driv EFI\BOOT\drivers_x
    226 00000010 ? - -  -  - rEFInd 0.12.0 ext4 File System Driv EFI\BOOT\drivers_x
    227 00000010 ? - -  -  - rEFInd 0.12.0 hfs File System Drive EFI\BOOT\drivers_x
    228 00000010 D - -  1  - rEFInd 0.12.0 iso9660 File System D EFI\BOOT\drivers_x
    229 00000010 ? - -  -  - rEFInd 0.12.0 reiserfs File System  EFI\BOOT\drivers_x
    22A 00000010 ? - -  -  - <UNKNOWN>                           <UNKNOWN>
    22B 00000010 ? - -  -  - <UNKNOWN>                           <UNKNOWN>
    22E 00000010 D - -  1  - <UNKNOWN>                           <UNKNOWN>
    
     
  • SquirrelsGoneWild

    Just wanted to note that I'm encountering the same issue on my Surface Go 2 m3 tablet when trying to enable touch on rEFInd.

     
  • CJ Vaughter

    CJ Vaughter - 2020-10-16

    With enable_touch set, rEFInd opens and listens to all available pointing devices (both touch and mouse). This usually works, but it's possible that specific behavior is expected by certain hardware. Without hardware to test on, it will be difficult to determine the cause.

    I see there are several touch related items. Taking a stab in the dark, it seems like the expected flow may be:
    Touch Input Filter Driver -> Integrated Touch Driver -> I2C Touch Panel Driver
    and trying to open the underlying drivers may cause problems.

    I could work on a feature to allow specifying which touch device to use, but I'd need help testing it.
    In the meantime, can you check if enable_mouse works properly? (note that enable_touch needs to be false)

     
  • SquirrelsGoneWild

    I commented out enabletouch and uncommented enablemouse. When I reboot, I don't see a mouse cursor, but if I select an item with the arrow keys and move the mouse, the item is unselected, so something is being detected.

     
  • CJ Vaughter

    CJ Vaughter - 2020-10-19

    I haven't done much testing, but try this version out:

    • enable_touch and enable_mouse are now independent, so they both work at the same time.
    • touch_index and mouse_index allow you to specify which device to use. -1 is the default and will open all devices as usual.
    • In the About menu, a list of touch and mouse device will appear. You can use this to determine which device index to specify.
     
  • SquirrelsGoneWild

    Thanks CJ. When I look at the about menu with my Surface Type Cover attached, I see two unknown touch devices and two unknown mouse devices, both at index 0. Unfortunately, when I use touch_index or mouse_index at 0 or 1 they don't work properly; I get the same behavior where the touchpad deselects and item and then touching the screen highlights it, but I can't actually trigger anything and the mouse pointer doesn't show unless I'm touching the screen at the same time.

    When I connected an external mouse, I see it as Unknown at index 2, but it doesn't do anything.

    I created a video to illustrate this behavior.

     

    Last edit: SquirrelsGoneWild 2020-10-26
  • Joye Li

    Joye Li - 2020-12-04

    https://github.com/linux-surface/iptsd
    This is Intel Precise Touch & Stylus for Linux-Surface.
    Hopes this can help a little be.

     
  • Maury

    Maury - 2021-01-03

    Are there any updates on this? I too have a Go 2 and can't get the touch screen to work.

     
  • Joye Li

    Joye Li - 2021-02-26

    I updated the new release (v0.13.1) and found that the touch screen works in a limited way. The first single touch works, but after that single touch, every touch behavior has become silent. I had shot a video about this issue, please take a look. Hopes touch function will bring to us soon.

    Video: https://imgur.com/BV6yyiu

     
  • Enrique Ballester Gómez

    This problem has to be a bug.
    I have seen that if you press the esc key (to refresh) then the touch works fine...

     
  • morgon

    morgon - 2022-01-16

    I can confirm this for 0.13.2.
    Touch does not work on my surface go 2 (pentium gold version), however attaching a usb keyboard and pressing Esc makes touch work.
    But in the current state you cannot get touch to work without a keyboard which makes it unusuable for my use case.
    A fix would be very welcome.

     

    Last edit: morgon 2022-01-16
  • Damenly

    Damenly - 2022-05-16

    The issue can be fixed by compiling refind by yourself. I managed to let my go 2's touchscreen work in refind after replacing refind_x64.efi which is compiled from aur/refind- git with gnu-efi-3.0.14-4.

    You can try the attachment or make it by yourself

     
    • Joye Li

      Joye Li - 2022-07-04

      Just tried it and it works, thanks a lot.

       
  • dakanji

    dakanji - 2022-06-07

    An attempt at mitigating this issue has been added to RefindPlus 0.13.3.AA on GitHub.
    Appreciate feedback on whether it works as don't have such a device to test it.

     

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.