使 NVIDIA 在 Wayland & AOSC OS 下可用
在arch大人的呵护下,我们不知道什么是风雨……
前情提要
我为了参加 AOSCC,给 btrfs 分区开了个新子卷装 AOSC OS.
然后我就发现,他们的内核挺新,6.18,然而桌面环境是 KDE 5 X11.
为啥要用这么老登的东西啊!难道说,还没有能力迁移到6?
之后加入了6的测试:
sudo oma topic --opt-in kde-6然后更新到了6。这是在我还没有切换回 Wayland 的时候……
因为 Wayland 不是默认的,所以还要装plasma-workspace-wayland-session.
后来切换到了 Wayland,发现不能睡眠,就是早期的睡眠唤醒后plasmashell反复去世最终留下鼠标和壁纸,或闪屏或黑屏。
太典型了,我之前(几年前,再往前用a家核显勿扰)的解决方案都是切换回 X11,但是 X11 的问题是:老旧,cursorsize 不能动态切换,性能不佳,……
又想到,既然 arch 和 gentoo 默认就行,这两个都不开箱即用了,AOSC OS 一个 debian 系的 nvidia 驱动怎么更不能开箱即用?……难道说仍然是人手不够导致的,还是主力在 X11 没空看 Wayland?
Arch Wiki
https://wiki.archlinux.org/title/NVIDIA/Tips_and_tricks#Preserve_video_memory_after_suspend
这应该就是解决方案了。不过他说,在 arch 上已经默认启用了?我必须查看/etc/modprobe.d/:
l /etc/modprobe.d
(棍木)啥都没有啊,我看加那个模块arg,他们是咋办的?另外的脚本加载?
应该是什么
595以后的驱动,要在/etc/modprobe.d/nvidia.conf加入:
options nvidia NVreg_UseKernelSuspendNotifiers=1 NVreg_TemporaryFilePath=/var/tmp行,我重启,然后看sort /proc/driver/nvidia/params有没有UseKernelSuspendNotifiers: 1和TemporaryFilePath: "/var/tmp"……
依旧没有!!
后来发现了,是我没重新生成 initramfs。AOSC OS上,执行update-initramfs.
之后重启直接黑屏了,ssh 也连不上,那就是 boot 卡初始化 GPU 了
但是能保证这是正确的
Gentoo
行了,gentoo 也没问题,那去看看 gentoo 是怎么写的:
blacklist nouveau
blacklist nova_core
options nvidia \
NVreg_UseKernelSuspendNotifiers=1 \
NVreg_TemporaryFilePath=/var/tmp
options nvidia \
NVreg_DeviceFileGID=27 \
NVreg_DeviceFileMode=432 \
NVreg_DeviceFileUID=0 \
NVreg_ModifyDeviceFiles=1
alias char-major-195 nvidia
alias /dev/nvidiactl char-major-195
remove nvidia modprobe -r --ignore-remove nvidia-drm nvidia-modeset nvidia-uvm nvidia拿来吧你。给nouveau屏蔽了就好了,上次是nouveau来抢活,那不有问题了。
最终的/etc/modprobe.d/nvidia.conf
blacklist nouveau
blacklist nova_core
options nvidia \
NVreg_UseKernelSuspendNotifiers=1 \
NVreg_TemporaryFilePath=/var/tmp最终一切正常了,和 arch 相差无几.