Script BASH per scalare la frequenza della CPU


0

Ho scritto uno script da eseguire all'avvio del mio PC e dovrebbe sovrascrivere "energy_performance_preference" e "scaling_governor" con quelli che hanno valori diversi.

Quello che sta succedendo è che solo il primo comando viene eseguito per qualche motivo. Ho uno script simile per qualcos'altro che utilizza lo stesso processo di apertura di konsole ed esecuzione di più comandi in successione come root.

Ecco il mio script finora CPU_Boost .

Vedi ridimensionamento di frequenza della CPU per ulteriori informazioni.


Come hai concluso che viene eseguito solo il primo comando? Perché hai menzionato l'altra sceneggiatura? Qual è la loro relazione reciproca?
Aulis Ronkainen,

Risposte:


0

solo il primo comando viene eseguito per qualche motivo

Questo perché hai i seguenti:

konsole -e sudo cp -f /home/austin/CPU_Boost/energy_performance_preference /sys/devices/system/cpu/cpufreq/policy0/; cp -f /home/austin/CPU_Boost/scaling_governor /sys/devices/system/cpu/cpufreq/policy0/; chown root:root /sys/devices/system/cpu/cpufreq/policy0/energy_performance_preference; chmod 444 /sys/devices/system/cpu/cpufreq/policy0/energy_performance_preference; [...]

Bash dividerà i comandi con un punto e virgola (non newline), quindi ciò che viene eseguito è più simile a quello di seguito (mostrato con un comando per riga):

konsole -e sudo cp -f /home/austin/CPU_Boost/energy_performance_preference /sys/devices/system/cpu/cpufreq/policy0/
cp -f /home/austin/CPU_Boost/scaling_governor /sys/devices/system/cpu/cpufreq/policy0/
chown root:root /sys/devices/system/cpu/cpufreq/policy0/energy_performance_preference
chmod 444 /sys/devices/system/cpu/cpufreq/policy0/energy_performance_preference
[...]

Sei anche fortunato che konsole" cattura tutti i seguenti argomenti passati a Konsole " [ ref ] - la maggior parte dei comandi non lo farà, invece prendendo sudocome parametro per la -ee cercando di gestire cp, -f, /home/austin/...come gli altri argomenti della riga di comando.


cpnon è davvero appropriato per l'uso con la scrittura su sysfs... anche se funziona. Avresti maggiori probabilità di avere successo con il reindirizzamento o tee.

Ad esempio, se il scaling_governorfile contiene il testo performance, è possibile effettuare le seguenti operazioni:

echo "performance" | sudo tee /sys/devices/system/cpu/cpufreq/policy0/scaling_governor

Quindi non ci sarebbe bisogno del successivo chowno chmod. Sono tre comandi fino a uno.


Lo stai facendo che, una volta per ciascuno di policy0, policy1, policy2e policy3. Che ne dici di quanto segue:

sudo tee /sys/devices/system/cpu/cpufreq/policy*/scaling_governor <<<"performance"

Sono quattro ripetizioni fino a una chiamata a tee- e si adatterà anche automaticamente per diversi sistemi (il mio sistema ha 8 criteri, non 4).

Ripetilo ancora per energy_performance_preferencee per il valore che desideri utilizzare.


Per quanto riguarda come farlo apparire in konsole... ne hai bisogno? Non puoi semplicemente eseguirlo come uno script bash?

Forse, se lo desideri davvero, potresti usare quanto segue come comando / scorciatoia per avviare lo script:

konsole -e "${PATH_TO_SCRIPT}"

1
Codice golf: teeaccetta più uscite, in modo da non c'è bisogno di ciclo, solo si può fare: echo "performance" | sudo tee /sys/devices/system/cpu/cpufreq/policy*/scaling_governor.
xenoide,

Quindi il " Ripeti ancora quel ciclo " più tardi non ha più senso, dato che non esiste un ciclo :)
xenoid
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.