You are not logged in.
Hello fellow Arch users,
I'm encountering an issue where I'm unable to use GNOME gestures, particularly workspace switching using three fingers and sliding three fingers up for searching apps. After some research, I found that this might be because I'm using the `x11` display server protocol instead of `Wayland`.
I've been following the Arch Linux guide on Wayland, which mentions that NVIDIA Driver DRM needs to be enabled for Wayland to work properly with NVIDIA graphics cards, Here is the reference. However, even after running the command
modprobe nvidia_drm modeset=1, the output of
sudo cat /sys/module/nvidia_drm/parameters/modesetremains N, indicating that modesetting is not enabled.
I have installed the nvidia and nvidia-lts packages. Additionally, I've included the necessary NVIDIA modules in /etc/mkinitcpio.conf. Here's the relevant content:
# vim:set ft=sh
# MODULES
# The following modules are loaded before any boot hooks are
# run. Advanced users may wish to specify all system modules
# in this array. For instance:
# MODULES=(usbhid xhci_hcd)
MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm)
# BINARIES
# This setting includes any additional binaries a given user may
# wish into the CPIO image. This is run last, so it may be used to
# override the actual binaries included by a given hook
# BINARIES are dependency parsed, so you may safely ignore libraries
BINARIES=()
# FILES
# This setting is similar to BINARIES above, however, files are added
# as-is and are not parsed in any way. This is useful for config files.
FILES=()
# HOOKS
# This is the most important setting in this file. The HOOKS control the
# modules and scripts added to the image, and what happens at boot time.
# Order is important, and it is recommended that you do not change the
# order in which HOOKS are added. Run 'mkinitcpio -H <hook name>' for
# help on a given hook.
# 'base' is _required_ unless you know precisely what you are doing.
# 'udev' is _required_ in order to automatically load modules
# 'filesystems' is _required_ unless you specify your fs modules in MODULES
# Examples:
## This setup specifies all modules in the MODULES setting above.
## No RAID, lvm2, or encrypted root is needed.
# HOOKS=(base)
#
## This setup will autodetect all modules for your system and should
## work as a sane default
# HOOKS=(base udev autodetect modconf block filesystems fsck)
#
## This setup will generate a 'full' image which supports most systems.
## No autodetection is done.
# HOOKS=(base udev modconf block filesystems fsck)
#
## This setup assembles a mdadm array with an encrypted root file system.
## Note: See 'mkinitcpio -H mdadm_udev' for more information on RAID devices.
# HOOKS=(base udev modconf keyboard keymap consolefont block mdadm_udev encrypt filesystems fsck)
#
## This setup loads an lvm2 volume group.
# HOOKS=(base udev modconf block lvm2 filesystems fsck)
#
## This will create a systemd based initramfs which loads an encrypted root filesystem.
# HOOKS=(base systemd autodetect modconf kms keyboard sd-vconsole sd-encrypt block filesystems fsck)
#
## NOTE: If you have /usr on a separate partition, you MUST include the
# usr and fsck hooks.
HOOKS=(base udev autodetect microcode modconf kms keyboard keymap consolefont block filesystems fsck)
# COMPRESSION
# Use this to compress the initramfs image. By default, zstd compression
# is used. Use 'cat' to create an uncompressed image.
#COMPRESSION="zstd"
#COMPRESSION="gzip"
#COMPRESSION="bzip2"
#COMPRESSION="lzma"
#COMPRESSION="xz"
#COMPRESSION="lzop"
#COMPRESSION="lz4"
# COMPRESSION_OPTIONS
# Additional options for the compressor
#COMPRESSION_OPTIONS=()
# MODULES_DECOMPRESS
# Decompress kernel modules during initramfs creation.
# Enable to speedup boot process, disable to save RAM
# during early userspace. Switch (yes/no).
#MODULES_DECOMPRESS="yes"Also, Here's my /etc/gdm/custom.conf file:
# GDM configuration storage
[daemon]
# Uncomment the line below to force the login screen to use Xorg
#WaylandEnable=false
[security]
[xdmcp]
[chooser]
[debug]
# Uncomment the line below to turn on debugging
#Enable=trueLast edited by DMakwana (2024-03-19 03:47:56)
Offline
For NVIDIA driver version < 545 or when not also using fbdev=1, the nvidia_drm.modeset=1 option must be set through kernel parameters, in order to disable simpledrm [1] (for more information, refer to FS#73720).
Offline
Thanks for the reply, I have set the parameter fbdev=1 using modset.I am using Driver version: 550.54.14. Here's the output of nvidia-smi:
Sat Mar 9 08:27:00 2024
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 550.54.14 Driver Version: 550.54.14 CUDA Version: 12.4 |
|-----------------------------------------+------------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA GeForce GTX 1050 Ti Off | 00000000:01:00.0 Off | N/A |
| N/A 40C P8 N/A / ERR! | 4MiB / 4096MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| 0 N/A N/A 1988 G /usr/lib/Xorg 4MiB |
+-----------------------------------------------------------------------------------------+Last edited by DMakwana (2024-03-09 13:39:34)
Offline
You don't set fbdev with modset (and you shouldn't set fdev anyway currently) and the parameter name on the kernel commandline is nvidia-drm.modeset=1
Even after setting that correctly, there are additional stipulations for GDM in particular: https://wiki.archlinux.org/title/GDM#Wa … DIA_driver
Offline
Thanks for the reply V1del. Actually I tried setting modeset from GRUB. and it actually worked. The file /sys/module/nvidia_drm/parameters/modeset now contains Y. But even then three finger gestures are not working. The output of
echo $XDG_SESSION_TYPEis still x11. I tried troubleshooting using this as you suggested. Here's content of my /etc/default/grub.
# GRUB boot loader configuration
GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="Arch"
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet nvidia_drm.modeset=1 nvidia.NVreg_PreserveVideoMemoryAllocations=1"
GRUB_CMDLINE_LINUX=""
# Preload both GPT and MBR modules so that they are not missed
GRUB_PRELOAD_MODULES="part_gpt part_msdos"
# Uncomment to enable booting from LUKS encrypted devices
#GRUB_ENABLE_CRYPTODISK=y
# Set to 'countdown' or 'hidden' to change timeout behavior,
# press ESC key to display menu.
GRUB_TIMEOUT_STYLE=menu
# Uncomment to use basic console
GRUB_TERMINAL_INPUT=console
# Uncomment to disable graphical terminal
#GRUB_TERMINAL_OUTPUT=console
# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `videoinfo'
GRUB_GFXMODE=auto
# Uncomment to allow the kernel use the same resolution used by grub
GRUB_GFXPAYLOAD_LINUX=keep
# Uncomment if you want GRUB to pass to the Linux kernel the old parameter
# format "root=/dev/xxx" instead of "root=/dev/disk/by-uuid/xxx"
#GRUB_DISABLE_LINUX_UUID=true
# Uncomment to disable generation of recovery mode menu entries
GRUB_DISABLE_RECOVERY=true
# Uncomment and set to the desired menu colors. Used by normal and wallpaper
# modes only. Entries specified as foreground/background.
#GRUB_COLOR_NORMAL="light-blue/black"
#GRUB_COLOR_HIGHLIGHT="light-cyan/blue"
# Uncomment one of them for the gfx desired, a image background or a gfxtheme
#GRUB_BACKGROUND="/path/to/wallpaper"
#GRUB_THEME="/path/to/gfxtheme"
# Uncomment to get a beep at GRUB start
#GRUB_INIT_TUNE="480 440 1"
# Uncomment to make GRUB remember the last selection. This requires
# setting 'GRUB_DEFAULT=saved' above.
#GRUB_SAVEDEFAULT=true
# Uncomment to disable submenus in boot menu
#GRUB_DISABLE_SUBMENU=y
# Probing for other operating systems is disabled for security reasons. Read
# documentation on GRUB_DISABLE_OS_PROBER, if still want to enable this
# functionality install os-prober and uncomment to detect and include other
# operating systems.
#GRUB_DISABLE_OS_PROBER=falseI also enabled all the services (nvidia-suspend.service, nvidia-hibernate.service, and nvidia-resume.service). Even then it didn't work. I then created symlink using
ln -s /dev/null /etc/udev/rules.d/61-gdm.rules. Even after that it's not working. Please, help me figure this out. Appreciate your effort to help a fellow arch user. Thanks.
Offline
The main thing is you need to be able to launch a wayland session. with the /dev/null symlink in place you should get a selection for Wayland in GDM, is that not the case? Can you force it via config? https://wiki.archlinux.org/title/GDM#Use_Xorg_backend (as an example, in your case you want to enable wayland)
Maybe also post
sudo journalctl -bafter logging in.
Offline
Thanks for your reply, I am not sure how to check if I am able to launch wayland session. At the logging screen I see only two options Gnome and Gnome classic. Here is the output of
sudo journalctl -b.
Offline
Hi, It seems to have resolved. I don't know how though. The only unusual thing that I did was
sudo ln -s /usr/lib/libalpm.so.14.0.0 /usr/lib/libalpm.so.13. Because yay was not working properly. No idea if it's related or not. Anyway thanks for the support.
Last edited by DMakwana (2024-03-19 03:38:36)
Offline
It's absolutely not related and you should not be doing that. Update yay properly and remove that symlink.
Offline