GithubHelp home page GithubHelp logo

linux-surface's People

Contributors

64kramsystem avatar a avatar aporie avatar arcticxwolf avatar battaglia01 avatar casainho avatar dbugsy avatar ehotinger avatar geoffholden avatar jakeday avatar mr-remington avatar npjohnson avatar pierrepinon avatar qzed avatar samdoshi avatar tmarkov avatar wrecklass avatar zyfarok avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

linux-surface's Issues

Surface Pro 2017 / Book 2 / Laptop: Battery Status Not Working

The new 2017 version of the Surface Pro has no battery status.
I don't know of any working kernel for this issue.
I suspect this is an ACPI issue, as I have the following lines in my kernel messages:

ACPI Error: [_SB_.PCI0] Namespace lookup failure, AE_NOT_FOUND (20170728/dswload2-191)
ACPI Exception: AE_NOT_FOUND, During name lookup/catalog (20170728/psobject-252)
ACPI Error: Method parse/execution failed \_SB.PCI0.UA02, AE_NOT_FOUND (20170728/psparse-550)

Multi-touch and Pen do not work on 4.14.x

Hey mate

Pen does not seem to work on my Surface Book (not performance base)

Is there a fix to this?

Cheers

sudo lsinput result
/dev/input/event0
bustype : BUS_HOST
vendor : 0x0
product : 0x5
version : 0
name : "Lid Switch"
phys : "PNP0C0D/button/input0"
bits ev : EV_SYN EV_SW

/dev/input/event1
bustype : BUS_HOST
vendor : 0x0
product : 0x6
version : 0
name : "Video Bus"
phys : "LNXVIDEO/video/input0"
bits ev : EV_SYN EV_KEY

/dev/input/event2
bustype : BUS_HOST
vendor : 0x0
product : 0x0
version : 0
name : "Surface Pro 3/4 Buttons"
phys : "MSHW0040/buttons"
bits ev : EV_SYN EV_KEY

/dev/input/event3
bustype : BUS_USB
vendor : 0x45e
product : 0x7cd
version : 273
name : "Microsoft Surface Keyboard Keybo"
phys : "usb-0000:00:14.0-1.4/input0"
uniq : ""
bits ev : EV_SYN EV_KEY EV_MSC EV_LED EV_REP

/dev/input/event4
bustype : BUS_USB
vendor : 0x45e
product : 0x7cd
version : 273
name : "Microsoft Surface Keyboard Mouse"
phys : "usb-0000:00:14.0-1.4/input0"
uniq : ""
bits ev : EV_SYN EV_KEY EV_REL EV_MSC

/dev/input/event5
bustype : BUS_USB
vendor : 0x45e
product : 0x7cd
version : 273
name : "Microsoft Surface Keyboard Consu"
phys : "usb-0000:00:14.0-1.4/input0"
uniq : ""
bits ev : EV_SYN EV_KEY EV_REL EV_ABS EV_MSC

/dev/input/event6
bustype : BUS_USB
vendor : 0x45e
product : 0x7cd
version : 273
name : "Microsoft Surface Keyboard UNKNO"
phys : "usb-0000:00:14.0-1.4/input0"
uniq : ""
bits ev : EV_SYN EV_ABS

/dev/input/event7
bustype : BUS_USB
vendor : 0x45e
product : 0x7cd
version : 273
name : "Microsoft Surface Keyboard Touch"
phys : "usb-0000:00:14.0-1.4/input0"
uniq : ""
bits ev : EV_SYN EV_KEY EV_ABS

/dev/input/event8
bustype : BUS_USB
vendor : 0x45e
product : 0x7cd
version : 273
name : "Microsoft Surface Keyboard UNKNO"
phys : "usb-0000:00:14.0-1.4/input0"
uniq : ""
bits ev : EV_SYN EV_ABS

/dev/input/event9
bustype : BUS_USB
vendor : 0x45e
product : 0x7cd
version : 273
name : "Microsoft Surface Keyboard UNKNO"
phys : "usb-0000:00:14.0-1.4/input0"
uniq : ""
bits ev : EV_SYN EV_ABS

/dev/input/event10
bustype : BUS_USB
vendor : 0x45e
product : 0x7cd
version : 273
name : "Microsoft Surface Keyboard UNKNO"
phys : "usb-0000:00:14.0-1.4/input0"
uniq : ""
bits ev : EV_SYN EV_ABS

/dev/input/event11
bustype : BUS_USB
vendor : 0x45e
product : 0x7cd
version : 273
name : "Microsoft Surface Keyboard UNKNO"
phys : "usb-0000:00:14.0-1.4/input0"
uniq : ""
bits ev : EV_SYN EV_ABS

/dev/input/event12
bustype : BUS_USB
vendor : 0x45e
product : 0x7cd
version : 273
name : "Microsoft Surface Keyboard UNKNO"
phys : "usb-0000:00:14.0-1.4/input0"
uniq : ""
bits ev : EV_SYN EV_ABS

/dev/input/event13
bustype : BUS_USB
vendor : 0x45e
product : 0x7cd
version : 273
name : "Microsoft Surface Keyboard UNKNO"
phys : "usb-0000:00:14.0-1.4/input0"
uniq : ""
bits ev : EV_SYN EV_ABS

/dev/input/event14
bustype : BUS_USB
vendor : 0x45e
product : 0x7cd
version : 273
name : "Microsoft Surface Keyboard UNKNO"
phys : "usb-0000:00:14.0-1.4/input0"
uniq : ""
bits ev : EV_SYN EV_ABS

/dev/input/event15
bustype : BUS_USB
vendor : 0x45e
product : 0x7cd
version : 273
name : "Microsoft Surface Keyboard UNKNO"
phys : "usb-0000:00:14.0-1.4/input0"
uniq : ""
bits ev : EV_SYN EV_ABS

/dev/input/event16
bustype : BUS_USB
vendor : 0x45e
product : 0x7cd
version : 273
name : "Microsoft Surface Keyboard UNKNO"
phys : "usb-0000:00:14.0-1.4/input0"
uniq : ""
bits ev : EV_SYN EV_ABS

/dev/input/event17
bustype : BUS_USB
vendor : 0x45e
product : 0x7cd
version : 273
name : "Microsoft Surface Keyboard UNKNO"
phys : "usb-0000:00:14.0-1.4/input0"
uniq : ""
bits ev : EV_SYN EV_ABS

/dev/input/event18
bustype : BUS_USB
vendor : 0x45e
product : 0x7cd
version : 273
name : "Microsoft Surface Keyboard UNKNO"
phys : "usb-0000:00:14.0-1.4/input0"
uniq : ""
bits ev : EV_SYN EV_ABS

/dev/input/event19
bustype : BUS_USB
vendor : 0x45e
product : 0x7cd
version : 273
name : "Microsoft Surface Keyboard UNKNO"
phys : "usb-0000:00:14.0-1.4/input0"
uniq : ""
bits ev : EV_SYN EV_ABS

