Currently the latest version you can get is 535.113.01, using hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.production in the unstable channel.
But I want to use 545 version because it fixes an issue many Gnome-Wayland users have:
Changing from this: hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.production
to hardware.nvidia.package = pkgs.linuxKernel.packages.linux_6_5.nvidia_x11_beta;
Or do I add linuxKernel.packages.linux_6_5.nvidia_x11_beta somewhere else?
kernelPackages is a whole set of packages, including the Linux kernel and nvidia drivers. You should not mix them, hence you currently use boot.kernelPackages.
There’s some useful aliases for the nvidia driver variants in it, so you can use:
You don’t actually have to change the linux kernel version either, the 6.5 kernel set will have this sub-package, but so will any other kernels, including the LTS release.
The sudo here is only necessary if the files in your flake are owned by root (specifically flake.lock), but yes, if you use the default /etc/nixos/ location that’s likely the case.
Yep, exactly You can look in flake.lock to see exactly which commits of your inputs you are using.
This typically happens if you’ve not rebooted after updating nvidia drivers. There will be some library headers on your machine that end up getting very confused because they were written for a newer nvidia driver, but your running system hasn’t actually upgraded yet. To upgrade kernel/kernel modules, a restart is required.
That sucks after all this effort Not sure what would be the cause of that specifically, but the drivers are marked beta for a reason.
You may have gotten confused by @TLATER’s comment here. kernelPackages_6_5 has nothing to do with nvidia and it’s a package while boot.kernelPackages is an option where a kernelPackages package such as kernelPackages_6_5 could be set. What you want is
and then you must reboot (or manually switch out the kernel modules but that’s complicated).
Check the logs of that boot attempt. “[OK] Reached target graphical interface” just means it couldn’t actually start showing the graphical interface and got stuck on the frame before.
Make sure you’re not using 6.5 but rather some LTS kernel. Nvidia’s kernel modules often aren’t compatible with the newest kernel, sometimes in subtle ways.
This isn’t the issue. The driver package used by setting this is decided by hardware.nvidia.package.
And just asking, I do that by tty ctrl alt f3 and then journalctl right? or is there other command?
Yeah, I went back to the LTS that is 6.1 ,but this time it was worse I think, I just got a black screen with a tilting underscore in the top right of the screen.
If it has booted far enough that you can access other ttys, that’s a good start. You can limit the logs to just the current boot with journalctl --boot. If it does not boot far enough, you can try with journalctl --boot -1 to get the previous boot.
dmesg also gives different output focused on what the kernel is doing, which might be useful in this case.
That might be it, so the pr has been reviewed and passed all the checks it just now needs to be merged.
And indeed I remember yesterday I try killing all processes using nvidia, and then unmounting nvidia and then using sudo modprobe nvidia and sudo modprobe nvidia_drm, and still was getting the error