linux-surface / linux-surface

Linux Kernel for Surface Devices
4.68k stars 205 forks source link

Announcements and updates #96

Open archseer opened 4 years ago

archseer commented 4 years ago

Subscribe to this issue to be notified of announcements, changelogs and manual upgrade notices.

(For update announcements only)

archseer commented 4 years ago

5.5.6 was released!

Build system

We now have a build system for packages for Arch, Debian and Fedora which should make it easier for us to release new kernel versions. The pkg directory also contains the packaging files that you can use to rebuild the kernel on your own.

Automated repositories

We have set up https://pkg.surfacelinux.com/ as the official source for patched kernel packages and other utilities. If you were using the package repositories before, please update your local setup.

As a result of these changes, installation is now as easy as adding the package repository, installing a bunch of packages and following the guide to add any necessary config files for your device.

New IPTS driver (pen or single-touch)

5.5 patchsets also feature a new IPTS driver which works without the Intel GuC submission APIs that were removed upstream. The caveat is that it supports either pen OR single-touch. If you want to continue using multi-touch, either use the LTS release (4.19) or please manually install the latest 5.3 release.

By default pen support is enabled. If you want to switch to single-touch create a file under /etc/modprobe.d/ipts.conf:

options ipts singletouch=y

Note: The new driver works on gen7 (SL3 Intel & SP7) as well!

kitakar5525 commented 4 years ago

mwifiex: power_save now disallowed by default to improve connection stability

v5.5: fedora-31-5.5.9-3, fedora-30-5.5.9-3, debian-5.5.9-2, arch-5.5.9-2 v5.6: Since the first release of the v5.6 kernel v4.19: debian_lts-4.19.110, arch_lts-4.19.110

You may have already noticed, since commit linux-surface/kernel@7182ea0b4b5e9a, power_save is disallowed by default. There have been many reports that configuring powr_save from userspace tools (e.g. via NetworkManager config file or udev rule) is not so solid. Now, no need to configure it manually.

If you want to try to allow power_save, pass allow_ps_mode=Y parameter to the mwifiex driver. This only allows it to be enabled. To actually enable it, run sudo iw dev $devname set power_save on or by any other tools and check if it's actually enabled by sudo cat /sys/kernel/debug/mwifiex/mlan0/debug | grep "ps_"

kitakar5525 commented 4 years ago

"v4.19: IPTS (touchscreen driver) stops working (SP4 and SB1)" has been hopefully fixed

v4.19: debian_lts-4.19.123-1, arch_lts-4.19.123-1

Since commit linux-surface/kernel@8b45a31eb5977d, touch input on all kinds of SP4/SB1 devices should work without crashing. The no_feedback quirk has been finally removed🎉 thanks to @StollD If you find any issues, please open an issue and let us know.

EDIT: This fix is for "touch input crashing after some use" or "touch input broken when no_feedback=1". You may still encounter the other issues, especially regarding suspend.

qzed commented 3 years ago

Noteworthy changes in the v5.7.7 and v4.19.131 releases

There have been some changes to the Surface Aggregator Module driver that have now been integrated into the v5.7.7 and 4.19.131 releases (and also the 5.4 patches). More specifically:

qzed commented 3 years ago

New packaging structure for Debian/Ubuntu packages

The packaging approach for .deb packages has changed with debian-5.7.7-2 and debian_lts-4.19.131-2. Previous packages did not remove outdated initrd files, unnecessarily consuming space on the boot partition. To fix this, we have now switched to meta-packages, meaning that each kernel is packaged with its version in the package name (e.g. linux-image-5.7.7-surface) and meta packages (linux-image-surface, linux-headers-surface, linux-image-surface-lts, linux-headers-surface-lts) can be used to keep the kernels up to date.

Unfortunately, this means that to upgrade the kernels (only this time, after that everything should work normal/as before), you'll have to manually uninstall the current kernel packages (linux-image-surface, linux-headers-surface, linux-image-surface-lts, and/or linux-headers-surface-lts) and re-install them afterwards. If you've already tried to upgrade, you can also complete the upgrade running sudo apt-get --fix-broken install, which should solve the issue for you automatically.

Additionally, we recommend you manually remove outdated initrd files after the upgrade. These files can be found under /boot, for example:

-rw-r--r--  1 root root 82644751 Mar 21 11:57 initrd.img-5.5.10-surface
-rw-r--r--  1 root root 82672122 Apr  1 15:33 initrd.img-5.5.13-surface
-rw-r--r--  1 root root 82116124 Mar 15 14:39 initrd.img-5.5.8-surface

Please remove only those that are outdated ending with -surface or -surface-lts, as indicated by their version. It is probably best, if you do this after uninstalling the old packages and before installing the new ones, as then you can remove all -surface/-surface-lts initrd files since installing the packages afterwards will re-build the new ones.

