Nixos tells me to rename an option, but renaming it breaks gdm

  services.xserver = {
    enable = true;  
    displayManager.gdm = {
      enable = true;   
      wayland = false; 
    };
    desktopManager.gnome.enable = true; 
  };

Building with the above configuration options work, but it produces these warnings.

evaluation warning: The option `services.xserver.desktopManager.gnome.enable' defined in `/nix/store/087206f258y1pp9n4lfanyk798mk27l7-source/hosts/common/x.nix' has been renamed to `services.desktopManager.gnome.enable'.
evaluation warning: The option `services.xserver.displayManager.gdm.wayland' defined in `/nix/store/087206f258y1pp9n4lfanyk798mk27l7-source/hosts/common/x.nix' has been renamed to `services.displayManager.gdm.wayland'.
evaluation warning: The option `services.xserver.displayManager.gdm.enable' defined in `/nix/store/087206f258y1pp9n4lfanyk798mk27l7-source/hosts/common/x.nix' has been renamed to `services.displayManager.gdm.enable'.

Switching it to the reccomended renamed options causes gdm to freeze on startup, making login impossible.


services.desktopManager.gnome.enable = true;
services.displayManager.gdm.wayland = false;
services.displayManager.gdm.enable = true;

Interesting, behind the scenes NixOS should be translating these options already.

Can you log into a different tty (press e.g. ctrl+alt+F3, maybe spam it in case gdm is caught in a restart loop) and get the output of journalctl --boot -xe?

Any chances that you’re using a Nvidia GPU?

I noticed that on startup, I need to wait few seconds before interacting with gdm (e.g login).
If trying to e.g login as soon as gdm is available, PC would freeze and then I would need to do an hard reboot / shutdown.

I’m not sure on the root cause(s) and haven’t fixed that yet (waiting few secs each time works for now) and not sure either if related to Nvidia.
It seems that gdm is waiting for smth to load / be loaded and if that smth isn’t ready then it freezes
Issue started to appear when switching to either 24.11 or 25.05 (can’t recall exactly)

Nope, both machines are AMD, and waiting changes nothing.

No, I can’t switch to tty at all

Can you grab logs from the previous boot if you force it off and switch to an older generation? That’d be:

journalctl --boot -1 -xe

I cant see anything about gdm or gnome or greeters anywhere; here are the final log lines:

Jun 25 18:56:51 sage-ice-cream systemd-journald[583]: Journal started
░░ Subject: The journal has been started
░░ Defined-By: systemd
░░ Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
░░ 
░░ The system journal process has started up, opened the journal
░░ files for writing and is now ready to process requests.
Jun 25 18:56:51 sage-ice-cream systemd-journald[583]: Runtime Journal (/run/log/journal/09ab968614a846f38efa2cc893a7a9b0) is 8M, max 379.8M, 371.8M free.
░░ Subject: Disk space used by the journal
░░ Defined-By: systemd
░░ Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
░░ 
░░ Runtime Journal (/run/log/journal/09ab968614a846f38efa2cc893a7a9b0) is currently using 8M.
░░ Maximum allowed usage is set to 379.8M.
░░ Leaving at least 189.9M free (of currently available 3.7G of disk space).
░░ Enforced usage limit is thus 379.8M, of which 371.8M are still available.
░░ 
░░ The limits controlling how much disk space is used by the journal may
░░ be configured with SystemMaxUse=, SystemKeepFree=, SystemMaxFileSize=,
░░ RuntimeMaxUse=, RuntimeKeepFree=, RuntimeMaxFileSize= settings in
░░ /etc/systemd/journald.conf. See journald.conf(5) for details.
Jun 25 18:56:51 sage-ice-cream systemd-modules-load[584]: Inserted module 'bridge'
Jun 25 18:56:51 sage-ice-cream systemd-modules-load[584]: Module 'ctr' is built in
Jun 25 18:56:51 sage-ice-cream systemd-oomd[586]: No swap; memory pressure usage will be degraded
Jun 25 18:56:51 sage-ice-cream systemd[1]: Started Journal Service.
Jun 25 18:56:51 sage-ice-cream systemd-udevd[604]: Using default interface naming scheme 'v257'.
Jun 25 18:56:51 sage-ice-cream kernel: ccp 0000:68:00.2: enabling device (0000 -> 0002)
Jun 25 18:56:51 sage-ice-cream systemd[1]: Starting Flush Journal to Persistent Storage...
░░ Subject: A start job for unit systemd-journal-flush.service has begun execution
░░ Defined-By: systemd
░░ Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
░░ 
░░ A start job for unit systemd-journal-flush.service has begun execution.
░░ 
░░ The job identifier is 52.
Jun 25 18:56:51 sage-ice-cream kernel: ccp 0000:68:00.2: tee enabled
Jun 25 18:56:51 sage-ice-cream kernel: ccp 0000:68:00.2: psp enabled
Jun 25 18:56:51 sage-ice-cream systemd-journald[583]: Time spent on flushing to /var/log/journal/09ab968614a846f38efa2cc893a7a9b0 is 18.162ms for 1089 entries.
Jun 25 18:56:51 sage-ice-cream systemd-journald[583]: System Journal (/var/log/journal/09ab968614a846f38efa2cc893a7a9b0) is 1.1G, max 4G, 2.8G free.
░░ Subject: Disk space used by the journal
░░ Defined-By: systemd
░░ Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
░░ 
░░ System Journal (/var/log/journal/09ab968614a846f38efa2cc893a7a9b0) is currently using 1.1G.
░░ Maximum allowed usage is set to 4G.
░░ Leaving at least 4G free (of currently available 429.1G of disk space).
░░ Enforced usage limit is thus 4G, of which 2.8G are still available.
░░ 
░░ The limits controlling how much disk space is used by the journal may
░░ be configured with SystemMaxUse=, SystemKeepFree=, SystemMaxFileSize=,
░░ RuntimeMaxUse=, RuntimeKeepFree=, RuntimeMaxFileSize= settings in
░░ /etc/systemd/journald.conf. See journald.conf(5) for details.
Jun 25 18:56:51 sage-ice-cream systemd-journald[583]: Received client request to flush runtime journal.
Jun 25 18:56:51 sage-ice-cream kernel: kvm_amd: TSC scaling supported
Jun 25 18:56:51 sage-ice-cream kernel: kvm_amd: Nested Virtualization enabled
Jun 25 18:56:51 sage-ice-cream kernel: kvm_amd: Nested Paging enabled
Jun 25 18:56:54 sage-ice-cream hm-activate-alex[961]: /home/alex/.bashrc: line 3: bind: command not found
Jun 25 18:56:54 sage-ice-cream hm-activate-alex[963]: /home/alex/.bashrc: line 4: bind: command not found

That suggests you successfully logged in. Are you sure this is the log of a boot that froze?

I went into a frozen generation, waited a few seconds after it reached the greeter, then power cycled and went to a working generation to run that command

I notice you’re using wayland = false;

Just for clarity, do you still have services.xserver.enable = true; in the new config?

I don’t have it, but I am using wayland.

No, it was warning me that the option didnt exist, so I removed it. Maybe the lsp is hallucinating? Will try this later on

are NixOS channel(s) up-to-date (make sure to update channels with sudo and not as non-root user)? which NixOS and kernel version?

there seems to be few posts lately on the forum related to amd setups: Search results for 'amd order:latest' - NixOS Discourse

for logs, maybe try to get logs from few minutes ago after starting with a failing config, then reboot with a working one
e.g journalctl --since "5 minutes ago" or to point to gdm logs specifically journalctl --since "5 minutes ago" | grep gdm