debian13(debian trixie)安装了nvidia闭源驱动后从x11切换到wayland的方法
我的 debian 13环境如下
- Debian 13 (Trixie)
- GNOME Shell 48.7
- NVIDIA 550.163
- RTX 3060 Laptop
- Intel(i7-11800H) + NVIDIA 混合显卡
- Wayland
之前还是用的开源驱动 nouveau。安装好了 nvidia 闭源驱动后发现默认回退到了 x11(display protocol),检索到下面这些可参考文章(中文环境)
- https://www.cnblogs.com/embedded-notes/p/18944596
- https://blog.see2night.top/posts/debian-12-gnome-%E6%A1%8C%E9%9D%A2%E6%8A%98%E8%85%BE
- https://www.bilibili.com/opus/1094844441492979717
- https://ivonblog.com/posts/debian-install-nvidia-drivers/
但是这些文章对于我来说都只是可参考,但是不能实践,我的环境如上,通过与 chatgpt 的多轮对话,我现在成功切换到了 wayland。并且独显电源管理这边也安全落地。
$ echo $XDG_SESSION_TYPE
wayland
下面讲一下如何配置的
让 Wayland 生效的修改总结
最终真正需要的修改,其实只有三项。
1. 启用 NVIDIA DRM KMS
创建:
/etc/modprobe.d/nvidia-kms.conf
内容:
options nvidia-drm modeset=1
然后:
sudo update-initramfs -u
作用:
启用 NVIDIA DRM KMS
这是:
Wayland 的基础前提
否则:
cat /sys/module/nvidia_drm/parameters/modeset
会是:
N
GDM 会直接退回 X11。
2. 启用 NVIDIA Wayland 电源管理支持
创建:
/etc/modprobe.d/nvidia-power-management.conf
内容:
options nvidia NVreg_PreserveVideoMemoryAllocations=1
然后:
sudo update-initramfs -u
作用:
允许 suspend/resume 时保留 VRAM
这是:
GNOME 48 + NVIDIA Wayland 的关键条件
否则:
61-gdm.rules
会执行:
WaylandEnable=false
3. 启用 NVIDIA suspend/resume services
执行:
sudo systemctl enable nvidia-suspend.service
sudo systemctl enable nvidia-resume.service
sudo systemctl enable nvidia-hibernate.service
作用:
满足 GDM 的 Wayland 安全检查
否则:
ENV{NVIDIA_SUSPEND}!="enabled"
-> disable wayland
下面是一些不需要的操作,也是上面贴出来的几篇文章提及的:
不需要:
修改:
/etc/gdm3/daemon.conf
因为:
/run/gdm3/custom.conf
会动态覆盖它。
不需要:
修改 grub:
nvidia-drm.modeset=1
modprobe 的方案更好,通过 modprobe 配置模块参数是 Linux 驱动配置的标准方式。。
不需要:
注释:
/usr/lib/udev/rules.d/61-gdm.rules
因为:
系统实际上已经满足:官方允许 Wayland 的条件
不需要暴力绕过检查。
这样配置已经是“NVIDIA 官方推荐 Wayland 配置”
这比:
- 强行注释 gdm.rules
- hack daemon.conf
- disable checks
稳定得多。