DKMS Configuration+Nvidia & Flicker After Resume


The card is a ASUS GTX 760. I’m new to SUSE and have been using Mageia that comes configured to use DKMS for the video driver and it just worked, so I’ve never had to fix, install or configure DKMS. I installed DKMS in TW but I read I need to activate it and it appeared I need to tell it which modules I wanted it to compile. As usual, I found some old and some newer instructions. Since this is my video I don’t want to mess this one up, wifi would be different. I’m comfortable compiling a driver module and did it many times on Magiea, but I’m not familiar enough with SUSE to know how dependable the driver through YaST is, and if it’s worth using DKMS.

The Flicker
But right now, I have a problem I’d like to try to fix and that’s screen flickering after resuming from suspend. Restarting Plasma doesn’t fix it, only restarting X cures it (logout and back in). I sure wish I had something like the old Compiz icon to reset the whole deal but I haven’t found anything like that. I was using a DKMS compiled driver for my GTX760 in Mageia 6 and didn’t have this problem, so I believe I can go back to that driver or another one that might fix it. Of course, that’s assuming it is, in fact, the driver. I’m at the point where I need to try changing it to rule it out, one way or the other.

Q’s & The Rest
So what I need is good current instructions on how to install and configure DKMS and an opinion or two on how reliable the pre-compiled driver is through YaST. With changing kernels I’d think DKMS is the way to go but would like opinions. And if you know anything to check to stop the flicker, that’d be the solution I really need, at least for now, but I’d still like to get DKMS working.

I’ve checked the Xorg log and made sure OpenGL is working and that it’s loading the right drivers (all Nvidia). It does load some Nouveau drivers but spits them out from what I can tell. They are installed and I guess I need them at boot. I didn’t have anything but Nvidia installed in Mageia 5 and I didn’t dig into 6 at all because I switched to SUSE TW. I’m just now figuring out where a few things are located in Plasma because I was running KDE4 and all of my Plasma 5 experience has been on TW.

Sorry that’s so long but I wanted you to have a clear picture of where I’m at and my experience level. I’ve used Linux with KDE for over 20 years and SUSE and Plasma 5 are both new to me. In fact, I ran Mandrake, then Mandriva and then Mageia. That’s about it since the beginning, besides checking out a distro now and then, I never ran anything full time besides “M”. And thank you for your assistance, I really appreciate it.

I keep looking for the Sam question and the math quiz. I guess I’m past that! :wink:

What driver are you using?

Did you install the NVIDIA driver or are you using the default open source driver?

I’m sorry, I should’ve posted more info. During the install it installed the Nouveau driver, but I installed the Nvidia driver though YaST. I installed DKMS but it’s not configured to do anything yet. I don’t have another kernel to boot to because I did the updates during install. I should’ve thought to let it install an earlier version because I did read they’re removed from the server. I do have one on the disk because it was downloaded a week ago. I wish I had used it so I’d have it to test on, but I’m sure it’s possible to install it somehow.

**#** hwinfo --gfxcard                    
27: PCI 100.0: 0300 VGA compatible controller (VGA)              
  [Created at pci.378]
  Unique ID: VCu0.7+GWNrfJf55
  Parent ID: vSkL.IUgIixu3IW8
  SysFS ID: /devices/pci0000:00/0000:00:01.0/0000:01:00.0
  SysFS BusID: 0000:01:00.0
  Hardware Class: graphics card
  Model: "nVidia GK104 [GeForce GTX 760]"
  Vendor: pci 0x10de "nVidia Corporation"
  Device: pci 0x1187 "GK104 [GeForce GTX 760]"
  SubVendor: pci 0x1043 "ASUSTeK Computer Inc."
  SubDevice: pci 0x847a  
  Revision: 0xa1
  Driver: "nvidia"
  Driver Modules: "nvidia"
  Memory Range: 0xf6000000-0xf6ffffff (rw,non-prefetchable)
  Memory Range: 0xe8000000-0xefffffff (ro,non-prefetchable)
  Memory Range: 0xf0000000-0xf1ffffff (ro,non-prefetchable)
  I/O Ports: 0xe000-0xefff (rw)
  Memory Range: 0x000c0000-0x000dffff (rw,non-prefetchable,disabled)
  IRQ: 42 (4036183 events)
  I/O Ports: 0x3c0-0x3df (rw)
  Module Alias: "pci:v000010DEd00001187sv00001043sd0000847Abc03sc00i00"
  Driver Info #0:
    Driver Status: nouveau is not active
    Driver Activation Cmd: "modprobe nouveau"
  Driver Info #1:
    Driver Status: nvidia_drm is active
    Driver Activation Cmd: "modprobe nvidia_drm"
  Driver Info #2:
    Driver Status: nvidia is active
    Driver Activation Cmd: "modprobe nvidia"
  Config Status: cfg=no, avail=yes, need=no, active=unknown
  Attached to: #22 (PCI bridge)

