<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://www.slacky.eu/wikislack/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="it">
		<id>http://www.slacky.eu/wikislack/index.php?title=Cpuscaling&amp;feed=atom&amp;action=history</id>
		<title>Cpuscaling - Cronologia</title>
		<link rel="self" type="application/atom+xml" href="http://www.slacky.eu/wikislack/index.php?title=Cpuscaling&amp;feed=atom&amp;action=history"/>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/wikislack/index.php?title=Cpuscaling&amp;action=history"/>
		<updated>2013-05-23T08:01:01Z</updated>
		<subtitle>Cronologia della pagina su questo sito</subtitle>
		<generator>MediaWiki 1.20.3</generator>

	<entry>
		<id>http://www.slacky.eu/wikislack/index.php?title=Cpuscaling&amp;diff=2875&amp;oldid=prev</id>
		<title>Gallows: /* Script */</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/wikislack/index.php?title=Cpuscaling&amp;diff=2875&amp;oldid=prev"/>
				<updated>2006-10-05T11:51:43Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Script&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;a href=&quot;http://www.slacky.eu/wikislack/index.php?title=Cpuscaling&amp;amp;diff=2875&amp;amp;oldid=2445&quot;&gt;Mostra cambiamenti&lt;/a&gt;</summary>
		<author><name>Gallows</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/wikislack/index.php?title=Cpuscaling&amp;diff=2445&amp;oldid=prev</id>
		<title>L1q1d il 09:46, 12 set 2006</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/wikislack/index.php?title=Cpuscaling&amp;diff=2445&amp;oldid=prev"/>
				<updated>2006-09-12T09:46:15Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nuova pagina&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category:Script]]&lt;br /&gt;
