Centrino CPU Speed ändern

h0sch1

Well-Known Member
Hi @ll

Mir wars am Wochenende langweilig und da hab ich ein kleines Script geschrieben, dass die verschiedenen Mhz zahlen anzeigt und mit dem man die Werte schnell und einfach ändern kann.

--> cpu_speed.sh <--

Code:
#!/bin/sh
###
###  Author: Manuel Strauch ( hoschi@anukis.de ) 
###

###############################################################################
# AB HIER FINGER WEG AB HIER FINGER WEG AB HIER FINGER WEG AB HIER FINGER WEG #
###############################################################################
version="1.1"
zahl="0"
zahl2="0"
cpu="shit"
current_speed="`sysctl dev.cpu.0.freq | sed s/^.*:// `"

tmp_speed="`sysctl dev.cpu.0.freq_levels | sed s/^.*://`"
for i in ${tmp_speed}; do
  speed="${speed}`echo "${i}" | sed "s/\/.*/ /g"`"
done

cat <<__INFO__



                 ****************************************
                 *   cpu frequenz changer version ${version}   *
                 ****************************************

Das ist deine aktuelle CPU Frequenz: ${current_speed}
Das sind alle möglichen CPU Frequenzen:
${speed}

__INFO__

if [ ! -z "${1}" ]; then
  new_speed="${1}"
else 
cat <<__INFO2__
Bitte gib die gewünschte Frequenz ein oder "q" für beenden:
__INFO2__
read new_speed
fi

for i in ${speed}; do
  zahl=`expr ${zahl} + 1`
done
if [ "${new_speed}" != "q" ]; then
  for i in ${speed}; do
    zahl2=`expr ${zahl2} + 1`
    if [ "${i}" = "${new_speed}" ]; then
      sysctl dev.cpu.0.freq="${new_speed}" \
      >/dev/null 2>&1 && echo "CPU Frequenz wurde erfolgreich umgestellt"
      cpu="ok"
    fi
    if [ "${zahl}" = "${zahl2}" ]; then
      if [ "$cpu" != "ok" ]; then
        echo "Die eingebene Frequenz steht nicht zur auswahl!"
        exit 0
      fi
    fi
  done
fi

exit 0

Hier noch was für einen sed Freak!

kann ich die folgenden Zeilen in einer sed zeile unterbringen?

Code:
tmp_speed="`sysctl dev.cpu.0.freq_levels | sed s/^.*://`"
for i in ${tmp_speed}; do
  speed="${speed}`echo "${i}" | sed "s/\/.*/ /g"`"
done

Danke schon mal
 
> kann ich die folgenden Zeilen in einer sed zeile unterbringen?

na ja wenn's dann in einer Zeile sein soll so vielleicht:

Code:
tmp_speed=`sysctl dev.cpu.0.freq_levels | sed "s/^.*: //" | sed "s/\/[^ ]*//g"`
eine Möglichkeit um zwei sed aufrufe herum zu kommen sehe ich aber gerade auch nicht

Gruß paefchen

Edit: manchmal hilft die man doch ;-)
Code:
tmp_speed=`sysctl -b dev.cpu.0.freq_levels | sed "s/\/[^ ]*//g"`
 
Zuletzt bearbeitet von einem Moderator:
Hi paefchen

Danke so leicht kann das leben sein.
hab es jetzt so eingebaut.
speed="`sysctl dev.cpu.0.freq_levels | sed -e "s/^.*: //" -e "s/\/[^ ]*//g"`"

Hier nochmal den ganzen code

Code:
#!/bin/sh
###
###  Author: Manuel Strauch ( hoschi@anukis.de ) 
###

###############################################################################
# AB HIER FINGER WEG AB HIER FINGER WEG AB HIER FINGER WEG AB HIER FINGER WEG #
###############################################################################
version="1.1"
zahl="0"
zahl2="0"
cpu="shit"
current_speed="`sysctl dev.cpu.0.freq | sed s/^.*:// `"
speed="`sysctl dev.cpu.0.freq_levels | sed -e "s/^.*: //" -e "s/\/[^ ]*//g"`"

cat <<__INFO__



                 ****************************************
                 *   cpu frequenz changer version ${version}   *
                 ****************************************

Das ist deine aktuelle CPU Frequenz: ${current_speed}
Das sind alle möglichen CPU Frequenzen:
${speed}

__INFO__

if [ ! -z "${1}" ]; then
  new_speed="${1}"
else 
cat <<__INFO2__
Bitte gib die gewünschte Frequenz ein oder "q" für beenden:
__INFO2__
read new_speed
fi

for i in ${speed}; do
  zahl=`expr ${zahl} + 1`
