Как я настрою частоту CPU после возобновления от приостановки Ubuntu?

Проблема:

В Ubuntu 16.04 я выполняю свой сценарий оболочки для уменьшения масштаб моей частоты CPU, чтобы быть 1600000, и ее регулятор, чтобы быть "пространством пользователя":

sudo /home/t/program_files/hardware/cpu/cpuFreq/changeCpuFreq.sh 1600000

который пишет 1600000 и "пространство пользователя" к /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed и /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor соответственно.

Однако после приостановки и затем пробуждения моей Ubuntu, частота CPU вернулась до 2 667 000, потому что /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed переписывается некоторой неизвестной программой к 2667000. Я хотел бы, чтобы частота CPU была сохранена по телефону 1600000 после возобновления от приостановки.

Предварительное решение:

Я попробовал одно решение от https://superuser.com/a/733336/9265 (см. ниже), и добавил файл /etc/pm/sleep.d/20_cpu_freq , чье содержание:

#!/bin/sh
# upon resume from suspension, scale down the cpu freq
case "$1" in
   thaw|resume)
     /home/t/program_files/hardware/cpu/cpuFreq/changeCpuFreq.sh 1600000
     ;;
esac

и сделайте это исполняемым файлом chmod a+x * так, чтобы его разрешение было -rwxrwxr-x. Но это не уменьшает масштаб частоты CPU до 1600000 после возобновления от приостановки.

/etc/pm/sleep.d/20_cpu_freq на самом деле выполненный при возобновлении от приостановки? Как я могу проверить это?

/etc/pm/sleep.d/20_cpu_freq переопределенный некоторым другим конфигурационным файлом?

Нет никакого другого сценария под /etc/pm/sleep.d/ который имеет дело с частотой CPU.

Существует сценарий системного значения по умолчанию /usr/lib/pm-utils/sleep.d/94cpufreq, который имеет дело с частотой CPU (см. ниже для ее содержания). Кто-то знает то, что делает сценарий? Это переопределяет, или это переопределяется /etc/pm/sleep.d/20_cpu_freq? (Обратите внимание на это, если я переименовываю /etc/pm/sleep.d/20_cpu_freq кому: /etc/pm/sleep.d/95cpufreq или /etc/pm/sleep.d/93cpufreq, для изменения порядка между ним и /usr/lib/pm-utils/sleep.d/94cpufreq, 'оба все еще не уменьшают масштаб частоты CPU до 1600000 после возобновления от приостановки.)

В /usr/lib/pm-utils/sleep.d/94cpufreq, это не работает также, Если я добавляю /home/t/program_files/hardware/cpu/cpuFreq/changeCpuFreq.sh 1600000 после thaw_cpufreq в случае resume|thaw) .

Куда я буду работать /home/t/program_files/hardware/cpu/cpuFreq/changeCpuFreq.sh 1600000, если не в /etc/pm/sleep.d/20_cpu_freq?


Содержание /usr/lib/pm-utils/sleep.d/94cpufreq

#!/bin/sh                                                                                                                                                                          
# Ensure cpu governor is set to something sane.                                                                                                                                    
# TODO: Which of the cpu governors is still insane?  File bugs against                                                                                                             
#       those that are.                                                                                                                                                            

. "${PM_FUNCTIONS}"

[ -d /sys/devices/system/cpu/ ] || exit $NA

hibernate_cpufreq()
{
  ( cd /sys/devices/system/cpu/
  for x in cpu[0-9]*; do
    # if cpufreq is a symlink, it is handled by another cpu. Skip.                                                                                                                 
    [ -L "$x/cpufreq" ] && continue
    gov="$x/cpufreq/scaling_governor"
    # if we do not have a scaling_governor file, skip.                                                                                                                             
    [ -f "$gov" ] || continue
    # if our temporary governor is not available, skip.                                                                                                                            
    grep -q "$TEMPORARY_CPUFREQ_GOVERNOR" \
            "$x/cpufreq/scaling_available_governors" || continue
    savestate "${x}_governor" < "$gov"
    echo "$TEMPORARY_CPUFREQ_GOVERNOR" > "$gov"
  done )
}

thaw_cpufreq()
{
  ( cd /sys/devices/system/cpu/
  for x in cpu[0-9]*/cpufreq/scaling_governor ; do
    [ -f "$x" ] || continue
    state_exists "${x%%/*}_governor" || continue
    restorestate "${x%%/*}_governor" > "$x"
  done )
}

case "$1" in
  suspend|hibernate)
    hibernate_cpufreq
    ;;
  resume|thaw)
    thaw_cpufreq
    ;;
  *) exit $NA
    ;;
esac

Скопированный с https://superuser.com/a/733336/9265

Из страницы справочника pm-action(8):

/etc/pm/sleep.d, /usr/lib/pm-utils/sleep.d
     Programs in these directories (called hooks) are combined
     and executed in C sort order before suspend and hibernate
     with as argument ´suspend´ or ´hibernate´. Afterwards they
     are called in reverse order with argument ´resume´ and
     ´thaw´ respectively. **If both directories contain a similar
     named file, the one in /etc/pm/sleep.d will get preference.**
     It is possible to disable a hook in the distribution
     directory by putting a non-executable file in
     /etc/pm/sleep.d, or by adding it to the HOOK_BLACKLIST
     configuration variable.

Таким образом Вы могли просто поместить сценарий оболочки как это:

#!/bin/bash

case "$1" in
suspend|hibernate)
    actions to
    take
    on suspend
    or hibernate
    ;;
resume|thaw)
    other actions
    to trigger
    on resume
    ;;
esac

в, например. 99-myhooks.sh и сделайте это исполняемым файлом.

BTW, можно уничтожить устаревшие соединения SSH вводом, Вводят ~. Войдите в сессию SSH.

0
задан 2 April 2018 в 16:28

1 ответ

Я просто нашел причину (см., Почему там эти различия между приостановкой DES и пополудни-utils? | Unix & Linux Stack Exchange), который также приводит к некоторым новым вопросам:

Я нашел некоторые различия между выполнением pm-suspend и нажатие на пункт меню "Suspend" в LXDE на Ubuntu 16.04

  1. В обоих случаях я могу разбудить Ubuntu путем продвижения кнопки питания на моем ноутбуке, но в пути пунктом меню "Suspend" в LXDE, я должен обеспечить свой пароль для разблокирования экрана, в то время как в пути pm-suspendpm-hibernate или pm-suspend-hybrid), я не должен.

  2. Согласно этому вопросу: Как делают меня, команды выполнения на приостанавливают/возвращают от, приостанавливают? | Суперпользователь, сценарии под /usr/lib/pm-utils/sleep.d/ и /etc/pm/sleep.d/ как предполагается, выполняются после приостановки/спящего режима и возобновления/размораживания. Но это верно только, когда я работаю pm-suspend (илиpm-hibernate или pm-suspend-hybrid), и ложь, когда я нажимаю пункт меню "Suspend" в LXDE.

Я раньше использовал Gnome, и я помню, что он совпал с в LXDE, кроме Gnome мог бы иметь, в спящем режиме, опция, кроме того, приостанавливает.

Интересно, почему существуют различия между приостановкой DES и пополудни-utils?

Может pm-suspend используйтесь способом так, чтобы резюме потребовало, чтобы пароль разблокировал экран?

Может "приостановить" пункт меню в LXDE использоваться способом так, чтобы сценарии в /usr/lib/pm-utils/sleep.d/ и /etc/pm/sleep.d/ выполняются после приостановки/спящего режима и возобновления/размораживания?

Спасибо.

0
ответ дан 30 October 2019 в 03:51

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

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