Repository navigation
Announcements and updates #96
Description
Activity
- locked and limited conversation to collaborators
on Feb 22, 2020 - pinned this issue
on Feb 22, 2020 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
pkgdirectory 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.-
The package repositories are now the recommended way to install the kernel. That way you will automatically receive future updates.
-
We are officially supporting Arch, Debian and Fedora builds.
-
The config files are moved to the device-specific/known issues wiki pages and are no longer automatically copied over.
-
The
setup.shscript now basically does nothing.
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=yNote: The new driver works on gen7 (SL3 Intel & SP7) as well!
-
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.110You 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=Yparameter to the mwifiex driver. This only allows it to be enabled. To actually enable it, runsudo iw dev $devname set power_save onor by any other tools and check if it's actually enabled bysudo cat /sys/kernel/debug/mwifiex/mlan0/debug | grep "ps_""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_feedbackquirk 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.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:
- The first parts of the Surface Book 3 support have been merged: You can now control the dGPU power via
surface-controlor alternatively directly via sysfs, exactly like on the Surface Book 2. Further support (especially keyboard and touchpad) is currently still under development, so if you're using a Surface Book 3, you probably still want to head over to the Surface Aggregator Module repo and install the module from thefeature/sb3-v2-branch. - The Surface Pro 6 with
MSHW0111as SID-device-ID is now correctly set up. This means that the lid and performance-mode setting should now work correctly on those devices. - The internals of the Surface Serial Hub (
surface_sam_ssh) driver have been completely re-implemented with the goal of having an intrinsically asynchronous communication framework. This should ideally result in smoother communication with the EC and less hick-ups. More restructuring is yet to come, but this is a first big step towards getting the Surface Aggregator Module driver upstream. Additionally, some code has been cleaned up.
- The first parts of the Surface Book 3 support have been merged: You can now control the dGPU power via
New packaging structure for Debian/Ubuntu packages
The packaging approach for
.debpackages has changed withdebian-5.7.7-2anddebian_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/orlinux-headers-surface-lts) and re-install them afterwards. If you've already tried to upgrade, you can also complete the upgrade runningsudo 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-surfacePlease remove only those that are outdated ending with
-surfaceor-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-ltsinitrd files since installing the packages afterwards will re-build the new ones.See also linux-surface/repo#3 for the issue reporting this problem.
In addition, we have decided to drop the custom
linux-libc-devpackages. 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 installinglinux-libc-devfrom the repository of your distribution.Noteworthy changes in the v5.7.8 and v4.19.132 releases
More Surface Book 3 support has been merged, specifically:
- Preliminary support for HID devices, i.e. keyboard and touchpad. Known issue: The touchpad only works in single-touch mode after the clipboard has been re-attached (see Support for SB3 keyboard and touchpad (aka generify HID subsystem). surface-aggregator-module#42).
- Preliminary support for batteries. Known issue: At the moment, disconnect of the battery is not detected automatically when the clipboard is detached (see Surface Book 3 battery support surface-aggregator-module#44).
- The lid device should now work as expected (and wake the device when opened).
- Performance modes should be supported now.
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 (#223).
More details can be found in the commit messages: b70e5fb (v5.7), 7a41e16 (v5.4), and f866ce0 (v4.19).
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 linux-surface/surface-aggregator-module#45.
Noteworthy changes in the v5.7.11-1 and v4.19.135-1 releases
The most notable changes are:
- The patch required for setting dGPU power on the Surface Book 1 via ACPI call (see [SB] SAM Support (dGPU-detection, clipboard-detach handling) #93 for details) has been added to the repository and the latest kernels.
- Performance modes have been enabled for Surface Laptop 1 and 2.
- Support for D0-exit/D0-entry notifications, sent to the SAM controller when suspending (D0-exit) or resuming (D0-entry) on newer (gen. 7+) devices, has been added. This may (or may not) change suspend behavior slightly on those devices.
- Other internal changes and bug-fixes in the SAM driver.
More details can, as always, be found in the respective commit messages (e.g. for v5.7).
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
iptsdpackage and start/enable the systemdiptsd.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)").
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:
- First of all, the
surface_sam_sidmodule has been replaced bysurface_sam_device_hub. If you rely on this module name (e.g. in yourmkinitcpio.conffor an encrypted device setup on the Surface Laptop 3 or Book 3), please make sure to update the name there. - Second, the device path of the performance mode device has been changed. It can now be found under
/sys/bus/ssam/devices/03:01:00:02/. The surface-control tool has been updated accordingly with version 0.2.7, so please make sure that it is up-to-date if you encounter any issues with the performance mode.
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.
- First of all, the
Changes in v5.8.5 and v4.19.142
- The mwifiex bug causing connection failure on certain WiFi networks has been fixed (Kernel 5.8.3-arch1-1-surface breaks wifi connection. #267).
- SAM devices are properly re-initialized after hibernation, fixing issues where the keyboard would stop working on the Laptop and Book 3 models ([Surface Laptop 2]Keyboard not working after resuming from hibernate #268)
Changes in v5.8.7 and v4.19.143
- A bug has been fixed in the SAM driver regarding initialization of driver when probing against the battery in the base of the device.
- The
sb1_dgpu_swmodule has been integrated into the kernel/patches. This means you can now control your dGPU power directly viaecho 1 | sudo tee /sys/bus/platform/devices/MSHW0041:00/dgpu_powerto turn it on andecho 0 | sudo tee /sys/bus/platform/devices/MSHW0041:00/dgpu_powerto turn it off. The acpi-call module is no longer required.
Changes in v5.8.10 (Fedora v5.8.9) and v4.19.146
These releases contains two major changes that may need manual intervention:
- The device path for the performance-mode device has changed to
/sys/bus/surface_aggregator/devices/01:03:01:00:01/. If you are using thesurface-controlutility, you will need to update that to v0.2.8. Specifically, the bus has been renamed tosurface_aggregatorand a domain ID has been introduced for Surface Aggregator Module (SAM) client devices. - All SAM modules have been renamed. If you rely on their names, e.g. via intird/initram/..., you will need to update that when updating the kernel. The specific changes are:
surface_sam_ssh -> surface_aggregator surface_sam_debugfs -> surface_aggregator_debugfs surface_sam_device_hub -> surface_aggregator_registry surface_sam_san -> surface_acpi_notify surface_sam_sid_power -> surface_battery surface_sam_dtx -> surface_dtx surface_sam_sid_vhf -> surface_hid surface_sam_hps -> surface_hotplug surface_sam_vhf -> surface_keyboard surface_sam_sid_perfmode -> surface_perfmode
Additionally:
- A bug has been fixed where SAM client devices would not be registered on the Surface Book 3, causing keyboard, touchpad, and battery information to not work.
- Kconfig options for the Surface Aggregator Module have been renamed in accordance to renaming the modules. Consult the updated config files if you rely on those.
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.
- The device path for the performance-mode device has changed to
60 remaining items
iptsd 1.2.0 has been released
This update to iptsd brings a very significant change: It replaces the old basic / advanced algorithms with a new algorithm that is a combination of both. This new algorithm is more robust towards noise (like the advanced one), while using vastly less resources (like the basic one).
If you have calibrated iptsd, you must remove the old calibration, as the values will no longer be accurate.
This update also changed the available config options. If you have a custom configuration, please check the values against the reference configuration.
For a full list of (user-facing) changes, look here: https://github.com/linux-surface/iptsd/releases/tag/v1.2.0
Changes in v6.2.12 and v6.2.11 (Fedora)
- Remove Intel Thread Director patches due to suspend/resume issues reported in Wake from suspend failing on alder/raptor lake #1120.
Changes in v6.3.6 (Fedora)
We have updated our Fedora packages to follow the upstream packages more closely. This fixes some issues with our old package, for example akmods should now work properly. Like the stock kernel, it will also keep around the last 3
versions automatically.However, because the transition between the old and new packages is hitting an edge case in DNF, you MUST temporarily disable the running kernel protection. Otherwise DNF will refuse to remove the old package and install the new one.
You can do this by either rebooting into a stock kernel to do the upgrade, or by running the following command:
$ sudo dnf update --setopt=protect_running_kernel=False
Changes in v6.5.8
- Add initial support for the Surface Laptop 3. In particular it's SAM EC, unlocking support for battery information and (ACPI) platform profiles.
Changes in v6.6.1/v6.5.11-2
- Add initial Support for the Surface Laptop Studio 2. In particular it's SAM EC, unlocking support for the keyboard, HID-based sensors, battery information, (ACPI) platform profiles, and tablet-mode/display orientation. Note that we do not support the touchpad yet.
Changes in v6.6.10 (Arch Linux) / v6.6.11 (Ubuntu/Fedora)
- Add driver for reading the fan speed on newer Surface devices with a fan. This driver is currently only enabled on the Surface Pro 9. Credits go to @iwanders (Surface fan module kernel#144).
- Add a driver for reading out temperature sensors connected via the Surface Aggregator Module. This driver is currently only enabled on the Surface Pro 9.
Changes in v6.9.3
- Add initial support for the Surface Laptop 6. This includes basic SAM EC support, unlocking the keyboard, other HID-based devices, battery information, platform profiles (including fan), and additional temperature sensors. Touchpad support is still work in progress (see Support for Surface Laptop 6 #1432).
Changes in v6.9.3-2
- Fix driver/module issue preventing the Surface Laptop Go 3 from booting into the Surface Linux kernel (c67bbcf).
Changes in v6.9.7:
- Pull in patch to fix serial port suspend. See
- Enable fan monitoring and profile switching on the Surface Laptop 5 and Surface Laptop Studio 2. See
- For Debian/Ubuntu: Link
sign-filebinary statically to fix external module/DKMS build issues. See
Changes in v6.9.7:
- Add basic SAM support for the Surface Pro 10.
Changes in v6.13.6
- Add support for Surface Pro 11 (thanks to @lukas-hetzenecker, see Add support for Surface Pro 11 kernel#159, [SP11] Support for Surface Pro 11 with Intel #1694)
- Re-add surface3-spi patch (surface 3 touchscreen driver crash randomly #1184)
- Debian/Ubuntu: Add support for
unprivileged_userns_clone(Enable unprivileged_userns_clone in the kernel #1657).
Changes in v6.17.13-2
- Add experimental support for the Surface Pro 9 cameras (thanks to @toorajtaraz, see Add camera support for Surface Pro 9 #1867).
- Add HID driver to filter BTN_0 (FN key) events on Surface devices (thanks to @ciarancoffey, see Add HID driver to filter BTN_0 (FN key) events on Surface devices #1870)
Changes in v6.17.13-3 / v6.18.2-1
- Prevent mode set on the Surface Laptop Studio 2 touch pad (thanks to @LegendaryFire)
Changes in v6.18.3-2 (Arch/Debian) and v6.17.13-4 (Fedora)
- Fix shutdown issue on Surface Laptop Studio 2 (see Fix powering down on Surface Laptop Studio 2 #1948, thanks to @LegendaryFire)
Changes in v6.18.7:
- Enable PL4 support for Ice Lake to fix throttling issue (see Backport Ice Lake throttling fix API #1964, Surface Pro 7 has CPU throttled to 1500 MHz after resume from suspend #706, thanks to @danielzgtg). Note: Requires updated
surface-controlpackage (v0.5.0).
- Enable PL4 support for Ice Lake to fix throttling issue (see Backport Ice Lake throttling fix API #1964, Surface Pro 7 has CPU throttled to 1500 MHz after resume from suspend #706, thanks to @danielzgtg). Note: Requires updated
Subscribe to this issue to be notified of announcements, changelogs and manual upgrade notices.
(For update announcements only)