- 关闭wayland注释,然后注销后看看右下角有没有出现wayland登陆,如果没有,继续进行2,3,4步骤,否则直接第5步。
sudo vim /etc/gdm3/custom.conf
将
改成
WaylandEnable=true
- 编辑文件 /lib/udev/rules.d/61-gdm.rules, 注释相关行
TEST{0711}!="/usr/bin/nvidia-sleep.sh", GOTO="gdm_disable_wayland"
TEST{0711}!="/usr/lib/systemd/system-sleep/nvidia", GOTO="gdm_disable_wayland"
IMPORT{program}="/bin/sh -c \"sed -e 's/: /=/g' -e 's/\([^[:upper:]]\)\([[:upper:]]\)/\1_\2/g' -e 's/[[:lower:]]/\U&/g' -e 's/^/NVIDIA_/' /proc/driver/nvidia/params\""
ENV{NVIDIA_PRESERVE_VIDEO_MEMORY_ALLOCATIONS}!="1", GOTO="gdm_disable_wayland"
IMPORT{program}="/bin/sh -c 'echo NVIDIA_HIBERNATE=`systemctl is-enabled nvidia-hibernate`'"
ENV{NVIDIA_HIBERNATE}!="enabled", GOTO="gdm_disable_wayland"
IMPORT{program}="/bin/sh -c 'echo NVIDIA_RESUME=`systemctl is-enabled nvidia-resume`'"
ENV{NVIDIA_RESUME}!="enabled", GOTO="gdm_disable_wayland"
IMPORT{program}="/bin/sh -c 'echo NVIDIA_SUSPEND=`systemctl is-enabled nvidia-suspend`'"
ENV{NVIDIA_SUSPEND}!="enabled", GOTO="gdm_disable_wayland"
- 实测zorin的设置如下所示:
ATTR{vendor}=="0x19e5", ATTR{device}=="0x1711", RUN+="/usr/libexec/gdm-disable-wayland"
DRIVER=="nvidia", RUN+="/usr/libexec/gdm-disable-wayland"
IMPORT{cmdline}="nomodeset", RUN+="/usr/libexec/gdm-disable-wayland"
- 改成下面的设置
LABEL="gdm_pci_device_end"
KERNEL!="card[0-9]*", GOTO="gdm_nomodeset_end"
SUBSYSTEM!="drm", GOTO="gdm_nomodeset_end"
IMPORT{parent}="GDM_MACHINE_HAS_VIRTUAL_GPU"
ENV{GDM_MACHINE_HAS_VIRTUAL_GPU}!="1", RUN+="/usr/bin/touch /run/udev/gdm-machine-has-hardware-gpu"
DRIVERS=="simple-framebuffer", GOTO="gdm_nomodeset_end"
IMPORT{cmdline}="nomodeset", GOTO="gdm_disable_wayland"
LABEL="gdm_nomodeset_end"
KERNEL!="nvidia_drm", GOTO="gdm_nvidia_drm_end"
SUBSYSTEM!="module", GOTO="gdm_nvidia_drm_end"
ACTION!="add", GOTO="gdm_nvidia_drm_end"
ATTR{parameters/modeset}!="Y", GOTO="gdm_disable_wayland"
ATTR{version}=="4[0-6][0-9].*|[0-3][0-9][0-9].*|[0-9][0-9].*|[0-9].*", GOTO="gdm_disable_wayland"
ATTR{version}=="[5-9][1-9][0-9].*", GOTO="gdm_end"
GOTO="gdm_prefer_xorg"
LABEL="gdm_nvidia_drm_end"
- 注销,然后右下角勾选wayland登陆即可。
- 登陆后分辨率异常,需要重新安装一下英伟达wayland驱动,然后重启即可。
sudo apt install libnvidia-egl-wayland-dev libnvidia-egl-wayland1
sudo reboot now