Channel update leads to non-booting generation (solved)

I have a working generation from 27 Sept. I made a channel update (didn’t touch config) and rebuild on 1 Nov and upon booting it just said “Error loading null”. The machine is a Ryzen KDE Slimbook 14 laptop from 2020.

How can I troubleshoot the issue?

Config:

Summary
{ config, pkgs, ... }:

{
  imports =
    [ # Include the results of the hardware scan.
      ./hardware-configuration.nix
      (import "${builtins.fetchTarball https://github.com/rycee/home-manager/archive/master.tar.gz}/nixos")
    ];

  # Use the systemd-boot EFI boot loader.
  boot.loader.systemd-boot.enable = true;
  boot.loader.efi.canTouchEfiVariables = true;
  boot.kernelPackages = pkgs.linuxPackages_latest;
  boot.kernelParams = [ "mitigations=off" ];

  networking.hostName = "nixos"; # Define your hostname.
  networking.networkmanager.enable = true;
  networking.useDHCP = false;
  networking.interfaces.eno1.useDHCP = true;
  networking.interfaces.wlp1s0.useDHCP = true;

  i18n.defaultLocale = "fi_FI.UTF-8";
  console = {
    font = "Lat2-Terminus16";
    keyMap = "fi";
  };

  time.timeZone = "Europe/Helsinki";

  environment.systemPackages = with pkgs; [
    htop
    firefox
    nano
    vlc
    ark
    ntfs3g
    kate
    keepassxc
    libreoffice-fresh
    okular
    gwenview
    kcalc
    gimp
    thunderbird
    git
    skanlite
    yle-dl
    filezilla
    hugo
    xdg-desktop-portal
    xdg-desktop-portal-kde
    audacity
    ffmpeg
    qpdf
    chromium
    imagemagick
    obs-studio
  ]
  ++ (with xorg; [ libX11 libXaw libXext libXi libXinerama libXtst libXdmcp libpthreadstubs libxshmfence ])
  ++ (with gst_all_1; [ gstreamer gst-plugins-base gst-plugins-good ]);

  networking.hosts."127.0.0.1" = [ "libreoffice.test" ];

  sound.enable = true;
  hardware.bluetooth.enable = true;
  hardware.pulseaudio.enable = false;
  security.rtkit.enable = true;
  services.pipewire = {
    enable = true;
    alsa.enable = true;
    pulse.enable = true;
  };

  services.xserver.enable = true;
  services.xserver.layout = "fi";
  services.xserver.xkbOptions = "eurosign:e";

  hardware.sane.enable = true;
  services.printing = {
    enable = true;
    drivers = with pkgs; [ hplip ];
  };

  programs.system-config-printer.enable = true;
  services.xserver.libinput.enable = true;
  services.xserver.displayManager.sddm.enable = true;
  services.xserver.displayManager.autoLogin.enable = true;
  services.xserver.displayManager.autoLogin.user = "user2";
  services.xserver.desktopManager.plasma5.enable = true;
  security.pam.services.sddm.enableKwallet = true;

  users.users.user1 = {
    isNormalUser = true;
    extraGroups = [ "wheel" "networkmanager" "lp" "scanner" ]; # Enable ‘sudo’ for the user.
  };
  users.users.user2 = {
    isNormalUser = true;
    extraGroups = [ "wheel" "networkmanager" ]; # Enable ‘sudo’ for the user.
  };

  security.sudo.extraConfig = ''
    %wheel ALL=(ALL) NOPASSWD: ALL
  '';

   nix.extraOptions = ''
      experimental-features = nix-command
   '';
   nix.package = pkgs.nixUnstable;

  system.stateVersion = "21.03"; # Did you read the comment?
  hardware.opengl = {
    enable = true;
    extraPackages = with pkgs; [
      vaapiVdpau
      libvdpau-va-gl
      amdvlk
    ];
  };

  home-manager.users.user1 = {
    home.sessionVariables = {
      MOZ_X11_EGL = "1";
      LIBVA_DRIVER_NAME = "radeonsi";
    };
    programs.readline.enable = true;
    programs.readline.bindings = {
      "\\C-h" = "backward-kill-word";
      "\\e[3;5~" = "kill-word";
    };
    programs.firefox.enable = true;
    programs.firefox.profiles = {
      user1 = {
        id = 0;
        settings = {
            "media.ffmpeg.vaapi.enabled" = true;
            "media.ffvpx.enabled" = false;
            "media.av1.enabled" = false;
            "gfx.webrender.all" = true;
        };
      };
    };
  };
}

Last 1000 lines from rebuild output (paste bin as too many lines for Discourse)

Journal dump from the rebuild switch

1 Like

So how exactly does it look, do you get a graphical interface or get stuck on tty?
Can you switch to a different tty with crtl+alt+F2?

It says Error loading null and then it goes to BIOS.

Oh dear, this was related to a glitch in the internal keyboard of the laptop! I noticed it not working in the boot screen, but for some reason did not make a connection between the glitch and the inability to boot the generation. It boots fine, if I don’t use the keyboard in the boot screen, or if I use an external keyboard.

A different problem now is that SDDM dumps core when switching user or logging out, but that is so much more mundane.

Edit: the SDDM issue seems to be reported already: sddm-greeter crashed during login followed by Xorg crash · Issue #1468 · sddm/sddm · GitHub

2 Likes