Greeted by the OEM logo followed by the Systemd-Boot (timeout is curently set to 0) menu
NixOS is supposed to show plymouth animation and continue the boot process but instead the OEM logo appears again and blink 2 times
Up to this point the boot process had finished before plymouth could actually play the animation (plymouth is only shown for half of a second and it goes away because the login manager has to utilize the display)
Notes:
I’m not sure what could be the issue here but I’ll be happy to provide logs of anything if needed.
I know that Nix is different than Arch but I think I used to have intel or nvidia’s frame buffer in the kernel options but I can’t remember or find it anymore.
Well, if the timeout is zero, then the systemd-boot menu certainly should not be showing up, so that is surprising.
As for plymouth not showing up in time, there’s two factors at play here.
Scripted stage 1 starts plymouth sort of late. It’s done last in boot.initrd.preLVMCommands, so an awful lot happens on the console before it shows up. Systemd stage 1 (boot.initrd.systemd.enable) starts it much earlier, but you still need to add quiet to your kernel params for silent boot, and possibly set the kernel loglevel to 0.
systemd-stage-1/plymouth: Password prompt takes a long time to appear · Issue #266804 · NixOS/nixpkgs · GitHub Plymouth is picky about graphics. The EFI framebuffer can be used, but its graphics implementation is simple-drm, which plymouth purposefully avoids using until a timeout of 8 seconds is reached. So plymouth actually doesn’t take over graphics until either that timeout is reached or a better graphics driver is found. So you can add your graphics driver to initrd (e.g. boot.initrd.availableKernelModules = ["amdgpu"];), but this will still cause at least one flicker when the kernel does modesetting to set the resolution. Or you can tell plymouth to allow using simple-drm by adding plymouth.use-simpledrm to your kernel params, but this might have undesirable visuals when the graphics driver is loaded in stage 2.
yes the menu doesn’t show up, I had the timeout set to 3 later on I changed it to 0 and the menu doesn’t show up anymore; Sorry if I sounded a little confusing
To add to this I went ahead and added all my graphics (i915, nvidia, nvidia_uvm, nvidia_drm, nvidia_modeset) and the OEM logo it did flicker like once after that the plymouth animation was shown right away but I wasn’t able to login to my user, and the screen just either freezes or gets blank
Hi sorry for the late response I’ve been busy with work. I couldn’t find a way to use the use-simpledrm for plymouth, maybe it isn’t available anymore? I feel like my issue is likely related to the kernel being LTS because I’ve always used the latest kernel in Arch but I’m not sure. Last time I tried to switch kernels my nvidia drivers had issues so I had to stick to the LTS kernel which NixOS provides
Not sure what to try next, Any suggestions? Thanks.