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


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Не изменяется частота процессора  (Прочитано 7649 раз)

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

Оффлайн Alie Alexandross

  • Старожил
  • *
  • Сообщений: 1576
    • Просмотр профиля
Re: Не изменяется частота процессора
« Ответ #15 : 28 Сентября 2014, 14:49:25 »
Только в /proc и /sys ничего не меняйте - завалите систему!!!
Файлы пустые потому, что acpi_cpufreq  не запустился.

В голову приходит только искать ошибки в запуске acpi_cpufreq. Попробуйте стартовать его вручную, не как демон. Дело в том, что скрипт демона может отправлять вывод утилиты в /dev/null. В итоге: и cpufreq не стартует, и ошибок не видно.
Сначала останавливаете демон, чтоб удалил за собой все temp файлы (и что ещё он там плодит), открываете скрипт демона
cat /etc/init.d/acpi_cpufreqДалее находите case start и начинаете поочерёдно вручную вводить команды, только без /dev/null.
« Последнее редактирование: 28 Сентября 2014, 15:04:05 от Alie Alexandross »
Подпись автора jillsmitt истинна...

Оффлайн chewarer

  • Автор темы
  • Новичок
  • *
  • Сообщений: 24
    • Просмотр профиля
    • Home-cooker
Re: Не изменяется частота процессора
« Ответ #16 : 28 Сентября 2014, 17:25:07 »
По этому пути у меня нет acpi_cpufreq

Оффлайн Alie Alexandross

  • Старожил
  • *
  • Сообщений: 1576
    • Просмотр профиля
Re: Не изменяется частота процессора
« Ответ #17 : 28 Сентября 2014, 17:51:13 »
Пардон, имела ввиду cpufrequtils. acpi-cpufreq это просто модуль...
My bad :-[
Подпись автора jillsmitt истинна...

Оффлайн chewarer

  • Автор темы
  • Новичок
  • *
  • Сообщений: 24
    • Просмотр профиля
    • Home-cooker
Re: Не изменяется частота процессора
« Ответ #18 : 29 Сентября 2014, 06:25:25 »
Извиняюсь, но не понимаю что из этого нужно вручную вводить.

#!/bin/sh
### BEGIN INIT INFO
# Provides:       cpufrequtils
# Required-Start: $remote_fs loadcpufreq
# Required-Stop:
# Default-Start:  2 3 4 5
# Default-Stop:
# Short-Description: set CPUFreq kernel parameters
# Description: utilities to deal with CPUFreq Linux
# kernel support
### END INIT INFO
#

DESC="CPUFreq Utilities"

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
CPUFREQ_SET=/usr/bin/cpufreq-set
CPUFREQ_INFO=/usr/bin/cpufreq-info
CPUFREQ_OPTIONS=""

# use lsb-base
. /lib/lsb/init-functions

# Which governor to use. Must be one of the governors listed in:
#   cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
#
# and which limits to set. Both MIN_SPEED and MAX_SPEED must be values
# listed in:
#   cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
# a value of 0 for any of the two variables will disabling the use of
# that limit variable.
#
# WARNING: the correct kernel module must already be loaded or compiled in.
#
# Set ENABLE to "true" to let the script run at boot time.
#
# eg: ENABLE="true"
# GOVERNOR="ondemand"
# MAX_SPEED=1000
# MIN_SPEED=500

ENABLE="true"
GOVERNOR="ondemand"
MAX_SPEED="1200"
MIN_SPEED="800"

check_governor_avail() {
info="/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors"
if [ -f $info ] && grep -q "\<$GOVERNOR\>" $info ; then
return 0;
fi
return 1;
}

[ -x $CPUFREQ_SET ] || exit 0

if [ -f /etc/default/cpufrequtils ] ; then
. /etc/default/cpufrequtils
fi

# if not enabled then exit gracefully
[ "$ENABLE" = "true" ] || exit 0

if [ -n "$MAX_SPEED" ] && [ $MAX_SPEED != "0" ] ; then
CPUFREQ_OPTIONS="$CPUFREQ_OPTIONS --max $MAX_SPEED"
fi

if [ -n "$MIN_SPEED" ] && [ $MIN_SPEED != "0" ] ; then
CPUFREQ_OPTIONS="$CPUFREQ_OPTIONS --min $MIN_SPEED"
fi

if [ -n "$GOVERNOR" ] ; then
CPUFREQ_OPTIONS="$CPUFREQ_OPTIONS --governor $GOVERNOR"
fi

CPUS=$(cat /proc/stat|sed -ne 's/^cpu\([[:digit:]]\+\).*/\1/p')
RETVAL=0
case "$1" in
start|force-reload|restart|reload)
log_action_begin_msg "$DESC: Setting $GOVERNOR CPUFreq governor"
if check_governor_avail ; then
for cpu in $CPUS ; do
log_action_cont_msg "CPU${cpu}"
$CPUFREQ_SET --cpu $cpu $CPUFREQ_OPTIONS 2>&1 > /dev/null || \
RETVAL=$?
done
log_action_end_msg $RETVAL ""
else
log_action_cont_msg "disabled, governor not available"
log_action_end_msg $RETVAL
fi
;;
stop)
;;
*)
echo "Usage: $0 {start|stop|restart|reload|force-reload}"
exit 1
esac

exit 0

Оффлайн Alie Alexandross

  • Старожил
  • *
  • Сообщений: 1576
    • Просмотр профиля
Re: Не изменяется частота процессора
« Ответ #19 : 29 Сентября 2014, 13:59:08 »
Давайте по порядку...
Для начала - вырубаем демон и начинаем делать то, что делает он при старте.

Проверяем файлы на исполнение (проблема, скорее всего, в другом месте, но перепроверить стоит)
ls -l /usr/bin/cpufreq-set
ls -l /usr/bin/cpufreq-info

Из комментариев узнаём:
# ... Both MIN_SPEED and MAX_SPEED must be values
# listed in:
#   cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
# a value of 0 for any of the two variables will disabling the use of
# that limit variable.
и проверяем /sys/... на предмет нулей:
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies

Проверяем наличие источника /etc/default/cpufrequtils. Судя по условию
if [ -f /etc/default/cpufrequtils ] ; then
. /etc/default/cpufrequtils
fi
данные по частотам и режиму берутся именно с этого файла. Если нужно поправить частоты - правим.

Скрипт собирает опции для cpufreq-set следующим образом:
CPUFREQ_OPTIONS=""   # Это в самом верху
...
if [ -n "$MAX_SPEED" ] && [ $MAX_SPEED != "0" ] ; then
CPUFREQ_OPTIONS="$CPUFREQ_OPTIONS --max $MAX_SPEED"
fi

if [ -n "$MIN_SPEED" ] && [ $MIN_SPEED != "0" ] ; then
CPUFREQ_OPTIONS="$CPUFREQ_OPTIONS --min $MIN_SPEED"
fi

if [ -n "$GOVERNOR" ] ; then
CPUFREQ_OPTIONS="$CPUFREQ_OPTIONS --governor $GOVERNOR"
fi
мы будем "собирать" вручную, наша лже-переменная выглядит так:
--min (...) --max (...) --governor (...)только замените скобки соответствующими значениями из файла /etc/default/cpufrequtils

Скрипт проверяет количество cpu
cat /proc/stat|sed -ne 's/^cpu\([[:digit:]]\+\).*/\1/p'проверим и мы, а число запомним.

Теперь, наконец, и сам cpufreq-set возвращающий fail:
$CPUFREQ_SET --cpu $cpu $CPUFREQ_OPTIONS 2>&1 > /dev/null"Имитируем демона": вводим в терминале
cpufreq-set --cpu (...) --min (...) --max (...) --governor (...)Здесь, если до сих пор всё правильно было, должна выпасть ошибка, которую демон отправлял в /dev/null. Ошибку копируем и вбиваем в google.
« Последнее редактирование: 29 Сентября 2014, 14:04:21 от Alie Alexandross »
Подпись автора jillsmitt истинна...

Оффлайн chewarer

  • Автор темы
  • Новичок
  • *
  • Сообщений: 24
    • Просмотр профиля
    • Home-cooker
Re: Не изменяется частота процессора
« Ответ #20 : 17 Февраля 2015, 19:41:38 »
Alie Alexandross Спасибо большое за подробные ответы.
Извиняюсь что задал вопрос и пропал. В тот момент работа навалилась, а потом забыл.
Спасибо за ответы. Все перепроверил. Похоже проблема в ядре все-таки.

Может никому не надо, но отпишусь что сделал.

Повникал в написанное выше, все проверил.
Запустил вручную:
sudo cpufreq-set --cpu 0 --min 800000 --max 1200000 --governor "performance"
sudo cpufreq-set --cpu 1 --min 800000 --max 1200000 --governor "performance"

Затем проверил:
cpufreq-info
И по прежнему вижу:
current policy: frequency should be within 800 MHz and 800 MHz.По прежнему замечает почему-то только минимальную частоту.

Покопался еще:
В файле /sys/devices/system/cpu/cpu0/cpufreq/bios_limit указано значение 800000. В биосе настроек очень мало, там мне напутать негде.

P.S. Как же хорошо все работало в восьмой Xubuntu, ни малейшей проблемы.

Пользователь решил продолжить мысль 18 Февраля 2015, 06:26:44:
РЕШИЛ.
Отпишусь раз уж начал тему.
В файле /etc/default/grub в строке:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" в кавычки нужно добавить: processor.ignore_ppc=1
Затем обновить граб
sudo update-grub
В файле /etc/default/cpufrequtils у меня тоже был косяк, частоты были указаны в мегагерцах, а надо было в килогерцах.
« Последнее редактирование: 18 Февраля 2015, 06:26:44 от chewarer »

 

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