<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://maemo.octonezd.me/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=85.156.128.24</id>
	<title>Maemo Wiki Mirror - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://maemo.octonezd.me/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=85.156.128.24"/>
	<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php/Special:Contributions/85.156.128.24"/>
	<updated>2026-04-22T10:38:05Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=Overclocking&amp;diff=31215</id>
		<title>Overclocking</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=Overclocking&amp;diff=31215"/>
		<updated>2010-04-11T20:13:20Z</updated>

		<summary type="html">&lt;p&gt;85.156.128.24: /* Installation of Lehto&amp;#039;s PR1.1 kernels */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; &#039;&#039;WORK IN PROGRESS, HELP IF YOU WANT&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Overclocking is discussed in [http://talk.maemo.org/showthread.php?t=39753 this thread].&lt;br /&gt;
Benchmark results can be found [http://talk.maemo.org/showthread.php?p=605189 here].&lt;br /&gt;
If you&#039;re more interested in power saving read [http://talk.maemo.org/showthread.php?t=49654 this].&lt;br /&gt;
&lt;br /&gt;
=Warnings=&lt;br /&gt;
&lt;br /&gt;
- Overclocking WILL VOID YOUR WARRANTY&amp;lt;br&amp;gt;&lt;br /&gt;
- The lifetime of your device will get reduced&amp;lt;br&amp;gt;&lt;br /&gt;
- You could lose the data in your device (file system corruption)&amp;lt;br&amp;gt;&lt;br /&gt;
- Every device is an individual, what is stable for others might not be for you&amp;lt;br&amp;gt;&lt;br /&gt;
- If you encounter ANY unusual problems, lower your clock frequency&amp;lt;br&amp;gt;&lt;br /&gt;
- You do it at your own responsibility. No whining afterwards. If you&#039;re unsure, don&#039;t do it.&amp;lt;br&amp;gt;&lt;br /&gt;
- [http://depot.javispedro.com/nit/thewarningtm.jpeg Nokia&#039;s overclocking warning]: 500MHz is the normal frequency. Everything above is not good for your device, even with the stock kernel.&amp;lt;br&amp;gt;&lt;br /&gt;
- Igor Stoppa&#039;s [http://talk.maemo.org/showpost.php?p=596149&amp;amp;postcount=904 warning] and [http://talk.maemo.org/showpost.php?p=603833&amp;amp;postcount=66 comment]&lt;br /&gt;
- [http://talk.maemo.org/showpost.php?p=596274&amp;amp;postcount=937 chip vendors specs]&lt;br /&gt;
&lt;br /&gt;
=Available kernels=&lt;br /&gt;
&lt;br /&gt;
Overclocking requires installation of a custom kernel.&lt;br /&gt;
There are two types of kernels:&lt;br /&gt;
# modified PR1.1 kernels by Lehto and others. The only difference to the stock Nokia kernel is that the change the available hardcoded frequencies.&lt;br /&gt;
# enhanced kernels by titan. They are compatible with PR1.2 (!) , contain lots of additional features (IPv6, NAT etc) and bugfixes. In addition they include a large set of possible frequencies (125MHz-1.2GHz) which you manually set an try out without flashing a new kernel. The defaults are set to the standard 250-600MHz range. The kernel can be installed via HAM from the extras-devel catalouge.&lt;br /&gt;
&lt;br /&gt;
== Installation of Lehto&#039;s PR1.1 kernels ==&lt;br /&gt;
&lt;br /&gt;
[http://talk.maemo.org/showpost.php?p=594200&amp;amp;postcount=309 Lehto&#039;s Kernels]&lt;br /&gt;
[http://talk.maemo.org/showpost.php?p=595582&amp;amp;postcount=774 talk.maemo.org: Jakiman&#039;s Overclock Guide / Summary]&lt;br /&gt;
&lt;br /&gt;
== Installation of titan&#039;s enhanced kernels ==&lt;br /&gt;
This kernel makes it possible dynamically change the maximum frequency up to 1.2GHz (supported frequencies are 250,500,550,600,700,750,810,850,900,950,1000,1100,1200MHz).&lt;br /&gt;
WARNING: Overclocking may damage your device and is at your own risk! It may void your warranty and destroy your data. You have been warned.&lt;br /&gt;
You can manually increase the limit until your device fries using, e.g. for 600MHz&lt;br /&gt;
&lt;br /&gt;
[http://talk.maemo.org/showthread.php?t=43420 talk.maemo.org: Discussion of the enhanded kernel]&lt;br /&gt;
&lt;br /&gt;
Note: all commands on this page must be run as root in X Terminal (install rootsh package and enter &amp;quot;sudo gainroot&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
=== Installation of stable [http://talk.maemo.org/showpost.php?p=597569&amp;amp;postcount=1259 kernel (version maemo19)] from extras-testing ===&lt;br /&gt;
[http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/kernel-flasher-maemo/2.6.28-maemo19/ the package]&lt;br /&gt;
This version maemo19 is good for temporarily testing higher frequencies but a phone call resets the limits. It still includes the invalid 800Mhz frequency.&lt;br /&gt;
[http://talk.maemo.org/showpost.php?p=600739&amp;amp;postcount=1722 phone call reset workaround for the older maemo19 kernel]&lt;br /&gt;
&lt;br /&gt;
It requires firmware PR1.1 or newer.&lt;br /&gt;
# Install the package kernel-flasher-maemo (section system in HAM)&lt;br /&gt;
# shutdown and cold boot. There&#039;s no need for reflashing etc.&lt;br /&gt;
&lt;br /&gt;
=== Installation of the kernel (maemo21) from extras-devel ===&lt;br /&gt;
Installation is the same as with the extras-testing kernel.&lt;br /&gt;
This version fixes the phone call reset problem and includes 125MHz (setting 124999),&lt;br /&gt;
but it does still include the invalid 800MHz.&lt;br /&gt;
The files in the [http://talk.maemo.org/showpost.php?p=602586&amp;amp;postcount=1890 latest version of the community kernel] &lt;br /&gt;
fix the 800Mhz issue.&lt;br /&gt;
&lt;br /&gt;
=== Installation of the latest experimental kernels ===&lt;br /&gt;
&lt;br /&gt;
Create and go to an empty directory first. Make sure wget is installed. Run everything as root.&lt;br /&gt;
&lt;br /&gt;
Download of the normal voltage kernel:&lt;br /&gt;
 wget http://maemory.com/N900/overclock/kernel-maemo_2.6.28-maemo21_armel.deb &lt;br /&gt;
 wget http://maemory.com/N900/overclock/kernel-modules-maemo_2.6.28-maemo21_armel.deb&lt;br /&gt;
 wget http://maemory.com/N900/overclock/kernel-flasher-maemo_2.6.28-maemo21_armel.deb&lt;br /&gt;
&lt;br /&gt;
[http://talk.maemo.org/showpost.php?p=603490&amp;amp;postcount=2004 The lower voltage versions of the same kernel] &lt;br /&gt;
may conserve power and reduce the damage of overclocking but they may be less stable.&lt;br /&gt;
&lt;br /&gt;
Download of the lower voltage (LV) kernel:&lt;br /&gt;
 wget http://maemory.com/N900/overclock/lv/kernel-maemo_2.6.28-maemo21_armel.deb &lt;br /&gt;
 wget http://maemory.com/N900/overclock/lv/kernel-modules-maemo_2.6.28-maemo21_armel.deb&lt;br /&gt;
 wget http://maemory.com/N900/overclock/lv/kernel-flasher-maemo_2.6.28-maemo21_armel.deb&lt;br /&gt;
&lt;br /&gt;
Comparison of LV kernel voltages with stock kernel:&lt;br /&gt;
#&amp;lt;=500 is the same as stock&lt;br /&gt;
#550 is 500 stock (normal voltage)&lt;br /&gt;
#600/700/750/810/850/900/950 is 550 stock (overvoltage)&lt;br /&gt;
#&amp;gt;=1000 is 600 stock (overvoltage)&lt;br /&gt;
&lt;br /&gt;
Download of the ultra low voltage (ULV) kernel (less stable?):&lt;br /&gt;
 wget http://maemory.com/N900/overclock/ulv/kernel-maemo_2.6.28-maemo21_armel.deb &lt;br /&gt;
 wget http://maemory.com/N900/overclock/ulv/kernel-modules-maemo_2.6.28-maemo21_armel.deb&lt;br /&gt;
 wget http://maemory.com/N900/overclock/ulv/kernel-flasher-maemo_2.6.28-maemo21_armel.deb&lt;br /&gt;
&lt;br /&gt;
Comparison of ULV kernel voltages with stock kernel:&lt;br /&gt;
#&amp;lt;=250 is &amp;lt;idle stock (ultra low voltage)&lt;br /&gt;
#500 is ca. idle stock (lower voltage)&lt;br /&gt;
#550/600 is 250 stock (low voltage)&lt;br /&gt;
#700/750/800 is &amp;lt;500 stock (low voltage)&lt;br /&gt;
#850 is 500 stock (normal voltage)&lt;br /&gt;
#900/950 is 550 stock (overvoltage)&lt;br /&gt;
#&amp;gt;=1000 is 600 stock (overvoltage)&lt;br /&gt;
&lt;br /&gt;
Download of the extremely low voltage (XLV) kernel (less stable?):&lt;br /&gt;
 wget http://maemory.com/N900/overclock/xlv/kernel-maemo_2.6.28-maemo21_armel.deb &lt;br /&gt;
 wget http://maemory.com/N900/overclock/xlv/kernel-modules-maemo_2.6.28-maemo21_armel.deb&lt;br /&gt;
 wget http://maemory.com/N900/overclock/xlv/kernel-flasher-maemo_2.6.28-maemo21_armel.deb&lt;br /&gt;
&lt;br /&gt;
Comparison of XLV kernel voltages with stock kernel:&lt;br /&gt;
#&amp;lt;=250 is &amp;lt;idle stock (extremely low voltage)&lt;br /&gt;
#500 is idle stock (lower voltage)&lt;br /&gt;
#550 is ca. idle stock (low voltage)&lt;br /&gt;
#600 is 250 stock (low voltage)&lt;br /&gt;
#700/750/800 is &amp;lt;500 stock (low voltage)&lt;br /&gt;
#850 is 500 stock (normal voltage)&lt;br /&gt;
#900/950 is 550 stock (overvoltage)&lt;br /&gt;
#&amp;gt;=1000 is 600 stock (overvoltage)&lt;br /&gt;
&lt;br /&gt;
Download of the &amp;quot;ideal&amp;quot; kernel (the same as XLV but with minimum 500Mhz and [500,850] defaults):&lt;br /&gt;
 wget http://maemory.com/N900/overclock/ideal/kernel-maemo_2.6.28-maemo21_armel.deb &lt;br /&gt;
 wget http://maemory.com/N900/overclock/ideal/kernel-modules-maemo_2.6.28-maemo21_armel.deb&lt;br /&gt;
 wget http://maemory.com/N900/overclock/ideal/kernel-flasher-maemo_2.6.28-maemo21_armel.deb&lt;br /&gt;
&lt;br /&gt;
Install with (shut the device down automatically, close all apps and save the data first!):&lt;br /&gt;
 dpkg -i kernel-m*&lt;br /&gt;
 dpkg -i kernel-f*&lt;br /&gt;
 halt&lt;br /&gt;
and boot again.&lt;br /&gt;
&lt;br /&gt;
=== Deinstallation ===&lt;br /&gt;
 sudo gainroot&lt;br /&gt;
 apt-get install --reinstall kernel kernel-flasher&lt;br /&gt;
 apt-get remove kernel-maemo kernel-modules-maemo&lt;br /&gt;
&lt;br /&gt;
=== Temporarly change of the frequency limits ===&lt;br /&gt;
 sudo gainroot&lt;br /&gt;
 echo 250000 &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq&lt;br /&gt;
 echo 599000 &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq&lt;br /&gt;
 cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq&lt;br /&gt;
 cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq&lt;br /&gt;
The last line shows which values were actually set.&lt;br /&gt;
To set 125MHz use 124999, for 600MHz 599999, for everthing else x000 with x=MHz.&lt;br /&gt;
This setting takes effect immediately and is cleared with the next reboot.&lt;br /&gt;
&lt;br /&gt;
=== Permanently change of the frequency limits ===&lt;br /&gt;
WARNING: Permanent overclocking is very dangerous!&lt;br /&gt;
To permanently fix a limit you found to be stable edit the scaling_max_freq setting in /etc/pmconfig&lt;br /&gt;
 vi /etc/pmconfig&lt;br /&gt;
or (with leafpad installed)&lt;br /&gt;
 leafpad /etc/pmconfig&lt;br /&gt;
&lt;br /&gt;
The defaults are:&lt;br /&gt;
 # Power management configuration file&lt;br /&gt;
 enable_off_mode 1&lt;br /&gt;
 sleep_while_idle 1&lt;br /&gt;
 sr_vdd1_autocomp 0&lt;br /&gt;
 sr_vdd2_autocomp 0&lt;br /&gt;
 clocks_off_while_idle 1&lt;br /&gt;
 voltage_off_while_idle 1&lt;br /&gt;
 scaling_governor ondemand&lt;br /&gt;
 scaling_max_freq 600000&lt;br /&gt;
 scaling_min_freq 125000&lt;br /&gt;
 sleep_ind 1&lt;br /&gt;
&lt;br /&gt;
=== Other permament settings ===&lt;br /&gt;
not all settings can be stored in pmconfig.&lt;br /&gt;
Create the following file /etc/event.d/overclock for them&lt;br /&gt;
 start on started hildon-desktop&lt;br /&gt;
 stop on starting shutdown&lt;br /&gt;
 service&lt;br /&gt;
 console none&lt;br /&gt;
 script&lt;br /&gt;
   echo 1 &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/ondemand/ignore_nice_load&lt;br /&gt;
   echo 75 &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold&lt;br /&gt;
   echo 150000 &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate&lt;br /&gt;
   modprobe bq27x00_battery&lt;br /&gt;
 end script&lt;br /&gt;
&lt;br /&gt;
=== Battery ===&lt;br /&gt;
In kernels version &amp;gt;=maemo20 you can read out the current battery info:&lt;br /&gt;
 modprobe bq27x00_battery&lt;br /&gt;
 cat /sys/class/power_supply/bq27200-0/current_now&lt;br /&gt;
&lt;br /&gt;
=== Holding a kernel version ===&lt;br /&gt;
It your manually installed kernel should be not upgraded to the one in extras* try [http://talk.maemo.org/showpost.php?p=603915&amp;amp;postcount=2063 this]:&lt;br /&gt;
 echo kernel-flasher-maemo hold | dpkg --set-selections&lt;br /&gt;
 echo kernel-maemo hold | dpkg --set-selections&lt;br /&gt;
 echo kernel-modules-maemo hold | dpkg --set-selections&lt;br /&gt;
to unlock the version:&lt;br /&gt;
 echo kernel-flasher-maemo install | dpkg --set-selections&lt;br /&gt;
 echo kernel-maemo install | dpkg --set-selections&lt;br /&gt;
 echo kernel-modules-maemo install | dpkg --set-selections&lt;br /&gt;
&lt;br /&gt;
=== Remarks ===&lt;br /&gt;
# The screen calibration in settings crashes immediately. It is a known bug in the calibration app, not in the kernel. It&#039;s mentioned in the kernel package description and is due to additional evdev (joystick,mouse) support. Just calibrate once with the stock kernel before you install the fully featured kernel.&lt;br /&gt;
# [http://talk.maemo.org/showpost.php?p=597703&amp;amp;postcount=141 the 125MHz issue]&lt;br /&gt;
# Installing another version of the enhanced kernel will just overwrite the older version. The stock kernel modules are preserved so that you can simply reflash the stock kernel via USB.&lt;br /&gt;
# If you for some reason get errors like this during removal or installation  &amp;quot;rm: cannot remove &#039;/lib/modules/2.6.28.10maemo-lv-omap1/modules.*&#039;: No such file or directory&amp;quot;.try this [http://talk.maemo.org/showpost.php?p=603938&amp;amp;postcount=196 workaround]. There was a bug in one of the early LV kernels but it should be fixed in more recent versions.&lt;br /&gt;
# This kernel will not conflict with the future PR1.2 upgrade. The upgrade will, however, overwrite this kernel and you&#039;ll have to install it again.&lt;br /&gt;
&lt;br /&gt;
=Additional information and hints=&lt;br /&gt;
&lt;br /&gt;
# the frequencies available in the Nokia kernel are: 250, 500, 550 and 600MHz.&lt;br /&gt;
# Nokia [http://talk.maemo.org/showpost.php?p=601691&amp;amp;postcount=1823 locks the device to 600MHz] during phone calls. This may be a bug. It also [http://talk.maemo.org/showpost.php?p=600721&amp;amp;postcount=1720 affects] Letho&#039;s kernels.&lt;br /&gt;
# the telephone app is closed-source and broken. After a phone call it sets the maximum to 600Mhz and the minimum to 250MHz (or  125MHz if available) irrespective of what you have set before.&lt;br /&gt;
# when connected via USB the device locks the minimum frequency to 500Mhz.&lt;br /&gt;
# By default the device is configured to use 125MHz as the lowest frequency but it not enabled in the kernel [https://bugs.maemo.org/show_bug.cgi?id=7116 pmconfig bug]&lt;br /&gt;
# if enable 125MHz also set  &amp;quot;echo 1 &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/ondemand/ignore_nice_load&amp;quot; [http://talk.maemo.org/showpost.php?p=602687&amp;amp;postcount=185 hint]&lt;br /&gt;
# [http://talk.maemo.org/showpost.php?p=599870&amp;amp;postcount=170 improving responsiveness]&lt;br /&gt;
# [http://talk.maemo.org/showpost.php?p=599618&amp;amp;postcount=168 safe pmconfig configuration]&lt;br /&gt;
# the warning &amp;quot;WARNING: at arch/arm/mach-omap2/clock34xx.c:443 omap3_noncore_dpll_set_rate+0x28c/0x2dc()&amp;quot; in the kernel logs (dmesg) only happens if the invalid 800MHz frequency was selected. ignore it.&lt;br /&gt;
# [http://talk.maemo.org/showpost.php?p=603585&amp;amp;postcount=189 saving more battery power when idle]&lt;br /&gt;
# EvilJazz had photoshopped a [http://talk.maemo.org/showpost.php?p=605523&amp;amp;postcount=90 picture of a device being overclocked 1.7GHz]. It&#039;s a JOKE!&lt;br /&gt;
# reading one of the temperature sensors &amp;quot;cat /sys/devices/platform/omap34xx_temp/temp1_input&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=Useful stuff=&lt;br /&gt;
&lt;br /&gt;
==Show current CPU frequency==&lt;br /&gt;
&lt;br /&gt;
 awk &#039;{print $1/1000&amp;quot; MHz&amp;quot;}&#039; /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Set maximum CPU frequency==&lt;br /&gt;
&lt;br /&gt;
From root terminal:&lt;br /&gt;
&lt;br /&gt;
 echo $((600*1000)) &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq&lt;br /&gt;
&lt;br /&gt;
Replace 600 with desired maximum frequency. The list of available frequencies on your device/kernel can be obtained with command:&lt;br /&gt;
&lt;br /&gt;
 awk &#039;{print $1/1000&amp;quot; MHz,&amp;quot;,$2/1000&amp;quot; MHz,&amp;quot;,$3/1000&amp;quot; MHz,&amp;quot;,$4/1000&amp;quot; MHz,&amp;quot;,$5/1000&amp;quot; MHz&amp;quot;}&#039; /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies&lt;br /&gt;
&lt;br /&gt;
If the last value returned is 0 MHz, this means that you have only 4 available frequencies.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Analyzing time_in_state (by rooted)==&lt;br /&gt;
&lt;br /&gt;
This script generates readable output (percentage) of states used. It is designed for 5 available states. If you have 4 available frequencies (stock kernel) simply remove 7th line and lower &amp;quot;head -n 4&amp;quot; to &amp;quot;head -n 3&amp;quot; in 3rd line.&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 awk &#039;{print &amp;quot;\nCurrent frequency: &amp;quot;$1/1000&amp;quot; MHz\n&amp;quot;}&#039; /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq&lt;br /&gt;
 sum=`awk &#039;{SUM += $2} END {print SUM}&#039; /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state`&lt;br /&gt;
 sum2=`cat /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state | head -n 4 | awk &#039;{SUM += $2} END {print SUM}&#039;`&lt;br /&gt;
 cat /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state | head -n 1 | awk &#039;{printf (($1/1000)&amp;quot; MHz: overall &amp;quot;); printf (&amp;quot;%.1f&amp;quot;,($2 * 100)/&amp;quot;&#039;&amp;quot;$sum&amp;quot;&#039;&amp;quot;); printf (&amp;quot;&#039;&amp;quot; %%, when not idle &amp;quot;&#039;&amp;quot;); printf (&amp;quot;%.1f %\n&amp;quot;,($2 * 100)/&amp;quot;&#039;&amp;quot;$sum2&amp;quot;&#039;&amp;quot;)}&#039;&lt;br /&gt;
 cat /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state | head -n 2 | tail -n 1 | awk &#039;{printf (($1/1000)&amp;quot; MHz: overall &amp;quot;); printf (&amp;quot;%.1f&amp;quot;,($2 * 100)/&amp;quot;&#039;&amp;quot;$sum&amp;quot;&#039;&amp;quot;); printf (&amp;quot;&#039;&amp;quot; %%, when not idle &amp;quot;&#039;&amp;quot;); printf (&amp;quot;%.1f %\n&amp;quot;,($2 * 100)/&amp;quot;&#039;&amp;quot;$sum2&amp;quot;&#039;&amp;quot;)}&#039;&lt;br /&gt;
 cat /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state | head -n 3 | tail -n 1 | awk &#039;{printf (($1/1000)&amp;quot; MHz: overall &amp;quot;); printf (&amp;quot;%.1f&amp;quot;,($2 * 100)/&amp;quot;&#039;&amp;quot;$sum&amp;quot;&#039;&amp;quot;); printf (&amp;quot;&#039;&amp;quot; %%, when not idle &amp;quot;&#039;&amp;quot;); printf (&amp;quot;%.1f %\n&amp;quot;,($2 * 100)/&amp;quot;&#039;&amp;quot;$sum2&amp;quot;&#039;&amp;quot;)}&#039;&lt;br /&gt;
 cat /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state | head -n 4 | tail -n 1 | awk &#039;{printf (($1/1000)&amp;quot; MHz: overall &amp;quot;); printf (&amp;quot;%.1f&amp;quot;,($2 * 100)/&amp;quot;&#039;&amp;quot;$sum&amp;quot;&#039;&amp;quot;); printf (&amp;quot;&#039;&amp;quot; %%, when not idle &amp;quot;&#039;&amp;quot;); printf (&amp;quot;%.1f %\n&amp;quot;,($2 * 100)/&amp;quot;&#039;&amp;quot;$sum2&amp;quot;&#039;&amp;quot;)}&#039;&lt;br /&gt;
 cat /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state | tail -n 1 | awk &#039;{printf (($1/1000)&amp;quot; MHz: overall &amp;quot;); printf (&amp;quot;%.1f %\n\n&amp;quot;,($2 * 100)/&amp;quot;&#039;&amp;quot;$sum&amp;quot;&#039;&amp;quot;)}&#039;&lt;br /&gt;
&lt;br /&gt;
Output example:&lt;br /&gt;
&lt;br /&gt;
 Current frequency: 125 MHz&lt;br /&gt;
 &lt;br /&gt;
 800 MHz: overall 5.0 %, when not idle 70.0 %&lt;br /&gt;
 550 MHz: overall 0.2 %, when not idle 2.0 %&lt;br /&gt;
 500 MHz: overall 2.0 %, when not idle 25.0 %&lt;br /&gt;
 250 MHz: overall 0.3 %, when not idle 3.0 %&lt;br /&gt;
 125 MHz: overall 92.5 %&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Combined helper script (by evilJazz)==&lt;br /&gt;
&lt;br /&gt;
The following script will show the current frequency and statistics. It also accepts two optional parameters that will set the max and/or min frequencies (in MHz unit). Calling the script without these parameters will not set the new clocking. Instead it will just show the current frequencies and statistics.&lt;br /&gt;
&lt;br /&gt;
This script works with the special frequency handling in Titan&#039;s kernel.&lt;br /&gt;
&lt;br /&gt;
To run this script as user and be able to set the frequencies you will need to install &amp;quot;[[Root_access|rootsh]]&amp;quot; via apt-get.&lt;br /&gt;
&lt;br /&gt;
 overclock.sh [max freq] [min freq]&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 max=${1}000&lt;br /&gt;
 min=${2}000&lt;br /&gt;
 &lt;br /&gt;
 # Handle and rewrite special cases in Titan&#039;s kernel...&lt;br /&gt;
 [ &amp;quot;$max&amp;quot; == &amp;quot;600000&amp;quot; ] &amp;amp;&amp;amp; max=599000&lt;br /&gt;
 [ &amp;quot;$min&amp;quot; == &amp;quot;125000&amp;quot; ] &amp;amp;&amp;amp; min=124999&lt;br /&gt;
 &lt;br /&gt;
 if [ $(id -u) -ne 0 ]; then&lt;br /&gt;
   [ &amp;quot;$max&amp;quot; != &amp;quot;000&amp;quot; ] &amp;amp;&amp;amp; echo &amp;quot;echo $max &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq&amp;quot; | sudo gainroot&lt;br /&gt;
   [ &amp;quot;$min&amp;quot; != &amp;quot;000&amp;quot; ] &amp;amp;&amp;amp; echo &amp;quot;echo $min &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq&amp;quot; | sudo gainroot&lt;br /&gt;
 else&lt;br /&gt;
   [ &amp;quot;$max&amp;quot; != &amp;quot;000&amp;quot; ] &amp;amp;&amp;amp; echo $max &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq&lt;br /&gt;
   [ &amp;quot;$min&amp;quot; != &amp;quot;000&amp;quot; ] &amp;amp;&amp;amp; echo $min &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 awk &#039;{printf(&amp;quot;\nCurrent frequency: %7s MHz\n&amp;quot;, $1/1000)}&#039; /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq&lt;br /&gt;
 awk &#039;{printf(&amp;quot;Minimal frequency: %7s MHz\n&amp;quot;, $1/1000)}&#039; /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq&lt;br /&gt;
 awk &#039;{printf(&amp;quot;Maximal frequency: %7s MHz\n\n&amp;quot;, $1/1000)}&#039; /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq&lt;br /&gt;
 &lt;br /&gt;
 sum=$(awk &#039;{SUM += $2} END {print SUM}&#039; /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state)&lt;br /&gt;
 awk &#039;{printf(&amp;quot;%7s MHz: %5.1f % (%8d)\n&amp;quot;, ($1/1000), ($2 * 100)/&amp;quot;&#039;&amp;quot;$sum&amp;quot;&#039;&amp;quot;, $2)}&#039; /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state&lt;br /&gt;
 echo&lt;br /&gt;
&lt;br /&gt;
Output example:&lt;br /&gt;
&lt;br /&gt;
 ~ $ ./overclock.sh 600 250&lt;br /&gt;
&lt;br /&gt;
 Current frequency:     250 MHz&lt;br /&gt;
 Minimal frequency:     250 MHz&lt;br /&gt;
 Maximal frequency:     599 MHz&lt;br /&gt;
 &lt;br /&gt;
    1200 MHz:   0.0 % (       0)&lt;br /&gt;
    1100 MHz:   0.0 % (       0)&lt;br /&gt;
    1000 MHz:   0.0 % (       0)&lt;br /&gt;
     950 MHz:   0.0 % (       0)&lt;br /&gt;
     900 MHz:   0.2 % (     271)&lt;br /&gt;
     850 MHz:   0.0 % (       0)&lt;br /&gt;
     810 MHz:   0.0 % (       0)&lt;br /&gt;
     750 MHz:   0.0 % (       0)&lt;br /&gt;
     700 MHz:   0.0 % (       0)&lt;br /&gt;
     600 MHz:   9.0 % (   13663)&lt;br /&gt;
     550 MHz:   0.5 % (     701)&lt;br /&gt;
     500 MHz:  15.4 % (   23379)&lt;br /&gt;
     250 MHz:  75.0 % (  114021)&lt;br /&gt;
 124.999 MHz:   0.0 % (       0)&lt;br /&gt;
&lt;br /&gt;
=Changing the Kernel=&lt;br /&gt;
&lt;br /&gt;
==Installing a modified Kernel==&lt;br /&gt;
&lt;br /&gt;
===Flashing using PC===&lt;br /&gt;
&lt;br /&gt;
1. Power off the N900 completely.&lt;br /&gt;
&lt;br /&gt;
2. Hold &amp;quot;u&amp;quot; on the N900&#039;s keyboard, while holding, connect it to the PC via USB cable.&lt;br /&gt;
&lt;br /&gt;
3. You will see usb icon on top right of white Nokia screen.&lt;br /&gt;
&lt;br /&gt;
4. Now you can let go of &amp;quot;u&amp;quot; on the keyboard.&lt;br /&gt;
&lt;br /&gt;
5. Now use flasher utility with the kernel file located in the same directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 flasher-3.5 -k image_file_name -f -R&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6. It should take about 1-2 seconds then it&#039;ll say Done.&lt;br /&gt;
&lt;br /&gt;
7. Now your N900 will show white Nokia screen. (reboot)&lt;br /&gt;
&lt;br /&gt;
8. At this time, you can pull out the USB cable.&lt;br /&gt;
&lt;br /&gt;
9. N900 should finish booting up if all goes well.&lt;br /&gt;
&lt;br /&gt;
10. Test out your phone as usual. (Apps, browser, camera, phone etc etc)&lt;br /&gt;
&lt;br /&gt;
11. If any abnormal events occur frequently (crash, hang, screen corruption etc), turn it off, flash it to a slower kernel and test again.&lt;br /&gt;
note: For Windows7 64bit users, you may need to use WindowsXP mode. ([http://www.youtube.com/watch?v=Bx6dblXl2eo Youtube Tutorial])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Flashing from N900 xterminal===&lt;br /&gt;
&lt;br /&gt;
* do a backup, have a pc nearby and know you are able to flash the n900 with flasher-3.5 - just in case&lt;br /&gt;
&lt;br /&gt;
0. Launch xterminal app then type sudo gainroot (need rootsh installed)&lt;br /&gt;
&lt;br /&gt;
1. type &lt;br /&gt;
 softupd -vv -s --local&lt;br /&gt;
(thats double v)&lt;br /&gt;
&lt;br /&gt;
2. open new terminal&lt;br /&gt;
&lt;br /&gt;
3. type&lt;br /&gt;
 flasher --local -f -k &amp;lt;kernel_zimage_file_with_path&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. you see the flashing (takes some time)&lt;br /&gt;
&lt;br /&gt;
5. type &amp;quot;sync&amp;quot; to save changes&lt;br /&gt;
&lt;br /&gt;
6. type &amp;quot;reboot&amp;quot; and enter to restart&lt;br /&gt;
&lt;br /&gt;
7. Test out your phone as usual. (Apps, browser, camera, phone etc etc)&lt;br /&gt;
&lt;br /&gt;
8. If any abnormal events occur frequently (crash, hang, screen corruption etc), turn it off, flash it to a slower kernel and test again.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You are fully responsible for any damage caused by overclocking. Not anyone else.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Reverting to the Original Kernel==&lt;br /&gt;
&lt;br /&gt;
If you want to revert to the original kernel, execute:&lt;br /&gt;
&lt;br /&gt;
 apt-get install --reinstall kernel kernel-flasher&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Power users]]&lt;/div&gt;</summary>
		<author><name>85.156.128.24</name></author>
	</entry>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=Overclocking&amp;diff=31219</id>
		<title>Overclocking</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=Overclocking&amp;diff=31219"/>
		<updated>2010-04-11T16:21:21Z</updated>

		<summary type="html">&lt;p&gt;85.156.128.24: /* Installation of Letho&amp;#039;s PR1.1 kernels */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; &#039;&#039;WORK IN PROGRESS, HELP IF YOU WANT&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Overclocking is discussed in [http://talk.maemo.org/showthread.php?t=39753 this thread].&lt;br /&gt;
Benchmark results can be found [http://talk.maemo.org/showthread.php?p=605189 here].&lt;br /&gt;
If you&#039;re more interested in power saving read [http://talk.maemo.org/showthread.php?t=49654 this].&lt;br /&gt;
&lt;br /&gt;
=Warnings=&lt;br /&gt;
&lt;br /&gt;
- Overclocking WILL VOID YOUR WARRANTY&amp;lt;br&amp;gt;&lt;br /&gt;
- The lifetime of your device will get reduced&amp;lt;br&amp;gt;&lt;br /&gt;
- You could lose the data in your device (file system corruption)&amp;lt;br&amp;gt;&lt;br /&gt;
- Every device is an individual, what is stable for others might not be for you&amp;lt;br&amp;gt;&lt;br /&gt;
- If you encounter ANY unusual problems, lower your clock frequency&amp;lt;br&amp;gt;&lt;br /&gt;
- You do it at your own responsibility. No whining afterwards. If you&#039;re unsure, don&#039;t do it.&amp;lt;br&amp;gt;&lt;br /&gt;
- [http://depot.javispedro.com/nit/thewarningtm.jpeg Nokia&#039;s overclocking warning]: 500MHz is the normal frequency. Everything above is not good for your device, even with the stock kernel.&amp;lt;br&amp;gt;&lt;br /&gt;
- Igor Stoppa&#039;s [http://talk.maemo.org/showpost.php?p=596149&amp;amp;postcount=904 warning] and [http://talk.maemo.org/showpost.php?p=603833&amp;amp;postcount=66 comment]&lt;br /&gt;
&lt;br /&gt;
=Available kernels=&lt;br /&gt;
&lt;br /&gt;
Overclocking requires installation of a custom kernel.&lt;br /&gt;
There are two types of kernels:&lt;br /&gt;
# modified PR1.1 kernels by Lehto and others. The only difference to the stock Nokia kernel is that the change the available hardcoded frequencies.&lt;br /&gt;
# enhanced kernels by titan. They are compatible with PR1.2 (!) , contain lots of additional features (IPv6, NAT etc) and bugfixes. In addition they include a large set of possible frequencies (125MHz-1.2GHz) which you manually set an try out without flashing a new kernel. The defaults are set to the standard 250-600MHz range. The kernel can be installed via HAM from the extras-devel catalouge.&lt;br /&gt;
&lt;br /&gt;
== Installation of Lehto&#039;s PR1.1 kernels ==&lt;br /&gt;
&lt;br /&gt;
[http://www.saunalahti.fi/crailt/index.html Lehto&#039;s Kernels]&lt;br /&gt;
[http://talk.maemo.org/showpost.php?p=595582&amp;amp;postcount=774 talk.maemo.org: Jakiman&#039;s Overclock Guide / Summary]&lt;br /&gt;
&lt;br /&gt;
== Installation of titan&#039;s enhanced kernels ==&lt;br /&gt;
This kernel makes it possible dynamically change the maximum frequency up to 1.2GHz (supported frequencies are 250,500,550,600,700,750,810,850,900,950,1000,1100,1200MHz).&lt;br /&gt;
WARNING: Overclocking may damage your device and is at your own risk! It may void your warranty and destroy your data. You have been warned.&lt;br /&gt;
You can manually increase the limit until your device fries using, e.g. for 600MHz&lt;br /&gt;
&lt;br /&gt;
[http://talk.maemo.org/showthread.php?t=43420 talk.maemo.org: Discussion of the enhanded kernel]&lt;br /&gt;
&lt;br /&gt;
Note: all commands on this page must be run as root in X Terminal (install rootsh package and enter &amp;quot;sudo gainroot&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
=== Installation of stable [http://talk.maemo.org/showpost.php?p=597569&amp;amp;postcount=1259 kernel (version maemo19)] from extras-testing ===&lt;br /&gt;
[http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/kernel-flasher-maemo/2.6.28-maemo19/ the package]&lt;br /&gt;
This version maemo19 is good for temporarily testing higher frequencies but a phone call resets the limits. It still includes the invalid 800Mhz frequency.&lt;br /&gt;
[http://talk.maemo.org/showpost.php?p=600739&amp;amp;postcount=1722 phone call reset workaround for the older maemo19 kernel]&lt;br /&gt;
&lt;br /&gt;
It requires firmware PR1.1 or newer.&lt;br /&gt;
# Install the package kernel-flasher-maemo (section system in HAM)&lt;br /&gt;
# shutdown and cold boot. There&#039;s no need for reflashing etc.&lt;br /&gt;
&lt;br /&gt;
=== Installation of the kernel (maemo21) from extras-devel ===&lt;br /&gt;
Installation is the same as with the extras-testing kernel.&lt;br /&gt;
This version fixes the phone call reset problem and includes 125MHz (setting 124999),&lt;br /&gt;
but it does still include the invalid 800MHz.&lt;br /&gt;
The files in the [http://talk.maemo.org/showpost.php?p=602586&amp;amp;postcount=1890 latest version of the community kernel] &lt;br /&gt;
fix the 800Mhz issue.&lt;br /&gt;
&lt;br /&gt;
=== Installation of the latest experimental kernels ===&lt;br /&gt;
&lt;br /&gt;
Create and go to an empty directory first. Make sure wget is installed. Run everything as root.&lt;br /&gt;
&lt;br /&gt;
Download of the normal voltage kernel:&lt;br /&gt;
 wget http://maemory.com/N900/overclock/kernel-maemo_2.6.28-maemo21_armel.deb &lt;br /&gt;
 wget http://maemory.com/N900/overclock/kernel-modules-maemo_2.6.28-maemo21_armel.deb&lt;br /&gt;
 wget http://maemory.com/N900/overclock/kernel-flasher-maemo_2.6.28-maemo21_armel.deb&lt;br /&gt;
&lt;br /&gt;
[http://talk.maemo.org/showpost.php?p=603490&amp;amp;postcount=2004 The lower voltage versions of the same kernel] &lt;br /&gt;
may conserve power and reduce the damage of overclocking but they may be less stable.&lt;br /&gt;
&lt;br /&gt;
Download of the lower voltage (LV) kernel:&lt;br /&gt;
 wget http://maemory.com/N900/overclock/lv/kernel-maemo_2.6.28-maemo21_armel.deb &lt;br /&gt;
 wget http://maemory.com/N900/overclock/lv/kernel-modules-maemo_2.6.28-maemo21_armel.deb&lt;br /&gt;
 wget http://maemory.com/N900/overclock/lv/kernel-flasher-maemo_2.6.28-maemo21_armel.deb&lt;br /&gt;
&lt;br /&gt;
Comparison of LV kernel voltages with stock kernel:&lt;br /&gt;
#&amp;lt;=500 is the same as stock&lt;br /&gt;
#550 is 500 stock (normal voltage)&lt;br /&gt;
#600/700/750/810/850/900/950 is 550 stock (overvoltage)&lt;br /&gt;
#&amp;gt;=1000 is 600 stock (overvoltage)&lt;br /&gt;
&lt;br /&gt;
Download of the ultra low voltage (ULV) kernel (less stable?):&lt;br /&gt;
 wget http://maemory.com/N900/overclock/ulv/kernel-maemo_2.6.28-maemo21_armel.deb &lt;br /&gt;
 wget http://maemory.com/N900/overclock/ulv/kernel-modules-maemo_2.6.28-maemo21_armel.deb&lt;br /&gt;
 wget http://maemory.com/N900/overclock/ulv/kernel-flasher-maemo_2.6.28-maemo21_armel.deb&lt;br /&gt;
&lt;br /&gt;
Comparison of ULV kernel voltages with stock kernel:&lt;br /&gt;
#&amp;lt;=250 is &amp;lt;idle stock (ultra low voltage)&lt;br /&gt;
#500 is ca. idle stock (lower voltage)&lt;br /&gt;
#550/600 is 250 stock (low voltage)&lt;br /&gt;
#700/750/800 is &amp;lt;500 stock (low voltage)&lt;br /&gt;
#850 is 500 stock (normal voltage)&lt;br /&gt;
#900/950 is 550 stock (overvoltage)&lt;br /&gt;
#&amp;gt;=1000 is 600 stock (overvoltage)&lt;br /&gt;
&lt;br /&gt;
Download of the extremely low voltage (XLV) kernel (less stable?):&lt;br /&gt;
 wget http://maemory.com/N900/overclock/xlv/kernel-maemo_2.6.28-maemo21_armel.deb &lt;br /&gt;
 wget http://maemory.com/N900/overclock/xlv/kernel-modules-maemo_2.6.28-maemo21_armel.deb&lt;br /&gt;
 wget http://maemory.com/N900/overclock/xlv/kernel-flasher-maemo_2.6.28-maemo21_armel.deb&lt;br /&gt;
&lt;br /&gt;
Comparison of XLV kernel voltages with stock kernel:&lt;br /&gt;
#&amp;lt;=250 is &amp;lt;idle stock (extremely low voltage)&lt;br /&gt;
#500 is idle stock (lower voltage)&lt;br /&gt;
#550 is ca. idle stock (low voltage)&lt;br /&gt;
#600 is 250 stock (low voltage)&lt;br /&gt;
#700/750/800 is &amp;lt;500 stock (low voltage)&lt;br /&gt;
#850 is 500 stock (normal voltage)&lt;br /&gt;
#900/950 is 550 stock (overvoltage)&lt;br /&gt;
#&amp;gt;=1000 is 600 stock (overvoltage)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Install with (shut the device down automatically, close all apps and save the data first!):&lt;br /&gt;
 dpkg -i kernel-m*&lt;br /&gt;
 dpkg -i kernel-f*&lt;br /&gt;
 halt&lt;br /&gt;
and boot again.&lt;br /&gt;
&lt;br /&gt;
=== Deinstallation ===&lt;br /&gt;
 sudo gainroot&lt;br /&gt;
 apt-get install --reinstall kernel kernel-flasher&lt;br /&gt;
 apt-get remove kernel-maemo kernel-modules-maemo&lt;br /&gt;
&lt;br /&gt;
=== Temporarly change of the frequency limits ===&lt;br /&gt;
 sudo gainroot&lt;br /&gt;
 echo 250000 &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq&lt;br /&gt;
 echo 599000 &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq&lt;br /&gt;
 cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq&lt;br /&gt;
 cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq&lt;br /&gt;
The last line shows which values were actually set.&lt;br /&gt;
To set 125MHz use 124999, for 600MHz 599999, for everthing else x000 with x=MHz.&lt;br /&gt;
This setting takes effect immediately and is cleared with the next reboot.&lt;br /&gt;
&lt;br /&gt;
=== Permanently change of the frequency limits ===&lt;br /&gt;
WARNING: Permanent overclocking is very dangerous!&lt;br /&gt;
To permanently fix a limit you found to be stable edit the scaling_max_freq setting in /etc/pmconfig&lt;br /&gt;
 vi /etc/pmconfig&lt;br /&gt;
or (with leafpad installed)&lt;br /&gt;
 leafpad /etc/pmconfig&lt;br /&gt;
&lt;br /&gt;
The defaults are:&lt;br /&gt;
 # Power management configuration file&lt;br /&gt;
 enable_off_mode 1&lt;br /&gt;
 sleep_while_idle 1&lt;br /&gt;
 sr_vdd1_autocomp 0&lt;br /&gt;
 sr_vdd2_autocomp 0&lt;br /&gt;
 clocks_off_while_idle 1&lt;br /&gt;
 voltage_off_while_idle 1&lt;br /&gt;
 scaling_governor ondemand&lt;br /&gt;
 scaling_max_freq 600000&lt;br /&gt;
 scaling_min_freq 125000&lt;br /&gt;
 sleep_ind 1&lt;br /&gt;
&lt;br /&gt;
=== Other permament settings ===&lt;br /&gt;
not all settings can be stored in pmconfig.&lt;br /&gt;
Create the following file /etc/event.d/overclock for them&lt;br /&gt;
 start on started hildon-desktop&lt;br /&gt;
 stop on starting shutdown&lt;br /&gt;
 service&lt;br /&gt;
 console none&lt;br /&gt;
 script&lt;br /&gt;
   echo 1 &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/ondemand/ignore_nice_load&lt;br /&gt;
   #echo 75 &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold&lt;br /&gt;
   #echo 150000 &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate&lt;br /&gt;
   modprobe bq27x00_battery&lt;br /&gt;
 end script&lt;br /&gt;
&lt;br /&gt;
=== Battery ===&lt;br /&gt;
In kernels version &amp;gt;=maemo20 you can read out the current battery info:&lt;br /&gt;
 modprobe bq27x00_battery&lt;br /&gt;
 cat /sys/class/power_supply/bq27200-0/current_now&lt;br /&gt;
&lt;br /&gt;
=== Holding a kernel version ===&lt;br /&gt;
It your manually installed kernel should be not upgraded to the one in extras* try [http://talk.maemo.org/showpost.php?p=603915&amp;amp;postcount=2063 this]:&lt;br /&gt;
 echo kernel-flasher-maemo hold | dpkg --set-selections&lt;br /&gt;
 echo kernel-maemo hold | dpkg --set-selections&lt;br /&gt;
 echo kernel-modules-maemo hold | dpkg --set-selections&lt;br /&gt;
to unlock the version:&lt;br /&gt;
 echo kernel-flasher-maemo install | dpkg --set-selections&lt;br /&gt;
 echo kernel-maemo install | dpkg --set-selections&lt;br /&gt;
 echo kernel-modules-maemo install | dpkg --set-selections&lt;br /&gt;
&lt;br /&gt;
=== Remarks ===&lt;br /&gt;
# The screen calibration in settings crashes immediately. It is a known bug in the calibration app, not in the kernel. It&#039;s mentioned in the kernel package description and is due to additional evdev (joystick,mouse) support. Just calibrate once with the stock kernel before you install the fully featured kernel.&lt;br /&gt;
# [http://talk.maemo.org/showpost.php?p=597703&amp;amp;postcount=141 the 125MHz issue]&lt;br /&gt;
# Installing another version of the enhanced kernel will just overwrite the older version. The stock kernel modules are preserved so that you can simply reflash the stock kernel via USB.&lt;br /&gt;
# If you for some reason get errors like this during removal or installation  &amp;quot;rm: cannot remove &#039;/lib/modules/2.6.28.10maemo-lv-omap1/modules.*&#039;: No such file or directory&amp;quot;.try this [http://talk.maemo.org/showpost.php?p=603938&amp;amp;postcount=196 workaround]. There was a bug in one of the early LV kernels but it should be fixed in more recent versions.&lt;br /&gt;
# This kernel will not conflict with the future PR1.2 upgrade. The upgrade will, however, overwrite this kernel and you&#039;ll have to install it again.&lt;br /&gt;
&lt;br /&gt;
=Additional information and hints=&lt;br /&gt;
&lt;br /&gt;
# the frequencies available in the Nokia kernel are: 250, 500, 550 and 600MHz.&lt;br /&gt;
# Nokia [http://talk.maemo.org/showpost.php?p=601691&amp;amp;postcount=1823 locks the device to 600MHz] during phone calls. This may be a bug. It also [http://talk.maemo.org/showpost.php?p=600721&amp;amp;postcount=1720 affects] Letho&#039;s kernels.&lt;br /&gt;
# the telephone app is closed-source and broken. After a phone call it sets the maximum to 600Mhz and the minimum to 250MHz (or  125MHz if available) irrespective of what you have set before.&lt;br /&gt;
# when connected via USB the device locks the minimum frequency to 500Mhz.&lt;br /&gt;
# By default the device is configured to use 125MHz as the lowest frequency but it not enabled in the kernel [https://bugs.maemo.org/show_bug.cgi?id=7116 pmconfig bug]&lt;br /&gt;
# if enable 125MHz also set  &amp;quot;echo 1 &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/ondemand/ignore_nice_load&amp;quot; [http://talk.maemo.org/showpost.php?p=602687&amp;amp;postcount=185 hint]&lt;br /&gt;
# [http://talk.maemo.org/showpost.php?p=599870&amp;amp;postcount=170 improving responsiveness]&lt;br /&gt;
# [http://talk.maemo.org/showpost.php?p=599618&amp;amp;postcount=168 safe pmconfig configuration]&lt;br /&gt;
# the warning &amp;quot;WARNING: at arch/arm/mach-omap2/clock34xx.c:443 omap3_noncore_dpll_set_rate+0x28c/0x2dc()&amp;quot; in the kernel logs (dmesg) only happens if the invalid 800MHz frequency was selected. ignore it.&lt;br /&gt;
# [http://talk.maemo.org/showpost.php?p=603585&amp;amp;postcount=189 saving more battery power when idle]&lt;br /&gt;
# EvilJazz had photoshopped a [http://talk.maemo.org/showpost.php?p=605523&amp;amp;postcount=90 picture of a device being overclocked 1.7GHz]. It&#039;s a JOKE!&lt;br /&gt;
# reading one of the temperature sensors &amp;quot;cat /sys/devices/platform/omap34xx_temp/temp1_input&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=Useful stuff=&lt;br /&gt;
&lt;br /&gt;
==Show current CPU frequency==&lt;br /&gt;
&lt;br /&gt;
 awk &#039;{print $1/1000&amp;quot; MHz&amp;quot;}&#039; /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Set maximum CPU frequency==&lt;br /&gt;
&lt;br /&gt;
From root terminal:&lt;br /&gt;
&lt;br /&gt;
 echo $((600*1000)) &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq&lt;br /&gt;
&lt;br /&gt;
Replace 600 with desired maximum frequency. The list of available frequencies on your device/kernel can be obtained with command:&lt;br /&gt;
&lt;br /&gt;
 awk &#039;{print $1/1000&amp;quot; MHz,&amp;quot;,$2/1000&amp;quot; MHz,&amp;quot;,$3/1000&amp;quot; MHz,&amp;quot;,$4/1000&amp;quot; MHz,&amp;quot;,$5/1000&amp;quot; MHz&amp;quot;}&#039; /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies&lt;br /&gt;
&lt;br /&gt;
If the last value returned is 0 MHz, this means that you have only 4 available frequencies.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Analyzing time_in_state (by rooted)==&lt;br /&gt;
&lt;br /&gt;
This script generates readable output (percentage) of states used. It is designed for 5 available states. If you have 4 available frequencies (stock kernel) simply remove 7th line and lower &amp;quot;head -n 4&amp;quot; to &amp;quot;head -n 3&amp;quot; in 3rd line.&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 awk &#039;{print &amp;quot;\nCurrent frequency: &amp;quot;$1/1000&amp;quot; MHz\n&amp;quot;}&#039; /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq&lt;br /&gt;
 sum=`awk &#039;{SUM += $2} END {print SUM}&#039; /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state`&lt;br /&gt;
 sum2=`cat /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state | head -n 4 | awk &#039;{SUM += $2} END {print SUM}&#039;`&lt;br /&gt;
 cat /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state | head -n 1 | awk &#039;{printf (($1/1000)&amp;quot; MHz: overall &amp;quot;); printf (&amp;quot;%.1f&amp;quot;,($2 * 100)/&amp;quot;&#039;&amp;quot;$sum&amp;quot;&#039;&amp;quot;); printf (&amp;quot;&#039;&amp;quot; %%, when not idle &amp;quot;&#039;&amp;quot;); printf (&amp;quot;%.1f %\n&amp;quot;,($2 * 100)/&amp;quot;&#039;&amp;quot;$sum2&amp;quot;&#039;&amp;quot;)}&#039;&lt;br /&gt;
 cat /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state | head -n 2 | tail -n 1 | awk &#039;{printf (($1/1000)&amp;quot; MHz: overall &amp;quot;); printf (&amp;quot;%.1f&amp;quot;,($2 * 100)/&amp;quot;&#039;&amp;quot;$sum&amp;quot;&#039;&amp;quot;); printf (&amp;quot;&#039;&amp;quot; %%, when not idle &amp;quot;&#039;&amp;quot;); printf (&amp;quot;%.1f %\n&amp;quot;,($2 * 100)/&amp;quot;&#039;&amp;quot;$sum2&amp;quot;&#039;&amp;quot;)}&#039;&lt;br /&gt;
 cat /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state | head -n 3 | tail -n 1 | awk &#039;{printf (($1/1000)&amp;quot; MHz: overall &amp;quot;); printf (&amp;quot;%.1f&amp;quot;,($2 * 100)/&amp;quot;&#039;&amp;quot;$sum&amp;quot;&#039;&amp;quot;); printf (&amp;quot;&#039;&amp;quot; %%, when not idle &amp;quot;&#039;&amp;quot;); printf (&amp;quot;%.1f %\n&amp;quot;,($2 * 100)/&amp;quot;&#039;&amp;quot;$sum2&amp;quot;&#039;&amp;quot;)}&#039;&lt;br /&gt;
 cat /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state | head -n 4 | tail -n 1 | awk &#039;{printf (($1/1000)&amp;quot; MHz: overall &amp;quot;); printf (&amp;quot;%.1f&amp;quot;,($2 * 100)/&amp;quot;&#039;&amp;quot;$sum&amp;quot;&#039;&amp;quot;); printf (&amp;quot;&#039;&amp;quot; %%, when not idle &amp;quot;&#039;&amp;quot;); printf (&amp;quot;%.1f %\n&amp;quot;,($2 * 100)/&amp;quot;&#039;&amp;quot;$sum2&amp;quot;&#039;&amp;quot;)}&#039;&lt;br /&gt;
 cat /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state | tail -n 1 | awk &#039;{printf (($1/1000)&amp;quot; MHz: overall &amp;quot;); printf (&amp;quot;%.1f %\n\n&amp;quot;,($2 * 100)/&amp;quot;&#039;&amp;quot;$sum&amp;quot;&#039;&amp;quot;)}&#039;&lt;br /&gt;
&lt;br /&gt;
Output example:&lt;br /&gt;
&lt;br /&gt;
 Current frequency: 125 MHz&lt;br /&gt;
 &lt;br /&gt;
 800 MHz: overall 5.0 %, when not idle 70.0 %&lt;br /&gt;
 550 MHz: overall 0.2 %, when not idle 2.0 %&lt;br /&gt;
 500 MHz: overall 2.0 %, when not idle 25.0 %&lt;br /&gt;
 250 MHz: overall 0.3 %, when not idle 3.0 %&lt;br /&gt;
 125 MHz: overall 92.5 %&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Combined helper script (by evilJazz)==&lt;br /&gt;
&lt;br /&gt;
The following script will show the current frequency and statistics. It also accepts two optional parameters that will set the max and/or min frequencies (in MHz unit). Calling the script without these parameters will not set the new clocking. Instead it will just show the current frequencies and statistics.&lt;br /&gt;
&lt;br /&gt;
This script works with the special frequency handling in Titan&#039;s kernel.&lt;br /&gt;
&lt;br /&gt;
To run this script as user and be able to set the frequencies you will need to install &amp;quot;[[Root_access|rootsh]]&amp;quot; via apt-get.&lt;br /&gt;
&lt;br /&gt;
 overclock.sh [max freq] [min freq]&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 max=${1}000&lt;br /&gt;
 min=${2}000&lt;br /&gt;
 &lt;br /&gt;
 # Handle and rewrite special cases in Titan&#039;s kernel...&lt;br /&gt;
 [ &amp;quot;$max&amp;quot; == &amp;quot;600000&amp;quot; ] &amp;amp;&amp;amp; max=599000&lt;br /&gt;
 [ &amp;quot;$min&amp;quot; == &amp;quot;125000&amp;quot; ] &amp;amp;&amp;amp; min=124999&lt;br /&gt;
 &lt;br /&gt;
 if [ $(id -u) -ne 0 ]; then&lt;br /&gt;
   [ &amp;quot;$max&amp;quot; != &amp;quot;000&amp;quot; ] &amp;amp;&amp;amp; echo &amp;quot;echo $max &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq&amp;quot; | sudo gainroot&lt;br /&gt;
   [ &amp;quot;$min&amp;quot; != &amp;quot;000&amp;quot; ] &amp;amp;&amp;amp; echo &amp;quot;echo $min &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq&amp;quot; | sudo gainroot&lt;br /&gt;
 else&lt;br /&gt;
   [ &amp;quot;$max&amp;quot; != &amp;quot;000&amp;quot; ] &amp;amp;&amp;amp; echo $max &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq&lt;br /&gt;
   [ &amp;quot;$min&amp;quot; != &amp;quot;000&amp;quot; ] &amp;amp;&amp;amp; echo $min &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 awk &#039;{printf(&amp;quot;\nCurrent frequency: %7s MHz\n&amp;quot;, $1/1000)}&#039; /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq&lt;br /&gt;
 awk &#039;{printf(&amp;quot;Minimal frequency: %7s MHz\n&amp;quot;, $1/1000)}&#039; /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq&lt;br /&gt;
 awk &#039;{printf(&amp;quot;Maximal frequency: %7s MHz\n\n&amp;quot;, $1/1000)}&#039; /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq&lt;br /&gt;
 &lt;br /&gt;
 sum=$(awk &#039;{SUM += $2} END {print SUM}&#039; /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state)&lt;br /&gt;
 awk &#039;{printf(&amp;quot;%7s MHz: %5.1f % (%8d)\n&amp;quot;, ($1/1000), ($2 * 100)/&amp;quot;&#039;&amp;quot;$sum&amp;quot;&#039;&amp;quot;, $2)}&#039; /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state&lt;br /&gt;
 echo&lt;br /&gt;
&lt;br /&gt;
Output example:&lt;br /&gt;
&lt;br /&gt;
 ~ $ ./overclock.sh 600 250&lt;br /&gt;
&lt;br /&gt;
 Current frequency:     250 MHz&lt;br /&gt;
 Minimal frequency:     250 MHz&lt;br /&gt;
 Maximal frequency:     599 MHz&lt;br /&gt;
 &lt;br /&gt;
    1200 MHz:   0.0 % (       0)&lt;br /&gt;
    1100 MHz:   0.0 % (       0)&lt;br /&gt;
    1000 MHz:   0.0 % (       0)&lt;br /&gt;
     950 MHz:   0.0 % (       0)&lt;br /&gt;
     900 MHz:   0.2 % (     271)&lt;br /&gt;
     850 MHz:   0.0 % (       0)&lt;br /&gt;
     810 MHz:   0.0 % (       0)&lt;br /&gt;
     750 MHz:   0.0 % (       0)&lt;br /&gt;
     700 MHz:   0.0 % (       0)&lt;br /&gt;
     600 MHz:   9.0 % (   13663)&lt;br /&gt;
     550 MHz:   0.5 % (     701)&lt;br /&gt;
     500 MHz:  15.4 % (   23379)&lt;br /&gt;
     250 MHz:  75.0 % (  114021)&lt;br /&gt;
 124.999 MHz:   0.0 % (       0)&lt;br /&gt;
&lt;br /&gt;
=Changing the Kernel=&lt;br /&gt;
&lt;br /&gt;
==Installing a modified Kernel==&lt;br /&gt;
&lt;br /&gt;
===Flashing using PC===&lt;br /&gt;
&lt;br /&gt;
1. Power off the N900 completely.&lt;br /&gt;
&lt;br /&gt;
2. Hold &amp;quot;u&amp;quot; on the N900&#039;s keyboard, while holding, connect it to the PC via USB cable.&lt;br /&gt;
&lt;br /&gt;
3. You will see usb icon on top right of white Nokia screen.&lt;br /&gt;
&lt;br /&gt;
4. Now you can let go of &amp;quot;u&amp;quot; on the keyboard.&lt;br /&gt;
&lt;br /&gt;
5. Now use flasher utility with the kernel file located in the same directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 flasher-3.5 -k image_file_name -f -R&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6. It should take about 1-2 seconds then it&#039;ll say Done.&lt;br /&gt;
&lt;br /&gt;
7. Now your N900 will show white Nokia screen. (reboot)&lt;br /&gt;
&lt;br /&gt;
8. At this time, you can pull out the USB cable.&lt;br /&gt;
&lt;br /&gt;
9. N900 should finish booting up if all goes well.&lt;br /&gt;
&lt;br /&gt;
10. Test out your phone as usual. (Apps, browser, camera, phone etc etc)&lt;br /&gt;
&lt;br /&gt;
11. If any abnormal events occur frequently (crash, hang, screen corruption etc), turn it off, flash it to a slower kernel and test again.&lt;br /&gt;
note: For Windows7 64bit users, you may need to use WindowsXP mode. ([http://www.youtube.com/watch?v=Bx6dblXl2eo Youtube Tutorial])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Flashing from N900 xterminal===&lt;br /&gt;
&lt;br /&gt;
* do a backup, have a pc nearby and know you are able to flash the n900 with flasher-3.5 - just in case&lt;br /&gt;
&lt;br /&gt;
0. Launch xterminal app then type sudo gainroot (need rootsh installed)&lt;br /&gt;
&lt;br /&gt;
1. type &lt;br /&gt;
 softupd -vv -s --local&lt;br /&gt;
(thats double v)&lt;br /&gt;
&lt;br /&gt;
2. open new terminal&lt;br /&gt;
&lt;br /&gt;
3. type&lt;br /&gt;
 flasher --local -f -k &amp;lt;kernel_zimage_file_with_path&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. you see the flashing (takes some time)&lt;br /&gt;
&lt;br /&gt;
5. type &amp;quot;sync&amp;quot; to save changes&lt;br /&gt;
&lt;br /&gt;
6. type &amp;quot;reboot&amp;quot; and enter to restart&lt;br /&gt;
&lt;br /&gt;
7. Test out your phone as usual. (Apps, browser, camera, phone etc etc)&lt;br /&gt;
&lt;br /&gt;
8. If any abnormal events occur frequently (crash, hang, screen corruption etc), turn it off, flash it to a slower kernel and test again.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You are fully responsible for any damage caused by overclocking. Not anyone else.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Reverting to the Original Kernel==&lt;br /&gt;
&lt;br /&gt;
If you want to revert to the original kernel, execute:&lt;br /&gt;
&lt;br /&gt;
 apt-get install --reinstall kernel kernel-flasher&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Power users]]&lt;/div&gt;</summary>
		<author><name>85.156.128.24</name></author>
	</entry>
</feed>