You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We've discussed the Laptop 3 on IRC. I think the Pro 7 should be fairly similar (meaning that we would need to write some sort of stub-driver which provides a battery interface and talks to the EC, luckily the last part is the same from the previous generations). Can you upload an acpidump (sudo acpidump > acpidump.out)?
Regarding the make error: Have you installed a new kernel and did not reboot? What distro are you running? In any case, if it doesn't work with the surface-linux kernel, it will, at the moment, not work with the module either.
Hey man! I will post that as soon as I get home. It would mean a lot if you could implement the battery on the Surface Pro 7, it seems you are the only one who is doing this.
To answer your question, I did use the surface-linux in the arch repo. I tried to compile from source as a desperate move :)
Edit: I used your surface module on the surface pro 6 for a year and it changed my life, since the surface is great for coding apps and test them with touch in the same ecosystem in Linux. Big fan of your work, just sent you a donation brother
On a side note, if you could include this patch for the surface linux kernel, you could easily fix the touchscreen as well (and maybe it is a similar situation for the surface book 3):
-touchscreen (related to intel_lpss blacklist otherwise wont boot)
Here is more info on touchscreen issue:
First Boot
To boot fully without the boot process hanging one must blacklist the 'intel_lpss_pci' module, which can be done on a live media installation by selecting the boot option you want and pressing 'e', navigating to the end of the boot options string, and adding 'modprobe.blacklist=intel_lpss_pci'. This should allow booting into the full OS and further installation to the internal SSD.
Intel LPSS
To fix the intel_lpss_module the patch from this paste must be applied to the kernel.
https://pastebin.com/sqPv8ShP
Remember to be cautious about running code or installing patches from third party sources if you do not know what it does.
This patch should enable the system to boot without blacklisting the module, further enabling access to the touchscreen.
Big fan of your work, just sent you a donation brother
Thank you, this is much appreciated!
I can't give you a concrete time-frame when the battery stuff will work, but I hope that it doesn't take too long. At the moment, my first priority is getting the keyboard to work on the Laptop 3, but I will work on battery status on both devices after that. In essence, all those things are fairly similar to the previous generations, it's just that some ACPI stuff has changed.
If you know anything about ACPI: the battery definitions, including _BIX and _BST have been removed and it seems to rely solely on the EC requests. Those are the same as on previous generations, though, so I think the difficult part is done. Unfortunately I don't know much about the Linux battery subsystem and thus I don't have any idea how long this will take to implement. The keyboard should be simpler to implement as it seems that this is basically just a matter of different IDs.
On a side note, if you could include this patch for the surface linux kernel, you could easily fix the touchscreen as well (and maybe it is a similar situation for the surface book 3):
Thank you for the link. Could you try the patch (I could compile a kernel for you if you want me to)? Also do you know what type of touchscreen the device uses (e.g. I2C)?
I would definitely try a kernel if you were so kind to compile one. Maybe it could be surface-linux-pro7 or something like that, in your arch surface repo?
I didn't know the keyboard of he sf laptop 3 doesn't work.
With touchscreen and battery I would be basically done with what I need for my surface 7, the rest doesn't matter (camera suspend etc).
Can confirm, with the v5.3-testing.1 patched kernel the boot does not hang, so I could remove the kernel parameter: 'modprobe.blacklist=intel_lpss_pci
And still boot normally!
Now I should be able to configure the touch screen. Looking into what commands to use for diagnostics and to figure out what type it is (I2C?)
With regards to the error: It looks like you've installed surface_acpi via dkms in the past, but something may have gone wrong. You could try and play around with dkms to remove it.
With regards to the error: It looks like you've installed surface_acpi via dkms in the past, but something may have gone wrong. You could try and play around with dkms to remove it.
Yes! that's correct. I tried things I didn't quite understand in the hope to get the battery going. Will work on it.
Activity
qzed commentedon Oct 25, 2019
We've discussed the Laptop 3 on IRC. I think the Pro 7 should be fairly similar (meaning that we would need to write some sort of stub-driver which provides a battery interface and talks to the EC, luckily the last part is the same from the previous generations). Can you upload an acpidump (
sudo acpidump > acpidump.out)?Regarding the make error: Have you installed a new kernel and did not reboot? What distro are you running? In any case, if it doesn't work with the surface-linux kernel, it will, at the moment, not work with the module either.
aleksfadini commentedon Oct 25, 2019
Hey man! I will post that as soon as I get home. It would mean a lot if you could implement the battery on the Surface Pro 7, it seems you are the only one who is doing this.
To answer your question, I did use the surface-linux in the arch repo. I tried to compile from source as a desperate move :)
Edit: I used your surface module on the surface pro 6 for a year and it changed my life, since the surface is great for coding apps and test them with touch in the same ecosystem in Linux. Big fan of your work, just sent you a donation brother
aleksfadini commentedon Oct 26, 2019
Here is my acpi-dump (had to add .txt to upload it to GH)
acpidump.out.txt
aleksfadini commentedon Oct 26, 2019
On a side note, if you could include this patch for the surface linux kernel, you could easily fix the touchscreen as well (and maybe it is a similar situation for the surface book 3):
from https://wiki.archlinux.org/index.php/Dell_XPS_13_2-in-1_(7390)
[-]Surface Pro 7[/-][+]Surface Pro 7: Battery status[/+]qzed commentedon Oct 27, 2019
Thank you, this is much appreciated!
I can't give you a concrete time-frame when the battery stuff will work, but I hope that it doesn't take too long. At the moment, my first priority is getting the keyboard to work on the Laptop 3, but I will work on battery status on both devices after that. In essence, all those things are fairly similar to the previous generations, it's just that some ACPI stuff has changed.
If you know anything about ACPI: the battery definitions, including _BIX and _BST have been removed and it seems to rely solely on the EC requests. Those are the same as on previous generations, though, so I think the difficult part is done. Unfortunately I don't know much about the Linux battery subsystem and thus I don't have any idea how long this will take to implement. The keyboard should be simpler to implement as it seems that this is basically just a matter of different IDs.
Thank you for the link. Could you try the patch (I could compile a kernel for you if you want me to)? Also do you know what type of touchscreen the device uses (e.g. I2C)?
aleksfadini commentedon Oct 27, 2019
I would definitely try a kernel if you were so kind to compile one. Maybe it could be surface-linux-pro7 or something like that, in your arch surface repo?
I didn't know the keyboard of he sf laptop 3 doesn't work.
With touchscreen and battery I would be basically done with what I need for my surface 7, the rest doesn't matter (camera suspend etc).
qzed commentedon Oct 27, 2019
@aleksfadini I've compiled and uploaded a kernel with the patch: https://github.com/qzed/linux-surface/releases/tag/v5.3-testing.1
aleksfadini commentedon Oct 27, 2019
That is awesome! Will install them with sudo pacman -U and report back asap. Infinite thanks.
aleksfadini commentedon Oct 27, 2019
Can confirm, with the v5.3-testing.1 patched kernel the boot does not hang, so I could remove the kernel parameter:
'modprobe.blacklist=intel_lpss_pciAnd still boot normally!
Now I should be able to configure the touch screen. Looking into what commands to use for diagnostics and to figure out what type it is (I2C?)
Thanks again!!
aleksfadini commentedon Oct 27, 2019
By the way, installinf the v5.3-testing.1 on arch with sudo pacman -U gives this error:
`
lding image from preset: /etc/mkinitcpio.d/linux-surface-dev.preset: 'default'
15 -> -k /boot/vmlinuz-linux-surface-dev -c /etc/mkinitcpio.conf -g
14 /boot/initramfs-linux-surface-dev.img
13 ==> Starting build: 5.3.0-1-surface-dev
12 -> Running build hook: [base]
11 -> Running build hook: [udev]
10 -> Running build hook: [autodetect]
9 -> Running build hook: [modconf]
8 -> Running build hook: [block]
7 -> Running build hook: [filesystems]
6 -> Running build hook: [keyboard]
5 -> Running build hook: [fsck]
4 ==> ERROR: module not found: 'surface_acpi'
3 ==> Generating module dependencies
2 ==> Creating gzip-compressed initcpio image:
1 /boot/initramfs-linux-surface-dev.img
17 ==> WARNING: errors were encountered during the build. The image may not be
1 complete.
2 ==> Building image from preset: /etc/mkinitcpio.d/linux-surface-dev.preset:
3 'fallback'
4 -> -k /boot/vmlinuz-linux-surface-dev -c /etc/mkinitcpio.conf -g
5 /boot/initramfs-linux-surface-dev-fallback.img
6 -S autodetect
7 ==> Starting build: 5.3.0-1-surface-dev
8 -> Running build hook: [base]
9 -> Running build hook: [udev]
10 -> Running build hook: [modconf]
11 -> Running build hook: [block]
12 ==> WARNING: Possibly missing firmware for module: aic94xx
13 ==> WARNING: Possibly missing firmware for module: wd719x
14 -> Running build hook: [filesystems]
15 -> Running build hook: [keyboard]
16 -> Running build hook: [fsck]
17 ==> ERROR: module not found: 'surface_acpi'
18 ==> Generating module dependencies
19 ==> Creating gzip-compressed initcpio image:
20 /boot/initramfs-linux-surface-dev-fallback.img
21 ==> WARNING: errors were encountered during the build. The image may not be
22 complete.
23 error: command failed to execute correctly
`
However the kernel works fine!
less /proc/bus/input/devices does not show a touch screen yet.
qzed commentedon Oct 28, 2019
With regards to the error: It looks like you've installed surface_acpi via dkms in the past, but something may have gone wrong. You could try and play around with
dkmsto remove it.qzed commentedon Oct 28, 2019
Thanks for testing, I'll include the patch then.
aleksfadini commentedon Oct 28, 2019
Yes! that's correct. I tried things I didn't quite understand in the hope to get the battery going. Will work on it.
Output of less /proc/bus/input/devices:
`
I: Bus=0019 Vendor=0000 Product=0005 Version=0000
1 N: Name="Lid Switch"
2 P: Phys=PNP0C0D/button/input0
3 S: Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0D:00/input/input0
4 U: Uniq=
5 H: Handlers=event0
6 B: PROP=0
7 B: EV=21
8 B: SW=1
9
10 I: Bus=0019 Vendor=0000 Product=0006 Version=0000
11 N: Name="Video Bus"
12 P: Phys=LNXVIDEO/video/input0
13 S: Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input1
14 U: Uniq=
15 H: Handlers=kbd event1
16 B: PROP=0
17 B: EV=3
18 B: KEY=3e000b00000000 0 0 0
19
20 I: Bus=0003 Vendor=045e Product=09c0 Version=0111
21 N: Name="Microsoft Surface Type Cover Keyboard"
22 P: Phys=usb-0000:00:14.0-8/input0
23 S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb3/3-8/3-8:1.0/0003:045E:09C0.0001/input/input2
24 U: Uniq=
25 H: Handlers=sysrq kbd event2 leds
26 B: PROP=0
27 B: EV=120013
28 B: KEY=1000000000007 ff800000000007ff febeffdff3cfffff fffffffffffffffe
29 B: MSC=10
30 B: LED=7
31
32 I: Bus=0003 Vendor=045e Product=09c0 Version=0111
33 N: Name="Microsoft Surface Type Cover Consumer Control"
34 P: Phys=usb-0000:00:14.0-8/input0
35 S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb3/3-8/3-8:1.0/0003:045E:09C0.0001/input/input4
36 U: Uniq=
37 H: Handlers=kbd event3
38 B: PROP=0
39 B: EV=1f
40 B: KEY=3f000301ff 0 0 483ffff17aff32d bfd4444600000000 1 130ff38b17c000 677bfad9415fed 19ed68000004400 10000002
41 B: REL=1040
42 B: ABS=100000000
43 B: MSC=10
44
45 I: Bus=0003 Vendor=045e Product=09c0 Version=0111
46 N: Name="Microsoft Surface Type Cover Touchpad"
47 P: Phys=usb-0000:00:14.0-8/input0
48 S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb3/3-8/3-8:1.0/0003:045E:09C0.0001/input/input6
49 U: Uniq=
50 H: Handlers=event4 mouse0
51 B: PROP=5
52 B: EV=1b
53 B: KEY=e520 10000 0 0 0 0
54 B: ABS=260800000000003
55 B: MSC=20
56
57 I: Bus=0010 Vendor=001f Product=0001 Version=0100
58 N: Name="PC Speaker"
59 P: Phys=isa0061/input0
60 S: Sysfs=/devices/platform/pcspkr/input/input21
61 U: Uniq=
62 H: Handlers=kbd event5
63 B: PROP=0
64 B: EV=40001
65 B: SND=6
66
67 I: Bus=0000 Vendor=0000 Product=0000 Version=0000
68 N: Name="HDA Intel PCH Mic"
69 P: Phys=ALSA
70 S: Sysfs=/devices/pci0000:00/0000:00:1f.3/sound/card0/input22
71 U: Uniq=
72 H: Handlers=event6
73 B: PROP=0
74 B: EV=21
75 B: SW=10
76
77 I: Bus=0000 Vendor=0000 Product=0000 Version=0000
78 N: Name="HDA Intel PCH Headphone"
79 P: Phys=ALSA
80 S: Sysfs=/devices/pci0000:00/0000:00:1f.3/sound/card0/input23
81 U: Uniq=
82 H: Handlers=event7
83 B: PROP=0
84 B: EV=21
85 B: SW=4
`
Do you think the touchpad is still not being seen by the kernel? How do I find it if it is I2C?
EDIT: I meant touchscreen, not touchpad
83 remaining items
fs,hugetlb: fix NULL pointer dereference in hugetlbs_fill_super
bnxt_en: Prevent kernel warning when running offline self test
fs,hugetlb: fix NULL pointer dereference in hugetlbs_fill_super
net: esp: fix bad handling of pages from page_pool
perf ui browser: Don't save pointer to stack memory
mm/memory-failure: fix handling of dissolved but not taken off from b…
Bluetooth: iso: Fix recursive locking warning
Bluetooth: iso: Fix circular lock in iso_listen_bis
net: stmmac: make sure that ptp_rate is not 0 before configuring time…
fs/proc/task_mmu: check p->vec_buf for NULL
hfsplus: fix volume corruption issue for generic/498
mptcp: pm: in-kernel: always mark signal+subflow endp as used
apparmor: Fix string overrun due to missing termination
drm/imagination: Fix double call to drm_sched_entity_fini()
eventpoll: pin files while checking reverse paths