openSUSE 13.1 KDE inconsistant resume from Suspend to RAM

Greetings,

I am running openSUSE 13.1 (Linux 3.11.6-4-desktop) with KDE 4.12.1 on a Dell Latitude D630 with the Nvidia G86M Quatro NVS 135M (driver version 331.38). I have not ever had any suspend to RAM issues with openSUSE but it seems that my system is having issue returning from Suspend to RAM. Sometimes, it works without any issues. Sometimes, I turn it back on and the X has been reset so I am looking at the KDM log-in screen. Other times, when it resumes, the screen is black or doing crazy things. I can keystroke the Desktop effects (Alt+Shift+F12) off and back on again and all is well. I have also determined that if I don’t use desktop effects, there are no problems. This leads me to believe it is either a problem with KDE or the Nvidia drivers.

The workaround I would like to implement is to just have KDE kill the Desktop Effects prior to going into Sleep mode. This way, when I’m on battery power and have walked away from the computer it won’t hibernate and screw up any work I have pending.

I have been looking for the scrip that controls the “Sleep” in KDE but I can’t find anything definitive for this.

I’m assuming that this is the command that KDE executes to suspend the computer:

qdbus org.kde.kded /org/freedesktop/PowerManagement Suspend

but where the script is for that command is a mystery.

Ouput from upower -d:

Device: /org/freedesktop/UPower/devices/line_power_AC
  native-path:          AC
  power supply:         yes
  updated:              Tue 21 Jan 2014 02:28:29 PM EST (1107 seconds ago)
  has history:          no
  has statistics:       no
  line-power
    online:             no

Device: /org/freedesktop/UPower/devices/battery_BAT0
  native-path:          BAT0
  vendor:               SMP
  model:                DELL PD
  serial:               1
  power supply:         yes
  updated:              Tue 21 Jan 2014 02:46:33 PM EST (23 seconds ago)
  has history:          yes
  has statistics:       yes
  battery
    present:             yes
    rechargeable:        yes
    state:               discharging
    energy:              33.0003 Wh
    energy-empty:        0 Wh
    energy-full:         65.268 Wh
    energy-full-design:  73.26 Wh
    energy-rate:         21.9003 W
    voltage:             10.767 V
    time to empty:       1.5 hours
    percentage:          50%
    capacity:            89.0909%
    technology:          lithium-ion
  History (charge):
    1390333563  50.000  discharging
  History (rate):
    1390333593  21.900  discharging
    1390333563  20.679  discharging
    1390333533  18.881  discharging
    1390333503  19.014  discharging

Daemon:
  daemon-version:  0.9.23
  can-suspend:     yes
  can-hibernate:   yes
  on-battery:      yes
  on-low-battery:  no
  lid-is-closed:   no
  lid-is-present:  yes
  is-docked:       no

Any help is greatly appreciated.
-Nathan

I have a very simliar problem: Sometimes (depending on the mood of the system devil) and in fact most of the times, suspending to ram and resuming logs me out: When I resume, I see a bare KDM login screen, as if I had just completely booted my computer. Of course all my open applications are closed and unsaved data is lost. Should we file a bug report for this?

I have been having this exact same problem since I installed OpenSUSE 13.1. Prior to 13.1, I never encountered this issue and it only started occurring after I started using driver version 331.38 with OpenSUSE 13.1. I solved this problem by simply reinstalling the nVidia drivers. That is, using zypper or YaST, simply reinstall x11-video-nvidiaG03, nvidia-computeG03, nvidia-gfxG03-kmp-desktop and nvidia-glG03. Furthermore, I noticed that the problem will reoccur whenever there is a kernel update. So, for some reason, when a new kernel is installed or updated, the nVidia driver is apparently not being recompiled properly since simply reinstalling the nVidia modules afterwards (which recompiles them) then solves the problem.

futureboy and codester, please reply to confirm whether reinstalling the drivers solves your problem. If reinstalling the nVidia drivers fixes your installations then my hunch is probably correct that the problem is related to kernel installation/reinstallation/compilation and I will file a bug on this issue.

If you installed the nvidia driver using the RPMs, a kernel update should not have any negative impact. I never had any trouble here.
But I could imagine something like this if you have both G02 and G03 packages installed, or more than one kernel flavor.

So please check:

rpm -qa | grep -e "(kernel|nvidia)"

Hi wolfi323,

Thanks for replying!

rpm -qa | grep -e "(kernel|nvidia)"

does not produce any output. However,

rpm -qa | grep -E "(kernel|nvidia)"|sort

produces:
kernel-default-devel-3.11.10-7.1.x86_64
kernel-default-devel-3.11.6-4.1.x86_64
kernel-desktop-3.11.10-7.1.x86_64
kernel-desktop-3.11.6-4.1.x86_64
kernel-desktop-devel-3.11.10-7.1.x86_64
kernel-desktop-devel-3.11.6-4.1.x86_64
kernel-devel-3.11.10-7.1.noarch
kernel-devel-3.11.6-4.1.noarch
kernel-firmware-20130714git-2.5.1.noarch
kernel-source-3.11.10-7.1.noarch
kernel-source-3.11.6-4.1.noarch
nvidia-computeG03-331.38-23.1.x86_64
nvidia-gfxG03-kmp-desktop-331.38_k3.11.6_4-23.1.x86_64
nvidia-glG03-331.38-23.1.x86_64
x11-video-nvidiaG03-331.38-23.1.x86_64

So, I only have the G03 nVidia package installed, however, I do have several kernels installed. Could the multiple kernels be the problem? I thought that it was ok to keep several kernel versions. If not, then please explain and recommend what to delete.

Thanks again,

Gordon

Oops, sorry. Typo…

So, I only have the G03 nVidia package installed, however, I do have several kernels installed. Could the multiple kernels be the problem? I thought that it was ok to keep several kernel versions. If not, then please explain and recommend what to delete.

Hm, that looks fine.
The multiple kernels should not be a problem, that’s normal and works fine here.
FYI kmp packages only install the kernel module for one particular kernel and create symlinks for the other ones. That’s why they only work with the standard kernels included in openSUSE, and not if you install 3.13 f.e.

Hm, no idea then what’s the issue.
I am aware of a problem in creating the necessary symlink when certain kernel modules are installed, vmware f.e.
But I guess in that case, re-installing the nvidia module wouldn’t help either. Or maybe it would, because maybe the module would be installed for the running kernel and symlinks created for the others only? Not sure atm.

You might want to remove the kernel-default-devel packages though. They shouldn’t cause a problem, but take up unnecessary disk space of course.
Either in YaST, or with:

sudo zypper rm kernel-default-devel

Hi wolfi323, thanks for the prompt reply. I went ahead and deleted the kernel-default-devel packages as you recommended and left everything else alone. BTW, I also have virtualbox installed. So, could this problem be related to virtualbox? However, FWIW, I had to recently reinstall/recompile virtualbox with the new 3.11.10 kernel and it did not appear to cause the problem related to resuming from sleep/standby that this thread talks about so I don’t think that is the issue. However, after installing the new kernel, I did need to reinstall the nvidia drivers in order to get sleep/standby to reliably resume after which I reinstalled virtualbox with:

sudo /etc/init.d/vboxdrv setup

and everything appears to be working properly.

Gordon

No, VirtualBox should not cause this, at least not the openSUSE KMP packages. I’m not sure about the manually compiled modules though, they just might indeed cause that.

If you installed VirtualBox from their website or using the Oracle RPMs, you have to recompile them after any kernel update (with “sudo /etc/init.d/vboxdrv setup”), like any other self-compiled kernel modules.

You could just as well use openSUSE’s packages, they would definitely cause no problem with the nvidia driver and would work even after a kernel update.
If you want to try that, you should uninstall the Oracle version first and then install those packages:
virtualbox-host-kmp-desktop, virtualbox, virtualbox-qt
openSUSE 13.1 includes the version 4.2.18, if you want a newer version you should add the Virtualization repo first, in YaST->Software Repositories->Add->Community Repositories.
That repo contains version 4.3.6 at the moment, and should be updated to the latest version regularly (although they tend to lag behind a bit).

I have said “good” virtualbox packages installed (rpm from OBS) and am experiencing the issue on my desktop as well as on my netbook. My kernel and nvidia packages seem to be equivalent to what’s considered “good” also.
However the problem has not occured since I turned my desktop effects off.

Yes, I would suppose that.
Without desktop effects, KDE has of course less requirements on the graphics driver. So if the nvidia driver is not working correctly, disabling desktop effects should cure most problems.

But that doesn’t fix the underlying issue of course.
In your case, apparently X is crashing on resume.

Does it help if you reinstall the nvidia driver like gldickens3 suggested?

It would be nice if you would post /var/log/Xorg.0.log.old immediately after you re-login after such a crash. Maybe that would contain a clue.

The resume from sleep/suspend problem has reared its ugly head again on my laptop. I reinstalled the nVidia drivers two days ago and did not have any problems until this morning when it would not resume from sleep/suspend with alot of garbage on the screen. So, apparently, reinstalling the driver is not a permanent fix although it appeared to fix this issue for over a dozens sleep/suspend sessions. The problem has reappeared for all three times that I have tried to resume from sleep/suspend so far today.

I think that I am going to uninstall the nVidia drivers and go back to Nouveau.

FYI,

Gordon

Ok, I would say then that it’s not related to an incomplete nvidia driver installation. That re-installing the driver helped might be a coincidence. Maybe the problem just happens randomly?

Some things to try before going back to nouveau:

  • Install pm-utils if it’s not installed, or uninstall it if installed. (the might work better or worse for your system)

  • In my BIOS settings I have an option “Repost Video on S3 Resume” which influenced working resume for me in the past.
    Look if you have a similar setting and try to toggle it.
    I haven’t had to play with this setting for a while now, but whether resume worked with On or Off even changed between different kernel versions AFAIR.

  • Try to reload the nvidia kernel module on resume, by creating a file /etc/pm/sleep.d/99nvidia with the following content:

#!/bin/bash

. $PM_UTILS_LIBDIR/functions


case "$1" in
        hibernate|suspend)
                        rmmod nvidia

                ;;

        thaw|resume)

                        modprobe nvidia

                ;;
        *)
                ;;
esac


exit 0

You would need to have pm-utils installed for that to work I think, and don’t forget to make it executable:

sudo chmod +x /etc/pm/sleep.d/99nvidia

Hi wolfi323,

Thanks for the suggestions! I have a busy work schedule this week and had therefore already uninstalled the nVidia drivers and am currently running with Nouveau. Later this week, when I have more time, I will reinstall the nVidia drivers and try out your suggestions. I will let you know how it goes.

Thanks again.

Gordon

Huh, I thought we had already ruled this out as not working reliably?

No, not at that point. A broken nvidia installation can of course cause an X crash after resume, but I guess you would have other issues as well then.

gldickens3 posted that a driver re-installation fixed the issue for him, so I wanted to know if you tried that as well already.
But meanwhile this just seems to have been coincidence anyway.
The issue seems to be a bit random.

So, do you have a problem on every resume, or does it only happen sporadically?

You could try the other things I suggested. (pm-utils, that sleep/resume script, BIOS settings)

Yes, it happens sporadically and I would say most of the times the resume fails.

I don’t think a have such a BIOS switch, but I’m gonna check during my next reboot. I just uninstalled pm-utils and will see what this does. If it doesn’t help I’ll reinstall it and try the resume script (which, as I understood it, requires pm-utils).

In that case it cannot be caused by a broken nvidia driver installation of course.

If it doesn’t help I’ll reinstall it and try the resume script (which, as I understood it, requires pm-utils).

That’s correct, yes.
AFAIK systemd does have a similar feature (i.e. to run scripts on suspend/hibernate/resume), but I don’t know atm where they should be placed or how they should look like. I think I’ve read that the plan is to drop pm-utils completely for the next openSUSE release, so I guess I should find out anyway. I need such a script for my TV card… :wink:

For future reference:
systemd expects those scripts in /usr/lib/systemd/system-sleep/ (and /etc/systemd/system-sleep/ I suppose).
Something like this should do without pm-utils:

#!/bin/sh
case $1 in
  pre)
    rmmod nvidia
  ;;
  post)
    modprobe nvidia
  ;;
esac

I just tried this, and the script(s) have to be in /usr/lib/systemd/system-sleep/.

/etc/systemd/system-sleep/ DOES NOT work.

Otherwise the script I posted should work fine with pm-utils uninstalled.

Hi,
I am having the same problem (KDE inconsistant resume from Suspend to RAM) but I am running opensuse 13.1 on a HP laptop with intel graphics, that is no nvidia involved.