Primary display adapter: #27

**#** cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX x86_64 Kernel Module  390.48  Thu Mar 22 00:42:57 PDT 2018
GCC version:  gcc version 7.3.1 20180323 [gcc-7-branch revision 258812] (SUSE Linux) 

You need to run the NVIDIA blob with the ‘–dkms’ option.

That’s just it, I don’t know how to do that. I have never had to install and configure DKMS before.
It appears you’re saying to run --dkms

but I’m not sure of that.

I did find your post from 2013, and the old SUSE link at Nvidia, and a few other posts.
Some instructions at Nvidia say to remove the old driver but that the newer drivers will do it for you.
Still, some other info at SUSE was for a laptop using DKMS and Bumblebee, something I assume I don’t need.
I haven’t found any instructions that are clearly marked as current and correct.
This is what I meant by old and new instructions that confuse me.

Because it’s the video I want to be certain that I don’t end up with no video at all,
locking myself out of the internet where I can’t get more info if I need it.
Which reminds me, I need to install Lynx, just in case, but I don’t know how well that
is maintained and if it’ll display modern web pages.
I’ve only used it in very limited circumstances, years ago.

Sorry to be such a pain.

Using the NVIDIA repository install or the manual install the hardway??

The repository will install DKMS. The hard way just add the option there is NO configuring to it just install it. Generally with NVIDIA it is best to uninstall the previous install before moving forward but since you have the same version(???) then it should not matter


According to the instructions I’ve found for DKMS you need to create a dkms.conf file for a module DKMS has never installed.

But according to Nvidia you will be given the chance to “register” the Nvidia kernel module with DKMS. Nvidia drivers older than 304 were not “DKMS aware” and there are specific instructions on using DKMS if you have one of those installed. I wanted to note that for others who may reads this.

Nvidia says “The installer will check for the presence of DKMS on your system. If DKMS is found, you will be given the option of registering the kernel module with DKMS, and using the DKMS infrastructure to build and install the kernel module”.

Nvidia’s instructions can be found here: Chapter 4. Installing the NVIDIA Driver

So I guess all I have to do is install DKMS and run the installer. It will ask if I want it to be registered with DKMS for future installs with different kernels. When I get to this and test it, I’ll report back. Right now I’m learning all about zypper because I’ve never used it before. It took me a while to find out how to reinstall a package that’s already installed (replace a package). You do that by adding -f with the install command, as in zypper in -f package-name.

Thanks guys for the help here and it appears gogalthorp was right, there isn’t really any configuration needed if you’re using a DKMS aware module. I did read some other info about wifi modules etc that said you need to create the dkms.conf file and explained how to do that. I’ll be back after I try this which may not be for awhile, I’m still configuring things I do know how to do, like my kmail, Darktable and color management, etc. I thought I had colord working but it wasn’t. It is now. I’m an amateur photographer so correct colors are important to me.

To begin, disable the SLE repos, and the Factory one.

I had to look up SLE, SUSE Linux Enterprise, right? I haven’t enabled any of those. And I don’t think I’ve added any of the factory repos. I haven’t enabled any of the development repos, nothing besides Pacman after the initial install. Here’s the list.

 | Alias                                  | Name                      | Enabled | GPG Check | Refresh
1 |         | nVidia Graphics Drivers   | Yes     | (r ) Yes  | Yes     
2 |          | Main Repository (NON-OSS) | Yes     | (r ) Yes  | Yes     
3 |              | Main Repository (Sources) | Yes     | (r ) Yes  | Yes     
4 |            | Main Repository (OSS)     | Yes     | (r ) Yes  | Yes     
5 |       | Main Update Repository    | Yes     | (r ) Yes  | Yes     
6 | openSUSE-20180425-0                    | openSUSE-20180425-0       | Yes     | (r ) Yes  | No      
7 | | libdvdcss repository      | Yes     | (r ) Yes  | Yes     
8 |   | Packman Repository        | Yes     | (r ) Yes  | Yes    

I’ve got a couple of drivers downloaded from Nvidia, 384.111, which I was using under Mageia 6 with no problems, and 396.24, the current official release. I’ve been busy installing VirtualBox and getting my old VM’s running. I wanted that configured to see if VirtualBox is going to be ok after a kernel upgrade. I’ve read about problems and I figure if I’m going to have one, let’s get started so I can learn to deal with that too.

So far everything is running really, good, I’m impressed, besides that flicker and a Plasma bug I found. Tumbleweed is absolutely a keeper and the more i use it the more I like it. I have a friend who installed TW when I did and he’s saying the same thing, he really likes it. If I get some time this after noon or this evening I’m going to change this Nvidia driver to the newer one first, and if I have problems I’ll install the one that did work. I was just looking over the Readme, the instructions, and the requirements for it when I decided to check in here.

