wayland with Nvidia
环境:thinkpad l14
安装了nvidia驱动:550.54
启用wayland :安装plasma-wayland-session qt5-wayland qt6-wayland xorg-xwayland egl-wayland 等
在wayland下,optimus-manager不能使用,默认intel集显,开启nvidia模块
File: /etc/dracut.conf.d/nvidia.conf
───────┼────────────────────────────────────────────────────────────────────────────
force_drivers+=" nvidia nvidia_modeset nvidia_uvm nvidia_drm "
手动增加启动项参数,例如在archlinux下: /etc/kernel/cmdline 文件中增加 fbdev=1 nvidia-drm.modeset=1
使用reinstall-kernel 重新编译initrd,设置内核启动项参数,或者使用其他工具。
重启后能启动nvidia显卡驱动:
lsmod |rg nvidia
nvidia_drm 122880 5
nvidia_uvm 6631424 0
nvidia_modeset 1605632 3 nvidia_drm
video 77824 3 thinkpad_acpi,i915,nvidia_modeset
nvidia 60362752 64 nvidia_uvm,nvidia_modeset
重启前,需要设置sddm的wayland支持:
│ File: /etc/sddm.conf.d/10-wayland.conf
───────┼────────────────────────────────────────────────────────────────────────────
[General]
DisplayServer=wayland
GreeterEnvironment=QT_WAYLAND_SHELL_INTEGRATION=layer-shell
[Wayland]
CompositorCommand=kwin_wayland --drm --no-lockscreen --no-global-shortcuts --locale1 --inputmethod qtvirtualkeyboard
另外,xinput的环境变量需要注销,增加GBM backend 的设置,在系统环境变量配置文件中加入下列环境变量,例如在archlinux的/etc/environment的文件中
QT_QPA_PLATFORMTHEME="wayland;xcb"
QT_IM_MODULE=fcitx
GTK_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
GBM_BACKEND=nvidia-drm
__GLX_VENDOR_LIBRARY_NAME=nvidia
ENABLE_VKBASALT=1
LIBVA_DRIVER_NAME=nvidia
注意
启用后fctix5会提示删除环境变量 GTK_IM_MODULE=fcitx 和 QT_IM_MODULE=fcitx
但是一些应用还在使用xserver,删除后fcitx无法在这些应用中启动,所以建议保留这两个环境变量
参考链接
https://www.maketecheasier.com/wayland-work-with-nvidia-graphics-cards/
https://wiki.archlinux.org/title/Dracut
https://wiki.archlinux.org/title/NVIDIA#DRM_kernel_mode_setting