jakeday / linux-surface

Linux Kernel for Surface Devices
2.6k stars 243 forks source link

installing on surface laptop 3 does not fix track pad and keyboard #591

Closed xdumaine closed 1 year ago

xdumaine commented 4 years ago

I installed this on a surface laptop 3 15 in which came out this week. Unfortunately I did not resolve issues with the trackpad and keyboard (specifically that they do not work at all). I did also try the 15.3 kernel from the fork of this repo and got the same results. If this is still active or if anyone is interested in helping I can get more detailed information about the machine. At this point I'm not going to attach them because it seems like the repo is dead.

StollD commented 4 years ago

The repo is not dead. Development currently happens on qzeds fork, because jake seems to be busy, but this is still used for issue tracking across both versions.

Since the SL3 is new, you should probably post an acpidump (sudo acpidump > acpidump.out) and the kernel log from when you tried with the latest 5.3.6 surface kernel (dmesg > dmesg.txt)

But those are just the basic steps to get any information about the problem, nowhere near a fix yet.

xdumaine commented 4 years ago

Awesome, thanks, I'll do that!

On Wed, Oct 23, 2019, 12:41 AM Dorian Stoll notifications@github.com wrote:

The repo is not dead. Development currently happens on qzeds fork, because jake seems to be busy, but this is still used for issue tracking across both versions.

Since the SL3 is new, you should probably post an acpidump (sudo acpidump

acpidump.out) and the kernel log from when you tried with the latest 5.3.6 surface kernel (dmesg > dmesg.txt)

But those are just the basic steps to get any information about the problem, nowhere near a fix yet.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/jakeday/linux-surface/issues/591?email_source=notifications&email_token=AAGLS56IKKSWQRHN6IQVCVTQP7IY3A5CNFSM4JD3IRM2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOECAA4GQ#issuecomment-545263130, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAGLS5Y6MU3LUXYK6KO6WG3QP7IY3ANCNFSM4JD3IRMQ .

qzed commented 4 years ago

@xdumaine can upload the output of ls /sys/bus/acpi/devices and ls /sys/bus/platform/devices?

qzed commented 4 years ago

Also see https://github.com/qzed/linux-surfacegen5-acpi/issues/22 for the relevant issue on surface-acpi.

heapwolf commented 4 years ago

hey @xdumaine how did you fix the ima: error communicating to tpm chip error? I get that on boot.

If I disable tpm from the bios (hold down F4 at boot) I get a different error...

image

qzed commented 4 years ago

