Проснись от сна на HP Envy 14

Я не знаком с внутренними компонентами управления питанием ноутбука, и у меня есть небольшая проблема с Ubuntu 11.10 и HP Envy 14. Пробуждение из спящего режима (открытие крышки) заставляет кулер вращаться на максимальной скорости, он становится действительно громко и неприятно. С чего мне начать искать? Я полагаю, одно из устройств может начать всасывать питание при пробуждении?

2
задан 9 January 2012 в 08:02

1 ответ

Это работает на меня на HP Envy 14, работающем 11.10 из http://linuxenvy.blogspot.com/2011/09/ive-been-being-lazy.html?showComment=1315427419402#c4396376300869253470:

Я вставил сценарий мой/usr/lib/pm-utils/sleep.d, который включает дискретный gpu при приостановке и возвращает его ПРОЧЬ (если это было ВЫКЛЮЧЕНО при приостановке). Теперь моя потребляемая мощность является тем же, прежде чем и после приостановят. Точно так же, как при отключении дискретного gpu в BIOS. Я сначала пытался поместить сценарий в/etc/pm/sleep.d, который не выполнился в моей системе (Ubuntu 11.04/lenvyx, 64-разрядная + ugr). Не уверенный, куда поместить его на другие дистрибутивы. Можно получить сценарий здесь, если заинтересованный http://dl.dropbox.com/u/5227387/09_toggle_discrete_gpu, используйте на Ваш собственный риск.

После копирования сценария к /usr/lib/pm-utils/sleep.d, сделайте это исполняемым файлом:

sudo chmod +x /usr/lib/pm-utils/sleep.d/09_toggle_discrete_gpu

В случае, если ссылка Dropbox исчезает, вот код в 09_toggle_discrete_gpu:

#!/bin/sh
#Script to switch on discrete graphics at suspend to avoid suspend bug on ENVY 14, 
#causing increased power consumption after suspend.
#Author Tinux, line 11-39 stolen almost directly from RM's "switch_between_cards.sh" 
#from at http://asusm51ta-with-linux.blogspot.com/
#DISCLAIMER: I only tested this on my own system and I take no responsibility for any
#harm it might cause to your hardware or software


. "${PM_FUNCTIONS}"

suspend_nm()
{
    pci_integrated=$(lspci | grep VGA | sed -n '1p' | cut -f 1 -d " ")
    pci_discrete=$(lspci | grep VGA | sed -n '2p' | cut -f 1 -d " ")

    integrated=$(cat /sys/kernel/debug/vgaswitcheroo/switch | grep $pci_integrated | grep -o -P ':.:...:')
    discrete=$(cat /sys/kernel/debug/vgaswitcheroo/switch | grep $pci_discrete | grep -o -P ':.:...:')



    if [ "$integrated" = ":+:Pwr:" ]
    then
     integrated_condition=1
    elif [ "$integrated" = ": :Pwr:" ]
    then
     integrated_condition=1
    elif [ "$integrated" = ": :Off:" ]
    then
     integrated_condition=0
    fi

    if [ "$discrete" = ":+:Pwr:" ]
    then
     discrete_condition=1
    elif [ "$discrete" = ": :Pwr:" ]
    then
     discrete_condition=1
    elif [ "$discrete" = ": :Off:" ]
    then
     discrete_condition=0
    fi

    #Switch ON discrete graphics
    if [ $discrete_condition = 0 ]
    then
        echo ON >  /sys/kernel/debug/vgaswitcheroo/switch
    fi

    echo $discrete_condition > /tmp/condition

}

resume_nm()
{
    #Swtich OFF discrete graphics
    if [ -e /tmp/condition ]
    then
        discrete_condition=`cat /tmp/condition`
        rm /tmp/condition
    fi

    if [ $discrete_condition = 0 ]
    then
        echo OFF > /sys/kernel/debug/vgaswitcheroo/switch
    fi
}

case "$1" in
    hibernate|suspend)
        suspend_nm
        ;;
    thaw|resume)
        resume_nm
        ;;
    *) exit $NA
        ;;
esac
1
ответ дан 9 January 2012 в 08:02

Другие вопросы по тегам:

Похожие вопросы: