NixOS / nixos-hardware

A collection of NixOS modules covering hardware quirks.
Creative Commons Zero v1.0 Universal
2.08k stars 643 forks source link

[SL5] - Lid switch not working, but it was working with a "normal" kernel... #1179

Open TimoVerbrugghe opened 1 month ago

TimoVerbrugghe commented 1 month ago

Hi everyone,

First off: very deep appreciation for everything already done here :).

I have a Surface Laptop 5 running on nixos with the nixos microsoft-surface-common module. Everything working (this includes suspending and waking up with the power button) except when I close the lid, nothing happens.

The screen stays on (I can see the light bleed through the small gap) and while evtest does mention that there is a lid switch input, when running it and closing, it doesn't detect anything.

Funny thing though is that when running the standard 6.6 kernel from nixos 24.05 release, the lid closing actually does make the computer suspend (but then it doesn't wake up because well... not running the linux-surface kernel I guess).

I saw that this is handled by the surface_gpe kernel module, but I see with lsmod that it's not loaded and when I try to load it, I get the following error message in dmesg:

modprobe: ERROR: could not insert 'surface_gpe': No such device

and in dmesg:

surface_gpe: no compatible Microsoft Surface device found, exiting

I think it's because surface_gpe still has a separate sl5 branch which might include the fixes needed but isn't part of master: https://github.com/linux-surface/surface-gpe/tree/devices/sl5

TimoVerbrugghe commented 1 month ago

I also opened an issue on the surface_gpe repo (https://github.com/linux-surface/surface-gpe/issues/4) but just in case they don't reply, if anybody could help me build and test this kernel module, would be great since it's literally the last hardware fix needed for the SL5 (at least from my side) :)!