Having bad kernel problems trying to run latest-libre on asus zenbook with intel gpu 12th generation

Hello!

My laptop has been running NixOS just fine. However, I decided to try the libre kernel instead of the default one, and that caused some bad issues.

My actions to get into it

  1. Reboot
  2. Select default NixOS config in grub
  3. Type luks password
  4. Wait until almost the moment, when gpu drivers should load

Detailed problem

  • It hangs completely (may or may not black out the screen).
  • Caps lock key indicator is blinking
  • Fans are running at a high speed
  • The resolution in tty is low (indicating that GPU drivers aren’t up yet)

Configuration

CPU and iGPU: Intel 12th 1260P Alder Lake

Here’s config:

  boot.initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "vmd" "nvme" "usb_storage" "sd_mod" "sdhci_pci" ];
  boot.initrd.kernelModules = [ ];
  boot.kernelModules = [ "kvm-intel" ];
  boot.extraModulePackages = [ ];
  boot.kernelParams = [ "i915.force_probe=46a8" ];
  boot.kernelPackages = pkgs.linuxPackages_latest-libre;

I need latest, because otherwise intel GPU doesn’t work.

Note, that latest kernel without -libre works smoothly.

Any idea what could be wrong, or how I could investigate it? or what modules are missing and how I can figure them out?

The libre kernel specifically removes firmware blobs from the kernel in order to make it “free”. By doing so, the libre kernel is unable to be used on a lot of hardware. There may not be a fix for you here, except to use the mainline kernel.

2 Likes

Can I somehow investigate which modules are missing?

It’s likely not an issue of missing modules but is an issue of missing firmware blobs. Sure, you may be able to figure out what’s missing and add it back, but then it’s no longer libre as it is designed. If you’re adding back closed source blobs, why go through the pain at all?

1 Like

Actually from what I can tell the libre kernel is unable to load firmware blobs.

I wasn’t intending to add them back. I was thinking if there’s a replacement. Not sure.