Ответы:
Я не думаю, что вы можете изменить настройки по умолчанию без перекомпиляции ядра. Я имею в виду тот, который выбирает ядро при загрузке.
Тем не менее, вы можете указать ему использовать другой регулятор во время работы, поэтому, если вы хотите эффективно установить значение по умолчанию без перекомпиляции, вы можете добавить что-нибудь в /etc/rc.local
или какой-либо другой сценарий запуска.
/sys
Каталога нет на диске; это поддельная файловая система в оперативной памяти, которая на самом деле является интерфейсом для получения информации и отправки команд ядру. Это все относительно /sys/devices/system/cpu
, так что:
> cd /sys/devices/system/cpu
Вы также должны быть пользователем root, чтобы делать write ( echo blahblah >
). Во всяком случае, относительно вышеупомянутого каталога, чтобы увидеть доступные регуляторы:
> cat cpu0/cpufreq/scaling_available_governors
conservative ondemand userspace powersave performance
По-видимому, ваш ondemand
(но читайте "Gotcha" ниже об этом); Проверять:
> cat cpu0/cpufreq/scaling_governor
ondemand
Чтобы изменить это:
echo performance > cpu0/cpufreq/scaling_governor
Обратите внимание, что это должно быть сделано как root, или как это
sudo sh -c "echo performance > cpu0/cpufreq/scaling_governor"
Просто sudo
не получится, потому что есть редирект >
.
Теперь вы заметите, что /sys/devices/system/cpu/cpufreq
каталог (НЕ такой же, как /sys/devices/system/cpu/cpu0/cpufreq
!), Который ранее содержал файловые дескрипторы для настройки регулятора по требованию, пуст.
В Raspbian есть сценарий инициализации с неправильным именем raspi-config
(нет, он не имеет ничего общего с другим, который запускается при первой загрузке также с ошибочным именем apply_noobs_os_config.sh
), который использует эту технику для установки регулятора на значение, ondemand
если только клавиша Shift удерживается (стандартное ядро Raspbian powersave
скомпилировано в). Он больше ничего не делает, поэтому можно отключить this ( systemctl disable raspi-config
), или вы можете отредактировать его в соответствии с ответом Горкаморки , но тогда вы рискуете его отредактировать с помощью обновления системы и т. Д. - кто знает, что кто-то планирует делать с этим.
Вы можете попробовать добавить не-sudo версию выше /etc/rc.local
. Это может произойти после выхода из raspi-config
сценария.
tee
: echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
.
cpufrequtils
и sysfsutils
. После их установки вы можете установить регулятор и другие параметры из /etc/default/cpufrequtils
и /etc/sysfs.conf
- см. Здесь: wiki.debian.org/HowTo/CpuFrequencyScaling
Я сделал небольшую программу, чтобы изменить ее и позволить ей меняться при каждой загрузке, автоматически создавая скрипт init.d.
аналогичный вопрос по обмену стека RPi здесь.
перефразируя, скорость по требованию возрастает до максимума, когда процессор занят на 95%. Вы можете понизить количество занятого времени до более низкого процента (то есть оно будет увеличено, если не так занят):
«запись целочисленного значения в файл (например, вы можете поместить следующее в файл запуска /etc/rc.local): echo 60> / sys / devices / system / cpu / cpufreq / ondemand / up_threshold»
Итак, теоретически ... вы могли бы поставить этот процент на что-то невероятно низкое, например 10 или 5, что означало бы, что он всегда будет работать на максимуме.
Надеюсь это поможет. Не забудьте оценить человека, который разместил это в связанной статье!
Альтернативное решение (если вы используете Raspbian) может состоять в том, чтобы изменить скрипт init.d в /etc/init.d/raspi-config, чтобы всегда отключать регулятор масштабирования. Поведение по умолчанию - включать его только при запуске, если нажата одна из клавиш Shift:
#!/bin/sh
### BEGIN INIT INFO
# Provides: raspi-config
# Required-Start: udev mountkernfs $remote_fs
# Required-Stop:
# Default-Start: S
# Default-Stop:
# Short-Description: Switch to ondemand cpu governor (unless shift key is pressed)
# Description:
### END INIT INFO
. /lib/lsb/init-functions
case "$1" in
start)
log_daemon_msg "Checking if shift key is held down"
timeout 1 thd --dump /dev/input/event* | grep -q "LEFTSHIFT\|RIGHTSHIFT"
if [ $? -eq 0 ]; then
printf " Yes. Not enabling ondemand scaling governor"
log_end_msg 0
else
printf " No. Switching to ondemand scaling governor"
SYS_CPUFREQ_GOVERNOR=/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor if [ -e $SYS_CPUFREQ_GOVERNOR ]; t
hen
echo "ondemand" > $SYS_CPUFREQ_GOVERNOR
echo 50 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
echo 100000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
echo 50 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor
echo 1 | sudo tee /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy
fi
log_end_msg 0
fi
;;
*)
echo "Usage: $0 start" >&2
exit 3
;;
esac
echo "performance" | sudo tee / sys / devices / system / cpu / cpu0 / cpufreq / scaling_governor