Fedora 15 on NVIDIA NVS 3100M
In an earlier post, I already wrote about how to install the proprietary video driver on Fedora. In a brief update I suggested to change the acpi_sleep
kernel option to accomplish proper display wake-up from standby. Unfortunately, that solution doesn’t work reliably in my experience. Today I found a solution that seems to successfully work around the problem of the black screen by waking up the screen „manually“.
Gernot Walzl wrote a „nasty workaround“ (quoting himself) in the form of the following script:
#!/bin/sh
# nvidia_dpms_fix.sh
# 2011-06-12
# by Gernot WALZL
# nasty workaround for nvidia drivers to resume from dpms off/suspend
export DISPLAY=:0
getXauthority () {
export XAUTHORITY=$(ps -C X -f | grep "$DISPLAY" \
| sed -n 's/.* -auth \([^ ]*\).*/\1/p')
}
handle_line () {
if echo "$1" | grep -e "(EE) NVIDIA.* DisplayPort link training failed" \
> /dev/null; then
getXauthority
xset dpms force on
fi
}
tail --follow=name /var/log/Xorg.0.log --retry --lines=1 2> /dev/null \
| while read line; do
handle_line "$line"
done
To actually make this do its job, I copied it into /usr/local/bin
, made it executable and created an autostart entry for GNOME 3 by saving the following lines under ~/.config/autostart/nvidia_dpms_fix.sh.desktop
[Desktop Entry]
Type=Application
Exec=/usr/local/bin/nvidia_dpms_fix.sh
Hidden=false
X-GNOME-Autostart-enabled=true
Name=NVidia DPMS fix
Comment=Wakes up the display properly
I believe the problem that is being worked around is indicated by a line in the Xorg.0.log
:
(WW) NVIDIA(GPU-0): AUO (DFP-3): Failed to set DisplayPort power state
Although I could only test this on my machine (HP EliteBook 8440p), with some luck this works for all cases where a similar log message is found.