Jump to content
HWBOT Community Forums

Tweaking Rasperry Pi to the limit

Recommended Posts

Now since the ARM Overclocking Competition is over I want to show my tweaks here. To try them out make sure to set up your RPi with newest JAVA8 like Massman explained in his RPi Overclocking guide. Please do not start the GUI with startx.


The first tweak will be to turn off everything which is not necessary (like sound and network if you don't want to watch youtube). Type


$ ps -ef


to see which processes are running.

Now type the following to enter runlevel 1:


$ sudo init 1


The Linux OS is now in single user mode and only processes which are necessary to keep the OS running are running.


$ ps -ef


Next, start the Benchmark and use the second tweak. I changed process priority to use the processor more efficiently. This can be done with the command "nice".


$ nice -n 19 java -jar hwbotprime.jar


You can adjust the priority with the parameter -n. Values range is from -20 (most favorable to the process) to 19 (least favorable to the process). To get more information read the manual page of nice with the command "man nice". It's strange to me that the score is higher with a lower priority, but I think this is because the linux OS and the java runtime environment are running faster then and the benchmark doesn't have to wait for them.

The score I get after the bechmark is somtimes very different. I get results under 720PPS but for example after seven runs suddenly I have a score around 730PPS once. My third tweak was a short shell script, which runs the benchmark in a loop and saves every score. I can choose the highest score in the end.

Save this code in a new file named bench.sh.

for (( c=1; ; c++ ))
vcgencmd measure_temp
echo $c > keys
echo "q" >> keys
nice -n 19 java -jar /home/pi/hwbotprime.jar < keys > log.txt 2>&1

Make the script executable


$ chmod +x bench.sh


and execute it.


$ ./bench.sh


After you stopped that script with CTRL-C you can analyse your score with the following command.


$ cat log.txt | grep "Score:" | grep -n "Score:"


The numbers in front of the lines represent the file for that benchmark run. So "3:Score: 716.65" is file 3.hwbot.


I found other tweaks in the Internet but they don't boost my RPi very much.

http://magikh0e.ihtb.org/pubPapers/Raspberry.Pi.Hacking.pdf page 4 - 10


Of course I also overclocked my RPi. Here are my settings in the config.txt:



over_voltage_sdram and over_voltage are limited to 8 as you might know.

But core_freq is also limited. http://www.raspberrypi.org/phpBB3/viewtopic.php?f=63&t=52422&p=410136#p410136

You can try that by setting core_freq to 600 and measure the clock with the command


$ vcgencmd measure_clock core


Then set core_freq to 601 and type the command again. You will get a clock of 500 not 601 !


BTW, with the vcgencmd command you can do complete monitoring of your Pi. More here: http://elinux.org/RPi_vcgencmd_usage

Here is a script for monitor the RPi:

for src in arm core h264 isp v3d uart pwm emmc pixel vec hdmi dpi ; do \
echo -e "$src:\t$(vcgencmd measure_clock $src)" ; \
for id in core sdram_c sdram_i sdram_p ; do \
echo -e "$id:\t$(vcgencmd measure_volts $id)" ; \
echo -e "temperature:\t$(vcgencmd measure_temp)"
for codec in H264 MPG2 WVC1 MPG4 MJPG WMV9 ; do \
echo -e "$codec:\t$(vcgencmd codec_enabled $codec)" ; \
echo ""
echo "config.txt Settings:"
vcgencmd get_config int
echo ""
echo "Memory split:"
vcgencmd get_mem arm
vcgencmd get_mem gpu


What about EPower? I saw that hardware mod with L5 Inductor.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...