It is said to overclock Raspberry Pi one has to upgrade the system:
sudo apt-get update && sudo apt-get install raspberrypi* raspi-config
Then configure it with raspi-config
utility:
sudo raspi-config
It is good anyhow to check the system version first:
uname -a Linux raspberrystar.pinkaccordions.org 3.2.27+ #174 PREEMPT Wed Sep 26 14:09:47 BST 2012 armv6l GNU/Linux
The kernel is up to date. Inspecting raspi-config
I have discovered
it is not updated, but I prefer to configure the system via CLI (command line or console) interface
rather than GUI one (no need to connect the RPi to a TV set which is in another room:-).
So I decided not to upgrade the system but rather manually configure it.
To achieve overclocking one has to add the following lines to
/boot/config.txt
file:
pi@raspberrystar ~ $ sudo vim /boot/config.txt ## add the following: temp_limit=80 arm_freq=900 sdram_freq=500
Now reboot:
pi@raspberrystar ~ $ sudo reboot
Check the dmesg
:
pi@raspberrystar ~ $ dmesg | grep 7000 [ 1.956412] bcm2835-cpufreq: min=700000 max=900000 cur=700000
CPU frequency is still 700Mhz. To increase it one has to
edit scaling_governor
file:
pi@raspberrystar ~ $ sudo bash root@raspberrystar:/home/pi# echo "performance" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor ## check if the above works:-) pi@raspberrystar ~ $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor performance # display available options: pi@raspberrystar ~ $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors conservative ondemand userspace powersave performance
The ondemand
option
allows for adjusting CPU frequency depending
on CPU utilization.
Without any further reboot the new settings work:
# check current CPU frequency pi@raspberrystar ~ $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq 900000
There is even a temperature sensor available so one can check if the CPU is not overheated:
# check processor temperature: pi@raspberrystar ~ $ /opt/vc/bin/vcgencmd measure_temp temp=46.5'C
To boot the system with scaling_governor
set to appropriate
value one has to edit /etc/rc.local
:
pi@raspberrystar ~ $ sudo vim /etc/rc.local # Add the following line # echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
I have performed a simple test:
#!/bin/bash # N=5 START=$(date +%s) for ((i=1;i<=$N;i++ )) ; do echo "**** Iteration $i ****" STARTI=$(date +%s) perl -e 'for ($i=0;$i<=10000000;$i++) { $s .= "xx"; }' ENDI=$(date +%s) ; TOTALI=$(( $ENDI - $STARTI )) echo "*** $TOTALI s." done END=$(date +%s) TOTAL=$(( $END - $START )) MEAN=`awk -v m=$TOTAL -v n=$N 'BEGIN { print m/n }'` echo "total: " $TOTAL "mean: " $MEAN ##
The test uses the following perl program:
perl -e 'for ($i=0;$i<=10000000;$i++) { $s .= "xx"; }'
Because computing time can vary, the program has to be run N
times
and the mean time is reported.
My Rpi runs 28--29s at 700 Mhz, 25,8s at 800 Mhz and 21s at 900 Mhz.
So running at 900 Mhz results in almost 30% reduction of computing time.