Systemd.boot unable to setup loader.timeout

Nixos unstable. Not sure when started, but since yesterday i noticed the timeout is gone and i need to manually select the boot entry. I saw some issues about timeout’s null value but not sure if it’s related.

  boot = {
    loader = {
      timeout = 1;
      systemd-boot = {
        enable = true;
        consoleMode = "max";
      };
    };
};

I had the same problem. It seems that systemd-boot has an internal mutable configuration that overrides the system configuration. I tried looking at /boot but I found nothing interesting, so that might be wrong.

I worked around this problem by pressing t a few times on the boot menu.

It seems that systemd-boot has an internal mutable configuration that overrides the system configuration.

It’s an EFI variable named LoaderConfigTimeout, see https://wiki.archlinux.org/title/Systemd-boot#Loader_configuration.

I worked around this problem by pressing t a few times on the boot menu.

That’s the keybinding to change timeout, see https://man.archlinux.org/man/systemd-boot.7#KEY_BINDINGS.

Thanks :slight_smile:

Does the t keybinding (and the others) stop modifying the variables if I set boot.loader.efi.canTouchEfiVariables = false; ?

Is here a way to clear these variables so that the system configuration takes precedence ?

Try bootctl set-timeout ""

Thanks for the suggestions I’ll give these a shot the next time I install NixOS. I couldn’t get the eGPU (3090) working so ended up having to switch to Silverblue for the time being. :slight_smile: But I’ll install to another drive and give this a shot.