3

I was happily using 14.04 with my Lenovo Y50. When I installed it, I had some troubles making my NVIDIA GeForce GTX 860M 2GB works with hardware acceleration, etc, but at the end everything was OK.

THIS WEEK (around 02/25/2015) an update destroyed this beautiful equilibrium: I can't resume after suspend and I can't plug or unplug my external monitor without having a weird problem:

  1. Desktop "moves" half of it size to the right.
  2. Mouse works, but I can't click on anything.

The only workaround is killing the Xorg, and loosing the session. What I tried, without success:

  1. Downgrade Compiz (the first suspect, it was upgraded this week). Nothing.
  2. Install ALL possible NVIDIA drivers:

    • Nouveau
    • Nvidia 304 & Nvidia 304 updates (blacklisting and purging nouveau)
    • Nvidia 331 & Nvidia 331 updates (both from repository and NVidea website, blacklisting and purging nouveau)
    • Nvidia 340 (from Xorg-edgers ppa). (blacklisting and purging nouveau)
    • In every case, I purged previous drivers before, reconfigure Xorg, etc, etc,etc.
  3. Reinstalling Unity and Ubuntu-desktop

I honestly don't know what else to do, but this situation it's very annoying. How can I resolve this issue?

3
  • Welcome to Ask Ubuntu! ;-) Did you try the 346 driver too? If yes, what command did you use to try it? – Fabby Feb 28 '15 at 21:03
  • Ey @Fabby, thanks for your anwser. Unfortunately, it didn't work. Black screen on login window, prime-select intel to see the login and then, if I plug or unplug my external screen, the same result: desktop gets weird and, even if I have the mouse pointer, I can't click on anything (desktop and top panel are moved to the middle of the screen). I installed 346 by apt-get... – miltonlaufer Mar 1 '15 at 10:00
  • Someone has an answer? I'm starting to consider going back to Windows... My laptop is like a brick if I can't suspend it :( – miltonlaufer Mar 2 '15 at 18:42
1

Same problem, here, last week my laptop LG with Intel Sandy Bridge and Nvidia GForce start freezing in the way you describe. In the past it could freeze from time to time. I move around with the laptop, so at home and work I use a dual screen but in the train (from home to work and back). I don't have the external display. ;-) Now every time I connect/disconnect the external display unity freezes.

My solution Ctrl+Alt+F1:

setsid unity

This allows Unity to be responsive again, but I miss the menu bar. Then I open a terminal in Unity and put again

setsid unity

and it works till the next time I unplug/plug the dual screen.

I'm also thinking to move away from unity, but I need to find a good desktop that looks nicely with dual screens of very different resolutions.

2
  • Thank you for your answer! For some reason, that solution wasn't working for me. I got a message saying that there was an error connecting with DBUS (or something like this, I'd have to restart the computer to get the error again). The solution that I gave is the only one that brings my Unity again. Since when this started happening to you? Last week too? – miltonlaufer Mar 4 '15 at 18:29
  • Ey, check the solution that I just posted. It works perfectly – miltonlaufer Mar 6 '15 at 7:46
0

I found a workaround.

I created two scripts (one of them I found it on this website, but now I lost the link).

Let's called the first script: "discover_session_bus_address.sh"

#!/bin/bash

# Remember to run this script using the command "source ./filename.sh"

# Search these processes for the session variable 
# (they are run as the current user and have the DBUS session variable set)
compatiblePrograms=( nautilus kdeinit kded4 pulseaudio trackerd )

# Attempt to get a program pid
for index in ${compatiblePrograms[@]}; do
   PID=$(pidof -s ${index})
    if [[ "${PID}" != "" ]]; then
        break
    fi
done
if [[ "${PID}" == "" ]]; then
    echo "Could not detect active login session"
    return 1
fi

QUERY_ENVIRON="$(tr '\0' '\n' < /proc/${PID}/environ | grep "DBUS_SESSION_BUS_ADDRESS" | cut -d "=" -f 2-)"
if [[ "${QUERY_ENVIRON}" != "" ]]; then
    export DBUS_SESSION_BUS_ADDRESS="${QUERY_ENVIRON}"
    echo "Connected to session:"
    echo "DBUS_SESSION_BUS_ADDRESS=${DBUS_SESSION_BUS_ADDRESS}"
else
    echo "Could not find dbus session ID in user environment."
    return 1
fi

return 0

Save it an then, in the same folder, create another script called "recover_unity.sh".

Code:

#!/bin/bash

export DISPLAY=:0
source ./discover_session_bus_address.sh unity
unity &

save it and give both script execution permissions: chmod +x discover_session_bus_address.sh chmod +x recover_unity.sh

Now, every time unity freezes, use CTRL+ALT+F1, login and, within the folder where those scripts were saved, type

source recover_unity.sh
1
  • On thing is worth mentioning: if I disable all the Compiz effects, plugging or unplugging an external monitor does not turn the desktop and windows unresponsive, but unity panel and launcher, and also window decoration (with the close and minimize buttons) disappear. Does this give any clue? (particularly taking into account that Compiz was upgraded last week, when the problem started). – miltonlaufer Mar 3 '15 at 5:52
0

Ok, this is my final solution:

I removed all the suspicious PPAs from my repository using ppa-purge (sudo apt-get install ppa-purge)

sudo add-apt-repository ppa:xorg-edgers/ppa 

just in case you had disabled the ppa before

sudo apt-get update 

(idem)

sudo ppa-purge  ppa:xorg-edgers/ppa
sudo add-apt-repository --remove ppa:xorg-edgers/ppa 

I don't remember if this is necessary or if ppa-purge already does this)

then the same with ppa ppa:bumblebee/stable

then

sudo apt-get purge xserver-xorg*
sudo apt-get purge nvidia*

then

sudo apt-get install nvidia-331
sudo reboot

after reboot, not only everything works perfectly (plugin or unplugging the external monitor, suspending, etc) but the hardware graphic acceleration is faster than ever! (running glxspheres )

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.