= Descrizione =&lt;br /&gt;
Cpuscaling, script che permette di settare (tramite scrittura sul sysfs) un determinato range di frequenze per la cpu oppure di selezionare una modalità di comportamento predefinita tra quelle disponibili dal kernel, le quali vanno dal risparmio dell'energia (powersave), al pieno sfruttamento della cpu (performance), passando per governor intermedi che aumentano la frequenza della cpu in relazione ai programmi in esecuzione. Ovviamente tali feature devono essere presenti nel kernel (anche non built-in, ci pensa lo script a caricare i moduli).&lt;br /&gt;
= Script =&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#&lt;br /&gt;
# cpuscaling v. 0.0.2&lt;br /&gt;
# by Sergio Perticone &amp;lt;gall0ws [at] tiscali [dot] it&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# cpuscaling allows you to change the clock speed of CPU on the fly.&lt;br /&gt;
#&lt;br /&gt;
# suggest: put this in /usr/sbin&lt;br /&gt;
#&lt;br /&gt;
# :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::&lt;br /&gt;
#&lt;br /&gt;
# for limited user(s) you can use sudo(8), it works fine ;)&lt;br /&gt;
#&lt;br /&gt;
# add in your /etc/sudoers something like this:&lt;br /&gt;
#  -------------------------------------------------------&lt;br /&gt;
#   your_user  ALL=(ALL)   NOPASSWD: /usr/sbin/cpuscaling &lt;br /&gt;
#  -------------------------------------------------------&lt;br /&gt;
# so:&lt;br /&gt;
#     $ sudo /usr/sbin/cpuscaling [ options ]&lt;br /&gt;
#&lt;br /&gt;
# :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::&lt;br /&gt;
#&lt;br /&gt;
# oh yes, it's (dirty) GPL code: &amp;lt;http://www.gnu.org/licenses/gpl.txt&amp;gt; &lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
# set some variables:&lt;br /&gt;
SYSDIR=&amp;quot;/sys/devices/system/cpu/cpu0/cpufreq&amp;quot;&lt;br /&gt;
AVAILABLE_GOVERNORS=&amp;quot;$SYSDIR/scaling_available_governors&amp;quot;&lt;br /&gt;
GOVERNOR=&amp;quot;$SYSDIR/scaling_governor&amp;quot;&lt;br /&gt;
FREQMAX=&amp;quot;$SYSDIR/scaling_max_freq&amp;quot;&lt;br /&gt;
FREQMIN=&amp;quot;$SYSDIR/scaling_min_freq&amp;quot;&lt;br /&gt;
FREQCUR=&amp;quot;$SYSDIR/scaling_cur_freq&amp;quot;&lt;br /&gt;
FREQS=&amp;quot;$SYSDIR/scaling_available_frequencies&amp;quot;&lt;br /&gt;
&lt;br /&gt;
function usage() {&lt;br /&gt;
&lt;br /&gt;
  cat &amp;lt;&amp;lt; END&lt;br /&gt;
Usage:&lt;br /&gt;
 cpuscaling [ governor ] | [ -f, --freqs ] | [ -M, --fmin ] | [ -m, --fmin ] FREQ &lt;br /&gt;
&lt;br /&gt;
  conservative		Tune governor to conservative&lt;br /&gt;
  ondemand		Tune governor to ondemand&lt;br /&gt;
  performance		Tune governor to performance&lt;br /&gt;
  powersave		Tune governor to powersave&lt;br /&gt;
  userspace		Tune governor to userspace&lt;br /&gt;
&lt;br /&gt;
  -f, --freqs		Print frequences supported by your CPU&lt;br /&gt;
  -M, --fmax FREQ	Set max frequence&lt;br /&gt;
  -m, --fmin FREQ	Set min frequence&lt;br /&gt;
  -s, --state		Show current state&lt;br /&gt;
&lt;br /&gt;
  -h, --help		Print this help and exit&lt;br /&gt;
&lt;br /&gt;
Report bugs to &amp;lt;gall0ws [at] tiscali [dot] it&amp;gt;.&lt;br /&gt;
END&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function only_root__exit() {&lt;br /&gt;
&lt;br /&gt;
  echo &amp;quot;Only superuser can do it.&amp;quot;&lt;br /&gt;
  exit 1&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function something_wrong__exit() {&lt;br /&gt;
&lt;br /&gt;
  echo &amp;quot;Failed. Please check your kernel settings.&amp;quot;&lt;br /&gt;
  exit 1&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function no_freq__exit() {&lt;br /&gt;
&lt;br /&gt;
  echo &amp;quot;Please choose a frequence.&amp;quot;&lt;br /&gt;
  exit 1&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function show_state() {&lt;br /&gt;
&lt;br /&gt;
  printf &amp;quot;governor:\t `cat $GOVERNOR`\n&amp;quot;&lt;br /&gt;
  printf &amp;quot;current :\t `cat $FREQCUR` Hz\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  [ &amp;quot;$GOVERNOR&amp;quot; == &amp;quot;performance&amp;quot; ] &amp;amp;&amp;amp; exit 0&lt;br /&gt;
&lt;br /&gt;
  [ &amp;quot;$GOVERNOR&amp;quot; == &amp;quot;conservative&amp;quot; ] &amp;amp;&amp;amp; {&lt;br /&gt;
     printf &amp;quot;freq:\t `cat $FREQMIN` Hz\n&amp;quot;&lt;br /&gt;
     exit 0&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
  printf &amp;quot;freq min:\t `cat $FREQMIN` Hz\n&amp;quot;&lt;br /&gt;
  printf &amp;quot;freq max:\t `cat $FREQMAX` Hz\n&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function show_freqs() {&lt;br /&gt;
&lt;br /&gt;
  cat $FREQS&lt;br /&gt;
  exit 0&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function freq_min() {&lt;br /&gt;
&lt;br /&gt;
 [ &amp;quot;$UID&amp;quot; != &amp;quot;0&amp;quot; ] &amp;amp;&amp;amp; only_root__exit&lt;br /&gt;
&lt;br /&gt;
  echo -n $FREQ &amp;gt; $FREQMIN&lt;br /&gt;
  show_state&lt;br /&gt;
  exit 0&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function freq_max() {&lt;br /&gt;
&lt;br /&gt;
 [ &amp;quot;$UID&amp;quot; != &amp;quot;0&amp;quot; ] &amp;amp;&amp;amp; only_root__exit&lt;br /&gt;
&lt;br /&gt;
  echo -n $FREQ &amp;gt; $FREQMAX &lt;br /&gt;
  show_state&lt;br /&gt;
  exit 0&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function set_governor() {&lt;br /&gt;
&lt;br /&gt;
  [ &amp;quot;$UID&amp;quot; != &amp;quot;0&amp;quot; ] &amp;amp;&amp;amp; only_root__exit&lt;br /&gt;
&lt;br /&gt;
# if governor seems not to be available then I try to load module:&lt;br /&gt;
  grep -q $NEW_GOVERNOR $AVAILABLE_GOVERNORS || {	      &lt;br /&gt;
    /sbin/modprobe cpufreq_$NEW_GOVERNOR || something_wrong__exit # mmm, check your config :/&lt;br /&gt;
  }&lt;br /&gt;
  echo -n $NEW_GOVERNOR &amp;gt; $GOVERNOR&lt;br /&gt;
  exit 0&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# parser:&lt;br /&gt;
case &amp;quot;$1&amp;quot; in&lt;br /&gt;
&lt;br /&gt;
'conservative'|'ondemand'|'performance'|'powersave'|'userspace')&lt;br /&gt;
  NEW_GOVERNOR=$@&lt;br /&gt;
  set_governor&lt;br /&gt;
  ;;&lt;br /&gt;
&lt;br /&gt;
'--freqs'|'-f')&lt;br /&gt;
  show_freqs&lt;br /&gt;
  ;;&lt;br /&gt;
&lt;br /&gt;
'--fmax'|'-M')&lt;br /&gt;
  [ -z &amp;quot;$2&amp;quot; ] &amp;amp;&amp;amp; no_freq__exit&lt;br /&gt;
  FREQ=&amp;quot;$2&amp;quot;&lt;br /&gt;
  freq_max&lt;br /&gt;
  ;;&lt;br /&gt;
&lt;br /&gt;
'--fmin'|'-m')&lt;br /&gt;
  [ -z &amp;quot;$2&amp;quot; ] &amp;amp;&amp;amp; no_freq__exit&lt;br /&gt;
  FREQ=&amp;quot;$2&amp;quot; &lt;br /&gt;
  freq_min&lt;br /&gt;
  ;;&lt;br /&gt;
&lt;br /&gt;
'--state'|'-s')&lt;br /&gt;
  show_state&lt;br /&gt;
  ;;&lt;br /&gt;
&lt;br /&gt;
'--help'|'-h'|'-wtf')&lt;br /&gt;
  usage&lt;br /&gt;
  ;;&lt;br /&gt;
&lt;br /&gt;
'')&lt;br /&gt;
  echo &amp;quot;cpuscaling: too few arguments&amp;quot;&lt;br /&gt;
  echo &amp;quot;Try \`cpuscaling --help' for more information.&amp;quot;&lt;br /&gt;
  ;;&lt;br /&gt;
&lt;br /&gt;
*)&lt;br /&gt;
  echo &amp;quot;cpuscaling: invalid option -- $1&amp;quot;&lt;br /&gt;
  echo &amp;quot;Try \`cpuscaling --help' for more information.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
esac&lt;br /&gt;
&lt;br /&gt;
## EOF ##&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Data:    	03 Jun 2006&lt;br /&gt;
* Autore:    	Gallows&lt;br /&gt;
* Versione:    	0.0.2&lt;/div&gt;</summary>
		<author><name>L1q1d</name></author>	</entry>

	</feed>