Skip to content

Touchscreen not working on SP3 #241

Closed

Description

@WiiExpertise

I installed this on Ubuntu 18.04 on a Surface Pro 3. When the type cover is disconnected, touchscreen works flawlessly. But once the type cover is connected, stops working, and doesn't start working until the type cover is disconnected and computer restarted. I've seen one or two other reports, so I don't think this is an individual thing. WHen touchscreen doesn't work, pen doesn't work either
Info:
Ubuntu 18.04
GNOME
Surface Pro 3
Type Cover (SP3 version)

Activity

  1. sphh commented on Sep 10, 2018

    @sphh

    I got the new 4.18.7 kernel to boot (I needed the i915.enable_guc=0 parameter as described in this post but not the i915.enable_ipts=0 parameter).

    On my SP3 the touch screen never works. Not with the Type Cover plugged in and not without Type Cover.

    Linux Mint 19
    Cinnamon
    Surface Pro
    Type Cover (SP3 version)
    dmsg.txt.zip

    PS: The touchscreen works with this kernel on a Surface Pro 2017.

  2. jakeday commented on Sep 10, 2018

    @jakeday
    Owner

    @sphh I'll be uploading a build to fix this right after work today.

  3. WiiExpertise commented on Sep 10, 2018

    @WiiExpertise
    Author

    I'm assuming you mean the touchscreen issue and not the enable guc issue? the enable guc thing has been around for a while. I had that issue when I first installed an older version as well.

  4. jakeday commented on Sep 11, 2018

    @jakeday
    Owner

    @sphh In my 4.18.7-2 build, use i915.enable_ipts=0 instead of i915.enable_guc=0.

  5. WiiExpertise commented on Sep 11, 2018

    @WiiExpertise
    Author

    Anything coming for the touchscreen?

  6. jakeday commented on Sep 11, 2018

    @jakeday
    Owner

    @miningslayer18 did you try it with the new option? It's more than fixing a boot issue.

  7. sphh commented on Sep 11, 2018

    @sphh

    Thanks @jakeday for the quick reply. I installed your new kernel with the help of setup.sh. Now the output of cat /proc/version is (just to make sure, the right kernel is used):
    Linux version 4.18.7-surface-linux-surface (jake@jake-Surface-Book-2) (gcc version 7.3.0 (Ubuntu 7.3.0-16ubuntu3)) #13 SMP Mon Sep 10 18:14:46 EDT 2018

    Using i915.enable_ipts=0 instead of i915.enable_guc=0 unfortunately did not work. I still have to use i915.enable_guc=0 to get the kernel to boot. Touchscreen still does not work :-(

    dmsg.txt.zip

    Please keep up the good work!

  8. WiiExpertise commented on Sep 11, 2018

    @WiiExpertise
    Author

    I have the same issue, if I use the new option, I get the i8042: Can't read CTR while initializing error on boot or something like that, I have to use the guc for it work. And yes I did update grub after changing config

  9. WiiExpertise commented on Sep 13, 2018

    @WiiExpertise
    Author

    I tried it again after running the setup script again and asking it to update again, but still same as before.

  10. WiiExpertise commented on Sep 30, 2018

    @WiiExpertise
    Author

    Good news, it randomly started working again! Didn't change grub config or anything, just restarted at some point and it worked
    Maybe it was one of the ubuntu updates i installed.
    EDIT: Hold up, pen is not working still

  11. sphh commented on Oct 12, 2018

    @sphh

    I just installed the latest kernel, but touchscreen is not working on my Surface Pro 3:

    $ cat /proc/version
    Linux version 4.18.11-surface-linux-surface (jake@jake-Surface-Book-2) (gcc version 7.3.0 (Ubuntu 7.3.0-27ubuntu1~18.04)) #14 SMP Tue Oct 2 09:35:19 EDT 2018
    

    dmesg.txt.zip

  12. perplexityjeff commented on Oct 27, 2018

    @perplexityjeff

    A newbie at the whole Surface and Linux part. I fixed the boot issue with the guc option and it is working great however when changing it to the ipts option to fix the touchscreen while type cover connected issue it does not boot anymore.

    As a recently converted newbie thank you for the all the work you do.

  13. Erudition commented on Dec 2, 2018

    @Erudition

    I haven't had touch or pen for many kernel versions now. Is there any way to work around this?

  14. Erudition commented on Dec 5, 2018

    @Erudition

    Update: Wow, the touchscreen and pen actually do work without the type cover! Unfortunately I need the type cover to login so that's kinda useless.

    I just tried adding the new i915.enable_ipts=0 and nothing changed, but if I also remove i915.enable_guc=0 I go back to not being able to boot...
    FYI that crashes with something like Incompatible option: i915.enable_guc=1 - no GuC hardware detected!

    In other words, the same results as @miningslayer18 .

  15. Erudition commented on Dec 5, 2018

    @Erudition

    Debugging Help

    Captured the syslog output from the moment the cover is attached (which disables the touchscreen/pen instantly):

    Syslog

    Dec  5 15:07:06 verax kernel: [  398.654211] usb 1-3: new full-speed USB device number 5 using xhci_hcd
    Dec  5 15:07:06 verax kernel: [  398.803202] usb 1-3: New USB device found, idVendor=045e, idProduct=07e2, bcdDevice= 3.07
    Dec  5 15:07:06 verax kernel: [  398.803204] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
    Dec  5 15:07:06 verax kernel: [  398.803205] usb 1-3: Product: Surface Type Cover
    Dec  5 15:07:06 verax kernel: [  398.803206] usb 1-3: Manufacturer: Microsoft
    Dec  5 15:07:06 verax kernel: [  398.807770] input: Microsoft Surface Type Cover Keyboard as /devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.0/0003:045E:07E2.0003/input/input22
    Dec  5 15:07:06 verax kernel: [  398.866576] input: Microsoft Surface Type Cover Mouse as /devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.0/0003:045E:07E2.0003/input/input23
    Dec  5 15:07:06 verax kernel: [  398.867108] input: Microsoft Surface Type Cover Consumer Control as /devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.0/0003:045E:07E2.0003/input/input24
    Dec  5 15:07:06 verax kernel: [  398.867327] input: Microsoft Surface Type Cover UNKNOWN as /devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.0/0003:045E:07E2.0003/input/input25
    Dec  5 15:07:06 verax kernel: [  398.867557] input: Microsoft Surface Type Cover Touchpad as /devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.0/0003:045E:07E2.0003/input/input26
    Dec  5 15:07:06 verax kernel: [  398.867866] input: Microsoft Surface Type Cover UNKNOWN as /devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.0/0003:045E:07E2.0003/input/input27
    Dec  5 15:07:06 verax kernel: [  398.868050] input: Microsoft Surface Type Cover UNKNOWN as /devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.0/0003:045E:07E2.0003/input/input28
    Dec  5 15:07:06 verax kernel: [  398.868247] input: Microsoft Surface Type Cover UNKNOWN as /devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.0/0003:045E:07E2.0003/input/input29
    Dec  5 15:07:06 verax kernel: [  398.868430] input: Microsoft Surface Type Cover UNKNOWN as /devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.0/0003:045E:07E2.0003/input/input30
    Dec  5 15:07:06 verax kernel: [  398.868613] input: Microsoft Surface Type Cover UNKNOWN as /devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.0/0003:045E:07E2.0003/input/input31
    Dec  5 15:07:06 verax kernel: [  398.868791] input: Microsoft Surface Type Cover UNKNOWN as /devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.0/0003:045E:07E2.0003/input/input32
    Dec  5 15:07:06 verax kernel: [  398.868972] input: Microsoft Surface Type Cover UNKNOWN as /devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.0/0003:045E:07E2.0003/input/input33
    Dec  5 15:07:06 verax kernel: [  398.869157] input: Microsoft Surface Type Cover UNKNOWN as /devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.0/0003:045E:07E2.0003/input/input34
    Dec  5 15:07:06 verax kernel: [  398.869334] input: Microsoft Surface Type Cover UNKNOWN as /devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.0/0003:045E:07E2.0003/input/input35
    Dec  5 15:07:06 verax kernel: [  398.869518] input: Microsoft Surface Type Cover UNKNOWN as /devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.0/0003:045E:07E2.0003/input/input36
    Dec  5 15:07:06 verax kernel: [  398.869700] input: Microsoft Surface Type Cover UNKNOWN as /devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.0/0003:045E:07E2.0003/input/input37
    Dec  5 15:07:06 verax kernel: [  398.869884] input: Microsoft Surface Type Cover UNKNOWN as /devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.0/0003:045E:07E2.0003/input/input38
    Dec  5 15:07:06 verax kernel: [  398.870064] input: Microsoft Surface Type Cover UNKNOWN as /devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.0/0003:045E:07E2.0003/input/input39
    Dec  5 15:07:06 verax kernel: [  398.870687] hid-multitouch 0003:045E:07E2.0003: input,hiddev0,hidraw1: USB HID v1.11 Keyboard [Microsoft Surface Type Cover] on usb-0000:00:14.0-3/input0
    Dec  5 15:07:06 verax mtp-probe: checking bus 1, device 5: "/sys/devices/pci0000:00/0000:00:14.0/usb1/1-3"
    Dec  5 15:07:06 verax mtp-probe: bus: 1, device: 5 was not an MTP device
    Dec  5 15:07:06 verax gnome-system-mo[5107]: gdk_device_update_tool: assertion 'GDK_IS_DEVICE (device)' failed
    Dec  5 15:07:06 verax gnome-system-mo[5107]: gdk_device_update_tool: assertion 'GDK_IS_DEVICE (device)' failed
    Dec  5 15:07:06 verax onboard.desktop[2363]: /usr/lib/python3/dist-packages/gi/overrides/Gtk.py:1629: Warning: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
    Dec  5 15:07:06 verax onboard.desktop[2363]:   return _Gtk_main(*args, **kwargs)
    Dec  5 15:07:06 verax onboard.desktop[2363]: 15:07:06.395 WARNING TouchInput: Failed to select events for device 11: failed to open device
    Dec  5 15:07:06 verax snapd[856]: udevmon.go:184: udev monitor observed remove event for unknown device "/sys/bus/i2c/drivers/i2c_hid"
    Dec  5 15:07:06 verax snapd[856]: udevmon.go:184: udev monitor observed remove event for unknown device "/sys/module/i2c_hid"
    Dec  5 15:07:06 verax systemd-udevd[5927]: Process '/sbin/modprobe -r i2c_hid && /sbin/modprobe i2c_hid' failed with exit code 1.
    Dec  5 15:07:06 verax baloo_file.desktop[2412]: QObject::connect: invalid null parameter
    Dec  5 15:07:06 verax baloo_file.desktop[2412]: message repeated 3 times: [ QObject::connect: invalid null parameter]
    Dec  5 15:07:06 verax baloo_file.desktop[2412]: QObject::connect: invalid null parameter
    Dec  5 15:07:06 verax snapd[856]: udevmon.go:184: udev monitor observed remove event for unknown device "/sys/kernel/slab/ext4_inode_cache/cgroup/ext4_inode_cache(631:iio-sensor-proxy.service)"
    Dec  5 15:07:06 verax snapd[856]: udevmon.go:184: udev monitor observed remove event for unknown device "/sys/kernel/slab/sock_inode_cache/cgroup/sock_inode_cache(631:iio-sensor-proxy.service)"
    Dec  5 15:07:06 verax snapd[856]: udevmon.go:184: udev monitor observed remove event for unknown device "/sys/kernel/slab/:A-0000040/cgroup/pde_opener(631:iio-sensor-proxy.service)"
    Dec  5 15:07:06 verax snapd[856]: udevmon.go:184: udev monitor observed remove event for unknown device "/sys/kernel/slab/skbuff_head_cache/cgroup/skbuff_head_cache(631:iio-sensor-proxy.service)"
    Dec  5 15:07:06 verax snapd[856]: udevmon.go:184: udev monitor observed remove event for unknown device "/sys/kernel/slab/proc_inode_cache/cgroup/proc_inode_cache(631:iio-sensor-proxy.service)"
    Dec  5 15:07:06 verax snapd[856]: udevmon.go:184: udev monitor observed remove event for unknown device "/sys/kernel/slab/:A-0000256/cgroup/filp(631:iio-sensor-proxy.service)"
    Dec  5 15:07:06 verax snapd[856]: udevmon.go:184: udev monitor observed remove event for unknown device "/sys/kernel/slab/:A-0000200/cgroup/vm_area_struct(631:iio-sensor-proxy.service)"
    Dec  5 15:07:06 verax snapd[856]: udevmon.go:184: udev monitor observed remove event for unknown device "/sys/kernel/slab/:A-0001024/cgroup/signal_cache(631:iio-sensor-proxy.service)"
    Dec  5 15:07:06 verax snapd[856]: udevmon.go:184: udev monitor observed remove event for unknown device "/sys/kernel/slab/mm_struct/cgroup/mm_struct(631:iio-sensor-proxy.service)"
    Dec  5 15:07:06 verax snapd[856]: udevmon.go:184: udev monitor observed remove event for unknown device "/sys/kernel/slab/task_struct/cgroup/task_struct(631:iio-sensor-proxy.service)"
    Dec  5 15:07:06 verax snapd[856]: udevmon.go:184: udev monitor observed remove event for unknown device "/sys/kernel/slab/:A-0000128/cgroup/seq_file(631:iio-sensor-proxy.service)"
    Dec  5 15:07:06 verax snapd[856]: udevmon.go:184: udev monitor observed remove event for unknown device "/sys/kernel/slab/anon_vma/cgroup/anon_vma(631:iio-sensor-proxy.service)"
    Dec  5 15:07:06 verax snapd[856]: udevmon.go:184: udev monitor observed remove event for unknown device "/sys/kernel/slab/radix_tree_node/cgroup/radix_tree_node(631:iio-sensor-proxy.service)"
    Dec  5 15:07:06 verax snapd[856]: udevmon.go:184: udev monitor observed remove event for unknown device "/sys/kernel/slab/kmalloc-4096/cgroup/kmalloc-4096(631:iio-sensor-proxy.service)"
    Dec  5 15:07:06 verax snapd[856]: udevmon.go:184: udev monitor observed remove event for unknown device "/sys/kernel/slab/:A-0000064/cgroup/pid(631:iio-sensor-proxy.service)"
    Dec  5 15:07:06 verax snapd[856]: udevmon.go:184: udev monitor observed remove event for unknown device "/sys/kernel/slab/kmalloc-512/cgroup/kmalloc-512(631:iio-sensor-proxy.service)"
    Dec  5 15:07:06 verax snapd[856]: udevmon.go:184: udev monitor observed remove event for unknown device "/sys/kernel/slab/kmalloc-64/cgroup/kmalloc-64(631:iio-sensor-proxy.service)"
    Dec  5 15:07:06 verax snapd[856]: udevmon.go:184: udev monitor observed remove event for unknown device "/sys/kernel/slab/kmalloc-32/cgroup/kmalloc-32(631:iio-sensor-proxy.service)"
    

    Xorg

    And the Xorg log puts out:

    [   399.056] (EE) NTRG0001:01 1B96:1B05 Pen eraser: Error reading wacom device : No such device
    [   399.059] (II) config/udev: removing device NTRG0001:01 1B96:1B05 Pen stylus
    [   399.063] (II) UnloadModule: "wacom"
    [   399.063] (II) config/udev: removing device NTRG0001:01 1B96:1B05 Pen eraser
    [   399.082] (II) UnloadModule: "wacom"
    [   399.091] (II) config/udev: removing device NTRG0001:01 1B96:1B05 Touchscreen
    [   399.092] (II) event3  - NTRG0001:01 1B96:1B05 Touchscreen: device removed
    [   399.113] (II) UnloadModule: "libinput"
    [   399.121] (II) config/udev: removing device NTRG0001:01 1B96:1B05 Mouse
    [   399.121] (II) event4  - NTRG0001:01 1B96:1B05 Mouse: device removed
    [   399.146] (II) UnloadModule: "libinput"
    [   399.252] (II) config/udev: Adding input device Microsoft Surface Type Cover Touchpad (/dev/input/mouse4)
    [   399.252] (**) Microsoft Surface Type Cover Touchpad: Ignoring device from InputClass "touchpad ignore duplicates"
    [   399.279] (II) config/udev: Adding input device Microsoft Surface Type Cover Mouse (/dev/input/mouse3)
    [   399.279] (**) Microsoft Surface Type Cover Mouse: Applying InputClass "NTRG0001:01 1B96:1B05 Pen stylus"
    [   399.279] (II) No input driver specified, ignoring this device.
    [   399.279] (II) This device may have been added with another device file.
    [   399.335] (II) config/udev: Adding input device Microsoft Surface Type Cover Keyboard (/dev/input/event15)
    [   399.335] (**) Microsoft Surface Type Cover Keyboard: Applying InputClass "evdev keyboard catchall"
    [   399.335] (**) Microsoft Surface Type Cover Keyboard: Applying InputClass "libinput keyboard catchall"
    [   399.335] (**) Microsoft Surface Type Cover Keyboard: Applying InputClass "NTRG0001:01 1B96:1B05 Pen stylus"
    [   399.335] (II) Using input driver 'libinput' for 'Microsoft Surface Type Cover Keyboard'
    [   399.335] (**) Microsoft Surface Type Cover Keyboard: always reports core events
    [   399.335] (**) Option "Device" "/dev/input/event15"
    [   399.335] (**) Option "_source" "server/udev"
    [   399.336] (II) event15 - Microsoft Surface Type Cover Keyboard: is tagged by udev as: Keyboard
    [   399.336] (II) event15 - Microsoft Surface Type Cover Keyboard: device is a keyboard
    [   399.336] (II) event15 - Microsoft Surface Type Cover Keyboard: device removed
    [   399.360] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.0/0003:045E:07E2.0003/input/input22/event15"
    [   399.360] (II) XINPUT: Adding extended input device "Microsoft Surface Type Cover Keyboard" (type: KEYBOARD, id 10)
    [   399.360] (**) Option "xkb_model" "pc105"
    [   399.360] (**) Option "xkb_layout" "us"
    [   399.360] (WW) Option "xkb_variant" requires a string value
    [   399.360] (WW) Option "xkb_options" requires a string value
    [   399.362] (II) event15 - Microsoft Surface Type Cover Keyboard: is tagged by udev as: Keyboard
    [   399.362] (II) event15 - Microsoft Surface Type Cover Keyboard: device is a keyboard
    [   399.363] (II) config/udev: Adding input device Microsoft Surface Type Cover Mouse (/dev/input/event16)
    [   399.363] (**) Microsoft Surface Type Cover Mouse: Applying InputClass "evdev pointer catchall"
    [   399.363] (**) Microsoft Surface Type Cover Mouse: Applying InputClass "libinput pointer catchall"
    [   399.363] (**) Microsoft Surface Type Cover Mouse: Applying InputClass "NTRG0001:01 1B96:1B05 Pen stylus"
    [   399.363] (II) Using input driver 'libinput' for 'Microsoft Surface Type Cover Mouse'
    [   399.363] (**) Microsoft Surface Type Cover Mouse: always reports core events
    [   399.363] (**) Option "Device" "/dev/input/event16"
    [   399.363] (**) Option "_source" "server/udev"
    [   399.366] (II) event16 - Microsoft Surface Type Cover Mouse: is tagged by udev as: Mouse
    [   399.366] (II) event16 - Microsoft Surface Type Cover Mouse: device is a pointer
    [   399.366] (II) event16 - Microsoft Surface Type Cover Mouse: device removed
    [   399.400] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.0/0003:045E:07E2.0003/input/input23/event16"
    [   399.400] (II) XINPUT: Adding extended input device "Microsoft Surface Type Cover Mouse" (type: MOUSE, id 11)
    [   399.400] (**) Option "AccelerationScheme" "none"
    [   399.401] (**) Microsoft Surface Type Cover Mouse: (accel) selected scheme none/0
    [   399.401] (**) Microsoft Surface Type Cover Mouse: (accel) acceleration factor: 2.000
    [   399.401] (**) Microsoft Surface Type Cover Mouse: (accel) acceleration threshold: 4
    [   399.402] (II) event16 - Microsoft Surface Type Cover Mouse: is tagged by udev as: Mouse
    [   399.402] (II) event16 - Microsoft Surface Type Cover Mouse: device is a pointer
    [   399.403] (II) config/udev: Adding input device Microsoft Surface Type Cover Consumer Control (/dev/input/event17)
    [   399.403] (**) Microsoft Surface Type Cover Consumer Control: Applying InputClass "evdev keyboard catchall"
    [   399.403] (**) Microsoft Surface Type Cover Consumer Control: Applying InputClass "libinput keyboard catchall"
    [   399.403] (**) Microsoft Surface Type Cover Consumer Control: Applying InputClass "NTRG0001:01 1B96:1B05 Pen stylus"
    [   399.403] (II) Using input driver 'libinput' for 'Microsoft Surface Type Cover Consumer Control'
    [   399.403] (**) Microsoft Surface Type Cover Consumer Control: always reports core events
    [   399.403] (**) Option "Device" "/dev/input/event17"
    [   399.403] (**) Option "_source" "server/udev"
    [   399.405] (II) event17 - Microsoft Surface Type Cover Consumer Control: is tagged by udev as: Keyboard
    [   399.405] (II) event17 - Microsoft Surface Type Cover Consumer Control: device is a keyboard
    [   399.405] (II) event17 - Microsoft Surface Type Cover Consumer Control: device removed
    [   399.424] (II) libinput: Microsoft Surface Type Cover Consumer Control: needs a virtual subdevice
    [   399.424] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.0/0003:045E:07E2.0003/input/input24/event17"
    [   399.424] (II) XINPUT: Adding extended input device "Microsoft Surface Type Cover Consumer Control" (type: MOUSE, id 12)
    [   399.424] (**) Option "AccelerationScheme" "none"
    [   399.425] (**) Microsoft Surface Type Cover Consumer Control: (accel) selected scheme none/0
    [   399.425] (**) Microsoft Surface Type Cover Consumer Control: (accel) acceleration factor: 2.000
    [   399.425] (**) Microsoft Surface Type Cover Consumer Control: (accel) acceleration threshold: 4
    [   399.426] (II) event17 - Microsoft Surface Type Cover Consumer Control: is tagged by udev as: Keyboard
    [   399.426] (II) event17 - Microsoft Surface Type Cover Consumer Control: device is a keyboard
    [   399.427] (**) Microsoft Surface Type Cover Consumer Control: Applying InputClass "evdev keyboard catchall"
    [   399.427] (**) Microsoft Surface Type Cover Consumer Control: Applying InputClass "libinput keyboard catchall"
    [   399.427] (**) Microsoft Surface Type Cover Consumer Control: Applying InputClass "NTRG0001:01 1B96:1B05 Pen stylus"
    [   399.427] (II) Using input driver 'libinput' for 'Microsoft Surface Type Cover Consumer Control'
    [   399.427] (**) Microsoft Surface Type Cover Consumer Control: always reports core events
    [   399.427] (**) Option "Device" "/dev/input/event17"
    [   399.427] (**) Option "_source" "_driver/libinput"
    [   399.427] (II) libinput: Microsoft Surface Type Cover Consumer Control: is a virtual subdevice
    [   399.427] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.0/0003:045E:07E2.0003/input/input24/event17"
    [   399.427] (II) XINPUT: Adding extended input device "Microsoft Surface Type Cover Consumer Control" (type: KEYBOARD, id 13)
    [   399.427] (**) Option "xkb_model" "pc105"
    [   399.427] (**) Option "xkb_layout" "us"
    [   399.427] (WW) Option "xkb_variant" requires a string value
    [   399.427] (WW) Option "xkb_options" requires a string value
    [   399.428] (II) config/udev: Adding input device Microsoft Surface Type Cover UNKNOWN (/dev/input/event28)
    [   399.428] (**) Microsoft Surface Type Cover UNKNOWN: Applying InputClass "NTRG0001:01 1B96:1B05 Pen stylus"
    [   399.428] (II) No input driver specified, ignoring this device.
    [   399.428] (II) This device may have been added with another device file.
    [   399.428] (II) config/udev: Adding input device Microsoft Surface Type Cover UNKNOWN (/dev/input/event22)
    [   399.428] (**) Microsoft Surface Type Cover UNKNOWN: Applying InputClass "NTRG0001:01 1B96:1B05 Pen stylus"
    [   399.428] (II) No input driver specified, ignoring this device.
    [   399.428] (II) This device may have been added with another device file.
    [   399.429] (II) config/udev: Adding input device Microsoft Surface Type Cover UNKNOWN (/dev/input/event23)
    [   399.429] (**) Microsoft Surface Type Cover UNKNOWN: Applying InputClass "NTRG0001:01 1B96:1B05 Pen stylus"
    [   399.429] (II) No input driver specified, ignoring this device.
    [   399.429] (II) This device may have been added with another device file.
    [   399.429] (II) config/udev: Adding input device Microsoft Surface Type Cover Touchpad (/dev/input/event19)
    [   399.429] (**) Microsoft Surface Type Cover Touchpad: Applying InputClass "evdev touchpad catchall"
    [   399.429] (**) Microsoft Surface Type Cover Touchpad: Applying InputClass "libinput touchpad catchall"
    [   399.429] (**) Microsoft Surface Type Cover Touchpad: Applying InputClass "touchpad catchall"
    [   399.429] (**) Microsoft Surface Type Cover Touchpad: Applying InputClass "Default clickpad buttons"
    [   399.429] (**) Microsoft Surface Type Cover Touchpad: Applying InputClass "NTRG0001:01 1B96:1B05 Pen stylus"
    [   399.429] (II) LoadModule: "synaptics"
    [   399.429] (II) Loading /usr/lib/xorg/modules/input/synaptics_drv.so
    [   399.432] (II) Module synaptics: vendor="X.Org Foundation"
    [   399.432] 	compiled for 1.20.1, module version = 1.9.1
    [   399.432] 	Module class: X.Org XInput Driver
    [   399.432] 	ABI class: X.Org XInput driver, version 24.1
    [   399.432] (II) Using input driver 'synaptics' for 'Microsoft Surface Type Cover Touchpad'
    [   399.432] (**) Microsoft Surface Type Cover Touchpad: always reports core events
    [   399.432] (**) Option "Device" "/dev/input/event19"
    [   399.476] (II) synaptics: Microsoft Surface Type Cover Touchpad: found clickpad property
    [   399.476] (--) synaptics: Microsoft Surface Type Cover Touchpad: x-axis range 0 - 1704 (res 20)
    [   399.476] (--) synaptics: Microsoft Surface Type Cover Touchpad: y-axis range 0 - 812 (res 20)
    [   399.476] (II) synaptics: Microsoft Surface Type Cover Touchpad: device does not report pressure, will use touch data.
    [   399.476] (II) synaptics: Microsoft Surface Type Cover Touchpad: device does not report finger width.
    [   399.476] (--) synaptics: Microsoft Surface Type Cover Touchpad: buttons: left double triple
    [   399.476] (--) synaptics: Microsoft Surface Type Cover Touchpad: Vendor 0x45e Product 0x7e2
    [   399.476] (--) synaptics: Microsoft Surface Type Cover Touchpad: invalid pressure range.  defaulting to 0 - 255
    [   399.476] (--) synaptics: Microsoft Surface Type Cover Touchpad: invalid finger width range.  defaulting to 0 - 15
    [   399.476] (**) Option "SoftButtonAreas" "50% 0 82% 0 0 0 0 0"
    [   399.476] (--) synaptics: Microsoft Surface Type Cover Touchpad: touchpad found
    [   399.476] (**) Microsoft Surface Type Cover Touchpad: always reports core events
    [   399.524] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.0/0003:045E:07E2.0003/input/input26/event19"
    [   399.524] (II) XINPUT: Adding extended input device "Microsoft Surface Type Cover Touchpad" (type: TOUCHPAD, id 14)
    [   399.524] (**) synaptics: Microsoft Surface Type Cover Touchpad: (accel) MinSpeed is now constant deceleration 2.5
    [   399.524] (**) synaptics: Microsoft Surface Type Cover Touchpad: (accel) MaxSpeed is now 1.75
    [   399.524] (**) synaptics: Microsoft Surface Type Cover Touchpad: (accel) AccelFactor is now 0.106
    [   399.526] (**) Microsoft Surface Type Cover Touchpad: (accel) keeping acceleration scheme 1
    [   399.526] (**) Microsoft Surface Type Cover Touchpad: (accel) acceleration profile 1
    [   399.526] (**) Microsoft Surface Type Cover Touchpad: (accel) acceleration factor: 2.000
    [   399.526] (**) Microsoft Surface Type Cover Touchpad: (accel) acceleration threshold: 4
    [   399.526] (--) synaptics: Microsoft Surface Type Cover Touchpad: touchpad found
    [   399.529] (II) config/udev: Adding input device Microsoft Surface Type Cover UNKNOWN (/dev/input/event29)
    [   399.529] (**) Microsoft Surface Type Cover UNKNOWN: Applying InputClass "NTRG0001:01 1B96:1B05 Pen stylus"
    [   399.529] (II) No input driver specified, ignoring this device.
    [   399.529] (II) This device may have been added with another device file.
    [   399.530] (II) config/udev: Adding input device Microsoft Surface Type Cover UNKNOWN (/dev/input/event27)
    [   399.530] (**) Microsoft Surface Type Cover UNKNOWN: Applying InputClass "NTRG0001:01 1B96:1B05 Pen stylus"
    [   399.530] (II) No input driver specified, ignoring this device.
    [   399.530] (II) This device may have been added with another device file.
    [   399.531] (II) config/udev: Adding input device Microsoft Surface Type Cover UNKNOWN (/dev/input/event24)
    [   399.531] (**) Microsoft Surface Type Cover UNKNOWN: Applying InputClass "NTRG0001:01 1B96:1B05 Pen stylus"
    [   399.531] (II) No input driver specified, ignoring this device.
    [   399.531] (II) This device may have been added with another device file.
    [   399.532] (II) config/udev: Adding input device Microsoft Surface Type Cover UNKNOWN (/dev/input/event30)
    [   399.532] (**) Microsoft Surface Type Cover UNKNOWN: Applying InputClass "NTRG0001:01 1B96:1B05 Pen stylus"
    [   399.532] (II) No input driver specified, ignoring this device.
    [   399.532] (II) This device may have been added with another device file.
    [   399.532] (II) config/udev: Adding input device Microsoft Surface Type Cover UNKNOWN (/dev/input/event18)
    [   399.533] (**) Microsoft Surface Type Cover UNKNOWN: Applying InputClass "NTRG0001:01 1B96:1B05 Pen stylus"
    [   399.533] (II) No input driver specified, ignoring this device.
    [   399.533] (II) This device may have been added with another device file.
    [   399.533] (II) config/udev: Adding input device Microsoft Surface Type Cover UNKNOWN (/dev/input/event25)
    [   399.533] (**) Microsoft Surface Type Cover UNKNOWN: Applying InputClass "NTRG0001:01 1B96:1B05 Pen stylus"
    [   399.533] (II) No input driver specified, ignoring this device.
    [   399.533] (II) This device may have been added with another device file.
    [   399.534] (II) config/udev: Adding input device Microsoft Surface Type Cover UNKNOWN (/dev/input/event26)
    [   399.534] (**) Microsoft Surface Type Cover UNKNOWN: Applying InputClass "NTRG0001:01 1B96:1B05 Pen stylus"
    [   399.534] (II) No input driver specified, ignoring this device.
    [   399.534] (II) This device may have been added with another device file.
    [   399.534] (II) config/udev: Adding input device Microsoft Surface Type Cover UNKNOWN (/dev/input/event21)
    [   399.534] (**) Microsoft Surface Type Cover UNKNOWN: Applying InputClass "NTRG0001:01 1B96:1B05 Pen stylus"
    [   399.534] (II) No input driver specified, ignoring this device.
    [   399.534] (II) This device may have been added with another device file.
    [   399.535] (II) config/udev: Adding input device Microsoft Surface Type Cover UNKNOWN (/dev/input/event20)
    [   399.535] (**) Microsoft Surface Type Cover UNKNOWN: Applying InputClass "NTRG0001:01 1B96:1B05 Pen stylus"
    [   399.535] (II) No input driver specified, ignoring this device.
    [   399.535] (II) This device may have been added with another device file.
    [   399.536] (II) config/udev: Adding input device Microsoft Surface Type Cover UNKNOWN (/dev/input/event31)
    [   399.536] (**) Microsoft Surface Type Cover UNKNOWN: Applying InputClass "NTRG0001:01 1B96:1B05 Pen stylus"
    [   399.536] (II) No input driver specified, ignoring this device.
    [   399.536] (II) This device may have been added with another device file.
    [   399.536] (II) config/udev: Adding input device Microsoft Surface Type Cover UNKNOWN (/dev/input/event256)
    [   399.536] (**) Microsoft Surface Type Cover UNKNOWN: Applying InputClass "NTRG0001:01 1B96:1B05 Pen stylus"
    [   399.536] (II) No input driver specified, ignoring this device.
    [   399.536] (II) This device may have been added with another device file.
    
  16. 3 remaining items

  17. Erudition commented on Dec 13, 2018

    @Erudition

    FOUND IT!

    @MurryS @perplexityjeff @sphh @miningslayer18
    First off, if you're running an Ubuntu derivative, with the type cover connected right now, try typing this in a terminal:
    sudo /sbin/modprobe i2c_hid
    Did that bring your touchscreen back?

    @jakeday , I found this by process of elimination. I was even able to pinpoint the exact line causing the issue, as referenced above - it was added in commit -95d56cd.

    • I hadn't successfully run a fresh git kernel via the script, I was still running a stock Ubuntu kernel. So it can't be a kernel problem.
    • The issue appeared after I ran the first part of the script. So the problem must be caused by those changes.
    • The script does only two things for the Surface Pro 3:
      • Install i915 firmware files, whatever that is
        • So I figured out these are part of the linux-firmware package so I removed it (sudo apt remove linux-firmware) and reinstalled it. This effectively un-did the script's changes here.
        • Out of the four files that get replaced, only one of the stock versions already there was any different. It was a slightly older version.
        • The problem didn't go away. Eliminated
      • Install a bunch of files in root.
        • The only files that seemed relevant are the udev config files in /etc/udev/rules.d/
          • Start by renaming both files so they're not found
          • Holy crap that worked
          • Turn one of them back on (98-keyboardscovers.rules)
          • Back to being broken
          • Well that settles it, time to comment out individual lines and reboot repeatedly until it works again
          • Found it! Line 2! Added by this commit, see it here!

    Analysis

    The i2c_hid kernel module was being removed on type cover attachment, but for some reason, not re-added... The modprobe command above adds it back.

    Quick fix for current users

    sudo rm /etc/udev/rules.d/98-keyboardscovers.rules

    That file seems to be unneeded for SP3 people.

    Phew! That took a lot of time and effort. Really surprised I did it though.

  18. WiiExpertise commented on Dec 13, 2018

    @WiiExpertise
    Author

    Can confirm this works

    EDIT: Pen does not seem to work, however.

  19. perplexityjeff commented on Dec 13, 2018

    @perplexityjeff

    Thank you for figuring it out. When I have the time I will check as well if this works.

  20. mikamatto commented on Dec 19, 2018

    @mikamatto

    Thanks Erudition, that looked promising but unfortunately didn't do the job for me (I actually renamed the file instead of deleting it)

    I'm running Ubuntu 18.04 on SP3. Jakeday's patch fixed my wifi issue (thanks!), but introduced this keyboard VS touch problem.

    The problem on my SP3 might be slightly different: I found out that if I boot up without keyboard connected, and I connect it when it's time to enter the decrypt password, then I have no problems with touch (except pen which comes and dies randomly, but that might be a different cause).
    If I boot up with keyboard connected, then touch is not available even if I disconnect keyboard, until I reboot.

    That's not a big deal, but I just wanted to give my feedback on this

    Thanks!
    Mick

  21. added a commit that references this issue on Dec 28, 2018
  22. jakeday commented on Dec 28, 2018

    @jakeday
    Owner

    This has been merged in and is now working.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions