Jawaban:
Saya tidak berpikir Anda dapat mengubah default tanpa mengkompilasi ulang kernel. Maksud saya, kernel yang dipilih ketika boot.
Namun, Anda bisa mengatakannya untuk menggunakan gubernur yang berbeda saat menjalankan, jadi jika Anda ingin secara efektif mengatur default tanpa kompilasi ulang, Anda dapat menambahkan sesuatu ke /etc/rc.local
atau beberapa skrip start-up lainnya.
The /sys
direktori tidak pada disk; ini merupakan sistem file palsu RAM yang sebenarnya merupakan antarmuka untuk mendapatkan informasi dari dan mengirim perintah ke kernel. Ini semua relatif terhadap /sys/devices/system/cpu
, jadi:
> cd /sys/devices/system/cpu
Anda juga harus menjadi root untuk melakukan write ( echo blahblah >
). Lagi pula, relatif terhadap direktori di atas, untuk melihat gubernur yang tersedia:
> cat cpu0/cpufreq/scaling_available_governors
conservative ondemand userspace powersave performance
Rupanya milik Anda adalah ondemand
(tetapi baca "Gotcha" di bawah tentang ini); untuk memeriksa:
> cat cpu0/cpufreq/scaling_governor
ondemand
Untuk mengubahnya:
echo performance > cpu0/cpufreq/scaling_governor
Perhatikan ini harus dilakukan root, atau seperti ini
sudo sh -c "echo performance > cpu0/cpufreq/scaling_governor"
Hanya sudo
tidak akan berfungsi karena ada redirect >
,.
Anda sekarang akan melihat /sys/devices/system/cpu/cpufreq
direktori, (TIDAK sama dengan /sys/devices/system/cpu/cpu0/cpufreq
!), Yang sebelumnya berisi filehandle untuk mengkonfigurasi ondemand gubernur, kosong.
Pada Raspbian ada skrip init, nama yang membingungkan raspi-config
(tidak, tidak ada hubungannya dengan yang lain, yang dijalankan saat boot pertama oleh yang juga membingungkan apply_noobs_os_config.sh
), yang menggunakan teknik ini untuk mengatur gubernur ondemand
kecuali jika tombol shift ditekan (kernel stock Raspbian telah powersave
dikompilasi dalam). Itu tidak melakukan hal lain, jadi aman untuk menonaktifkan ini ( systemctl disable raspi-config
), atau Anda dapat mengeditnya sesuai jawaban Gorkamorka , tetapi kemudian Anda berisiko tidak diedit oleh pembaruan sistem, dll. - siapa tahu apa yang orang rencanakan dengan itu.
Anda dapat mencoba menambahkan versi non-sudo di atas /etc/rc.local
. Ini dapat terjadi setelah raspi-config
skrip keluar.
tee
: echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
.
cpufrequtils
dan sysfsutils
. Setelah menginstalnya, Anda dapat mengatur gubernur dan parameter lainnya dari /etc/default/cpufrequtils
dan /etc/sysfs.conf
- lihat di sini: wiki.debian.org/HowTo/CpuFrequencyScaling
Saya membuat programm kecil untuk mengubahnya dan membiarkannya diubah setiap boot dengan secara otomatis membuat skrip init.d.
pertanyaan serupa pada pertukaran tumpukan RPi di sini.
untuk memparafrasekannya, kecepatan on demand meningkat hingga max saat cpu sibuk 95%. Anda dapat menurunkan jumlah waktu sibuk ke persentase yang lebih rendah (artinya jam akan lebih tinggi bila tidak sibuk) dengan:
"Menulis nilai integer ke file (Anda dapat meletakkan yang berikut sebagai contoh di file startup /etc/rc.local): echo 60> / sys / devices / system / cpu / cpufreq / ondemand / up_threshold"
jadi, secara teoritis ... Anda bisa menempatkan persentase ini pada sesuatu yang sangat rendah seperti 10 atau 5, yang berarti akan selalu berjalan maksimal.
Semoga ini membantu. Pastikan untuk menilai orang yang memposting ini di artikel tertaut!
Solusi alternatif (jika Anda menjalankan Raspbian) bisa dengan memodifikasi skrip init.d di /etc/init.d/raspi-config untuk selalu menonaktifkan gubernur penskalaan. Perilaku defaultnya adalah hanya mengaktifkannya saat startup jika salah satu tombol shift ditekan:
#!/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
gema "kinerja" | sudo tee / sys / devices / system / cpu / cpu0 / cpufreq / scaling_governor