I really appreciate the help guys and I’ll be ok with this, I’m just hoping it fixes the flicker. I’ve checked BIOS, driver options and everything I can think of so I think a driver change might do it. I’ll be back and let you know.

I may have this fixed. I’m not sure and I need to do more testing. I had this error in my Xorg.log file.

     6.593] (II) NVIDIA(0): ACPI: failed to connect to the ACPI event daemon; the daemon
     6.593] (II) NVIDIA(0):     may not be running or the "AcpidSocketPath" X
     6.593] (II) NVIDIA(0):     configuration option may not be set correctly.  When the
     6.593] (II) NVIDIA(0):     ACPI event daemon is available, the NVIDIA X driver will
     6.593] (II) NVIDIA(0):     try to use it to receive ACPI event notifications.  For
     6.593] (II) NVIDIA(0):     details, please see the "ConnectToAcpid" and
     6.593] (II) NVIDIA(0):     "AcpidSocketPath" X configuration options in Appendix B: X
     6.593] (II) NVIDIA(0):     Config Options in the README.

Since my problem is related to power management and suspending, I thought fixing this might help. It still had screen flickering today but it stopped on its own after a few seconds. Before, I had to logout and back in before it would stop. Still, I’m thinking it shouldn’t do it at all but if it stops I guess that’s ok. I’m going to go read more about what these acpid events are for or more to the point, what actions they trigger from the video card etc.

The above error is gone after installing the package “acpid” and the Xorg.log doesn’t mention acpid at all. The description for it is “Executes Actions at ACPI Events”. I also had to go to Services Manager in YaST and enable acpid. I clicked enable and start. Today, it still shows enabled and running so I’m assuming that’s the correct status for it. In Mageia we had enabled, disabled, and on demand as options for setting up a service, but I don’t see that here. The readme it speaks of says that /var/run/acpid.socket should exist and it does after installing and enabling the acpid package. I’m not sure what benefits this may provide to a desktop but I’m sure it’s useful in a laptop, so you may want to install and configure it.

This is the acpid section from Appendix B: X Config Options found here:

Option "ConnectToAcpid" "boolean"
The ACPI daemon (acpid) receives information about ACPI events like AC/Battery power, docking, etc. acpid will deliver these events to the NVIDIA X driver via a UNIX domain socket connection. By default, the NVIDIA X driver will attempt to connect to acpid to receive these events. Set this option to "off" to prevent the NVIDIA X driver from connecting to acpid. Default: on (the NVIDIA X driver will attempt to connect to acpid).

Option "AcpidSocketPath" "string"
The NVIDIA X driver attempts to connect to the ACPI daemon (acpid) via a UNIX domain socket. The default path to this socket is "/var/run/acpid.socket". Set this option to specify an alternate path to acpid's socket. Default: "/var/run/acpid.socket".

I thought I had it earlier with the acpid but it doesn’t do it all of the time, or not as bad anyway. Once it starts, the only way to fix it is logout and back in. I don’t know a way to restart X. kwin_x11 --replace fixes it but it doesn’t honor the theme and it doesn’t have any effects, which makes me think it may be SDDM.

I changed the driver from 390.48 that was installed though YaST to a manually installed 396.24. It’s still flickering when resuming from suspend. Everything in the logs is right and the correct drivers are being loaded. Nouveau and Glamour are blacklisted and I’m starting to think it’s something with Kernel 4.16, or a bug in Plasma’s compositor, or the display manager. If anyone has a clue, please post any ideas you have. I think I’ve got one of those cases where everything is installed correctly, but something just doesn’t get along together. I’m going to try BIOS settings related to sleep but there isn’t very many, and I tired them one at time, not in combination.

One last thing. I know this sounds crazy, but if I suspend and then resume right away, it doesn’t do it. I’m not sure what the time frame is, but if I leave it suspended for more than a minute or two, it flickers.

I’ve came to the conclusion that this flickering video problem is not the driver. It works perfect after booting, until you use suspend. After yesterday’s Plasma 5.12.5 update running “kwin_x11 --replace” fixes it without having to logout and back in. I just made a small bash script and put it on the desktop. I added it as a resume service to run after resume, but the timing isn’t right, so I’m just doing it manually until I get time to research it a bit more. Before the update kwin_x11 --replace killed the desktop effects and the theme wasn’t right. Today it works great and the only change was the update.

I couldn’t get the 384.111 driver to install. It failed with “see the log” and the log just ended with failed, so I didn’t pursue it further. Since reloading the window manager fixes it I believe something about the window manager isn’t being restored properly after resume. I can’t track it down to prove it, but the symptoms and work around all point to that. I’m still going to look around and see what I can find so I’ll post any new info I come up with, but right now that’s the best fix I’ve found.