done
if [ "${new_speed}" != "q" ]; then
  for i in ${speed}; do
    zahl2=`expr ${zahl2} + 1`
    if [ "${i}" = "${new_speed}" ]; then
      sysctl dev.cpu.0.freq="${new_speed}" \
      >/dev/null 2>&1 && echo "CPU Frequenz wurde erfolgreich umgestellt"
      cpu="ok"
    fi
    if [ "${zahl}" = "${zahl2}" ]; then
      if [ "$cpu" != "ok" ]; then
        echo "Die eingebene Frequenz steht nicht zur auswahl!"
        exit 0
      fi
    fi
  done
fi

exit 0
 
Hi Leute

Hab das Script noch ein wenig erweitert.
Soweit das Bios es unterstützt zeigt es euch jetzt auch die MilliWatt bei der jeweiligen Mhzzahl an


Code:
God Mode ~ 506:6 # cpu_speed.sh


                 ****************************************
                 *   cpu frequenz changer version 1.2   *
                 ****************************************

Das ist deine aktuelle CPU Frequenz:  1500
Das sind alle möglichen CPU Frequenzen:
 
                       1500 Mhz       ===>       21000 mW
                       1312 Mhz       ===>       18375 mW
                       1200 Mhz       ===>       16500 mW
                       1050 Mhz       ===>       14437 mW
                       1000 Mhz       ===>       13500 mW
                       875 Mhz        ===>       11812 mW
                       800 Mhz        ===>       10500 mW
                       700 Mhz        ===>       9187 mW
                       600 Mhz        ===>       7500 mW
                       525 Mhz        ===>       6562 mW
                       450 Mhz        ===>       5625 mW
                       375 Mhz        ===>       4687 mW
                       300 Mhz        ===>       3750 mW
                       225 Mhz        ===>       2812 mW
                       150 Mhz        ===>       1875 mW
                       75 Mhz         ===>       937 mW
 
Bitte gib die gewünschte Frequenz ein oder "q" für beenden:
1000
CPU Frequenz wurde erfolgreich umgestellt
God Mode ~ 507:7 #

Hier noch das geänderte Script!

Code:
#!/bin/sh
###
###  Author: Manuel Strauch ( hoschi@anukis.de ) 
###

###############################################################################
# AB HIER FINGER WEG AB HIER FINGER WEG AB HIER FINGER WEG AB HIER FINGER WEG #
###############################################################################
version="1.2"
zahl="0"
zahl2="0"
cpu="shit"
current_speed="`sysctl dev.cpu.0.freq | sed s/^.*:// `"
speed="`sysctl dev.cpu.0.freq_levels | sed -e "s/^.*: //" -e "s/\/[^ ]*//g"`"
cpu_werte="`sysctl dev.cpu.0.freq_levels | sed -e "s/^.*: //"`"
T1_ESC="\033[80C\033[56D"
T2_ESC="\033[80C\033[41D"
T3_ESC="\033[80C\033[30D"

cat <<__INFO__

                 ****************************************
                 *   cpu frequenz changer version ${version}   *
                 ****************************************

Das ist deine aktuelle CPU Frequenz: ${current_speed}
__INFO__

if [ ! -z "${1}" ]; then
  new_speed="${1}"
else 
echo "Das sind alle möglichen CPU Frequenzen:"
echo " "
for i in ${cpu_werte}; do
  cpu="`echo ${i} | sed -e"s/\/[^ ]*//"`"
  milliwatt="`echo ${i} | sed -e"s/[^ ]*\///"`"
  if [ "${milliwatt}" != "-1" ]; then
    milliwatt="${milliwatt} mW"
  else
    milliwatt="Bios Bug!"
  fi
  echo -e "${T1_ESC}${cpu} Mhz${T2_ESC}===>${T3_ESC}${milliwatt}"
done

echo " "
cat <<__INFO2__
Bitte gib die gewünschte Frequenz ein oder "q" für beenden:
__INFO2__
read new_speed
fi

for i in ${speed}; do
  zahl=`expr ${zahl} + 1`
done
if [ "${new_speed}" != "q" ]; then
  for i in ${speed}; do
    zahl2=`expr ${zahl2} + 1`
    if [ "${i}" = "${new_speed}" ]; then
      sysctl dev.cpu.0.freq="${new_speed}" \
      >/dev/null 2>&1 && echo "CPU Frequenz wurde erfolgreich umgestellt"
      cpu="ok"
    fi
    if [ "${zahl}" = "${zahl2}" ]; then
      if [ "$cpu" != "ok" ]; then
        echo "Die eingebene Frequenz steht nicht zur auswahl!"
        exit 0
      fi
    fi
  done
fi

exit 0

Natürlich kann man auch z.b folgendes eingeben:
Code:
cpu_speed.sh 1200
dann wird die Mhzzahl gleich gesetzt
 
Zurück
Oben