Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Проблема с охлаждением ноутбука в Ubuntu 14.04  (Прочитано 4930 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Алексей В.

  • Автор темы
  • Участник
  • *
  • Сообщений: 131
    • Просмотр профиля
Здравствуйте, друзья!
Есть проблема при работе охлаждения ноутбука HP 620. Кулер крутится статично, вне зависимости от нагрузки и достаточно медленно.

К примеру:
Запускаю ОС Windows 8. Открываю браузер Google Chrome (Internet Explorer 11). Открываю ресурс - YouTube. Воспроизвожу видео в разрешении 4K. Нагрузка на процессор максимальная. Охлаждение начинает активно работать, примерно, через 2-3 минуты.
В Ubuntu 14.04 Произвожу те же самые действия в браузере Firefox 28. Охлаждение не реагирует на нагрузку. Корпус ноутбука очень нагревается и тестировать дальше я не могу. При перезагрузке, после такого тестирования, перед передачей контроля от BIOS самой ОС, кулер включается как положено и начинает наращивать обороты, видимо понимая, что температура критическая. Как только загружается сама операционная система Ubuntu, то кулер снижает обороты и никак не реагирует на нагрузку.

Устанавливал данную ОС, когда она имела статус Alpha, Beta. Думал исправят данную оплошность, но сейчас уже RTM, а проблема не решена. Прошу помощи у сообщества.

P.S.: В Ubuntu 12.04 все хорошо работает.

Оффлайн san-alex

  • Забанен
  • Старожил
  • *
  • Сообщений: 7726
  • Ex-CNC programmer
    • Просмотр профиля
Re: Проблема с охлаждением ноутбука в Ubuntu 14.04
« Ответ #1 : 22 Апреля 2014, 01:29:39 »
Модель видеокарты нам угадать?

Оффлайн grimm

  • Новичок
  • *
  • Сообщений: 47
  • MacBook Pro, PowerBook G4, Хакинтош
    • Просмотр профиля
Re: Проблема с охлаждением ноутбука в Ubuntu 14.04
« Ответ #2 : 22 Апреля 2014, 08:51:54 »
А чего там угадывать?
Intel GMA 4500M
На этом месте будет вызывающая надпись

Оффлайн flickr

  • Участник
  • *
  • Сообщений: 204
  • !Ubuntu наше всЁ!
    • Просмотр профиля
Re: Проблема с охлаждением ноутбука в Ubuntu 14.04
« Ответ #3 : 22 Апреля 2014, 12:36:44 »
Есть такая проблема, пока решена с помощью скрипта:
Почитайте:
http://ubuntuforums.org/showthread.php?t=2217658

Значит коротко:

0. sudo apt install lm-sensors

1. Нужно установить пакеты acpi_call-tools и dkms .
Взять можно в репозитории ppa:linrunner/tlp

2. Далее от рута идем в папку /usr/src/
Создаем папку, например acpi_call-0.0.2
Копируем в эту папку содержимое папки acpi-call-20130623

3. Далее в терминале: sudo gedit /usr/src/acpi_call-0.0.2/acpi_call-0.0.2/acpi_call.c

4. В открытом файле ищем "not called" и заменяем их на " ", то есть один пробел в кавычках, сохраняем.

5. Далее в терминале sudo gedit /usr/src/acpi_call-0.0.2/dkms.conf Редактируем этот файл заменив версию 20130623 на 0.0.2 в двух местах.
Должно стать типа так:
PACKAGE_NAME="acpi-call"
PACKAGE_VERSION="0.0.2"
CLEAN="make clean"
BUILT_MODULE_NAME[0]="acpi_call"
DEST_MODULE_NAME[0]="acpi_call"
MAKE[0]="make IGNORE_CC_MISMATCH=1 KDIR=$kernel_source_dir PWD=$dkms_tree/acpi_call/0.0.2/build"
DEST_MODULE_LOCATION[0]="/updates/dkms/"
AUTOINSTALL="yes"
Сохраняем файл.

6. Далее в терминале cd /usr/src/
sudo dkms add -m acpi_call -v 0.0.2
sudo dkms build -m acpi_call -v 0.0.2
sudo dkms install -m acpi_call -v 0.0.2

и

sudo modprobe -r acpi_call
sudo modprobe acpi_call

и проверяем

sudo cat /proc/acpi/call
Должно ответить просто пробелом, если ответило "not called", значит где-то допустили ошибку.

7. Далее в терминале:
sudo gedit /sbin/pb_fan
Вставляем туда это
#!/bin/bash
#
# HP ProBook 4320s Fan Control Script
# V 0.1.0
# ACPI SFSD/GFSD Methods
# ASSUMING DUAL CORE CPU
# For single core CPU check comments below


INTERV=1 # Polling interval, seconds
HYST=5   # Hysterisis (deg. C)
TSTEP=( 30 40 50 60 70 80 ) # Temperature Steps (deg. C)
SSTEP=( 00 14 28 3c 50 64 ) # Speed Steps (Fan speed percentage, hexadecimal, 00 < x < 64)
# FIRST speed step must always be 00
# LAST temperature step must always be 128
# You may add as many steps in between, as long the number of temperature and speed steps are equal




# --- NO EDITING BEYOND HERE NECESSARY ---


# Make sure only root can run our script
if [ "$(id -u)" != "0" ]; then
   echo "This script must be run as root" 1>&2
   exit 1
fi


# Make sure acpi_call is installed
if ! lsmod | grep -q acpi_call; then
    echo "Error: acpi_call module not loaded"
    exit
fi


if [ ${#SSTEP[@]} -ne ${#TSTEP[@]} ]; then
    echo "Error: Speed Step length and Temp Step length not equal!"
    exit
fi


acpi_call () {
    echo "$*" > /proc/acpi/call
    echo "$(cat /proc/acpi/call)"
}


get_speed () {
    # Exact speed
    local PWM0h=$(acpi_call "\_SB.PCI0.LPCB.EC0.PWM0"|cut -b3,4)
    local PWM0d=$(echo "obase=10; ibase=16; ${PWM0h^^}" | bc )
    local FANOFF=$(($PWM0d & 1))
    if [ $FANOFF -eq 1 ]; then
        echo "0"
    else
        local SPD=$((($PWM0d & 127) >> 1))
        echo $(( 100 - ($SPD*100)/64 ))
    fi
}


set_speed () {
    CMD="\_SB.PCI0.LPCB.EC0.SFSD 0x$1"
    echo "$(acpi_call $CMD)"
}


# display () {
#  # Display the magic
#  echo -en "\ec"
#  echo -en "ProBook 4320s Fan Control Interface.\nUse at your own risk!\n\n"
#  echo -e  "   Temperature: $TEMP\xC2\xB0C"
#  echo -e  "  Current Step: $STEP"
#  echo -e  "      Set Step: $NSTEP"
#  echo -e  "  Target Speed: $(( $(echo "obase=10; ibase=16; ${SSTEP[$i]^^}" | bc ) ))%"
#  echo -e  "Reported Speed: $CURSPD%"
# }


# Sizing and Titling
# echo -en "\033[8;5;20t"
# echo -en "\033]0;ProBook Fan Control DEBUG Script\007"


while true; do
    # Get CPU temperature
    SENSE="$(sensors)"
    CORE0=$(echo "$SENSE"|grep 'Core 0'|awk '{print $3}'|cut -b2,3)
    # FOR SINGLE CORE CPU
    # Comment from here
    CORE2=$(echo "$SENSE"|grep 'Core 2'|awk '{print $3}'|cut -b2,3)
    SUM="`expr $CORE0 + $CORE2`"
    TEMP=`expr $SUM / 2`
    #UNTIL HERE and uncomment the line below
    #TEMP=$CORE0


    # Calculate the current speed step
    CURSPD=$(get_speed)


    STEP=-1
    for (( i = 0; i < ${#SSTEP[@]}; i++ )); do
        ST=$(echo "obase=10; ibase=16; ${SSTEP[$i]^^}" | bc )
        CS=$CURSPD
        # Allow for 2% deviation from target speed
       if [ "$(( $ST + 1 ))" -ge "$CS" ] && [ "$(( $ST - 1 ))" -le "$CS" ]; then
           STEP=$i;
           break
       fi
    done


    # Make the magic happen


    NSTEP="-"
    if [ $STEP -eq -1 ]; then
        # If we didn't set the speed, turn the fan off and start over.
        NSTEP=0
        STEP=0
        set_speed "0"
         #display
        continue
    else
        echo $TEMP
        if [ $TEMP -gt ${TSTEP[$STEP+1]} ]; then
            if [ `expr $STEP + 1` -eq ${#SSTEP[@]} ]; then
                sleep $INTERV
                continue # Sky High Step
            fi
            # Step Up
            set_speed "${SSTEP[$STEP+1]}" > /dev/null
            NSTEP=`expr $STEP + 1`
            # echo -e "Stepping up to: `expr $STEP + 1`; Temp: $TEMP\xC2\xB0C"
        elif [ $TEMP -lt `expr ${TSTEP[$STEP]} - $HYST` ]; then
            if [ $STEP -eq 0 ]; then
                sleep $INTERV
                continue # Rock Bottom Step
            fi
            # Step Down
            set_speed "${SSTEP[$STEP-1]}" > /dev/null
            # echo -e "Stepping down to: `expr $STEP - 1`; Temp: $TEMP\xC2\xB0C"
            NSTEP=`expr $STEP - 1`
        fi
    fi
     #display
    sleep $INTERV
done
Сохраняем.

8. Применяем атрибут исполняемого файла:
sudo chmod 755 /sbin/pb_fan
9. Выполняем файл:
sudo /sbin/pb_fan
Если скрипт запустился, то в терминале будет отображаться температура.

Но если такое:
/sbin/pb_fan: line 129: [: -gt: unary operator expected
/sbin/pb_fan: line 138: [: -lt: unary operator expected
expr: syntax error
expr: syntax error

то нужно найти в файле /sbin/pb_fan "CORE2" и заменить его на  "CORE1" без кавычек.
То есть в терминале
sudo gedit /sbin/pb_fanпоиск CORE2, меняем на CORE1
Сохраняем.

10. Запускаем и наблюдаем
sudo /sbin/pb_fanЕсли все запустилось и бегает температурка то нагружаем проц, чтобы убедиться в работоспособности скрипта.
Если все работает то:

11.  То
sudo gedit /etc/rc.local
И добавляем строку до exit 0
$(nohup pb_fan 0<&- &>/var/log/pb_fan.log &) &
Сохраняем и перезагружаем.
« Последнее редактирование: 25 Апреля 2014, 15:41:35 от flickr »

Оффлайн twente

  • Забанен
  • Активист
  • *
  • Сообщений: 311
    • Просмотр профиля
Re: Проблема с охлаждением ноутбука в Ubuntu 14.04
« Ответ #4 : 23 Апреля 2014, 01:44:49 »
siferdj,
выше шикарный мануал расписан, но на Вашем месте я бы попытался установить проприетарный видеодрайвер для начала- вполне возможно что проблема решится. Если же оный уже пробовали- тогда по выше расписанному мануалу
14.04, 15.04
asus u38dt, asus u38n

Оффлайн san-alex

  • Забанен
  • Старожил
  • *
  • Сообщений: 7726
  • Ex-CNC programmer
    • Просмотр профиля
Re: Проблема с охлаждением ноутбука в Ubuntu 14.04
« Ответ #5 : 23 Апреля 2014, 01:48:12 »
twente, а разве для интела есть проприетарный видеодрайвер?

Оффлайн Алексей В.

  • Автор темы
  • Участник
  • *
  • Сообщений: 131
    • Просмотр профиля
Re: Проблема с охлаждением ноутбука в Ubuntu 14.04
« Ответ #6 : 25 Апреля 2014, 07:59:12 »
(Нажмите, чтобы показать/скрыть)

Все сделано шаг за шагом, но результат:
(Нажмите, чтобы показать/скрыть)
Вот содержимое файла pb_fan:
(Нажмите, чтобы показать/скрыть)

Оффлайн flickr

  • Участник
  • *
  • Сообщений: 204
  • !Ubuntu наше всЁ!
    • Просмотр профиля
Re: Проблема с охлаждением ноутбука в Ubuntu 14.04
« Ответ #7 : 25 Апреля 2014, 14:35:26 »
в терминале:
sensors
и ответ сюда..

Оффлайн Алексей В.

  • Автор темы
  • Участник
  • *
  • Сообщений: 131
    • Просмотр профиля
Re: Проблема с охлаждением ноутбука в Ubuntu 14.04
« Ответ #8 : 25 Апреля 2014, 15:25:04 »
в терминале:
sensors
и ответ сюда..
Спасибо за подсказку. Не был установлен пакет ln-sensors. Установил. Все работает с запущенным скриптом. Правда до перезагрузки, хотя все остальные шаги доделал, включая файл rc.local. Как его добавить в автозагрузку?

Оффлайн flickr

  • Участник
  • *
  • Сообщений: 204
  • !Ubuntu наше всЁ!
    • Просмотр профиля
Re: Проблема с охлаждением ноутбука в Ubuntu 14.04
« Ответ #9 : 25 Апреля 2014, 15:38:18 »
хм, если вы правильно выполнили пункт 11, то все должно работать...

rc.local должен быть таким:
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
$(nohup pb_fan 0<&- &>/var/log/pb_fan.log &) &
exit 0

после перезагрузки посмотрите наличие в системном мониторе процесса pb_fan

можно попробовать через Startup Applications, добавить в автозагрузку типа так /sbin/pb_fan, но должно все и так работать

Оффлайн Алексей В.

  • Автор темы
  • Участник
  • *
  • Сообщений: 131
    • Просмотр профиля
Re: Проблема с охлаждением ноутбука в Ubuntu 14.04
« Ответ #10 : 25 Апреля 2014, 15:44:41 »
хм, если вы правильно выполнили пункт 11, то все должно работать...

rc.local должен быть таким:
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
$(nohup pb_fan 0<&- &>/var/log/pb_fan.log &) &
exit 0

после перезагрузки посмотрите наличие в системном мониторе процесса pb_fan

можно попробовать через Startup Applications, добавить в автозагрузку типа так /sbin/pb_fan, но должно все и так работать
К сожалению не работает самостоятельно. Файл rc.local имеет идентичный вид. Для запуска файла pb_fan, мне сперва необходимо подгружать модуль (sudo modprobe acpi_call), в противном случае - выдает ошибку.
alexey@Olga-HP-620:~$ sudo /sbin/pb_fan
Error: acpi_call module not loaded

Оффлайн flickr

  • Участник
  • *
  • Сообщений: 204
  • !Ubuntu наше всЁ!
    • Просмотр профиля
Re: Проблема с охлаждением ноутбука в Ubuntu 14.04
« Ответ #11 : 25 Апреля 2014, 15:48:43 »
а так:

 sudo echo acpi_call >> /etc/modules

и перезагрузку...

Оффлайн Алексей В.

  • Автор темы
  • Участник
  • *
  • Сообщений: 131
    • Просмотр профиля
Re: Проблема с охлаждением ноутбука в Ubuntu 14.04
« Ответ #12 : 25 Апреля 2014, 15:55:13 »
а так:

 sudo echo acpi_call >> /etc/modules

и перезагрузку...
Спасибо Вам, "белый человек". Теперь все работает как положено.
P.S.: Если я правильно понял, то файл rc.local отвечает за автозагрузку скриптов для всех пользователей, а файл modules отвечает за загрузку модулей, которые должны загрузиться при загрузке системы?

Оффлайн flickr

  • Участник
  • *
  • Сообщений: 204
  • !Ubuntu наше всЁ!
    • Просмотр профиля
Re: Проблема с охлаждением ноутбука в Ubuntu 14.04
« Ответ #13 : 25 Апреля 2014, 16:20:41 »
Цитировать
Спасибо Вам, "белый человек". Теперь все работает как положено.
Пожалуйста!
Цитировать
P.S.: Если я правильно понял, то файл rc.local отвечает за автозагрузку скриптов для всех пользователей, а файл modules отвечает за загрузку модулей, которые должны загрузиться при загрузке системы?
угу, от рута

Оффлайн spiritabsolute

  • Любитель
  • *
  • Сообщений: 91
    • Просмотр профиля
Re: Проблема с охлаждением ноутбука в Ubuntu 14.04
« Ответ #14 : 25 Апреля 2014, 17:46:24 »
У меня ноутбук asus k56cm. По сравнению с win7 да он стал теплее. Не приятно конечно, но не критично. Драйвера все поставлены.
Правду говорить легко и приятно!

 

Страница сгенерирована за 0.055 секунд. Запросов: 25.