Well, there is /etc/modules-load.d/mhwd-gpu.conf
which provides loading:
nvidia
nvidia-drm
So, my question is the kernel parameter nvidia-drm.modeset=1 just another way to load nvidia-drm or something else? If this is the same, this would explain why adding it to GRUB was causing some conflicts.
As to optimus-mangager, it was a bit hacky, but not as much. The base thing it provided was driver configs in /etc/X11/xorg.conf.d/ that could be switched during session reload. So nothing too complicated. Of course, it provided various nvidia offload methods, so those things were saved in another config or provided within graphic config in /etc/X11/xorg.conf.d/. Additionally, nowadays, where there are no graphical configs, in /etc/X11/xorg.conf.d/, it all still works by using defaults. Optimus-manager provided with excellent and issue free experience, so let’s not demonize it. The problem is, that it isn’t developed anymore and things are changing. Wayland a few years ago was not the same thing. My old graphical configs are not working well now. In the past, I could revert optimus-manager and use my old configs and didn’t care about Wayland. Now, it’s a bit different. So some things optimus-manager did incredibly right if all was working so well. Now I have to recreate it more statically (permanent hybrid setup), but even using the same configs as optimus-manager provided, isn’t doing the same thing, so I am still missing something. Because the issue is basically with Wayland and this is dependent on kernel mode settings, the resolution lies probably there.
I have /etc/X11/xorg.conf.d/90-mhwd.conf
symlink which points to /etc/X11/mhwd.d/nvidia.conf
, which is empty, because MHWD uses defaults. As I understand, this nvidia.conf is there only to pass through some nvidia settings from nvidia-settings tool, as described on MHWD documentation page. I don’t think it’s relevant here, because those are still X11 settings, not Wayland ones. Also, as said earlier, specific xorg settings are not needed, because modern DEs configure monitors differently and if there is no need for very specific and unusual settings, those are not needed.
I’m not offended. In this topic here, I asked for a very specific answer and I didn’t get it and those links are not showing it either, at least not directly. I have to study all graphical articles to make a head or tail out of this, so this isn’t that much helpful here. It’s like asking for a specific recipe, and you gave me some cookbook with general rules that doesn’t have this recipe (one could possibly figure it out, but it requires a long process of learning and experimenting). However, I understand, that you just wanted to be helpful and counted that I will figure it out myself using those links.
Anyway, forget about those and focus about me understanding nvidia-drm.modeset=1, so I could figure it out. This is very confusing to have kernel parameters, kernel modules (which can be added in multiple places), kernel mode settings - my head spins. I need to analyze it one thing at a time.
Kernel modules seem to be obvious. Those are run through confs in /etc/modules-load.d/
, although modules are also mentioned in /etc/mkinitcpio.conf. Are those simply alternatives or working differently?
Kernel parameters seem to be a complex thing and can be put in various places.
Kernel mode settings - so far I don’t understand what I read. It just doesn’t make any connections to me, because I miss some ground knowledge. I’ll try to study it further. My basic question here would be: is Wayland using Kernel KMS or Nvidia’s own KMS?
Wiki says:
" The proprietary NVIDIA driver supports KMS (since 364.12), which has to be [manually enabled."
This leads me to this section:
To enable DRM ([Direct Rendering Manager], set modeset=1
and fbdev=1
[kernel module parameters]for the nvidia_drm
module.
If I read this right: to set this KMS, one needs to set parameter for kernel module in /etc/modprobe.d/
.
Syntax is: options module_name parameter_name=parameter_value
What is the module name then in my case?
So far I know I should use
options nvidia_drm modeset=1 fbdev=1
This can be put in any conf in this location, so can I put it in /etc/modprobe.d/mhwd-gpu.conf
?
Or maybe it is better to create own config, so it wouldn’t be overridden by MHWD?
Also, various interactions between those elements make it all more complicated.