HDMI in openSUSE 15.1 running drivers NVIDIA

Hi everyone:

I wrote this post in spanish on forosuse.org but I decided to post it here in order to help some people with the same problem I had.

This is about how to connect a HDMI display using drivers NVIDIA on openSUSE 15.1 running GNOME 3.26.2.

My display was detected by using the command:


xrandr --listmonitors
 Monitors: 2
 0: +*eDP-1-1 1920/344x1080/193+0+0  eDP-1-1
 1: +HDMI-0 1600/432x900/240+1920+0  HDMI-0

I want to remark that my display was only detected after the correct configuration of drivers. Even I saw my display listed just before installing drivers from openSUSE repositories, when I only had the nouveau drivers.

My laptop is an Ideapad L340 Gaming with graphic card NVIDIA:


lspci
00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 630 (Mobile)
01:00.0 VGA compatible controller: NVIDIA Corporation GP107M [GeForce GTX 1050 3 GB Max-Q] (rev a1)

I tried using Bumblebeed drivers but only got a crashed Gnome. So I had to install openSUSE 15.1 again. During installing and just before the installation begins, YaST asked me to install the nouveau drivers and I said NO. Anyway, some of this pakages were installed. After installation I proceeded with installation of drivers NVIDIA from openSUSE reposotories (https://en.opensuse.org/SDB:NVIDIA_drivers). In the page there are some instructions for newly openSUSE releases. After I added the repositorie and trusted the keys, I opened YaST package manager and appeared several packages ready to be installed. Among them, the packages nvidia-glG05 y suse-prime were listed. Then, I accepted the installation of all these packages.

After the installation, a new application was installed: “NVIDIA X Server Settings” but it could not be lanched. Just nothing happened when clicked over it. In order to know what was happening, I opened a console and wrote:


nvidia-smi

and the result was this:


+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.100      Driver Version: 440.100      CUDA Version: 10.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 1050    Off  | 00000000:01:00.0  On |                  N/A |
| N/A   47C    P0    N/A /  N/A |    343MiB /  3020MiB |      2%      Default |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      1772      G   /usr/bin/X                                    46MiB |
|    0      1804      G   /usr/bin/gnome-shell                          18MiB |
|    0      2006      G   /usr/bin/X                                   116MiB |
|    0      2418      G   /usr/bin/gnome-shell                         155MiB |
|    0      3182      G   ...e/carlos/Documentos/firefox/firefox-bin     1MiB |
|    0     20153      G   nvidia-settings                                0MiB |
+-----------------------------------------------------------------------------+

This means the system recognized my NVIDIA card. The application “NVIDIA X Server Settings” can be launched from a console by

nvidia-settings

but I only got this error message:


nvidia-settings ERROR: Unable to load info from any available system

According with this source (https://en.opensuse.org/SDB:NVIDIA_troubleshooting) this error implies that my system is working with another card (in my case: Intel) instead of NVIDIA card. In order to make the system works with my NVIDIA card, I wrote in a console:


prime-select nvidia 

and then closed GNOME session. After logging, the application “NVIDIA X Server Settings” was able to be launched and the best part was the system finally recognized my HDMI monitor. These changes are persistent, this means they remain after reboot. For changing from NVIDIA to Intel just write in a console:


prime-select intel

I really don’t know if this procedure works on openSUSE 15.2 or it works with the nouveau drivers unlocked. As I mentioned above, during openSUSE installation I did not installed the nouveau drivers, but the system installed some of these packages. However, the Mesa-dri-nouveau package is locked and were not installed as product of this configuration during openSUSE installation. In addition, before installing drivers for NVIDIA from openSUSE repository I uninstalled xf86-video-nouveau package because it caused a crash on GNOME session just after connecting HDMI cable. This is why I am not sure if the configuration of both packages Mesa-dri-nouveau and xf86-video-nouveau is relevant with the final result.

Finally, I hope this can help someone with this problem. I spent several hours seeking for a solution. There are some others solution out there but this worked good for me.

No one ever has only nouveau drivers in a system with working X unless there is no NVidia GPU in the system. The upstream default DDX, modesetting, is provided by the server package, so cannot be not installed unless there is no X server installed. The kernel nouveau driver is provided by each individual kernel package, so it too is always installed. The nouveau DDX, which is a reverse-engineered creation requiring separate agreement with its license terms, and is provided by xf86-video-nouveau, is not required to be installed for the modesetting DDX to load, but nomodeset will prevent the modesetting DDX from loading. Thus, neither NVidia’s proprietary drivers, nor the nouveau DDX, is required for X functionality with NVidia GPUs that are neither too old nor too new for support by the upstream default DDX.

Thanks for sharing that. I don’t have this hardware myself, but various approaches are always good to know.

Thank you for your explanation. Now I have a better understanding about what happened. lol!

Oh yes, and I would love there were more approaches or solutions out there for us. However, even with this kind of problems, I will never stop using openSUSE.rotfl!

UPDATE:

Recently I’ve updated my installation from openSUSE 15.1 to 15.2 version. I made it through “Update” option using an USB media.

In the first reboot after installation, my HDMI display worked properly. But after some reboots, the connection with HDMI display was lost. I tried to solve this situation as follows:

  1. I tried to achieve recognition of my NVIDIA card: First, the “nvidia-smi” command showed the information about my NVIDIA card, but “nvidia-settings” displayed the next message: ERROR: Unable to find display on any available system. I uninstalled the drivers and installed them again, but nothing got better.

  2. Then, I tried to install the drivers using openSUSE 15.1 NVIDIA repositories because these worked fine to me in the past. It did not work this time.

  3. Finally, I made a clean installation of openSUSE 15.2 and after that, the display worked automatically. Prior the installation was performed, I did not installed the nouveau drivers for NVIDIA. My HDMI display was connected during over installation process. After some reboots, the display was continuously detected and worked fine. So I tried to install the NVIDIA drivers from openSUSE 15.2 repositories. The result was a lost of connection with HDMI display. I had to reinstall openSUSE 15.2 again (this was the easiest way to me in order to get my display working).

Conclusion: in my case, I had not to install NVIDIA drivers to get connection with my HDMI display because openSUSE 15.2 configure it automatically. However, the configuration of NVIDIA card was not possible due to error mentioned above. My aim was to get signal on my HDMI display and I got it, so I decided to solve this error in another day.