/dev/input/event20
bustype : BUS_USB
vendor : 0x45e
product : 0x7cd
version : 273
name : "Microsoft Surface Keyboard UNKNO"
phys : "usb-0000:00:14.0-1.4/input0"
uniq : ""
bits ev : EV_SYN EV_ABS

/dev/input/event21
bustype : (null)
vendor : 0x0
product : 0x0
version : 0
name : "HDA Intel PCH Mic"
phys : "ALSA"
bits ev : EV_SYN EV_SW

/dev/input/event22
bustype : (null)
vendor : 0x0
product : 0x0
version : 0
name : "HDA Intel PCH Headphone"
phys : "ALSA"
bits ev : EV_SYN EV_SW

/dev/input/event23
bustype : (null)
vendor : 0x0
product : 0x0
version : 0
name : "HDA Intel PCH HDMI/DP,pcm=3"
phys : "ALSA"
bits ev : EV_SYN EV_SW

/dev/input/event24
bustype : (null)
vendor : 0x0
product : 0x0
version : 0
name : "HDA Intel PCH HDMI/DP,pcm=7"
phys : "ALSA"
bits ev : EV_SYN EV_SW

/dev/input/event25
bustype : (null)
vendor : 0x0
product : 0x0
version : 0
name : "HDA Intel PCH HDMI/DP,pcm=8"
phys : "ALSA"
bits ev : EV_SYN EV_SW

/dev/input/event26
bustype : (null)
vendor : 0x0
product : 0x0
version : 0
name : "HDA Intel PCH HDMI/DP,pcm=9"
phys : "ALSA"
bits ev : EV_SYN EV_SW

/dev/input/event27
bustype : (null)
vendor : 0x0
product : 0x0
version : 0
name : "HDA Intel PCH HDMI/DP,pcm=10"
phys : "ALSA"
bits ev : EV_SYN EV_SW

/dev/input/event28
bustype : (null)
vendor : 0x1b96
product : 0x5e
version : 0
name : "ipts 1B96:005E UNKNOWN"
phys : "heci3"
uniq : ""
bits ev : EV_SYN EV_KEY EV_ABS EV_MSC

/dev/input/event29
bustype : (null)
vendor : 0x1b96
product : 0x5e
version : 0
name : "ipts 1B96:005E Pen"
phys : "heci3"
uniq : ""
bits ev : EV_SYN EV_KEY EV_ABS EV_MSC

/dev/input/event30
bustype : (null)
vendor : 0x1b96
product : 0x5e
version : 0
name : "ipts 1B96:005E"
phys : "heci3"
uniq : ""
bits ev : EV_SYN EV_KEY EV_ABS

/dev/input/event31
bustype : (null)
vendor : 0x1b96
product : 0x5e
version : 0
name : "ipts 1B96:005E Mouse"
phys : "heci3"
uniq : ""
bits ev : EV_SYN EV_KEY EV_REL EV_MSC

Surface Book 2: Multi-touch does not work

Hi,

I am using latest kernel 4.14, and the ipts firmware version 102 on "surface book 2, model 1703". But, i couldn't get multitouch to work on it. Even for single touch, i need to enable it manually using the "sudo echo 0 > /sys/kernel/...". when i switched echo to 1 single touch also stopped working.
I have also added udev rules as /etc/udev/rules.d/99-ipts.rules. Also, in the starting, kernel 4.14 was not booting in surface book 2. Then i used the solution from previous thread then it started booting.

Dmesg output:
dmes.txt

Sleep doesnt wake up

G'day there

Sleep doesn't seems to work on a Surface Book with 16.04LTS

Others seems fantastic except the camera are not supported yet

Good job getting the kernel work for Surface devices, it's always been a pain to install Linux on surface until this point.

Surface Pro 4: advice on re-enabling touch after loss of input

Once in a while I lose touch and pen input. When this happens I can no longer switch to single touch mode (the command "echo 1 > /sys/kernel/debug/ipts/mode" hangs), and rotating the screen doesn't always work. Hibernating doesn't work.

Does someone have any advice? Can I reload a kernel module?

Specify apt behavior on `linux-firmware` package upgrade

The guide suggests to overwrite the Marvell chip firmware files.

