Ubuntu 休眠模式后无法恢复

Ubuntu 休眠模式后无法恢复

使用 Ubuntu 12.10 和 nvidia 卡时,有时当机器从休眠模式恢复时,我的显示器不会重新打开。实际上,这可能不是显示器的问题,而是系统无法恢复,所以我必须重新启动。我测试了内存,它正常工作。硬盘似乎没问题。我通常会运行所有更新,希望更新可以解决问题。

有人遇到过这种情况吗?这种情况是间歇性的,连续运行后大概一周会出现两次。

答案1

也许这会对你有帮助,这是一个解决方法

嗨!经过长时间的搜索和折腾,我终于找到了一个临时解决方案,直到这个错误在未来的内核版本中得到修补。请参见下文:

仅当您在 Ubuntu 12.04 LTS 中从待机/挂起恢复时遇到问题并且唤醒机器时屏幕保持亮起但变黑时才使用此脚本。

  • 步骤1:
    打开终端并创建如下脚本文件:

    sudo gedit /etc/pm/sleep.d/20_custom-ehci_hcd

  • 第2步:
    将下面的整个脚本复制到刚刚创建的文件中并保存:

    #!/bin/sh
    #inspired by http://art.ubuntuforums.org/showpost...0&postcount=19
    #...and http://thecodecentral.com/2011/01/18...ot-working-bug
    # tidied by tqzzaa :)
    VERSION=1.1
    DEV_LIST=/tmp/usb-dev-list
    DRIVERS_DIR=/sys/bus/pci/drivers
    DRIVERS="ehci xhci" # ehci_hcd, xhci_hcd
    HEX="[[:xdigit:]]"
    MAX_BIND_ATTEMPTS=2
    BIND_WAIT=0.1
    unbindDev() {
    echo -n > $DEV_LIST 2>/dev/null
    for driver in $DRIVERS; do
    DDIR=$DRIVERS_DIR/${driver}_hcd
    for dev in `ls $DDIR 2>/dev/null | egrep "^$HEX+:$HEX+:$HEX"`; do
    echo -n "$dev" > $DDIR/unbind
    echo "$driver $dev" >> $DEV_LIST
    done
    #for bus in $EHCI_BUSES; do
    echo -n $bus > /sys/bus/pci/drivers/ehci_hcd/unbind
    # done
    done
    }
    bindDev() {
    if [ -s $DEV_LIST ]; then
    while read driver dev; do
    DDIR=$DRIVERS_DIR/${driver}_hcd
    #for bus in $EHCI_BUSES; do
    echo -n $bus > /sys/bus/pci/drivers/ehci_hcd/bind
    #done
    while [ $((MAX_BIND_ATTEMPTS)) -gt 0 ]; do
    echo -n "$dev" > $DDIR/bind
    if [ ! -L "$DDIR/$dev" ]; then
    sleep $BIND_WAIT
    else
    break
    fi
    MAX_BIND_ATTEMPTS=$((MAX_BIND_ATTEMPTS-1))
    done
    done < $DEV_LIST
    fi
    rm $DEV_LIST 2>/dev/null
    chvt 1
    chvt 7
    }
    EHCI_BUSES="0000:00:1a.0 0000:00:1d.0"
    case "$1" in
    hibernate|suspend)
    unbindDev;;
    resume|thaw)
    bindDev;;
    esac
    Step 3:
    Give the script run permissions by typing:
    sudo chmod 755 /etc/pm/sleep.d/20_custom-ehci_hcd
    

该脚本应该可以工作,否则保证退款(开玩笑的说,这是开源项目,所以使用时需自担风险:P),因为它强制显卡使用 chvt1 和 chvt7 命令重新启动,这模拟了我以前手动使用Ctrl+ Alt+F1Ctrl+ Alt+F7刷新 GUI 的操作。

来源:Ubuntu 论坛

相关内容