Chcę zmienić domyślnego gubernatora na moim pi z ondemand na wydajność. Czy jest na to sposób?
źródło
Chcę zmienić domyślnego gubernatora na moim pi z ondemand na wydajność. Czy jest na to sposób?
Nie sądzę, że możesz zmienić wartość domyślną bez ponownej kompilacji jądra. Rozumiem przez to ten, który jądro wybiera po uruchomieniu.
Możesz jednak powiedzieć, aby używał innego gubernatora podczas działania, więc jeśli chcesz skutecznie ustawić wartość domyślną bez ponownej kompilacji, możesz dodać coś do /etc/rc.local
skryptu startowego lub inny skrypt.
/sys
Katalog nie jest na dysku; jest to fałszywy system plików w pamięci RAM, który w rzeczywistości jest interfejsem do uzyskiwania informacji i wysyłania poleceń do jądra. Wszystko to zależy od /sys/devices/system/cpu
:
> cd /sys/devices/system/cpu
Musisz także być rootem, aby wykonywać operacje zapisu ( echo blahblah >
). W każdym razie, w stosunku do powyższego katalogu, zobacz dostępne gubernatory:
> cat cpu0/cpufreq/scaling_available_governors
conservative ondemand userspace powersave performance
Najwyraźniej twój jest ondemand
(ale przeczytaj o tym poniżej „Gotcha” ); sprawdzić:
> cat cpu0/cpufreq/scaling_governor
ondemand
Aby to zmienić:
echo performance > cpu0/cpufreq/scaling_governor
Zauważ, że albo trzeba to zrobić root, albo w ten sposób
sudo sh -c "echo performance > cpu0/cpufreq/scaling_governor"
Po prostu sudo
nie będzie działać, ponieważ nie jest przekierowanie, >
.
Zauważysz teraz, że /sys/devices/system/cpu/cpufreq
katalog (NIE taki sam jak /sys/devices/system/cpu/cpu0/cpufreq
!), Który poprzednio zawierał uchwyty plików do konfigurowania gubernatora ondemand, jest pusty.
Na Raspbian jest skrypt inicjujący, myląco nazwany raspi-config
(nie, nie ma on nic wspólnego z drugim, który jest uruchamiany przy pierwszym uruchomieniu przez również myląco nazwany apply_noobs_os_config.sh
), który używa tej techniki, aby ustawić gubernatora na, ondemand
chyba że klawisz Shift jest przytrzymany ( powersave
skompilowano podstawowe jądro Raspbian ). Nie robi nic innego, więc można bezpiecznie to wyłączyć ( systemctl disable raspi-config
), lub możesz to edytować zgodnie z odpowiedzią Gorkamorki , ale wtedy ryzykujesz, że nie będzie edytowana przez aktualizację systemu itp. - kto wie, co ktokolwiek planuje z tym zrobić.
Możesz spróbować dodać wersję inną niż sudo powyżej /etc/rc.local
. Może się to zdarzyć po zakończeniu raspi-config
skryptu.
tee
:echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
.cpufrequtils
isysfsutils
. Po ich zainstalowaniu możesz ustawić gubernatora i inne parametry za pomocą/etc/default/cpufrequtils
i/etc/sysfs.conf
- patrz tutaj: wiki.debian.org/HowTo/CpuFrequencyScalingZrobiłem mały program, aby go zmienić i pozwolić, aby był zmieniany przy każdym rozruchu, automatycznie tworząc skrypt init.d.
Link do mojego projektu
źródło
podobne pytanie na temat wymiany stosu RPi tutaj.
parafrazując to, prędkość na żądanie wzrasta do maksimum, gdy procesor jest zajęty w 95%. Możesz obniżyć czas zajętości do niższej wartości procentowej (co oznacza, że będzie taktowany wyżej, gdy nie będzie tak zajęty) przez:
więc teoretycznie ... można ustawić ten procent na niewiarygodnie niskim poziomie, takim jak 10 lub 5, co oznaczałoby, że zawsze działałby na maksimum.
Mam nadzieję że to pomoże. Pamiętaj, aby podnieść ocenę osoby, która opublikowała to w powiązanym artykule!
źródło
Alternatywnym rozwiązaniem (jeśli korzystasz z Raspbian) może być zmodyfikowanie skryptu init.d w /etc/init.d/raspi-config, aby zawsze wyłączał regulator skalowania. Domyślne zachowanie polega na włączaniu go tylko podczas uruchamiania, jeśli naciśnięty jest jeden z klawiszy Shift:
źródło
echo "performance" | sudo tee / sys / devices / system / cpu / cpu0 / cpufreq / scaling_governor
źródło