While correct, I suspect there is a problem with this when apt will find an update of the linux-firmware package (that includes those files (dpkg -S /lib/firmware/mrvl/*.bin)); likely, apt will find that there is a conflict, prompting the user with the choice of what to do.

I think it's worth confirming if this is the case, and documenting it, since it could be puzzling (and also, possibly inadvertly cause files overwriting).

Error in apparmor

Hey jakeday! Thank you for what you do! you are our hero.

You missed an "l" on line 36 of the apparmor patch in the word "dhclinet."

Also could you be so kind as to give a few instructions on how to change a surfacebook to multitouch mode. People on reddit seem to be confused too and trying to echo 1 into the ipts mode kinda crashes everything.

Surface Book 2 15": No DGPU support?

Everything is working nicely except there is no support for dGPU? I installed the NVIDIA binary driver 387 from software & updates and it works without using your kernel. After installing your kernel, nvidia-smi shows command not found?

Wifi occasionally drop in WPA2 Enterprise network

I have both 4.12 and 4.13 series of kernels installed on my Surface Book. Wifi is good in the normal home environment. But it's not so good in my university, where the following configuration is used:

  • Wireless security: WPA2 Enterprise
  • Authentication: Protected EAP (PEAP)
  • CA certificate: AddTrust External CA Root
  • PEAP Version: Automatic or Version 0
  • Inner/Phase 2 authentication: MSCHAPv2

After booting, the Wifi cannot be automatically connected, manually connect does work, but after like 10 minutes it would drop the connection and you're not able to reconnect again.

SP4 Suspending doesn't work well

Thanks for your works very much! Following your instructions, most of things work fine.However,once my SP4 is suspended,I have to wake up it by a USB keyboard,neither the type cover nor power button can resume it.In addition,Wi-fi doesn't work frequently after suspending or hibernation.

Surface Pro 4: Multi-touch Input Stops Working Until Screen Rotate

I found a sure-fire way to get the multitouch input to stop working.

  1. make sure you're in multitouch mode (as root "echo 1 > /sys/kernel/debug/ipts/mode")
  2. open chrome
  3. open google maps
  4. move the map around (with even just a single finger, no need to pinch and zoom)
  5. see that no touch input (single or multi) works after a little bit of fussing around

To get touch input to work again rotate the screen.

Surface Pro 4: Hibernation is broken on kernel 4.14.3 - 4.18.11

Using the most current kernel, 4.14.4 that @jakeday released, Hibernation still will not work. All steps in the guide were followed perfectly, yet using either sudo systemctl hibernate, pressing Suspend in the top right menu, clicking the power button and tapping Suspend, or simply shutting the type cover, all result in a full system hang and a black screen, requiring you to hold the power button for 10 seconds to force a full power down.

Using sudo pm-hibernate results in hibernation, but the Surface will not power down, leaving it hanging on a black screen. When powered back on, the Surface will resume from hibernation, but WiFi is now completely missing, with NetworkManager reporting no "No WiFi capable devices found". If I restart or shutdown the Surface, the last line of text on the screen from systemd is Reached target Shutdown or something similar, and the Surface will freeze, requiring a hard power off.

Proper patch files for other distributions

Dear @jakeday,

Thank you very much for your hard work. I was wondering if it could be possible for you to generate/maintain proper patch files ? It would then be much easier for me to apply them on the official Gentoo kernel images ?

Best,
Jérôme

Pinch to zoom on touchscreen on Surface pro 4 with linux not working

I am running your linux 4.12 kernel on surface pro4, i got everything working i.e. single touch on screen, multi touch type cover, keyboard etc. But i could not get 2 fingers pinch to zoom on touchscreen to work.

I tried changing the mode to multitouch by:
echo 1 > /sys/kernel/debug/ipts/mode.
But my touchscreen stopped working from that.

Specify status of DisplayPort

I don't have this kernel installed, so I can't test it, but I'm very interested, in case it was supported.

Note: I can't unassign myself from the assignees list.

Surface Pro 2017 / Book 2: Power/Volume Buttons Don't Work

Everything else is pretty much perfect, but unfortunately power and volume buttons are still non functional.
I'm not entirely familiar with how they are implemented, but from what I can tell, they are supposed to be implemented as acpi buttons. However, when pressed, they do not do anything, no messages appear in dmesg, and nothing shows when running acpi_listen. I also tried evtest, which displays the device as Surface Pro 3/4/2017 Buttons, but no events appear there either.

apparmor-fix-4.14.patch has an outdated context

The final part of the papparmor-fix-4.14.patch patch is:

diff --git a/apparmor.d/usr.sbin.cupsd b/apparmor.d/usr.sbin.cupsd
index e0c7e40..469e24f 100644
--- a/apparmor.d/usr.sbin.cupsd
+++ b/apparmor.d/usr.sbin.cupsd
@@ -42,6 +42,8 @@
   network econet dgram,
   network ash dgram,
 
+  network unix stream,
+
   /bin/bash ixr,
   /bin/dash ixr,
   /bin/hostname ixr,

But the context is wrong, as my file has the following lines as context:

  /{usr/,}bin/dash ixr,
  /{usr/,}bin/bash ixr,
  /{usr/,}bin/cp ixr,

Kernel images starting with version 4.13 fail to load on Surface Book

Hi,

while the 4.12 kernel images load correctly on my surface book, the images of the 4.13 series completely fail to load. After grub loads the kernel the display stays black and nothing else happens.
Did you encounter this in your environment too?

BTW: This happens only on the "surface book". The same kernel works like a charm on the Surface Pro 4 Platform.

Model: surface book
System UEFI 90.1427.768
SAM Controller: 90.1610.256
IME: 11.0.15.1003
System Embedded Controller 90.1277.256

Thanks and Regards
Ulf

Surface Pro 4: flaky wireless with the 4.14.0 kernel

I've applied the apparmor patches, yet experience unpredictable wireless performance.
Half the time when I boot I'm incapable of connecting a network. Sometimes only insecure connections work. Other times, a secure connection works yet I cannot change to another one.

None of these problems happen running the Ubuntu 14.13.0-16-generic kernel.

The following is a sample dmesg output from the last time I booted the computer.
PART A: The machine connected to eduroam and works (as it is now) despite error messages.
PART B: Then I try to connect to the other encrypted network. Now no connection can be made.
PART C: NetworkManager struggles, maybe trying to reconnect to eduroam and fails.
PART D: I reload the mwifiex_pcie module and then kill and restart NetworkManager. This doesn't help and no network can be connect to hereafter.

PART A:

[ 7.280718] mwifiex_pcie 0000:02:00.0: info: MWIFIEX VERSION: mwifiex 1.0 (15.68.7.p77)
[ 7.280719] mwifiex_pcie 0000:02:00.0: driver_version = mwifiex 1.0 (15.68.7.p77)
[ 7.282873] mwifiex_pcie 0000:02:00.0 wlp2s0: renamed from mlan0
[ 7.383720] IPv6: ADDRCONF(NETDEV_UP): wlp2s0: link is not ready
[ 7.383810] IPv6: ADDRCONF(NETDEV_UP): wlp2s0: link is not ready
[ 7.383814] mwifiex_pcie 0000:02:00.0: overriding ps_mode to false
[ 7.387384] IPv6: ADDRCONF(NETDEV_UP): wlp2s0: link is not ready
[ 7.387390] mwifiex_pcie 0000:02:00.0: overriding ps_mode to false
[ 7.433140] IPv6: ADDRCONF(NETDEV_UP): wlp2s0: link is not ready
[ 10.320946] IPv6: ADDRCONF(NETDEV_UP): wlp2s0: link is not ready
[ 10.320984] mwifiex_pcie 0000:02:00.0: overriding ps_mode to false
[ 10.603668] mwifiex_pcie 0000:02:00.0: overriding ps_mode to false
[ 10.644678] mwifiex_pcie 0000:02:00.0: info: trying to associate to 'eduroam' bssid 6c:aa:b3:5f:1a:fc
[ 10.728482] mwifiex_pcie 0000:02:00.0: info: associated to bssid 6c:aa:b3:5f:1a:fc successfully
[ 10.728509] IPv6: ADDRCONF(NETDEV_CHANGE): wlp2s0: link becomes ready
[ 21.771258] rfkill: input handler disabled
[ 21.976029] Bluetooth: RFCOMM TTY layer initialized
[ 21.976036] Bluetooth: RFCOMM socket layer initialized
[ 21.976041] Bluetooth: RFCOMM ver 1.11

PART B:

[ 115.258906] mwifiex_pcie 0000:02:00.0: info: successfully disconnected from 6c:aa:b3:5f:1a:fc: reason code 3
[ 115.272390] IPv6: ADDRCONF(NETDEV_UP): wlp2s0: link is not ready
[ 115.272395] mwifiex_pcie 0000:02:00.0: overriding ps_mode to false
[ 115.305328] IPv6: ADDRCONF(NETDEV_UP): wlp2s0: link is not ready
[ 115.305333] mwifiex_pcie 0000:02:00.0: overriding ps_mode to false

PART C:

[ 141.005818] IPv6: ADDRCONF(NETDEV_UP): wlp2s0: link is not ready
[ 141.006734] IPv6: ADDRCONF(NETDEV_UP): wlp2s0: link is not ready
[ 141.006739] mwifiex_pcie 0000:02:00.0: overriding ps_mode to false
[ 141.035994] IPv6: ADDRCONF(NETDEV_UP): wlp2s0: link is not ready
[ 141.036002] mwifiex_pcie 0000:02:00.0: overriding ps_mode to false
[ 166.007495] IPv6: ADDRCONF(NETDEV_UP): wlp2s0: link is not ready
[ 166.008904] IPv6: ADDRCONF(NETDEV_UP): wlp2s0: link is not ready
[ 166.008912] mwifiex_pcie 0000:02:00.0: overriding ps_mode to false
[ 166.038354] IPv6: ADDRCONF(NETDEV_UP): wlp2s0: link is not ready
[ 166.038359] mwifiex_pcie 0000:02:00.0: overriding ps_mode to false
[ 174.742577] IPv6: ADDRCONF(NETDEV_UP): wlp2s0: link is not ready
[ 174.743668] IPv6: ADDRCONF(NETDEV_UP): wlp2s0: link is not ready
[ 174.743673] mwifiex_pcie 0000:02:00.0: overriding ps_mode to false
[ 174.751718] IPv6: ADDRCONF(NETDEV_UP): wlp2s0: link is not ready
[ 174.751728] mwifiex_pcie 0000:02:00.0: overriding ps_mode to false

PART D:

[ 196.481750] mwifiex_pcie 0000:02:00.0: info: shutdown mwifiex...
[ 196.482250] mwifiex_pcie 0000:02:00.0: PREP_CMD: card is removed
[ 196.482257] mwifiex_pcie 0000:02:00.0: PREP_CMD: card is removed
[ 197.663293] mwifiex_pcie: try set_consistent_dma_mask(32)
[ 197.663396] mwifiex_pcie: PCI memory map Virt0: ffffb3d381b00000 PCI memory map Virt2: ffffb3d384200000
[ 197.664640] mwifiex_pcie 0000:02:00.0: WLAN FW already running! Skip FW dnld
[ 197.664641] mwifiex_pcie 0000:02:00.0: WLAN FW is active
[ 197.772363] mwifiex_pcie 0000:02:00.0: info: MWIFIEX VERSION: mwifiex 1.0 (15.68.7.p77)
[ 197.772372] mwifiex_pcie 0000:02:00.0: driver_version = mwifiex 1.0 (15.68.7.p77)
[ 197.782586] mwifiex_pcie 0000:02:00.0 wlp2s0: renamed from mlan0
[ 197.830119] IPv6: ADDRCONF(NETDEV_UP): wlp2s0: link is not ready
[ 197.830256] IPv6: ADDRCONF(NETDEV_UP): wlp2s0: link is not ready
[ 197.830262] mwifiex_pcie 0000:02:00.0: overriding ps_mode to false
[ 197.835033] IPv6: ADDRCONF(NETDEV_UP): wlp2s0: link is not ready
[ 197.835039] mwifiex_pcie 0000:02:00.0: overriding ps_mode to false
[ 197.903675] IPv6: ADDRCONF(NETDEV_UP): wlp2s0: link is not ready
[ 200.198525] IPv6: ADDRCONF(NETDEV_UP): wlp2s0: link is not ready
[ 200.198769] IPv6: ADDRCONF(NETDEV_UP): wlp2s0: link is not ready
[ 200.198774] mwifiex_pcie 0000:02:00.0: overriding ps_mode to false
[ 200.204267] IPv6: ADDRCONF(NETDEV_UP): wlp2s0: link is not ready
[ 200.204270] mwifiex_pcie 0000:02:00.0: overriding ps_mode to false
[ 200.375430] IPv6: ADDRCONF(NETDEV_UP): wlp2s0: link is not ready

These may be related issues:
#20
#11

Pen not working on Surface Pro 2017

After trying the latest 4.14-rc8 kernel, I still have no pen support.

I've added the udev rules for the different devices in the 2017 version:

% diff 99-ipts.rules /etc/udev/rules.d/99-ipts.rules              
17a18,27
> 
> # IPTS Touchscreen (SP2017)
> SUBSYSTEMS=="input", ATTRS{name}=="ipts 1B96:001F", ENV{ID_INPUT_TOUCHSCREEN}="1", SYMLINK+="input/touchscreen"
> 
> # IPTS Touchscreen (SP2017)
> SUBSYSTEMS=="input", ATTRS{name}=="ipts 1B96:001F UNKNOWN", ENV{ID_INPUT_TOUCHSCREEN}="1", SYMLINK+="input/touchscreen"
> 
> # IPTS Pen (SP2017)
> SUBSYSTEMS=="input", ATTRS{name}=="ipts 1B96:001F Pen", SYMLINK+="input/pen"

But evtest still gives me nothing:

% evtest
No device specified, trying to scan all of /dev/input/event*
Available devices:
/dev/input/event0:      Lid Switch
/dev/input/event1:      Video Bus
/dev/input/event2:      Microsoft Microsoft® 2.4GHz Transceiver v9.0
/dev/input/event3:      Microsoft Microsoft® 2.4GHz Transceiver v9.0
/dev/input/event4:      Microsoft Microsoft® 2.4GHz Transceiver v9.0
/dev/input/event5:      Surface Pro 3/4 Buttons
/dev/input/event6:      Microsoft Surface Type Cover Keyboard
/dev/input/event7:      Microsoft Surface Type Cover Mouse
/dev/input/event8:      Microsoft Surface Type Cover Consumer Control
/dev/input/event9:      Microsoft Surface Type Cover Touchpad
/dev/input/event10:     HDA Intel PCH Mic
/dev/input/event11:     HDA Intel PCH Headphone
/dev/input/event12:     HDA Intel PCH HDMI/DP,pcm=3
/dev/input/event13:     HDA Intel PCH HDMI/DP,pcm=7
/dev/input/event14:     HDA Intel PCH HDMI/DP,pcm=8
/dev/input/event15:     HDA Intel PCH HDMI/DP,pcm=9
/dev/input/event16:     HDA Intel PCH HDMI/DP,pcm=10
/dev/input/event17:     ipts 1B96:001F UNKNOWN
/dev/input/event18:     ipts 1B96:001F Pen
/dev/input/event19:     ipts 1B96:001F
/dev/input/event20:     ipts 1B96:001F Mouse
/dev/input/event21:     Surface Pen
Select the device event number [0-21]: 18
Input driver version is 1.0.1
Input device ID: bus 0x44 vendor 0x1b96 product 0x1f version 0x0
Input device name: "ipts 1B96:001F Pen"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 256 (BTN_0)
    Event code 320 (BTN_TOOL_PEN)
    Event code 321 (BTN_TOOL_RUBBER)
    Event code 330 (BTN_TOUCH)
    Event code 331 (BTN_STYLUS)
  Event type 3 (EV_ABS)
    Event code 0 (ABS_X)
      Value      0
      Min        0
      Max     9600
      Resolution      34
    Event code 1 (ABS_Y)
      Value      0
      Min        0
      Max     7200
      Resolution      38
    Event code 24 (ABS_PRESSURE)
      Value      0
      Min        0
      Max     1024
  Event type 4 (EV_MSC)
    Event code 4 (MSC_SCAN)
Properties:
Testing ... (interrupt to exit)

Anbox & jakeday Kernel

Thank you very much for this great kernel.
As far as I know everything is working as described on my SP4 i5 2016 and linux artul 2017
I do not know if this is the good place for this question:
anbox allow to run android app on linux. When I tried to install it I get the following :

What do you want to do?

 1. Install Anbox
 2. Uninstall Anbox

Please enter your choice [1-2]: 
1


This is the installer for the anbox runtime environment. It will
install certain things on your system to ensure all requirements
are available for anbox to work correctly.

In summary we will install the following things:

 * Add the anbox-support ppa ppa:morphis/anbox-support to the
   host system
 * Install the anbox-modules-dkms deb package from the ppa
   which will add kernel modules for ashmem and binder which are
   required for the Android container to work.
 * Configure binder and ashmem kernel modules to be loaded
   automatically on boot.
 * Install the anbox-common package from the ppa which will
   - Add an upstart job for the current user laurent which will
     start the anbox runtime on login.
   - Add a X11 session configuration file to allow the system
     application launcher (Unity7, Gnome Shell, ..) to find
     available Android applications.

Please type 'I AGREE' followed by pressing ENTER to continue
or type anything else to abort:
I AGREE


Starting installation process ...

+ sudo add-apt-repository -y ppa:morphis/anbox-support
gpg: le trousseau local « /tmp/tmprd1src4b/pubring.gpg » a été créé
gpg: /tmp/tmprd1src4b/trustdb.gpg : base de confiance créée
gpg: clef 21C6044A875B67B7 : clef publique « Launchpad PPA for morphis » importée
gpg: Quantité totale traitée : 1
gpg:               importées : 1
OK
+ sudo apt update
Atteint:1 http://ppa.launchpad.net/morphis/anbox-support/ubuntu artful InRelease
Atteint:2 http://fr.archive.ubuntu.com/ubuntu artful InRelease                 
Réception de:3 http://security.ubuntu.com/ubuntu artful-security InRelease [78,6 kB]
Atteint:4 http://fr.archive.ubuntu.com/ubuntu artful-updates InRelease         
Ign:5 http://dl.google.com/linux/chrome/deb stable InRelease                   
Atteint:6 http://fr.archive.ubuntu.com/ubuntu artful-backports InRelease       
Atteint:7 http://dl.google.com/linux/chrome/deb stable Release                 
Atteint:8 https://download.docker.com/linux/ubuntu artful InRelease            
Atteint:10 https://download.sublimetext.com apt/stable/ InRelease              
78,6 ko réceptionnés en 0s (89,5 ko/s)
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
71 paquets peuvent être mis à jour. Utilisez « apt list --upgradable » pour les voir.
+ sudo apt install -y anbox-common
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
anbox-common est déjà la version la plus récente (9).
0 mis à jour, 0 nouvellement installés, 0 à enlever et 71 non mis à jour.
+ '[' -c /dev/binder ']'
+ sudo apt install -y linux-headers-generic anbox-modules-dkms
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
linux-headers-generic est déjà la version la plus récente (4.13.0.16.17).
anbox-modules-dkms est déjà la version la plus récente (9).
0 mis à jour, 0 nouvellement installés, 0 à enlever et 71 non mis à jour.
+ sudo modprobe binder_linux
modprobe: FATAL: Module binder_linux not found in directory /lib/modules/4.14.0-jakeday-surface
+ cleanup
+ local err=1
+ trap - EXIT
+ echo 'ERROR: Installation failed. Removing all parts of Anbox again.'
ERROR: Installation failed. Removing all parts of Anbox again.
+ uninstall
+ set -x
+ sudo snap remove anbox
snap "anbox" is not installed
+ '[' -e /etc/apt/sources.list.d/morphis-ubuntu-anbox-support-xenial.list ']'
+ set +x

I am wondering if anyone could help me for this issue.

Cheers

systemd files changed locations

This is to report that in Ubuntu 17.10 there are different locations for the systemd files.
So in the documentation where it says "Fix issue with Suspend to Disk:"
we need
sudo ln -s /lib/systemd/system/hibernate.target /etc/systemd/system/suspend.target
ans
sudo ln -s /lib/systemd/system/systemd-hibernate.service /etc/systemd/system/systemd-suspend.service

Surface Pro 4: Unable to install Virtual Box

Hello. The issue with Virtual Box seems to be solved (#33), but reconfigure still fails while running check_module_dependencies.sh (check_module_dependencies.log).
It seems caused by some links setup on kernel installation on /lib/modules/4.14.2-jakeday-surface :

build -> /home/jake/ipts/build/kernel
source -> /home/jake/ipts/build/kernel

Surface Pro 4: Solution for no wifi after hibernation

Not every time hibernation works, sometimes it hangs - I am on Linux Ubuntu 17.10, SP4 I3. And after rebooting, hibernation works but wifi does not!! But I got it working, just like I had it before using kernel 4.4.39, with this script:

  • call the script: hibernate.sh and put it as exec, in the folder: /lib/systemd/system-sleep/:
#!/bin/sh
case $1/$2 in
  pre/*)
    systemctl stop NetworkManager.service
    rmmod intel_ipts
    rmmod mei_me
    rmmod mei
    rmmod mwifiex_pcie
    rmmod mwifiex
    echo 1 > /sys/bus/pci/devices/0000\:02\:00.0/reset
    ;;
  post/*)
    modprobe mei
    modprobe mei_me
    echo 1 > /sys/bus/pci/devices/0000\:02\:00.0/reset
    modprobe mwifiex
    modprobe mwifiex_pcie
    systemctl start NetworkManager.service
    ;;
esac

~~~~

Great kernel!! Thank you.

Surface Pro 4: hibernate broken on 4.14.2 (Nov. 27) kernel

Thanks again jakeday for your work, making my surface finally usable on linux. Hibernate is very important to me with my mobile computing lifestyle, and this is one of the big reasons why the kernel is so important for me.

I updated to the 4.14.2 kernel (uploaded on Nov. 27) a couple of days ago and since then have had issues shutting down the computer with sudo systemctl hibernate. What happens is that the machine hangs while shutting down so I have to hold the button for 15 seconds. Often, upon boot it turns out that the previous state is recovered. So hibernate "works" sometimes but the shutdown process always hangs. I was not experiencing this with the 4.14.0 kernel.

The reason I use sudo systemctl hibernate is because, upon update of the kernel the button for suspend in Gnome shell disappeared. It seems as though Gnome shell knows something is wrong.

I confirmed that all my links are in place:

=> ll /lib/systemd/system-sleep/hibernate.sh 
-rwxr-xr-x 1 root root 435 Nov 30 20:39 /lib/systemd/system-sleep/hibernate.sh*
=> ll /etc/systemd/system/suspend.target
lrwxrwxrwx 1 root root 36 Nov  6 16:18 /etc/systemd/system/suspend.target -> /lib/systemd/system/hibernate.target
=> ll /etc/systemd/system/systemd-suspend.service
lrwxrwxrwx 1 root root 45 Nov  6 16:20 /etc/systemd/system/systemd-suspend.service -> /lib/systemd/system/systemd-hibernate.service

Unfortunately, I deleted the packages for the 4.14.0 kernel. Someone wouldn't happen to have them laying around would they?

VirtualBox misses header files

First of all thank you for all your work. This is definitely the best kernel I had be running on my Surface Pro 4 for now.

There is only one issue: I can't run VirtualBox on it. I'm using Ubuntu 17.10 and VirtualBox straight from the oracle ppa. After I installed your kernel I tried to run sudo dpkg-reconfigure virtualbox-5.2 which reported:

This system is currently not set up to build kernel modules.
Please install the Linux kernel "header" files matching the current kernel
for adding new hardware support to the system.

But according to sudo apt-get install linux-headers-`uname -r` linux-headers-4.14.0-jakeday-surface is installed.

Do you have any hint for me to solve that issue?

Cheers,
Martin

Surface Book, Performance base with Surface Dock, no Monitor detected

I installed your kernel and it is functioning well but I am still not able to get Linux to see the monitor I have connected to my surface dock. All the other things connected to the dock works just fine. I see that in your know issues that the dedicated GPU in the performance base is not functioning. Do you know if this is why the system does not see monitors connected to the dock? Do you happen to know if there is any work around to get the monitor to work through the Intel GPU?

Single-touch display in SP4

Hi Jake,

First of all, love the kernel, it saved me from running the SP4 with cheapo 2.4ghz-only wifi card occupying the only USB port - I can now use the built-in wifi without any issues. Thanks!

That being said, the issue I'm experiencing now (compared to a kernel I used before) is that the touch behaves as if I was using the mouse to click around, so to speak. SIngle-touch instead of expected 10 finger multi-touch. Two instances where I can notice it:

  • In the past I was able to scroll websites in Chrome browser with my finger, whereas now it would select text, as if I tried to click-and-drag the cursor
  • I was able to hold down ctrl and press a different key on the on-screen keyboard. Now I can't.
  • (bonus point) I think I used to be able to pinch-to-zoom on google maps loaded in Chrome. Can't do that now.

Running Ubuntu 16.04 on SP4 m3. The previous kernel was fridgecow's 4.8 based version.

Thanks!

Surface Pro 4. Kubuntu 17.10 boot error (live)

I wanted to ask something that I consider relevant to install Linux in the Surface.
Which version of Ubuntu do you use to make an installation from scratch? I'm trying to install Kubuntu 17.10 but it doesn't start the live. I've been looking and it seems that there is some kind of problem with the latest versions of Kernel and Surface Pro 4.
I remember that I had no problem installing version 16 LTS and updating it later, but I would like to install the most current version directly.

Translated with www.DeepL.com/Translator

Surface pen not working

I'm running Linux Mint 18.2 on a Surface Pro 4.
I just installed the 4.14.0-rc7 kernel and followed all your instructions from the readme, and although the touchscreen works, I cannot seem to get my surface pen to work. I tried the command "sudo echo 1 > /sys/kernel/debug/ipts/mode" to enable multi-touch, as inferred from discussions at https://www.reddit.com/r/SurfaceLinux/comments/6tbnqx/jakedays_kernel_for_surface_bookpro_4, which successfully modified the file /sys/kernel/debug/ipts/mode, but as soon as I execute the command, both touchscreen and the surface pen don't work. The computer also hangs if I try to restart or shut down after doing this. The next time it reboots, /sys/kernel/debug/ipts/mode is reverted back to 0.
Any ideas what I may be doing wrong here? I also have cantenna's superkerneltouch+ kernel installed and my surface pen works just fine with it.

kernel uploaded on Nov. 8 2017 doesn't have multi-touch support

Thanks again for all your work. It's making my surface pro 4 actually FUN TO USE with Linux!

You uploaded ubuntu .deb packages last night to https://goo.gl/QSZCwq.
They were supposed to include multi touch fixes from Nov. 8.

They don't appear to work on my machine after uninstalling your previous .debs and replacing them with the new ones. The new kernel acts exactly as the previous one did; with echo 0 > /sys/kernel/debug/ipts/mode I have a kernel with nice single touch and no pen, while with echo 1 > /sys/kernel/debug/ipts/mode I have no touch but the pen works.

One unexpected thing I noticed: the new .deb have exactly the same name as the others, despite being uploaded last night. Is this expected?

Please let me know if I can give you any debug information.

Compilation fails :(

Also I've tried to compile the kernel in FC26 but I get this error

make[1]: *** No rule to make target 'firmware/intel/ipts/ipts_fw_config.bin', needed by '__fw_modbuild'. Stop.

MAybe I'm doing somethig wrong because I've never compile kernel before

WPA2 wifi slowdown on most recent multitouch version

Hi jakeday thank you for adding multitouch. It's basically perfect now! Only problem is that now ive been experiencing wifi slowdowns after about half an hour of use. I go from 160-200 mbps to 0.04 mbps :(
I sometimes goes back to normal after re-clicking on the wifi network or by restarting Network Manger. Sometimes though a restart is the only way to fix it..
This is my dmesg report which just prints this for ever and ever. I don't know what to make of it... I'm running ubuntu 17.10.
[ 7745.155040] >> == DB s:1, c:a ==
[ 7745.155043] >> == WQ h:160, t:160 ==
[ 7748.227224] >> tdt : fw status : 8180505D 000A0000 000B000B 00000000 00000000 00000000

Also when it gets really bad ubuntu starts to get slow too. Memory leak???

WPA2 still unstable

Hi i installed your kernel and it's wonderful, only problem is that the wifi is still unstable in my schools enterprise network. I lose connection anywhere from 2 min to 20 min after boot. I haven't found any kernel past 4.9 that is stable in this wifi environment, is there any way to magically port all your edits to a 4.9 kernel?
Here's my dmesg report. Lotta red :(((
[ 6.676868] audit: type=1400 audit(1508718894.063:9): apparmor="STATUS" operation="profile_load" name="/usr/lib/lightdm/lightdm-guest-session" pid=654 comm="apparmor_parser"
[ 6.676995] audit: type=1400 audit(1508718894.063:10): apparmor="STATUS" operation="profile_load" name="/usr/lib/lightdm/lightdm-guest-session//chromium" pid=654 comm="apparmor_parser"
[ 6.690739] audit: type=1400 audit(1508718894.079:11): apparmor="STATUS" operation="profile_load" name="/sbin/dhclient" pid=652 comm="apparmor_parser"
[ 7.199167] mwifiex_pcie 0000:03:00.0: info: FW download over, size 820212 bytes
[ 7.641070] i2c_hid i2c-MSHW0030:00: error in i2c_hid_init_report size:63 / ret_size:0
[ 7.643186] i2c_hid i2c-MSHW0030:00: error in i2c_hid_init_report size:63 / ret_size:0
[ 7.644030] i2c_hid i2c-MSHW0030:00: error in i2c_hid_init_report size:19 / ret_size:0
[ 7.644871] i2c_hid i2c-MSHW0030:00: error in i2c_hid_init_report size:19 / ret_size:63
[ 7.645712] i2c_hid i2c-MSHW0030:00: error in i2c_hid_init_report size:19 / ret_size:7
[ 7.647056] i2c_hid i2c-MSHW0030:00: error in i2c_hid_init_report size:19 / ret_size:12
[ 7.647905] i2c_hid i2c-MSHW0030:00: error in i2c_hid_init_report size:19 / ret_size:0
[ 7.648748] i2c_hid i2c-MSHW0030:00: error in i2c_hid_init_report size:19 / ret_size:0
[ 7.649592] i2c_hid i2c-MSHW0030:00: error in i2c_hid_init_report size:19 / ret_size:4
[ 7.651143] i2c_hid i2c-MSHW0030:00: error in i2c_hid_init_report size:19 / ret_size:15
[ 7.827027] input: Microsoft Surface Keyboard Keyboard as /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.4/1-1.4:1.0/0003:045E:07CD.0001/input/input8
[ 7.886637] input: Microsoft Surface Keyboard Consumer Control as /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.4/1-1.4:1.0/0003:045E:07CD.0001/input/input9
[ 7.886776] input: Microsoft Surface Keyboard Touchpad as /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.4/1-1.4:1.0/0003:045E:07CD.0001/input/input10
[ 7.886984] input: Microsoft Surface Keyboard Keyboard as /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.4/1-1.4:1.0/0003:045E:07CD.0001/input/input11
[ 7.887145] hid-multitouch 0003:045E:07CD.0001: input,hiddev0,hidraw0: USB HID v1.11 Keyboard [Microsoft Surface Keyboard] on usb-0000:00:14.0-1.4/input0
[ 7.950382] usb 1-6: new high-speed USB device number 4 using xhci_hcd
[ 8.091444] usb 1-6: New USB device found, idVendor=1286, idProduct=204c
[ 8.091446] usb 1-6: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 8.091448] usb 1-6: Product: Bluetooth and Wireless LAN Composite Device
[ 8.091449] usb 1-6: Manufacturer: Marvell
[ 8.091450] usb 1-6: SerialNumber: 0000000000000000
[ 8.162541] mwifiex_pcie 0000:03:00.0: WLAN FW is active
[ 8.257052] mwifiex_pcie 0000:03:00.0: CMD_RESP: cmd 0x242 error, result=0x2
[ 8.257055] mwifiex_pcie 0000:03:00.0: mwifiex_process_cmdresp: cmd 0x242 failed during initialization
[ 8.280997] mwifiex_pcie 0000:03:00.0: info: MWIFIEX VERSION: mwifiex 1.0 (15.68.7.p77)
[ 8.280998] mwifiex_pcie 0000:03:00.0: driver_version = mwifiex 1.0 (15.68.7.p77)
[ 8.282164] mwifiex_pcie 0000:03:00.0 wlp3s0: renamed from mlan0
[ 9.566231] IPv6: ADDRCONF(NETDEV_UP): wlp3s0: link is not ready
[ 9.566295] IPv6: ADDRCONF(NETDEV_UP): wlp3s0: link is not ready
[ 9.660662] IPv6: ADDRCONF(NETDEV_UP): wlp3s0: link is not ready
[ 13.009793] snd_hda_intel 0000:00:1f.3: IRQ timing workaround is activated for card #0. Suggest a bigger bdl_pos_adj.
[ 27.324034] Could not find key with description: [31247f41b8b43385]
[ 27.324038] process_request_key_err: No key
[ 27.324038] Could not find valid key in user session keyring for sig specified in mount option: [31247f41b8b43385]
[ 27.324040] One or more global auth toks could not properly register; rc = [-2]
[ 27.324042] Error parsing options; rc = [-2]
[ 29.133573] mwifiex_pcie 0000:03:00.0: info: trying to associate to 'eduroam' bssid

No touch screen on my surfacebook (4.14-r6)

Dear @jakeday,

I compiled your sources (4.14-r6) for my surface book on Gentoo and unfortunately my touch screen (nor the Pen) is not working. I see this in my dmesg logs:

[root:/home/jerome] 130 # dmesg |grep 3e8d0870-271a-4208-8eb5-9acb9402ae04
[    3.687533] ipts mei::3e8d0870-271a-4208-8eb5-9acb9402ae04:0A: ipts_hid_parse() start
[    3.693791] ipts mei::3e8d0870-271a-4208-8eb5-9acb9402ae04:0A: hid size = 2732
[    3.696192] DMAR: Allocating domain for mei::3e8d0870-271a-4208-8eb5-9acb9402ae04:0A failed
[    3.696195] ipts mei::3e8d0870-271a-4208-8eb5-9acb9402ae04:0A: cannot allocate common resource
[    3.696196] ipts mei::3e8d0870-271a-4208-8eb5-9acb9402ae04:0A: error in handling resp msg
[    3.762209] ipts mei::3e8d0870-271a-4208-8eb5-9acb9402ae04:0A: hid raw request => report 2, request 1
[    3.762213] ipts mei::3e8d0870-271a-4208-8eb5-9acb9402ae04:0A: hid raw request => report 2, request 1
[    3.762214] ipts mei::3e8d0870-271a-4208-8eb5-9acb9402ae04:0A: hid raw request => report 2, request 1
[    3.762657] input: ipts 1B96:005E UNKNOWN as /devices/pci0000:00/0000:00:16.4/mei::3e8d0870-271a-4208-8eb5-9acb9402ae04:0A/0044:1B96:005E.0003/input/input30
[    3.762787] input: ipts 1B96:005E Pen as /devices/pci0000:00/0000:00:16.4/mei::3e8d0870-271a-4208-8eb5-9acb9402ae04:0A/0044:1B96:005E.0003/input/input41
[    3.762855] input: ipts 1B96:005E as /devices/pci0000:00/0000:00:16.4/mei::3e8d0870-271a-4208-8eb5-9acb9402ae04:0A/0044:1B96:005E.0003/input/input42
[    3.762914] input: ipts 1B96:005E Mouse as /devices/pci0000:00/0000:00:16.4/mei::3e8d0870-271a-4208-8eb5-9acb9402ae04:0A/0044:1B96:005E.0003/input/input43

I managed to get it working previously with a previous version but I do not remember which one exactly so I guess that the firmware is properly installed:

[root:/home/jerome] 130 # tree /lib/firmware/intel/ipts/
/lib/firmware/intel/ipts/
├── config.bin -> SurfaceTouchServicingSFTConfigMSHW0076.bin
├── iaPreciseTouchDescriptor.bin
├── intel_desc.bin -> iaPreciseTouchDescriptor.bin
├── ipts_fw_config.bin
├── SurfaceTouchServicingDescriptorMSHW0076.bin
├── SurfaceTouchServicingKernelSKLMSHW0076.bin
├── SurfaceTouchServicingSFTConfigMSHW0076.bin
├── vendor_desc.bin -> SurfaceTouchServicingDescriptorMSHW0076.bin
└── vendor_kernel.bin -> SurfaceTouchServicingKernelSKLMSHW0076.bin

If it could help, here is the list of input devices:

[root:/home/jerome] # libinput-list-devices 
Device:           Video Bus
Kernel:           /dev/input/event2
Group:            1
Seat:             seat0, default
Capabilities:     keyboard 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           Surface Pro 3/4 Buttons
Kernel:           /dev/input/event1
Group:            2
Seat:             seat0, default
Capabilities:     keyboard 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           Lid Switch
Kernel:           /dev/input/event0
Group:            3
Seat:             seat0, default
Capabilities:     
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           Microsoft Surface Keyboard Keyboard
Kernel:           /dev/input/event3
Group:            4
Seat:             seat0, default
Capabilities:     keyboard 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           Microsoft Surface Keyboard Mouse
Kernel:           /dev/input/event11
Group:            4
Seat:             seat0, default
Capabilities:     pointer 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      disabled
Nat.scrolling:    disabled
Middle emulation: disabled
Calibration:      n/a
Scroll methods:   button
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   flat *adaptive
Rotation:         n/a

Device:           Microsoft Surface Keyboard Consumer Control
Kernel:           /dev/input/event12
Group:            4
Seat:             seat0, default
Capabilities:     keyboard pointer 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    disabled
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           Microsoft Surface Keyboard Touchpad
Kernel:           /dev/input/event14
Group:            4
Seat:             seat0, default
Size:             101x66mm
Capabilities:     pointer 
Tap-to-click:     disabled
Tap-and-drag:     enabled
Tap drag lock:    disabled
Left-handed:      disabled
Nat.scrolling:    disabled
Middle emulation: disabled
Calibration:      n/a
Scroll methods:   *two-finger edge 
Click methods:    *button-areas clickfinger 
Disable-w-typing: n/a
Accel profiles:   none
Rotation:         n/a

Device:           Bluetooth Mouse M557
Kernel:           /dev/input/event257
Group:            5
Seat:             seat0, default
Capabilities:     keyboard pointer 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      disabled
Nat.scrolling:    disabled
Middle emulation: disabled
Calibration:      n/a
Scroll methods:   button
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   flat *adaptive
Rotation:         n/a

Device:           ipts 1B96:005E UNKNOWN
Kernel:           /dev/input/event28
Group:            6
Seat:             seat0, default
Size:             293x165mm
Capabilities:     touch 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      identity matrix
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           ipts 1B96:005E Pen
Kernel:           /dev/input/event29
Group:            6
Seat:             seat0, default
Size:             282x189mm
Capabilities:     tablet 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   none
Rotation:         n/a

Device:           ipts 1B96:005E
Kernel:           /dev/input/event30
Group:            6
Seat:             seat0, default
Size:             282x189mm
Capabilities:     touch 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      identity matrix
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           ipts 1B96:005E Mouse
Kernel:           /dev/input/event31
Group:            6
Seat:             seat0, default
Capabilities:     pointer 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      disabled
Nat.scrolling:    disabled
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   button
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   flat *adaptive
Rotation:         n/a

Device:           HDA Intel PCH Mic
Kernel:           /dev/input/event4
Group:            7
Seat:             seat0, default
Capabilities:     
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           HDA Intel PCH Headphone
Kernel:           /dev/input/event5
Group:            7
Seat:             seat0, default
Capabilities:     
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           HDA Intel PCH HDMI/DP,pcm=3
Kernel:           /dev/input/event6
Group:            7
Seat:             seat0, default
Capabilities:     
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           HDA Intel PCH HDMI/DP,pcm=7
Kernel:           /dev/input/event7
Group:            7
Seat:             seat0, default
Capabilities:     
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           HDA Intel PCH HDMI/DP,pcm=8
Kernel:           /dev/input/event8
Group:            7
Seat:             seat0, default
Capabilities:     
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           HDA Intel PCH HDMI/DP,pcm=9
Kernel:           /dev/input/event9
Group:            7
Seat:             seat0, default
Capabilities:     
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           HDA Intel PCH HDMI/DP,pcm=10
Kernel:           /dev/input/event10
Group:            7
Seat:             seat0, default
Capabilities:     
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Do you have an idea of what could be the problem please ?

Best,
Jerome

Wifi drivers no longer working

Hi, thanks so much for putting together this kernel! I installed it just now and everything was great, but after rebooting my wifi no longer works. It offers me a list of networks to connect to, but then it says "network is no longer connected" and gives up attempting to connect. In addition, when I click on a new network and it prompts me for a password, my type cover (surface pro 4) stops working (mouse and keyboard) until I reboot.

Any help would be greatly appreciated!
Thanks

Screen keyboard popping up

Hi jakeday,
Really thanks for your work!!
I installed the kernel according to your instruction. Solved my wifi problem which was quite annoying before. The touch screen also works, but anytime I touch the screen, the keyboard pops up. Do you have any idea have to stop the touch screen from popping up or better idea to solve it?

Touchscreen not work after the 4.13 commit

Hi there,

I was using 4.12.10 kernel and the touch functionality was fine. After I install the new kernel and sudo cp -R root/* /, I lost the touch support.

Thanks for your work!

Two finger touchpad regression

Hi, i just installed your kernel and it works way better than I ever thought it could! Nice work :) Only problem is that I can't use two finger scrolling on the touchpad anymore or two finger right click. Is there any way to regain this by somehow installing the touchpad driver again? Also, does this have multitouch functionaltiy because i'm only getting one touch right now - not that big of a deal really. I'm using ubuntu 17.10 (unity) on the original surface book. Thanks!

Loading Initial Ramdisk

I've done this before so I believe I'm doing it correctly. The installation goes well but when I go to boot the kernel for the first time I get stuck at Loading initial Ramdisk... Usually I would try to figure it out on my own but Google yields very little that helped and my Linux skills are low. I tried various tags like verbose and removing quiet with no fixes, I reinstalled, and attempted to rebuild the initrd among other things. If you need files from me, please let me know I just want to get this fixed so it can also help others who have this problem.

enable multi-touch mode

Thanks for compiling this kernel for us!

I'm wondering how to enable multi-touch so that the pen works.
Thanks again.

Surface Book: Position of Pen doesn't match in tablet mode or multiscreen

Thanks for all the great work you have done here.
Everything works pretty good now. I only experienced on issue. When I use my Surface Book as a Tablet and rotate it, for example i rotate 90°, then when I use the pen, the pointer isn't there where the pen is. If I move the pen left, then the pointer moves down and if I move the pen down, the pointer moves right. Same problem exists however i turn the tablet. It looks like there is just one standard coordinate system in use.

The other problem occurs, when i connect my docking-station with two monitors connected to it. On the left i have my Surface Book and in the middle and right, two screens. All screen words but when I try to use the pen, then the pointer moves all over the three screens. For example if i place the pen in the center of my Surface Book, then the pointer is in the center of my middle monitor. So the input of the pen is placed all over the three screens. If i put the pen on the right of my Surface Book, the pointer is on the right edge of my right screen.

Is there a possibility to fix that? I would really appreciate that, cause i'd like to work with the pen while connected to my docking-station. Do you need some more informations?

Thanks

Surface Laptop: Keyboard Doesn't Work

I'm sorry to report this issue but I've tried the .deb kernel and touch start to work but no the keyboard, If I could het you in any way, pls tell me!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.