@heapwolf I think the last error can be fixed by blacklisting intel_lpss via the kernel boot parameter modprobe.blacklist=intel_lpss_pci (as suggested in https://github.com/jakeday/linux-surface/issues/589#issuecomment-545522548).

qzed commented 4 years ago

I think you need to add the modprobe ... to the linux ... line, for example after splash

heapwolf commented 4 years ago

success! I will capture ls /sys/bus/acpi/devices and ls /sys/bus/platform/devices next.

xdumaine commented 4 years ago

I can get that tonight after I get the baby to bed.

qzed commented 4 years ago

Thank you! I'll try to test a patch to fix the intel-lpss-pci/boot issue and include it in the repo if it works. See https://github.com/qzed/linux-surface-kernel/issues/12 for some additional links (this bug is already taken care of upstream).

xdumaine commented 4 years ago

@qzed Here's the output of those-

xdumaine@xsl3:~$ ls /sys/bus/acpi/devices
ACPI0007:00  ACPI000E:00  AMDI0011:01  device:00  device:08  device:10  device:18  device:20    LNXPOWER:05  LNXTHERM:04  MSFT0101:00  MSHW0184:00  PNP0501:03  PNP0C02:03
ACPI0007:01  ACPI0010:00  AMDI0020:00  device:01  device:09  device:11  device:19  device:21    LNXSYBUS:00  LNXTHERM:05  MSHW0040:00  PNP0000:00   PNP0800:00  PNP0C02:04
ACPI0007:02  AMD0004:00   AMDI0020:01  device:02  device:0a  device:12  device:1a  device:22    LNXSYBUS:01  LNXTHERM:06  MSHW0084:00  PNP0100:00   PNP0A08:00  PNP0C02:05
ACPI0007:03  AMDI0010:00  AMDI0020:02  device:03  device:0b  device:13  device:1b  LNXPOWER:00  LNXSYSTM:00  LNXTHERM:07  MSHW0091:00  PNP0103:00   PNP0B00:00  PNP0C02:06
ACPI0007:04  AMDI0010:01  AMDI0020:03  device:04  device:0c  device:14  device:1c  LNXPOWER:01  LNXTHERM:00  LNXVIDEO:00  MSHW0110:00  PNP0200:00   PNP0C01:00  PNP0C02:07
ACPI0007:05  AMDI0010:02  AMDI0030:00  device:05  device:0d  device:15  device:1d  LNXPOWER:02  LNXTHERM:01  MAX34417:00  MSHW0124:00  PNP0501:00   PNP0C02:00  PNP0C02:08
ACPI0007:06  AMDI0010:03  AMDI0040:00  device:06  device:0e  device:16  device:1e  LNXPOWER:03  LNXTHERM:02  MAX34417:01  MSHW0153:00  PNP0501:01   PNP0C02:01  PNP0C04:00
ACPI0007:07  AMDI0011:00  AMDI0060:00  device:07  device:0f  device:17  device:1f  LNXPOWER:04  LNXTHERM:03  MAX34417:02  MSHW0162:00  PNP0501:02   PNP0C02:02  PNP0C0D:00
xdumaine@xsl3:~$ ls /sys/bus/platform/devices
ACPI000E:00  AMD0004:00   AMDI0010:01  AMDI0020:00  AMDI0060:00        efivars.0         gpio-keys.1.auto  MSHW0040:00  MSHW0110:00  pcspkr      PNP0800:00  PNP0C0D:00  regulatory.0
alarmtimer   AMDI0010:00  AMDI0011:01  AMDI0030:00  efi-framebuffer.0  gpio-keys.0.auto  microcode         MSHW0091:00  MSHW0153:00  PNP0103:00  PNP0C04:00  reg-dummy   serial8250
qzed commented 4 years ago

@xdumaine Thanks!

heapwolf commented 4 years ago

And for mine...

user@linux:~$ ls /sys/bus/acpi/devices/
ACPI000C:00  device:16  device:2e  device:46  device:5e  device:76  device:8e   INT3407:00   LNXPOWER:03  MSHW0125:00
ACPI000E:00  device:17  device:2f  device:47  device:5f  device:77  device:8f   INT3455:00   LNXPOWER:04  MSHW0153:00
device:00    device:18  device:30  device:48  device:60  device:78  device:90   INT3519:00   LNXPOWER:05  MSHW0184:00
device:01    device:19  device:31  device:49  device:61  device:79  device:91   INT3532:00   LNXPOWER:06  PNP0000:00
device:02    device:1a  device:32  device:4a  device:62  device:7a  device:92   INT3F0D:00   LNXPOWER:07  PNP0100:00
device:03    device:1b  device:33  device:4b  device:63  device:7b  device:93   LNXCPU:00    LNXPOWER:08  PNP0103:00
device:04    device:1c  device:34  device:4c  device:64  device:7c  device:94   LNXCPU:01    LNXSYBUS:00  PNP0A08:00
device:05    device:1d  device:35  device:4d  device:65  device:7d  device:95   LNXCPU:02    LNXSYBUS:01  PNP0B00:00
device:06    device:1e  device:36  device:4e  device:66  device:7e  device:96   LNXCPU:03    LNXSYSTM:00  PNP0C02:00
device:07    device:1f  device:37  device:4f  device:67  device:7f  device:97   LNXCPU:04    LNXTHERM:00  PNP0C02:01
device:08    device:20  device:38  device:50  device:68  device:80  INT0E0C:00  LNXCPU:05    LNXTHERM:01  PNP0C02:02
device:09    device:21  device:39  device:51  device:69  device:81  INT33A1:00  LNXCPU:06    LNXTHERM:02  PNP0C02:03
device:0a    device:22  device:3a  device:52  device:6a  device:82  INT3400:00  LNXCPU:07    LNXTHERM:03  PNP0C02:04
device:0b    device:23  device:3b  device:53  device:6b  device:83  INT3403:00  LNXCPU:08    LNXTHERM:04  PNP0C04:00
device:0c    device:24  device:3c  device:54  device:6c  device:84  INT3403:01  LNXCPU:09    LNXTHERM:05  PNP0C0D:00
device:0d    device:25  device:3d  device:55  device:6d  device:85  INT3403:02  LNXCPU:0a    LNXTHERM:06  PNP0C14:00
device:0e    device:26  device:3e  device:56  device:6e  device:86  INT3403:03  LNXCPU:0b    LNXVIDEO:00  PRP00001:00
device:0f    device:27  device:3f  device:57  device:6f  device:87  INT3403:04  LNXCPU:0c    MAX34417:00  USBC000:00
device:10    device:28  device:40  device:58  device:70  device:88  INT3403:05  LNXCPU:0d    MAX34417:01
device:11    device:29  device:41  device:59  device:71  device:89  INT3403:06  LNXCPU:0e    MAX34417:02
device:12    device:2a  device:42  device:5a  device:72  device:8a  INT3403:07  LNXCPU:0f    MSHW0040:00
device:13    device:2b  device:43  device:5b  device:73  device:8b  INT3403:08  LNXPOWER:00  MSHW0084:00
device:14    device:2c  device:44  device:5c  device:74  device:8c  INT3403:09  LNXPOWER:01  MSHW0091:00
device:15    device:2d  device:45  device:5d  device:75  device:8d  INT3403:0a  LNXPOWER:02  MSHW0114:00
user@linux:~$ ls /sys/bus/platform/devices/
 ACPI000C:00         eisa.0              INT3403:01   INT3532:00         MSHW0114:00   PNP0C14:00
 ACPI000E:00        'Fixed MDIO bus.0'   INT3403:04   intel_rapl_msr.0   MSHW0153:00   reg-dummy
 alarmtimer          INT33A1:00          INT3403:08   microcode          pcspkr        regulatory.0
 coretemp.0          INT3400:00          INT3407:00   MSHW0040:00        PNP0103:00    serial8250
 efi-framebuffer.0   INT3403:00          INT3455:00   MSHW0091:00        PNP0C0D:00    snd-soc-dummy
qzed commented 4 years ago

@heapwolf Thanks!

qzed commented 4 years ago

@heapwolf I assume you've got the 13"/intel model? If so, can you upload an acpidump (sudo acpidump > acpidump.out)?

heapwolf commented 4 years ago

@qzed correct assumption. acpidump gisted here.

qzed commented 4 years ago

Thanks!

xdumaine commented 4 years ago

One weird thing I'm noticing is that my speakers play a low static sound on boot as well (after bootloader selects ubuntu)

archseer commented 4 years ago

@xdumaine see https://github.com/jakeday/linux-surface/issues/354

mistay commented 4 years ago

same for me. how can i support you in getting the keyboard of a surface laptop 3 working?

archseer commented 4 years ago

@mistay We're already tracking the changes here: https://github.com/qzed/linux-surfacegen5-acpi/issues/22

I have a set of patches that fixes both the keyboard and the trackpad and I hope to merge into qzed's repo in the next few days.

qzed commented 4 years ago

Could someone with the 15" model post the output of cat /sys/bus/acpi/devices/MSHW0110/path and /sys/bus/acpi/devices/MSHW0124/path?

xdumaine commented 4 years ago

@qzed those don't exist, but they do with a :00 suffix -

xdumaine@xsl3:~$ cat /sys/bus/acpi/devices/MSHW0110:00/path
\_SB_.WSID
xdumaine@xsl3:~$ cat /sys/bus/acpi/devices/MSHW0124\:00/path 
\_SB_.I2CC.FINK
mistay commented 4 years ago

@mistay We're already tracking the changes here: qzed/linux-surfacegen5-acpi#22

I have a set of patches that fixes both the keyboard and the trackpad and I hope to merge into qzed's repo in the next few days.

thanks @archseer. i found your feature branch "sl3" in your forked repro (https://github.com/archseer/linux-surfacegen5-acpi/tree/feature/sl3) and tried installing by running jake's 5.1.5-surface kernel (https://github.com/jakeday/linux-surface/releases) cloning your repro, checking-out that feature branch, changing to module/ directory, build ("make") & insmod surface_sam.ko

but ... unfortunatly the keyboard of my surface laptop3 13" (pro) still does not work. does it work for you @archseer ?

qzed commented 4 years ago

@xdumaine Ah yeah sorry forgot the :00 suffix. Thanks!

qzed commented 4 years ago

@mistay AFAIK in the current state only the touchpad will work. Without going into too much detail: Both touchpad and keyboard work over HID reports, so they're the same as far as the required driver is concerned. Both however require some setup, that again is the same, but at the moment only done manually for the touchpad (mainly for testing). The plan is to auto-detect those HID devices (in case of SL3 keyboard and touchpad) and automatically configure them.

archseer commented 4 years ago

@mistay Jake's kernel is outdated. You need to use qzed's fork which is up to date (5.3), but right now the driver still won't work without swapping the HID patch and recompiling the kernel: https://github.com/qzed/linux-surface/pull/17

mistay commented 4 years ago

@mistay Jake's kernel is outdated. You need to use qzed's fork which is up to date (5.3), but right now the driver still won't work without swapping the HID patch and recompiling the kernel: qzed#17

aah ok. is it mentioned that one has to use qzed‘s fork instead of jake‘s kernel? in qzed‘s repro it‘s statet that you have to use one of jake‘s (binary/release) kernels.

ok so i‘ll try to build 5.3 ... fingers crossed...

mistay commented 4 years ago

@mistay Jake's kernel is outdated. You need to use qzed's fork which is up to date (5.3), but right now the driver still won't work without swapping the HID patch and recompiling the kernel: qzed#17

don‘t think so. as far as i understood @archseer provided support for that keyboard...

archseer commented 4 years ago

I added support for both keyboard and the touchpad, but if you build the current commit the keyboard won't work. I'm still developing a few things in the driver.

You can probably just wait a few days for my PR to be complete. At that point qzed will merge it and build a pre-built kernel so you don't have to deal with re-compiling.

mistay commented 4 years ago

sorry, i don't get it: so what if i cloned qzed's repro (https://github.com/qzed/linux-surfacegen5-acpi, branch feature sl/3), should the trackpad work?

btw: any news? ;) i'm very looking forward to get that feature, thanks @archseer & @qzed!

mistay commented 4 years ago

just cloned https://github.com/qzed/linux-surface-kernel, built kernel with config from https://github.com/qzed/linux-surface-kernel-configs/blob/v5.3/debian-5.3-x86_64.config and tried to boot on surface laptop 3 but hangs immediatly after selecting kernel in grub

Loading Linux 5.3.0+ ...
Loading initial ramdisk ...

<stalls>

expected that kernel to boot, what do you think?

mistay commented 4 years ago

IMG_8564

xdumaine commented 4 years ago

@archseer is there anything else I could do to help with this one?

archseer commented 4 years ago

@xdumaine My changes has been merged into qzed's kernel mid-Novembe and I've been running Surface Laptop 3 on a daily basis now. It's now hosted at https://github.com/linux-surface/linux-surface

Follow the install guide then look at device specific quirks

@mistay I'm pretty sure you were still booting from the normal kernel instead of qzed's, you need to modify your bootloader to start the new kernel. The normal one is missing this patch so you need to press e and then modeprobe.blacklist=intel_lpss_pci to get it to boot.

Ah I see you got it fixed: https://github.com/linux-surface/kernel/issues/17