See also https://github.com/linux-surface/repo/issues/3 for the issue reporting this problem.

In addition, we have decided to drop the custom linux-libc-dev packages. The necessary version of these packages should be provided by your distribution, so you should replace those (linux-libc-dev-surface, linux-libc-dev-surface-lts) by installing linux-libc-dev from the repository of your distribution.

qzed commented 3 years ago

Noteworthy changes in the v5.7.8 and v4.19.132 releases

More Surface Book 3 support has been merged, specifically:

This means, that (apart from the known issues) only support for the detachment daemon is missing, which can be found in an experimental stage in https://github.com/linux-surface/surface-aggregator-module/tree/feature/sb3-v3.

Additionally a bug in the dGPU part of the Surface Aggregator Module driver have been fixed, which caused the driver to deadlock when resuming from suspend with a dGPU turned on at boot time via module parameters (https://github.com/linux-surface/linux-surface/issues/223).

More details can be found in the commit messages: https://github.com/linux-surface/linux-surface/commit/b70e5fb1c1c9e652a006c2e74c12dca67b6a7fa9 (v5.7), https://github.com/linux-surface/linux-surface/commit/7a41e166e1febfae1bbaa6efd9e2862bc5d86f87 (v5.4), and https://github.com/linux-surface/linux-surface/commit/f866ce0e3f03e2d1243bf12121d13757257614ec (v4.19).

qzed commented 3 years ago

Noteworthy changes in the v5.7.8-2 and v4.19.132-2 releases

Unfortunately, the previous release introduced a bug, leading to HID devices handled via the SAM module (i.e. keyboard and touchpad) on the Surface Laptop not working any more. This should be fixed with the new releases. If this issue persists with those releases, please let us know at https://github.com/linux-surface/surface-aggregator-module/issues/45.

qzed commented 3 years ago

Noteworthy changes in the v5.7.11-1 and v4.19.135-1 releases

The most notable changes are:

More details can, as always, be found in the respective commit messages (e.g. for v5.7).

qzed commented 3 years ago

Changes in v5.8.1

We switched IPTS support from built-in single-touch to our new-ish iptsd daemon. This means, that to get touch support, you'll have to install the iptsd package and start/enable the systemd iptsd.service (systemctl enable --now iptsd.service).

The iptsd daemon is still in somewhat early stages, but it should already provide a good replacement for the previous single-touch-only driver. It does support multi-touch (and stylus at the same time), but contact-area/pressure calculation is currently still missing, and things like jitter in contact points may need some improvement. Unfortunately, there have been no changes for Gen7 devices (SL3, SB3, SP7) yet.

If you experience any issues, let us know. You can always revert to the previous, single-touch-/stylus-only implementation by installing the old driver from https://github.com/linux-surface/intel-precise-touch/tree/old-driver (see "Building (DKMS)").

qzed commented 3 years ago

Changes in v5.8.1-3 (Arch non-LTS), v5.8.1-2 (other), v4.19.139-3 (Arch LTS), and v4.19.139-2 (other)

In these versions, a new bus and device type has been added for System Aggregator Module (SAM) devices. Due to this, a couple of things have been changed with regards to userspace:

Known issues: On 7th generation devices (SP7/SL3/SB3), there currently is a warning emitted to the kernel log when the charger is connected or disconnected. This can be safely ignored and will be addressed in the next release. This has been fixed in the v5.8.3 and v4.19.141 releases.

qzed commented 3 years ago

Changes in v5.8.5 and v4.19.142

qzed commented 3 years ago

Changes in v5.8.7 and v4.19.143

qzed commented 3 years ago

Changes in v5.8.10 (Fedora v5.8.9) and v4.19.146

These releases contains two major changes that may need manual intervention:

Additionally:

Known Issues: There is a bug that may be triggered under certain conditions, preventing the Surface Aggregator Module drivers to load. This will be fixed with the next releases, new kernels with the fix applied are already being built.

kitakar5525 commented 3 years ago

Changes in v5.8.12-2 and v4.19.149-1 regarding mwifiex

suspend (for S0ix and AP scanning fix)

firmware reset feature fix

auto_ds (auto deep sleep)

qzed commented 3 years ago

Changes in v5.8.14 and v4.19.150

Changes regarding the Surface Aggregator Module

qzed commented 3 years ago

Changes in v5.8.15 (Arch v5.8.14-2) and v4.19.151

Changes regarding the Surface Aggregator Module:

Additionally a patch has been added to fix a boot issue on the Surface Go series devices.

qzed commented 3 years ago

Changes in v5.9.1, v5.8.16

Changes regarding IPTS:

Changes in v5.9.1, v5.8.16, v4.19.152

In addition to the changes above, there are the following changes have been made:

qzed commented 3 years ago

Changes in v5.9.3, v5.8.18, and v4.19.154

Changes regarding the discrete GPU (dGPU):

qzed commented 3 years ago

Changes in v5.9.6, v5.8.18-2, and v4.19.155

qzed commented 3 years ago

Changes in v5.10

StollD commented 3 years ago

After a long and exhausting battle against the evil forces of the CI I was finally victorious! Or so... Anyways.

iptsd 0.3 was released

With this release we ported the iptsd daemon from Go to C, which helps tremendously with resource usage. If you are packaging iptsd or compile it from source, you will have to adjust your build scripts. There are some other notable changes, mostly regarding the behaviour of the stylus. Check out the release notes for more details.

qzed commented 3 years ago

Changes in v5.10.2 (Arch, Debian) and v5.9.16 (Fedora)

qzed commented 3 years ago

Changes in v5.10.10

qzed commented 3 years ago

Changes in surface-control v0.3.1

The surface-control package will now add a surface-control group and change permissions of the performance-mode sysfs attribute so that surface performance set can be accessed from any user in that group (without needing sudo).

qzed commented 3 years ago

Changes in v4.19.176 and v5.10.16-2

qzed commented 3 years ago

Changes in v5.10.16-3 and v5.10.17

qzed commented 3 years ago

Changes in v5.10.21 and v5.11.5

qzed commented 3 years ago

Changes in v5.11.10 and v4.19.183

Thanks to @jonas2515, this update contains some noticeable WiFi improvements:

qzed commented 3 years ago

Changes in v5.11.16 and v4.19.188

Yet more WiFi improvements from @jonas2515:

Apart from that, there are also some small cleanups/code-fixes for the Surface Aggregator Module.

qzed commented 3 years ago

Upstream v5.12

Upstream v5.12 has been released. This release includes the core Surface Aggregator Module (via Surface Serial Hub/SSH) and Surface ACPI Notify (SAN) driver, which means that 5th- and 6th-generation devices will now work better on upstream kernels. Specifically, on the Surface Book 2, Surface Laptop 1 and 2, and Surface Pro 5 and 6, features that should now work are

The Surface Book 2 should now also not get unnecessarily hot due to a missing SAN driver causing an ACPI notify busy-loop.

Furthermore, the Surface Hotplug driver is now also upstream, which is responsible for notifying the PCI core when the dGPU is detached while turned off (i.e. in D3cold).

Other features still require the Surface kernels for now:

qzed commented 3 years ago

Changes in v5.11.18 and v4.18.189

A small fix in the Surface Aggregator Module battery driver:

qzed commented 3 years ago

Changes in v5.12 kernels

qzed commented 3 years ago

Changes in 5.11.19 (Fedora)

Surface Aggregator Module:

qzed commented 3 years ago

Changes in v5.12.5

qzed commented 3 years ago

Changes in v5.12.6 and v5.11.22-2

qzed commented 3 years ago

Changes in v5.12.8

qzed commented 3 years ago

Changes in v5.12.9

qzed commented 3 years ago

Changes in v5.12.10 and v4.19.194

qzed commented 3 years ago

Changes regarding Support/Community and Development channels

Following (somewhat) recent events regarding freenode, we are now (finally) moving our IRC channel away from freenode to libera.chat (libera.chat/#linux-surface). In the same step, we have decided to re-structure our Support and Community channels as well:

We will discontinue our Gitter and freenode channels, so please join those new Matrix/libera.chat channels.

qzed commented 2 years ago

Upstream v5.13

Upstream v5.13 has been released (some time ago but I didn't find the time to write this update earlier). With that, all major features provided by the Surface Aggregator Module drivers are now upstream. In addition to the updates made in v5.12 (see https://github.com/linux-surface/linux-surface/issues/96#issuecomment-826698672), this includes:

With that, you can now expect full upstream support for features provided by the Surface Aggregator Module on all current devices. There are still other areas that need patches though: Notably WiFi on devices with Marvel chips and the touch-screen. In other words, using upstream kernels should (on devices not using Marvel WiFi chips and if you don't need touch) be a viable option now.

qzed commented 2 years ago

Changes in v5.13.13

qzed commented 2 years ago

Changes in v5.14.6

qzed commented 2 years ago

Changes in v5.14.9

qzed commented 2 years ago

Changes in v5.14.10

qzed commented 2 years ago

Changes in v5.14.10-2

qzed commented 2 years ago

Changes in v5.14.11 / v5.14.10-4

Add basic support for the Surface Laptop Studio (thanks to @ukasuviok for testing/providing information):

HID input devices (e.g. keyboard and touchpad) do not work yet, but this will hopefully be fixed in the next release.

qzed commented 2 years ago

Changes in v5.14.11-2 / v5.14.10-5

qzed commented 2 years ago

Changes in v5.14.14-2

qzed commented 2 years ago

Changes in v5.14.14-3

qzed commented 2 years ago

Changes in v5.14.15