<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.webos-internals.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sbromwich</id>
	<title>WebOS Internals - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.webos-internals.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sbromwich"/>
	<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/wiki/Special:Contributions/Sbromwich"/>
	<updated>2026-04-16T11:20:10Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=WhoIsWho&amp;diff=11065</id>
		<title>WhoIsWho</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=WhoIsWho&amp;diff=11065"/>
		<updated>2010-08-28T22:08:49Z</updated>

		<summary type="html">&lt;p&gt;Sbromwich: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page lists all the WebOS Internals developers, and the projects and activities for which each is responsible.  Names are listed in chronological order of officially joining the WebOS Internals team.&lt;br /&gt;
&lt;br /&gt;
{{AboutMe|alias=rwhitby|realname=Rod Whitby|responsibility=Founder and Project Lead for WebOS Internals and Preware |aboutme=Homebrew Ecosystem Architect. Lead developer for Save/Restore. Co-Lead developer for Preware, Govnah and UberKernel.  Co-developer for a number of other packages. Oh, and a family and full-time day job too.}}&lt;br /&gt;
&lt;br /&gt;
{{AboutMe|alias=ka6sox|realname=Tom King|responsibility=Chief Server Infrastructure Architect and Sys-Admin Team Lead(aka BOFH)|aboutme=FT:High Power RF, VHDL/Verilog Design, Play Time: Dabble with Kernel development.}}&lt;br /&gt;
&lt;br /&gt;
{{AboutMe|alias=rboatright|realname=Rick Boatright|responsibility=Chief Evangelist|aboutme=}}&lt;br /&gt;
&lt;br /&gt;
{{AboutMe|alias=destinal|realname=|responsibility=|aboutme=}}&lt;br /&gt;
&lt;br /&gt;
{{AboutMe|alias=PuffTheMagic|realname=Ryan Hope|responsibility=Play devil's advocate|aboutme=Research assistant / cognitive science grad student by day; webos developer by night }}&lt;br /&gt;
&lt;br /&gt;
{{AboutMe|alias=egaudet|realname=Eric Gaudet|responsibility=AUPT architect|aboutme=}}&lt;br /&gt;
&lt;br /&gt;
{{AboutMe|alias=oil|realname=Brandon VanBelle|responsibility=Minister of Awesomeness|aboutme=It's not my fault!}}&lt;br /&gt;
&lt;br /&gt;
{{AboutMe|alias=dtzWill|realname=Will Dietz|responsibility=Various WebOS Internals games, X11, WIDK management|aboutme=CS grad student who spends entirely too much time on WebOS }}&lt;br /&gt;
&lt;br /&gt;
{{AboutMe|alias=zsoc|realname=|responsibility=Multimedia subsystem architect|aboutme=}}&lt;br /&gt;
&lt;br /&gt;
{{AboutMe|alias=uNiXpSyChO|realname=Marco Benton|responsibility=BOFH and Kernel hacker|aboutme=[[Full-time]]; SysAdmin, SAN Admin, Network Admin. [[Part-time]]; System integration and network design consulting. [[Free-time]]; programming - since that's what i used to do full-time 20 years ago. }}&lt;br /&gt;
&lt;br /&gt;
{{AboutMe|alias=sbromwich|realname=Steve Bromwich|responsibility=Kernel developer|aboutme=Dilettante kernel programmer concentrating mostly on extending battery life.}}&lt;br /&gt;
&lt;br /&gt;
{{AboutMe|alias=swisstomcat|realname=Markus Leutwyler|responsibility=Chief German Translator (ja, genau!) and Javascript Parts Donator to different Projects. Also European Propaganda Minister. |aboutme=Web and Mobile Developer}}&lt;br /&gt;
&lt;br /&gt;
{{AboutMe|alias=jhojho|realname=|responsibility=Warthog kernel developer|aboutme=}}&lt;br /&gt;
&lt;br /&gt;
{{AboutMe|alias=cryptk|realname=Chris Jowett|responsibility=Server administration and management|aboutme=I work as a full time linux systems administratior as my day job and lend that knowledge to keep the WebOS Internals servers running as well as they possibly can.}}&lt;br /&gt;
&lt;br /&gt;
{{AboutMe|alias=sconix|realname=Janne Julkunen|responsibility=Creating nice patches and developing Mode Switcher|aboutme=Involved with Linux way too much :)}}&lt;/div&gt;</summary>
		<author><name>Sbromwich</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=How_To_Recover&amp;diff=10570</id>
		<title>How To Recover</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=How_To_Recover&amp;diff=10570"/>
		<updated>2010-07-23T00:29:42Z</updated>

		<summary type="html">&lt;p&gt;Sbromwich: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Pre not booting? webOS Doctor How-To =&lt;br /&gt;
{{tux|Tux_with_Broken_Pre.png|float:right;}}&lt;br /&gt;
Fortunately, Palm has created a tool called webOS Doctor intended for users to easily restore their devices in the event that they cannot boot for one reason or another.&lt;br /&gt;
&lt;br /&gt;
Note: Before Trying the following steps below. Try removing the battery first and reinsert the battery and turn on the device this will determine whether or not you need to perform the following steps.&lt;br /&gt;
&lt;br /&gt;
Note 2: As of WebOS 1.3.1 your USB data (Pictures, Videos, etc.) is no longer deleted during the process.  Older versions of WebOS Doctor WILL DELETE ALL YOUR PERSONAL DATA ON THE DEVICE.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Palm webOS Doctor:''' [http://www.palm.com/us/support/downloads/pre/recoverytool/deviceselector_en.html http://www.palm.com/us/support/downloads/pre/recoverytool/deviceselector_en.html]&lt;br /&gt;
&lt;br /&gt;
'''All Palm WebOS Doctor Versions:''' [http://www.webos-internals.org/wiki/Webos_Doctor_Versions http://www.webos-internals.org/wiki/Webos_Doctor_Versions]&lt;br /&gt;
&lt;br /&gt;
After the download is complete, launch webOS Doctor:&lt;br /&gt;
&lt;br /&gt;
# Select you language&lt;br /&gt;
# Accept the license agreement&lt;br /&gt;
# Connect your Pre to you PC via USB and select &amp;quot;Next&amp;quot; when it becomes available&lt;br /&gt;
{{tux|Tux_with_Pre_and_Screwdriver.png|float:right;}}&lt;br /&gt;
After completion the device will reboot and present you with the activation set-up.&lt;br /&gt;
&lt;br /&gt;
If your PC does not recognize your Pre and you cannot go past step 3 above, try the following steps:&lt;br /&gt;
&lt;br /&gt;
# With the USB cable connected, completely power off the Pre (hold down the power button until the option to power off appears)&lt;br /&gt;
# Hold down the Up button on the volume rocker&lt;br /&gt;
# While holding the Up button, power on the Pre&lt;br /&gt;
# &amp;quot;Next&amp;quot; should now be enabled - proceed with the recovery&lt;br /&gt;
{{tux|Tux_with_Pre.png|float:right;}}&lt;br /&gt;
The above steps will put the Pre into bootloader recovery mode and should allow the PC to recognize your device and proceed with the restore. In this mode the screen will display a giant USB logo instead of the usual Palm startup logo.&lt;br /&gt;
&lt;br /&gt;
The process usually proceeds as follows:&lt;br /&gt;
&lt;br /&gt;
(If you're on a Mac, you can follow the progress in /var/log/system.log)&lt;br /&gt;
&lt;br /&gt;
# WebOS Doctor begins&lt;br /&gt;
# At 3%, a ramdisk is transferred to the phone, and the phone is rebooted &lt;br /&gt;
# At 4%, the screen changes to the palm logo&lt;br /&gt;
# At 9%, the screen changes to a big arrow pointing down to an integrated circuit&lt;br /&gt;
# Novaterm access is available from 12% onwards&lt;br /&gt;
# The progress bar advances by 2% increments every 20 seconds or so&lt;br /&gt;
# If it gets stuck at 52% for more than 30 seconds, it's not going to progress further and you will need to try again.&lt;br /&gt;
# Around 54% the filesystems are being partitioned&lt;br /&gt;
# Around 64% the modem firmware is being reflashed&lt;br /&gt;
# Around 72% the carrier apps are being installed&lt;br /&gt;
# Around 82% the ROM is being verified&lt;br /&gt;
&lt;br /&gt;
If the process fails at 84% or later, the flash and modem have actually been written, so if you reboot you will get what you were flashing.&lt;br /&gt;
&lt;br /&gt;
== Modifications to the recovery process ==&lt;br /&gt;
&lt;br /&gt;
Between about 18% and 54% complete, you can novaterm into the device while it is being flashed, and modify the filesystem that will be run after the phone reboots (e.g. to touch /var/luna/preferences/ran-first-use).&lt;br /&gt;
&lt;br /&gt;
If you stay in a mounted directory, you can even cause the flashing to abort after the carrier apps are installed and just before the ROM is verified.  This is another point where manual modifications can be made.&lt;br /&gt;
&lt;br /&gt;
After you have made your modifications, unmount any filesystems you have mounted and &amp;quot;tellbootie reboot&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Can't boot into recovery mode? ==&lt;br /&gt;
&lt;br /&gt;
In the very unlikely event that your Pre will not boot into recovery mode (indicating that your boot loader on the flash disk may be damaged or corrupted) you can try booting bootie into recovery mode over USB instead: [[Last_Resort_Emergency_BootLoader_Recovery]] '''Note that there has only been one incidence of this being required which ultimately was due to hardware failure, we do not recommend that you attempt this unless you have tried all the steps above exactly as described at least 10 times.'''&lt;br /&gt;
&lt;br /&gt;
Short of hardware damage, it should not be possible to &amp;quot;brick&amp;quot; a Pre.&lt;/div&gt;</summary>
		<author><name>Sbromwich</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Application:SBromwichKernel&amp;diff=10473</id>
		<title>Application:SBromwichKernel</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Application:SBromwichKernel&amp;diff=10473"/>
		<updated>2010-07-13T01:09:04Z</updated>

		<summary type="html">&lt;p&gt;Sbromwich: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The sbromwich series of kernels are the kernels I run on my phone with all current webos-internals testing patches applied, plus my patches, plus my kernel configuration.&lt;br /&gt;
&lt;br /&gt;
The kernels are currently available at http://ipkg.preware.org/feeds/webos-kernels/testing/1.4.1.1/ and can be added using any standard package manager in the standard format (deducing this is left as an exercise for the reader).&lt;br /&gt;
&lt;br /&gt;
= Patches applied for 1.4.1-75 =&lt;br /&gt;
&lt;br /&gt;
* Pulled prcm patches to help test if this is causing an issue for warthog&lt;br /&gt;
&lt;br /&gt;
= Patches applied for 1.4.1-63 =&lt;br /&gt;
&lt;br /&gt;
* defconfig patches tweaked to avoid patch collision with screenstate governor settings&lt;br /&gt;
* Makefile patched to use cs2010q1 gcc compiler from CodeSourcery&lt;br /&gt;
&lt;br /&gt;
= Patches applied for 1.4.1-61 (&amp;quot;tebbo&amp;quot;) =&lt;br /&gt;
&lt;br /&gt;
* Tweaked prcm patches to extend battery life.&lt;br /&gt;
&lt;br /&gt;
= Patches applied for 1.4.1-28 (&amp;quot;nt4cats&amp;quot;) =&lt;br /&gt;
&lt;br /&gt;
* Applied patches to remove debug settings for:&lt;br /&gt;
** board-sirloin-headset-detect.c.diff&lt;br /&gt;
** omap_fb.c.diff&lt;br /&gt;
** omap_misc_hsuart.c&lt;br /&gt;
** pm_cpuidle.c.diff &lt;br /&gt;
&lt;br /&gt;
This may reduce the &amp;quot;high load on wakeup&amp;quot; that some people are seeing.&lt;br /&gt;
&lt;br /&gt;
= Patches applied for 1.4.1-26 (&amp;quot;yoda&amp;quot;) =&lt;br /&gt;
&lt;br /&gt;
* wfi instruction re-enabled after several sources confirmed it did not hinder&lt;br /&gt;
* Tweaked timeouts for prcm bitbanging, particularly with DOM_PER to see if that reduces battery drain at the expense of (possibly) more hangs coming out of suspend.&lt;br /&gt;
&lt;br /&gt;
= Patches applied for 1.4.1-25 (&amp;quot;adric&amp;quot;) =&lt;br /&gt;
&lt;br /&gt;
* wfi instruction on prcm fail removed to validate if this is a regression causing battery drain.&lt;br /&gt;
&lt;br /&gt;
= Patches applied for 1.4.1-24 (&amp;quot;jangofett&amp;quot;) =&lt;br /&gt;
&lt;br /&gt;
* Reduce number of scheduling calls made to try to reduce battery drain. This may have an adverse affect on wake from suspend.&lt;br /&gt;
&lt;br /&gt;
= Patches applied for 1.4.1-23 (&amp;quot;bobafett&amp;quot;) =&lt;br /&gt;
&lt;br /&gt;
* Debug settings removed from default kernel build.&lt;br /&gt;
* Compile kernel with explicit cortex-a8 tuning flags for gcc.&lt;br /&gt;
* Tweak prcm power manager to more explicitly wait for power set calls to return, remove debug cruft, and add Wait For Interrupt instruction if a prcm setting attempt fails.&lt;br /&gt;
* Enable preempt kernel.&lt;br /&gt;
&lt;br /&gt;
= Known problems =&lt;br /&gt;
&lt;br /&gt;
* Pre can take some extra time to respond to certain activities, especially when waking up; lags of up to 2 seconds can be experienced on wakeup. The alternative is a reboot, which will take even longer.&lt;br /&gt;
&lt;br /&gt;
= Improvements =&lt;br /&gt;
&lt;br /&gt;
* User interactivity latency should be lower (time to respond to keypresses, etc).&lt;br /&gt;
* Fewer powerd wakeups allowing the system to sleep longer.&lt;br /&gt;
&lt;br /&gt;
= Warnings =&lt;br /&gt;
&lt;br /&gt;
* My patch makes the kernel boot at 800MHz. Run this kernel at your own risk. Not compliant with point 6 of http://forums.precentral.net/webos-internals/241355-next-generation-kernel-development-packaging.html .&lt;br /&gt;
* anticipatory io scheduler recommended.&lt;br /&gt;
* Install SmartReflex patches at your own risk. SmartReflex is not expected to work.&lt;br /&gt;
* Some users have reported increased battery usage when running this kernel.&lt;br /&gt;
&lt;br /&gt;
= Settings used with this kernel =&lt;br /&gt;
&lt;br /&gt;
I use the following event.d script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 description &amp;quot;Local tuning modes&amp;quot;&lt;br /&gt;
 start on stopped finish&lt;br /&gt;
 stop on runlevel [!2]&lt;br /&gt;
 console none&lt;br /&gt;
 script&lt;br /&gt;
 # Set governor&lt;br /&gt;
 echo &amp;quot;performance&amp;quot; &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor&lt;br /&gt;
 # Set min frequency&lt;br /&gt;
 echo 250000 &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq&lt;br /&gt;
 # Set max frequency&lt;br /&gt;
 echo 800000 &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq&lt;br /&gt;
 # Set io scheduler to anticipatory&lt;br /&gt;
 echo anticipatory &amp;gt; /sys/block/mmcblk0/queue/scheduler&lt;br /&gt;
 # Powertop Suggestion: increase the VM dirty writeback time from 5.00 to 15&lt;br /&gt;
 # seconds. 0.50s works better on flash as it has slow writes. Needs more testing.&lt;br /&gt;
 echo 50 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
 # Use YeaH TCP as it's fairer over wireless&lt;br /&gt;
 echo yeah &amp;gt;  /proc/sys/net/ipv4/tcp_congestion_control&lt;br /&gt;
 # Don't cache route metrics since we're mobile&lt;br /&gt;
 echo 1 &amp;gt; /proc/sys/net/ipv4/tcp_no_metrics_save&lt;br /&gt;
 # Ramp up the tx/rx network buffers in case we get bursty&lt;br /&gt;
 echo 1048576 &amp;gt; /proc/sys/net/core/rmem_max&lt;br /&gt;
 echo 1048576 &amp;gt; /proc/sys/net/core/wmem_max&lt;br /&gt;
 echo 3000 &amp;gt; /proc/sys/net/core/netdev_max_backlog&lt;br /&gt;
 nohup /usr/local/bin/pt.pl &amp;gt; /dev/null 2&amp;gt;&amp;amp;1 &amp;amp;&lt;br /&gt;
 /usr/sbin/iptables -D INPUT -i eth0 -p tcp --sport 5222 -s 205.140.203.0/24 -j ACCEPT  &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
 /usr/sbin/iptables -I INPUT -i eth0 -p tcp --sport 5222 -s 205.140.203.0/24 -j ACCEPT&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
 end script&lt;br /&gt;
 # end of file&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In addition, I am using my naive perl scheduler at http://www.fop.ns.ca/pre/pt/pt.pl to manage the CPU frequency.&lt;/div&gt;</summary>
		<author><name>Sbromwich</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Application:SBromwichKernel&amp;diff=10412</id>
		<title>Application:SBromwichKernel</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Application:SBromwichKernel&amp;diff=10412"/>
		<updated>2010-06-30T14:03:05Z</updated>

		<summary type="html">&lt;p&gt;Sbromwich: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The sbromwich series of kernels are the kernels I run on my phone with all current webos-internals testing patches applied, plus my patches, plus my kernel configuration.&lt;br /&gt;
&lt;br /&gt;
The kernels are currently available at http://ipkg.preware.org/feeds/webos-kernels/testing/1.4.1.1/ and can be added using any standard package manager in the standard format (deducing this is left as an exercise for the reader).&lt;br /&gt;
&lt;br /&gt;
= Patches applied for 1.4.1-63 =&lt;br /&gt;
&lt;br /&gt;
* defconfig patches tweaked to avoid patch collision with screenstate governor settings&lt;br /&gt;
* Makefile patched to use cs2010q1 gcc compiler from CodeSourcery&lt;br /&gt;
&lt;br /&gt;
= Patches applied for 1.4.1-61 (&amp;quot;tebbo&amp;quot;) =&lt;br /&gt;
&lt;br /&gt;
* Tweaked prcm patches to extend battery life.&lt;br /&gt;
&lt;br /&gt;
= Patches applied for 1.4.1-28 (&amp;quot;nt4cats&amp;quot;) =&lt;br /&gt;
&lt;br /&gt;
* Applied patches to remove debug settings for:&lt;br /&gt;
** board-sirloin-headset-detect.c.diff&lt;br /&gt;
** omap_fb.c.diff&lt;br /&gt;
** omap_misc_hsuart.c&lt;br /&gt;
** pm_cpuidle.c.diff &lt;br /&gt;
&lt;br /&gt;
This may reduce the &amp;quot;high load on wakeup&amp;quot; that some people are seeing.&lt;br /&gt;
&lt;br /&gt;
= Patches applied for 1.4.1-26 (&amp;quot;yoda&amp;quot;) =&lt;br /&gt;
&lt;br /&gt;
* wfi instruction re-enabled after several sources confirmed it did not hinder&lt;br /&gt;
* Tweaked timeouts for prcm bitbanging, particularly with DOM_PER to see if that reduces battery drain at the expense of (possibly) more hangs coming out of suspend.&lt;br /&gt;
&lt;br /&gt;
= Patches applied for 1.4.1-25 (&amp;quot;adric&amp;quot;) =&lt;br /&gt;
&lt;br /&gt;
* wfi instruction on prcm fail removed to validate if this is a regression causing battery drain.&lt;br /&gt;
&lt;br /&gt;
= Patches applied for 1.4.1-24 (&amp;quot;jangofett&amp;quot;) =&lt;br /&gt;
&lt;br /&gt;
* Reduce number of scheduling calls made to try to reduce battery drain. This may have an adverse affect on wake from suspend.&lt;br /&gt;
&lt;br /&gt;
= Patches applied for 1.4.1-23 (&amp;quot;bobafett&amp;quot;) =&lt;br /&gt;
&lt;br /&gt;
* Debug settings removed from default kernel build.&lt;br /&gt;
* Compile kernel with explicit cortex-a8 tuning flags for gcc.&lt;br /&gt;
* Tweak prcm power manager to more explicitly wait for power set calls to return, remove debug cruft, and add Wait For Interrupt instruction if a prcm setting attempt fails.&lt;br /&gt;
* Enable preempt kernel.&lt;br /&gt;
&lt;br /&gt;
= Known problems =&lt;br /&gt;
&lt;br /&gt;
* Pre can take some extra time to respond to certain activities, especially when waking up; lags of up to 2 seconds can be experienced on wakeup. The alternative is a reboot, which will take even longer.&lt;br /&gt;
&lt;br /&gt;
= Improvements =&lt;br /&gt;
&lt;br /&gt;
* User interactivity latency should be lower (time to respond to keypresses, etc).&lt;br /&gt;
* Fewer powerd wakeups allowing the system to sleep longer.&lt;br /&gt;
&lt;br /&gt;
= Warnings =&lt;br /&gt;
&lt;br /&gt;
* My patch makes the kernel boot at 800MHz. Run this kernel at your own risk. Not compliant with point 6 of http://forums.precentral.net/webos-internals/241355-next-generation-kernel-development-packaging.html .&lt;br /&gt;
* anticipatory io scheduler recommended.&lt;br /&gt;
* Install SmartReflex patches at your own risk. SmartReflex is not expected to work.&lt;br /&gt;
* Some users have reported increased battery usage when running this kernel.&lt;br /&gt;
&lt;br /&gt;
= Settings used with this kernel =&lt;br /&gt;
&lt;br /&gt;
I use the following event.d script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 description &amp;quot;Local tuning modes&amp;quot;&lt;br /&gt;
 start on stopped finish&lt;br /&gt;
 stop on runlevel [!2]&lt;br /&gt;
 console none&lt;br /&gt;
 script&lt;br /&gt;
 # Set governor&lt;br /&gt;
 echo &amp;quot;performance&amp;quot; &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor&lt;br /&gt;
 # Set min frequency&lt;br /&gt;
 echo 250000 &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq&lt;br /&gt;
 # Set max frequency&lt;br /&gt;
 echo 800000 &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq&lt;br /&gt;
 # Set io scheduler to anticipatory&lt;br /&gt;
 echo anticipatory &amp;gt; /sys/block/mmcblk0/queue/scheduler&lt;br /&gt;
 # Powertop Suggestion: increase the VM dirty writeback time from 5.00 to 15&lt;br /&gt;
 # seconds. 0.50s works better on flash as it has slow writes. Needs more testing.&lt;br /&gt;
 echo 50 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
 # Use YeaH TCP as it's fairer over wireless&lt;br /&gt;
 echo yeah &amp;gt;  /proc/sys/net/ipv4/tcp_congestion_control&lt;br /&gt;
 # Don't cache route metrics since we're mobile&lt;br /&gt;
 echo 1 &amp;gt; /proc/sys/net/ipv4/tcp_no_metrics_save&lt;br /&gt;
 # Ramp up the tx/rx network buffers in case we get bursty&lt;br /&gt;
 echo 1048576 &amp;gt; /proc/sys/net/core/rmem_max&lt;br /&gt;
 echo 1048576 &amp;gt; /proc/sys/net/core/wmem_max&lt;br /&gt;
 echo 3000 &amp;gt; /proc/sys/net/core/netdev_max_backlog&lt;br /&gt;
 nohup /usr/local/bin/pt.pl &amp;gt; /dev/null 2&amp;gt;&amp;amp;1 &amp;amp;&lt;br /&gt;
 /usr/sbin/iptables -D INPUT -i eth0 -p tcp --sport 5222 -s 205.140.203.0/24 -j ACCEPT  &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
 /usr/sbin/iptables -I INPUT -i eth0 -p tcp --sport 5222 -s 205.140.203.0/24 -j ACCEPT&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
 end script&lt;br /&gt;
 # end of file&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In addition, I am using my naive perl scheduler at http://www.fop.ns.ca/pre/pt/pt.pl to manage the CPU frequency.&lt;/div&gt;</summary>
		<author><name>Sbromwich</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Application:SBromwichKernel&amp;diff=10409</id>
		<title>Application:SBromwichKernel</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Application:SBromwichKernel&amp;diff=10409"/>
		<updated>2010-06-30T00:19:26Z</updated>

		<summary type="html">&lt;p&gt;Sbromwich: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The sbromwich series of kernels are the kernels I run on my phone with all current webos-internals testing patches applied, plus my patches, plus my kernel configuration.&lt;br /&gt;
&lt;br /&gt;
The kernels are currently available at http://ipkg.preware.org/feeds/webos-kernels/testing/1.4.1.1/ and can be added using any standard package manager in the standard format (deducing this is left as an exercise for the reader).&lt;br /&gt;
&lt;br /&gt;
= Patches applied for 1.4.1-61 (&amp;quot;tebbo&amp;quot;) =&lt;br /&gt;
&lt;br /&gt;
* Tweaked prcm patches to extend battery life.&lt;br /&gt;
&lt;br /&gt;
= Patches applied for 1.4.1-28 (&amp;quot;nt4cats&amp;quot;) =&lt;br /&gt;
&lt;br /&gt;
* Applied patches to remove debug settings for:&lt;br /&gt;
** board-sirloin-headset-detect.c.diff&lt;br /&gt;
** omap_fb.c.diff&lt;br /&gt;
** omap_misc_hsuart.c&lt;br /&gt;
** pm_cpuidle.c.diff &lt;br /&gt;
&lt;br /&gt;
This may reduce the &amp;quot;high load on wakeup&amp;quot; that some people are seeing.&lt;br /&gt;
&lt;br /&gt;
= Patches applied for 1.4.1-26 (&amp;quot;yoda&amp;quot;) =&lt;br /&gt;
&lt;br /&gt;
* wfi instruction re-enabled after several sources confirmed it did not hinder&lt;br /&gt;
* Tweaked timeouts for prcm bitbanging, particularly with DOM_PER to see if that reduces battery drain at the expense of (possibly) more hangs coming out of suspend.&lt;br /&gt;
&lt;br /&gt;
= Patches applied for 1.4.1-25 (&amp;quot;adric&amp;quot;) =&lt;br /&gt;
&lt;br /&gt;
* wfi instruction on prcm fail removed to validate if this is a regression causing battery drain.&lt;br /&gt;
&lt;br /&gt;
= Patches applied for 1.4.1-24 (&amp;quot;jangofett&amp;quot;) =&lt;br /&gt;
&lt;br /&gt;
* Reduce number of scheduling calls made to try to reduce battery drain. This may have an adverse affect on wake from suspend.&lt;br /&gt;
&lt;br /&gt;
= Patches applied for 1.4.1-23 (&amp;quot;bobafett&amp;quot;) =&lt;br /&gt;
&lt;br /&gt;
* Debug settings removed from default kernel build.&lt;br /&gt;
* Compile kernel with explicit cortex-a8 tuning flags for gcc.&lt;br /&gt;
* Tweak prcm power manager to more explicitly wait for power set calls to return, remove debug cruft, and add Wait For Interrupt instruction if a prcm setting attempt fails.&lt;br /&gt;
* Enable preempt kernel.&lt;br /&gt;
&lt;br /&gt;
= Known problems =&lt;br /&gt;
&lt;br /&gt;
* Pre can take some extra time to respond to certain activities, especially when waking up; lags of up to 2 seconds can be experienced on wakeup. The alternative is a reboot, which will take even longer.&lt;br /&gt;
&lt;br /&gt;
= Improvements =&lt;br /&gt;
&lt;br /&gt;
* User interactivity latency should be lower (time to respond to keypresses, etc).&lt;br /&gt;
* Fewer powerd wakeups allowing the system to sleep longer.&lt;br /&gt;
&lt;br /&gt;
= Warnings =&lt;br /&gt;
&lt;br /&gt;
* My patch makes the kernel boot at 800MHz. Run this kernel at your own risk. Not compliant with point 6 of http://forums.precentral.net/webos-internals/241355-next-generation-kernel-development-packaging.html .&lt;br /&gt;
* anticipatory io scheduler recommended.&lt;br /&gt;
* Install SmartReflex patches at your own risk. SmartReflex is not expected to work.&lt;br /&gt;
* Some users have reported increased battery usage when running this kernel.&lt;br /&gt;
&lt;br /&gt;
= Settings used with this kernel =&lt;br /&gt;
&lt;br /&gt;
I use the following event.d script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 description &amp;quot;Local tuning modes&amp;quot;&lt;br /&gt;
 start on stopped finish&lt;br /&gt;
 stop on runlevel [!2]&lt;br /&gt;
 console none&lt;br /&gt;
 script&lt;br /&gt;
 # Set governor&lt;br /&gt;
 echo &amp;quot;performance&amp;quot; &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor&lt;br /&gt;
 # Set min frequency&lt;br /&gt;
 echo 250000 &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq&lt;br /&gt;
 # Set max frequency&lt;br /&gt;
 echo 800000 &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq&lt;br /&gt;
 # Set io scheduler to anticipatory&lt;br /&gt;
 echo anticipatory &amp;gt; /sys/block/mmcblk0/queue/scheduler&lt;br /&gt;
 # Powertop Suggestion: increase the VM dirty writeback time from 5.00 to 15&lt;br /&gt;
 # seconds. 0.50s works better on flash as it has slow writes. Needs more testing.&lt;br /&gt;
 echo 50 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
 # Use YeaH TCP as it's fairer over wireless&lt;br /&gt;
 echo yeah &amp;gt;  /proc/sys/net/ipv4/tcp_congestion_control&lt;br /&gt;
 # Don't cache route metrics since we're mobile&lt;br /&gt;
 echo 1 &amp;gt; /proc/sys/net/ipv4/tcp_no_metrics_save&lt;br /&gt;
 # Ramp up the tx/rx network buffers in case we get bursty&lt;br /&gt;
 echo 1048576 &amp;gt; /proc/sys/net/core/rmem_max&lt;br /&gt;
 echo 1048576 &amp;gt; /proc/sys/net/core/wmem_max&lt;br /&gt;
 echo 3000 &amp;gt; /proc/sys/net/core/netdev_max_backlog&lt;br /&gt;
 nohup /usr/local/bin/pt.pl &amp;gt; /dev/null 2&amp;gt;&amp;amp;1 &amp;amp;&lt;br /&gt;
 /usr/sbin/iptables -D INPUT -i eth0 -p tcp --sport 5222 -s 205.140.203.0/24 -j ACCEPT  &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
 /usr/sbin/iptables -I INPUT -i eth0 -p tcp --sport 5222 -s 205.140.203.0/24 -j ACCEPT&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
 end script&lt;br /&gt;
 # end of file&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In addition, I am using my naive perl scheduler at http://www.fop.ns.ca/pre/pt/pt.pl to manage the CPU frequency.&lt;/div&gt;</summary>
		<author><name>Sbromwich</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Application:SBromwichKernel&amp;diff=10048</id>
		<title>Application:SBromwichKernel</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Application:SBromwichKernel&amp;diff=10048"/>
		<updated>2010-05-25T12:15:01Z</updated>

		<summary type="html">&lt;p&gt;Sbromwich: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The sbromwich series of kernels are the kernels I run on my phone with all current webos-internals testing patches applied, plus my patches, plus my kernel configuration.&lt;br /&gt;
&lt;br /&gt;
The kernels are currently available at http://ipkg.preware.org/feeds/webos-kernels/testing/1.4.1.1/ and can be added using any standard package manager in the standard format (deducing this is left as an exercise for the reader).&lt;br /&gt;
&lt;br /&gt;
= Patches applied for 1.4.1-28 (&amp;quot;nt4cats&amp;quot;) =&lt;br /&gt;
&lt;br /&gt;
* Applied patches to remove debug settings for:&lt;br /&gt;
** board-sirloin-headset-detect.c.diff&lt;br /&gt;
** omap_fb.c.diff&lt;br /&gt;
** omap_misc_hsuart.c&lt;br /&gt;
** pm_cpuidle.c.diff &lt;br /&gt;
&lt;br /&gt;
This may reduce the &amp;quot;high load on wakeup&amp;quot; that some people are seeing.&lt;br /&gt;
&lt;br /&gt;
= Patches applied for 1.4.1-26 (&amp;quot;yoda&amp;quot;) =&lt;br /&gt;
&lt;br /&gt;
* wfi instruction re-enabled after several sources confirmed it did not hinder&lt;br /&gt;
* Tweaked timeouts for prcm bitbanging, particularly with DOM_PER to see if that reduces battery drain at the expense of (possibly) more hangs coming out of suspend.&lt;br /&gt;
&lt;br /&gt;
= Patches applied for 1.4.1-25 (&amp;quot;adric&amp;quot;) =&lt;br /&gt;
&lt;br /&gt;
* wfi instruction on prcm fail removed to validate if this is a regression causing battery drain.&lt;br /&gt;
&lt;br /&gt;
= Patches applied for 1.4.1-24 (&amp;quot;jangofett&amp;quot;) =&lt;br /&gt;
&lt;br /&gt;
* Reduce number of scheduling calls made to try to reduce battery drain. This may have an adverse affect on wake from suspend.&lt;br /&gt;
&lt;br /&gt;
= Patches applied for 1.4.1-23 (&amp;quot;bobafett&amp;quot;) =&lt;br /&gt;
&lt;br /&gt;
* Debug settings removed from default kernel build.&lt;br /&gt;
* Compile kernel with explicit cortex-a8 tuning flags for gcc.&lt;br /&gt;
* Tweak prcm power manager to more explicitly wait for power set calls to return, remove debug cruft, and add Wait For Interrupt instruction if a prcm setting attempt fails.&lt;br /&gt;
* Enable preempt kernel.&lt;br /&gt;
&lt;br /&gt;
= Known problems =&lt;br /&gt;
&lt;br /&gt;
* Pre can take some extra time to respond to certain activities, especially when waking up; lags of up to 2 seconds can be experienced on wakeup. The alternative is a reboot, which will take even longer.&lt;br /&gt;
&lt;br /&gt;
= Improvements =&lt;br /&gt;
&lt;br /&gt;
* User interactivity latency should be lower (time to respond to keypresses, etc).&lt;br /&gt;
* Fewer powerd wakeups allowing the system to sleep longer.&lt;br /&gt;
&lt;br /&gt;
= Warnings =&lt;br /&gt;
&lt;br /&gt;
* My patch makes the kernel boot at 800MHz. Run this kernel at your own risk. Not compliant with point 6 of http://forums.precentral.net/webos-internals/241355-next-generation-kernel-development-packaging.html .&lt;br /&gt;
* anticipatory io scheduler recommended.&lt;br /&gt;
* Install SmartReflex patches at your own risk. SmartReflex is not expected to work.&lt;br /&gt;
* Some users have reported increased battery usage when running this kernel.&lt;br /&gt;
&lt;br /&gt;
= Settings used with this kernel =&lt;br /&gt;
&lt;br /&gt;
I use the following event.d script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 description &amp;quot;Local tuning modes&amp;quot;&lt;br /&gt;
 start on stopped finish&lt;br /&gt;
 stop on runlevel [!2]&lt;br /&gt;
 console none&lt;br /&gt;
 script&lt;br /&gt;
 # Set governor&lt;br /&gt;
 echo &amp;quot;performance&amp;quot; &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor&lt;br /&gt;
 # Set min frequency&lt;br /&gt;
 echo 250000 &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq&lt;br /&gt;
 # Set max frequency&lt;br /&gt;
 echo 800000 &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq&lt;br /&gt;
 # Set io scheduler to anticipatory&lt;br /&gt;
 echo anticipatory &amp;gt; /sys/block/mmcblk0/queue/scheduler&lt;br /&gt;
 # Powertop Suggestion: increase the VM dirty writeback time from 5.00 to 15&lt;br /&gt;
 # seconds. 0.50s works better on flash as it has slow writes. Needs more testing.&lt;br /&gt;
 echo 50 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
 # Use YeaH TCP as it's fairer over wireless&lt;br /&gt;
 echo yeah &amp;gt;  /proc/sys/net/ipv4/tcp_congestion_control&lt;br /&gt;
 # Don't cache route metrics since we're mobile&lt;br /&gt;
 echo 1 &amp;gt; /proc/sys/net/ipv4/tcp_no_metrics_save&lt;br /&gt;
 # Ramp up the tx/rx network buffers in case we get bursty&lt;br /&gt;
 echo 1048576 &amp;gt; /proc/sys/net/core/rmem_max&lt;br /&gt;
 echo 1048576 &amp;gt; /proc/sys/net/core/wmem_max&lt;br /&gt;
 echo 3000 &amp;gt; /proc/sys/net/core/netdev_max_backlog&lt;br /&gt;
 nohup /usr/local/bin/pt.pl &amp;gt; /dev/null 2&amp;gt;&amp;amp;1 &amp;amp;&lt;br /&gt;
 /usr/sbin/iptables -D INPUT -i eth0 -p tcp --sport 5222 -s 205.140.203.0/24 -j ACCEPT  &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
 /usr/sbin/iptables -I INPUT -i eth0 -p tcp --sport 5222 -s 205.140.203.0/24 -j ACCEPT&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
 end script&lt;br /&gt;
 # end of file&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In addition, I am using my naive perl scheduler at http://www.fop.ns.ca/pre/pt/pt.pl to manage the CPU frequency.&lt;/div&gt;</summary>
		<author><name>Sbromwich</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Application:SBromwichKernel&amp;diff=9865</id>
		<title>Application:SBromwichKernel</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Application:SBromwichKernel&amp;diff=9865"/>
		<updated>2010-05-10T17:11:15Z</updated>

		<summary type="html">&lt;p&gt;Sbromwich: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The sbromwich series of kernels are the kernels I run on my phone with all current webos-internals testing patches applied, plus my patches, plus my kernel configuration.&lt;br /&gt;
&lt;br /&gt;
The kernels are currently available at http://ipkg.preware.org/feeds/webos-kernels/testing/1.4.1.1/ and can be added using any standard package manager in the standard format (deducing this is left as an exercise for the reader).&lt;br /&gt;
&lt;br /&gt;
= Patches applied for 1.4.1-26 (&amp;quot;yoda&amp;quot;) =&lt;br /&gt;
&lt;br /&gt;
* wfi instruction re-enabled after several sources confirmed it did not hinder&lt;br /&gt;
* Tweaked timeouts for prcm bitbanging, particularly with DOM_PER to see if that reduces battery drain at the expense of (possibly) more hangs coming out of suspend.&lt;br /&gt;
&lt;br /&gt;
= Patches applied for 1.4.1-25 (&amp;quot;adric&amp;quot;) =&lt;br /&gt;
&lt;br /&gt;
* wfi instruction on prcm fail removed to validate if this is a regression causing battery drain.&lt;br /&gt;
&lt;br /&gt;
= Patches applied for 1.4.1-24 (&amp;quot;jangofett&amp;quot;) =&lt;br /&gt;
&lt;br /&gt;
* Reduce number of scheduling calls made to try to reduce battery drain. This may have an adverse affect on wake from suspend.&lt;br /&gt;
&lt;br /&gt;
= Patches applied for 1.4.1-23 (&amp;quot;bobafett&amp;quot;) =&lt;br /&gt;
&lt;br /&gt;
* Debug settings removed from default kernel build.&lt;br /&gt;
* Compile kernel with explicit cortex-a8 tuning flags for gcc.&lt;br /&gt;
* Tweak prcm power manager to more explicitly wait for power set calls to return, remove debug cruft, and add Wait For Interrupt instruction if a prcm setting attempt fails.&lt;br /&gt;
* Enable preempt kernel.&lt;br /&gt;
&lt;br /&gt;
= Known problems =&lt;br /&gt;
&lt;br /&gt;
* Pre can take some extra time to respond to certain activities, especially when waking up; lags of up to 2 seconds can be experienced on wakeup. The alternative is a reboot, which will take even longer.&lt;br /&gt;
&lt;br /&gt;
= Improvements =&lt;br /&gt;
&lt;br /&gt;
* User interactivity latency should be lower (time to respond to keypresses, etc).&lt;br /&gt;
* Fewer powerd wakeups allowing the system to sleep longer.&lt;br /&gt;
&lt;br /&gt;
= Warnings =&lt;br /&gt;
&lt;br /&gt;
* My patch makes the kernel boot at 800MHz. Run this kernel at your own risk. Not compliant with point 6 of http://forums.precentral.net/webos-internals/241355-next-generation-kernel-development-packaging.html .&lt;br /&gt;
* anticipatory io scheduler recommended.&lt;br /&gt;
* Install SmartReflex patches at your own risk. SmartReflex is not expected to work.&lt;br /&gt;
* Some users have reported increased battery usage when running this kernel.&lt;br /&gt;
&lt;br /&gt;
= Settings used with this kernel =&lt;br /&gt;
&lt;br /&gt;
I use the following event.d script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 description &amp;quot;Local tuning modes&amp;quot;&lt;br /&gt;
 start on stopped finish&lt;br /&gt;
 stop on runlevel [!2]&lt;br /&gt;
 console none&lt;br /&gt;
 script&lt;br /&gt;
 # Set governor&lt;br /&gt;
 echo &amp;quot;performance&amp;quot; &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor&lt;br /&gt;
 # Set min frequency&lt;br /&gt;
 echo 250000 &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq&lt;br /&gt;
 # Set max frequency&lt;br /&gt;
 echo 800000 &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq&lt;br /&gt;
 # Set io scheduler to anticipatory&lt;br /&gt;
 echo anticipatory &amp;gt; /sys/block/mmcblk0/queue/scheduler&lt;br /&gt;
 # Powertop Suggestion: increase the VM dirty writeback time from 5.00 to 15&lt;br /&gt;
 # seconds. 0.50s works better on flash as it has slow writes. Needs more testing.&lt;br /&gt;
 echo 50 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
 # Use YeaH TCP as it's fairer over wireless&lt;br /&gt;
 echo yeah &amp;gt;  /proc/sys/net/ipv4/tcp_congestion_control&lt;br /&gt;
 # Don't cache route metrics since we're mobile&lt;br /&gt;
 echo 1 &amp;gt; /proc/sys/net/ipv4/tcp_no_metrics_save&lt;br /&gt;
 # Ramp up the tx/rx network buffers in case we get bursty&lt;br /&gt;
 echo 1048576 &amp;gt; /proc/sys/net/core/rmem_max&lt;br /&gt;
 echo 1048576 &amp;gt; /proc/sys/net/core/wmem_max&lt;br /&gt;
 echo 3000 &amp;gt; /proc/sys/net/core/netdev_max_backlog&lt;br /&gt;
 nohup /usr/local/bin/pt.pl &amp;gt; /dev/null 2&amp;gt;&amp;amp;1 &amp;amp;&lt;br /&gt;
 /usr/sbin/iptables -D INPUT -i eth0 -p tcp --sport 5222 -s 205.140.203.0/24 -j ACCEPT  &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
 /usr/sbin/iptables -I INPUT -i eth0 -p tcp --sport 5222 -s 205.140.203.0/24 -j ACCEPT&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
 end script&lt;br /&gt;
 # end of file&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In addition, I am using my naive perl scheduler at http://www.fop.ns.ca/pre/pt/pt.pl to manage the CPU frequency.&lt;/div&gt;</summary>
		<author><name>Sbromwich</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Application:SBromwichKernel&amp;diff=9864</id>
		<title>Application:SBromwichKernel</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Application:SBromwichKernel&amp;diff=9864"/>
		<updated>2010-05-10T15:40:00Z</updated>

		<summary type="html">&lt;p&gt;Sbromwich: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The sbromwich series of kernels are the kernels I run on my phone with all current webos-internals testing patches applied, plus my patches, plus my kernel configuration.&lt;br /&gt;
&lt;br /&gt;
The kernels are currently available at http://ipkg.preware.org/feeds/webos-kernels/testing/1.4.1.1/ and can be added using any standard package manager in the standard format (deducing this is left as an exercise for the reader).&lt;br /&gt;
&lt;br /&gt;
= Patches applied for 1.4.1-25 (&amp;quot;adric&amp;quot;) =&lt;br /&gt;
&lt;br /&gt;
* wfi instruction on prcm fail removed to validate if this is a regression causing battery drain.&lt;br /&gt;
&lt;br /&gt;
= Patches applied for 1.4.1-24 (&amp;quot;jangofett&amp;quot;) =&lt;br /&gt;
&lt;br /&gt;
* Reduce number of scheduling calls made to try to reduce battery drain. This may have an adverse affect on wake from suspend.&lt;br /&gt;
&lt;br /&gt;
= Patches applied for 1.4.1-23 (&amp;quot;bobafett&amp;quot;) =&lt;br /&gt;
&lt;br /&gt;
* Debug settings removed from default kernel build.&lt;br /&gt;
* Compile kernel with explicit cortex-a8 tuning flags for gcc.&lt;br /&gt;
* Tweak prcm power manager to more explicitly wait for power set calls to return, remove debug cruft, and add Wait For Interrupt instruction if a prcm setting attempt fails.&lt;br /&gt;
* Enable preempt kernel.&lt;br /&gt;
&lt;br /&gt;
= Known problems =&lt;br /&gt;
&lt;br /&gt;
* Pre can take some extra time to respond to certain activities, especially when waking up; lags of up to 2 seconds can be experienced on wakeup. The alternative is a reboot, which will take even longer.&lt;br /&gt;
&lt;br /&gt;
= Improvements =&lt;br /&gt;
&lt;br /&gt;
* User interactivity latency should be lower (time to respond to keypresses, etc).&lt;br /&gt;
* Fewer powerd wakeups allowing the system to sleep longer.&lt;br /&gt;
&lt;br /&gt;
= Warnings =&lt;br /&gt;
&lt;br /&gt;
* My patch makes the kernel boot at 800MHz. Run this kernel at your own risk. Not compliant with point 6 of http://forums.precentral.net/webos-internals/241355-next-generation-kernel-development-packaging.html .&lt;br /&gt;
* anticipatory io scheduler recommended.&lt;br /&gt;
* Install SmartReflex patches at your own risk. SmartReflex is not expected to work.&lt;br /&gt;
* Some users have reported increased battery usage when running this kernel.&lt;br /&gt;
&lt;br /&gt;
= Settings used with this kernel =&lt;br /&gt;
&lt;br /&gt;
I use the following event.d script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 description &amp;quot;Local tuning modes&amp;quot;&lt;br /&gt;
 start on stopped finish&lt;br /&gt;
 stop on runlevel [!2]&lt;br /&gt;
 console none&lt;br /&gt;
 script&lt;br /&gt;
 # Set governor&lt;br /&gt;
 echo &amp;quot;performance&amp;quot; &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor&lt;br /&gt;
 # Set min frequency&lt;br /&gt;
 echo 250000 &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq&lt;br /&gt;
 # Set max frequency&lt;br /&gt;
 echo 800000 &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq&lt;br /&gt;
 # Set io scheduler to anticipatory&lt;br /&gt;
 echo anticipatory &amp;gt; /sys/block/mmcblk0/queue/scheduler&lt;br /&gt;
 # Powertop Suggestion: increase the VM dirty writeback time from 5.00 to 15&lt;br /&gt;
 # seconds. 0.50s works better on flash as it has slow writes. Needs more testing.&lt;br /&gt;
 echo 50 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
 # Use YeaH TCP as it's fairer over wireless&lt;br /&gt;
 echo yeah &amp;gt;  /proc/sys/net/ipv4/tcp_congestion_control&lt;br /&gt;
 # Don't cache route metrics since we're mobile&lt;br /&gt;
 echo 1 &amp;gt; /proc/sys/net/ipv4/tcp_no_metrics_save&lt;br /&gt;
 # Ramp up the tx/rx network buffers in case we get bursty&lt;br /&gt;
 echo 1048576 &amp;gt; /proc/sys/net/core/rmem_max&lt;br /&gt;
 echo 1048576 &amp;gt; /proc/sys/net/core/wmem_max&lt;br /&gt;
 echo 3000 &amp;gt; /proc/sys/net/core/netdev_max_backlog&lt;br /&gt;
 nohup /usr/local/bin/pt.pl &amp;gt; /dev/null 2&amp;gt;&amp;amp;1 &amp;amp;&lt;br /&gt;
 /usr/sbin/iptables -D INPUT -i eth0 -p tcp --sport 5222 -s 205.140.203.0/24 -j ACCEPT  &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
 /usr/sbin/iptables -I INPUT -i eth0 -p tcp --sport 5222 -s 205.140.203.0/24 -j ACCEPT&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
 end script&lt;br /&gt;
 # end of file&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In addition, I am using my naive perl scheduler at http://www.fop.ns.ca/pre/pt/pt.pl to manage the CPU frequency.&lt;/div&gt;</summary>
		<author><name>Sbromwich</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Application:SBromwichKernel&amp;diff=9859</id>
		<title>Application:SBromwichKernel</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Application:SBromwichKernel&amp;diff=9859"/>
		<updated>2010-05-10T00:47:11Z</updated>

		<summary type="html">&lt;p&gt;Sbromwich: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The sbromwich series of kernels are the kernels I run on my phone with all current webos-internals testing patches applied, plus my patches, plus my kernel configuration.&lt;br /&gt;
&lt;br /&gt;
The kernels are currently available at http://ipkg.preware.org/feeds/webos-kernels/testing/1.4.1.1/ and can be added using any standard package manager in the standard format (deducing this is left as an exercise for the reader).&lt;br /&gt;
&lt;br /&gt;
= Patches applied for 1.4.1-25 (&amp;quot;adric&amp;quot;) =&lt;br /&gt;
&lt;br /&gt;
* wfi instruction on prcm fail removed to validate if this is a regression causing battery drain.&lt;br /&gt;
&lt;br /&gt;
= Patches applied for 1.4.1-24 (&amp;quot;jangofett&amp;quot;) =&lt;br /&gt;
&lt;br /&gt;
* Reduce number of scheduling calls made to try to reduce battery drain. This may have an adverse affect on wake from suspend.&lt;br /&gt;
&lt;br /&gt;
= Patches applied for 1.4.1-23 (&amp;quot;bobafett&amp;quot;) =&lt;br /&gt;
&lt;br /&gt;
* Debug settings removed from default kernel build.&lt;br /&gt;
* Compile kernel with explicit cortex-a8 tuning flags for gcc.&lt;br /&gt;
* Tweak prcm power manager to more explicitly wait for power set calls to return, remove debug cruft, and add Wait For Interrupt instruction if a prcm setting attempt fails.&lt;br /&gt;
* Enable preempt kernel.&lt;br /&gt;
&lt;br /&gt;
= Known problems =&lt;br /&gt;
&lt;br /&gt;
* Pre can take some extra time to respond to certain activities, especially when waking up; lags of up to 2 seconds can be experienced on wakeup. The alternative is a reboot, which will take even longer.&lt;br /&gt;
&lt;br /&gt;
= Improvements =&lt;br /&gt;
&lt;br /&gt;
* User interactivity latency should be lower (time to respond to keypresses, etc).&lt;br /&gt;
* Fewer powerd wakeups allowing the system to sleep longer.&lt;br /&gt;
&lt;br /&gt;
= Warnings =&lt;br /&gt;
&lt;br /&gt;
* My patch makes the kernel boot at 800MHz. Run this kernel at your own risk. Not compliant with point 6 of http://forums.precentral.net/webos-internals/241355-next-generation-kernel-development-packaging.html .&lt;br /&gt;
* anticipatory io scheduler recommended.&lt;br /&gt;
* Install SmartReflex patches at your own risk. SmartReflex is not expected to work.&lt;br /&gt;
* Some users have reported increased battery usage when running this kernel.&lt;/div&gt;</summary>
		<author><name>Sbromwich</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Application:SBromwichKernel&amp;diff=9857</id>
		<title>Application:SBromwichKernel</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Application:SBromwichKernel&amp;diff=9857"/>
		<updated>2010-05-09T13:26:47Z</updated>

		<summary type="html">&lt;p&gt;Sbromwich: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The sbromwich series of kernels are the kernels I run on my phone with all current webos-internals testing patches applied, plus my patches, plus my kernel configuration.&lt;br /&gt;
&lt;br /&gt;
The kernels are currently available at http://ipkg.preware.org/feeds/webos-kernels/testing/1.4.1.1/ and can be added using any standard package manager in the standard format (deducing this is left as an exercise for the reader).&lt;br /&gt;
&lt;br /&gt;
= Patches applied for 1.4.1-24 (&amp;quot;jangofett&amp;quot;) =&lt;br /&gt;
&lt;br /&gt;
* Reduce number of scheduling calls made to try to reduce battery drain. This may have an adverse affect on wake from suspend.&lt;br /&gt;
&lt;br /&gt;
= Patches applied for 1.4.1-23 (&amp;quot;bobafett&amp;quot;) =&lt;br /&gt;
&lt;br /&gt;
* Debug settings removed from default kernel build.&lt;br /&gt;
* Compile kernel with explicit cortex-a8 tuning flags for gcc.&lt;br /&gt;
* Tweak prcm power manager to more explicitly wait for power set calls to return, remove debug cruft, and add Wait For Interrupt instruction if a prcm setting attempt fails.&lt;br /&gt;
* Enable preempt kernel.&lt;br /&gt;
&lt;br /&gt;
= Known problems =&lt;br /&gt;
&lt;br /&gt;
* Pre can take some extra time to respond to certain activities, especially when waking up; lags of up to 2 seconds can be experienced on wakeup. The alternative is a reboot, which will take even longer.&lt;br /&gt;
&lt;br /&gt;
= Improvements =&lt;br /&gt;
&lt;br /&gt;
* User interactivity latency should be lower (time to respond to keypresses, etc).&lt;br /&gt;
* Fewer powerd wakeups allowing the system to sleep longer.&lt;br /&gt;
&lt;br /&gt;
= Warnings =&lt;br /&gt;
&lt;br /&gt;
* My patch makes the kernel boot at 800MHz. Run this kernel at your own risk. Not compliant with point 6 of http://forums.precentral.net/webos-internals/241355-next-generation-kernel-development-packaging.html .&lt;br /&gt;
* anticipatory io scheduler recommended.&lt;br /&gt;
* Install SmartReflex patches at your own risk. SmartReflex is not expected to work.&lt;br /&gt;
* Some users have reported increased battery usage when running this kernel.&lt;/div&gt;</summary>
		<author><name>Sbromwich</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Application:SkyNet&amp;diff=9842</id>
		<title>Application:SkyNet</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Application:SkyNet&amp;diff=9842"/>
		<updated>2010-05-09T03:03:16Z</updated>

		<summary type="html">&lt;p&gt;Sbromwich: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;SkyNet is an application which manages the secure linking of webOS (and other) devices together over the internet.&lt;br /&gt;
&lt;br /&gt;
It uses secure exchange of ssh keys, and management of restricted rsync command lines in the authorized_keys file, to allow secure, managed, authorized transfers of files between devices.&lt;br /&gt;
&lt;br /&gt;
It can also be used to set up secure tunnels and VPN networks of devices using openvpn.&lt;br /&gt;
&lt;br /&gt;
All actions must be carefully controlled and authorised by the user, lest it become the SkyNet of the Terminator variety ...&lt;br /&gt;
&lt;br /&gt;
Discussion welcome on how we achieve this.  Let's use this as a working page for architecture and design ideas.  Just write them below.&lt;br /&gt;
&lt;br /&gt;
Add vpnc support.&lt;br /&gt;
&lt;br /&gt;
Add some sort of profile support; eg if I am at work connected through wifi on the corporate SSID I don't want the Pre to attempt to VPN in to get to work resources, and conversely at home I don't want to tunnel to my home network if I am already attached by wifi.&lt;/div&gt;</summary>
		<author><name>Sbromwich</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Application:SBromwichKernel&amp;diff=9841</id>
		<title>Application:SBromwichKernel</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Application:SBromwichKernel&amp;diff=9841"/>
		<updated>2010-05-09T02:36:10Z</updated>

		<summary type="html">&lt;p&gt;Sbromwich: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The sbromwich series of kernels are the kernels I run on my phone with all current webos-internals testing patches applied, plus my patches, plus my kernel configuration.&lt;br /&gt;
&lt;br /&gt;
= Patches applied for 1.4.1-24 (&amp;quot;jangofett&amp;quot;) =&lt;br /&gt;
&lt;br /&gt;
* Reduce number of scheduling calls made to try to reduce battery drain. This may have an adverse affect on wake from suspend.&lt;br /&gt;
&lt;br /&gt;
= Patches applied for 1.4.1-23 (&amp;quot;bobafett&amp;quot;) =&lt;br /&gt;
&lt;br /&gt;
* Debug settings removed from default kernel build.&lt;br /&gt;
* Compile kernel with explicit cortex-a8 tuning flags for gcc.&lt;br /&gt;
* Tweak prcm power manager to more explicitly wait for power set calls to return, remove debug cruft, and add Wait For Interrupt instruction if a prcm setting attempt fails.&lt;br /&gt;
* Enable preempt kernel.&lt;br /&gt;
&lt;br /&gt;
= Known problems =&lt;br /&gt;
&lt;br /&gt;
* Pre can take some extra time to respond to certain activities, especially when waking up; lags of up to 2 seconds can be experienced on wakeup. The alternative is a reboot, which will take even longer.&lt;br /&gt;
&lt;br /&gt;
= Improvements =&lt;br /&gt;
&lt;br /&gt;
* User interactivity latency should be lower (time to respond to keypresses, etc).&lt;br /&gt;
* Fewer powerd wakeups allowing the system to sleep longer.&lt;br /&gt;
&lt;br /&gt;
= Warnings =&lt;br /&gt;
&lt;br /&gt;
* My patch makes the kernel boot at 800MHz. Run this kernel at your own risk. Not compliant with point 6 of http://forums.precentral.net/webos-internals/241355-next-generation-kernel-development-packaging.html .&lt;br /&gt;
* anticipatory io scheduler recommended.&lt;br /&gt;
* Install SmartReflex patches at your own risk. SmartReflex is not expected to work.&lt;br /&gt;
* Some users have reported increased battery usage when running this kernel.&lt;/div&gt;</summary>
		<author><name>Sbromwich</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Application:SBromwichKernel&amp;diff=9840</id>
		<title>Application:SBromwichKernel</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Application:SBromwichKernel&amp;diff=9840"/>
		<updated>2010-05-09T02:33:00Z</updated>

		<summary type="html">&lt;p&gt;Sbromwich: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The sbromwich series of kernels are the kernels I run on my phone with all current webos-internals testing patches applied, plus my patches, plus my kernel configuration.&lt;br /&gt;
&lt;br /&gt;
= Patches applied for 1.4.1-24 =&lt;br /&gt;
&lt;br /&gt;
* Reduce number of scheduling calls made to try to reduce battery drain. This may have an adverse affect on wake from suspend.&lt;br /&gt;
&lt;br /&gt;
= Patches applied for 1.4.1-23 =&lt;br /&gt;
&lt;br /&gt;
* Debug settings removed from default kernel build.&lt;br /&gt;
* Compile kernel with explicit cortex-a8 tuning flags for gcc.&lt;br /&gt;
* Tweak prcm power manager to more explicitly wait for power set calls to return, remove debug cruft, and add Wait For Interrupt instruction if a prcm setting attempt fails.&lt;br /&gt;
* Enable preempt kernel.&lt;br /&gt;
&lt;br /&gt;
= Known problems =&lt;br /&gt;
&lt;br /&gt;
* Pre can take some extra time to respond to certain activities, especially when waking up; lags of up to 2 seconds can be experienced on wakeup. The alternative is a reboot, which will take even longer.&lt;br /&gt;
&lt;br /&gt;
= Improvements =&lt;br /&gt;
&lt;br /&gt;
* User interactivity latency should be lower (time to respond to keypresses, etc).&lt;br /&gt;
* Fewer powerd wakeups allowing the system to sleep longer.&lt;br /&gt;
&lt;br /&gt;
= Warnings =&lt;br /&gt;
&lt;br /&gt;
* My patch makes the kernel boot at 800MHz. Run this kernel at your own risk. Not compliant with point 6 of http://forums.precentral.net/webos-internals/241355-next-generation-kernel-development-packaging.html .&lt;br /&gt;
* anticipatory io scheduler recommended.&lt;br /&gt;
* Install SmartReflex patches at your own risk. SmartReflex is not expected to work.&lt;br /&gt;
* Some users have reported increased battery usage when running this kernel.&lt;/div&gt;</summary>
		<author><name>Sbromwich</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Application:SBromwichKernel&amp;diff=9838</id>
		<title>Application:SBromwichKernel</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Application:SBromwichKernel&amp;diff=9838"/>
		<updated>2010-05-09T02:26:50Z</updated>

		<summary type="html">&lt;p&gt;Sbromwich: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The sbromwich series of kernels are my kernels with all current webos-internals testing patches applied, plus my own patches.&lt;br /&gt;
&lt;br /&gt;
= Patches applied for 1.4.1-24 =&lt;br /&gt;
&lt;br /&gt;
* Reduce number of scheduling calls made to try to reduce battery drain. This may have an adverse affect on wake from suspend.&lt;br /&gt;
&lt;br /&gt;
= Patches applied for 1.4.1-23 =&lt;br /&gt;
&lt;br /&gt;
* Debug settings removed from default kernel build.&lt;br /&gt;
* Compile kernel with explicit cortex-a8 tuning flags for gcc.&lt;br /&gt;
* Tweak prcm power manager to more explicitly wait for power set calls to return, remove debug cruft, and add Wait For Interrupt instruction if a prcm setting attempt fails.&lt;br /&gt;
* Enable preempt kernel.&lt;br /&gt;
&lt;br /&gt;
= Known problems =&lt;br /&gt;
&lt;br /&gt;
* Pre can take some extra time to respond to certain activities, especially when waking up; lags of up to 2 seconds can be experienced on wakeup. The alternative is a reboot, which will take even longer.&lt;br /&gt;
&lt;br /&gt;
= Improvements =&lt;br /&gt;
&lt;br /&gt;
* User interactivity latency should be lower (time to respond to keypresses, etc).&lt;br /&gt;
* Fewer powerd wakeups allowing the system to sleep longer.&lt;br /&gt;
&lt;br /&gt;
= Warnings =&lt;br /&gt;
&lt;br /&gt;
* My patch makes the kernel boot at 800MHz. Run this kernel at your own risk. Not compliant with point 6 of http://forums.precentral.net/webos-internals/241355-next-generation-kernel-development-packaging.html .&lt;br /&gt;
* anticipatory io scheduler recommended.&lt;br /&gt;
* Install SmartReflex patches at your own risk. SmartReflex is not expected to work.&lt;br /&gt;
* Some users have reported increased battery usage when running this kernel.&lt;/div&gt;</summary>
		<author><name>Sbromwich</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Application:SBromwichKernel&amp;diff=9835</id>
		<title>Application:SBromwichKernel</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Application:SBromwichKernel&amp;diff=9835"/>
		<updated>2010-05-09T02:03:35Z</updated>

		<summary type="html">&lt;p&gt;Sbromwich: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The sbromwich series of kernels are my kernels with all current webos-internals testing patches applied, plus my own patches.&lt;br /&gt;
&lt;br /&gt;
= Patches applied for 1.4.1-24 =&lt;br /&gt;
&lt;br /&gt;
* Reduce number of scheduling calls made to try to reduce battery drain.&lt;br /&gt;
&lt;br /&gt;
= Patches applied for 1.4.1-23 =&lt;br /&gt;
&lt;br /&gt;
* Debug settings removed from default kernel build.&lt;br /&gt;
* Compile kernel with explicit cortex-a8 tuning flags for gcc.&lt;br /&gt;
* Tweak prcm power manager to more explicitly wait for power set calls to return, remove debug cruft, and add Wait For Interrupt instruction if a prcm setting attempt fails.&lt;br /&gt;
* Enable preempt kernel.&lt;br /&gt;
&lt;br /&gt;
= Known problems =&lt;br /&gt;
&lt;br /&gt;
* Pre can take some extra time to respond to certain activities, especially when waking up; lags of up to 2 seconds can be experienced on wakeup. The alternative is a reboot, which will take even longer.&lt;br /&gt;
&lt;br /&gt;
= Improvements =&lt;br /&gt;
&lt;br /&gt;
* User interactivity latency should be lower (time to respond to keypresses, etc).&lt;br /&gt;
* Fewer powerd wakeups allowing the system to sleep longer.&lt;br /&gt;
&lt;br /&gt;
= Warnings =&lt;br /&gt;
&lt;br /&gt;
* My patch makes the kernel boot at 800MHz. Run this kernel at your own risk. Not compliant with point 6 of http://forums.precentral.net/webos-internals/241355-next-generation-kernel-development-packaging.html .&lt;br /&gt;
* anticipatory io scheduler recommended.&lt;br /&gt;
* Install SmartReflex patches at your own risk. SmartReflex is not expected to work.&lt;br /&gt;
* Some users have reported increased battery usage when running this kernel.&lt;/div&gt;</summary>
		<author><name>Sbromwich</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Application:SBromwichKernel&amp;diff=9834</id>
		<title>Application:SBromwichKernel</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Application:SBromwichKernel&amp;diff=9834"/>
		<updated>2010-05-09T01:06:02Z</updated>

		<summary type="html">&lt;p&gt;Sbromwich: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The sbromwich series of kernels are my kernels with all current webos-internals testing patches applied, plus my own patches.&lt;br /&gt;
&lt;br /&gt;
= Patches applied for 1.4.1-23 =&lt;br /&gt;
&lt;br /&gt;
* Debug settings removed from default kernel build&lt;br /&gt;
* Compile kernel with explicit cortex-a8 tuning flags for gcc&lt;br /&gt;
* Tweak prcm power manager to more explicitly wait for power set calls to return, remove debug cruft, and add Wait For Interrupt instruction if a prcm setting attempt fails&lt;br /&gt;
* Enable preempt kernel&lt;br /&gt;
&lt;br /&gt;
= Known problems =&lt;br /&gt;
&lt;br /&gt;
* Pre can take some extra time to respond to certain activities, especially when waking up; lags of up to 2 seconds can be experienced on wakeup. The alternative is a reboot, which will take even longer.&lt;br /&gt;
&lt;br /&gt;
= Improvements =&lt;br /&gt;
&lt;br /&gt;
* User interactivity latency should be lower (time to respond to keypresses, etc).&lt;br /&gt;
* Fewer powerd wakeups allowing the system to sleep longer.&lt;br /&gt;
&lt;br /&gt;
= Warnings =&lt;br /&gt;
&lt;br /&gt;
* My patch makes the kernel boot at 800MHz. Run this kernel at your own risk. Not compliant with point 6 of http://forums.precentral.net/webos-internals/241355-next-generation-kernel-development-packaging.html .&lt;br /&gt;
* anticipatory io scheduler recommended.&lt;br /&gt;
* Install SmartReflex patches at your own risk. SmartReflex is not expected to work.&lt;br /&gt;
* Some users have reported increased battery usage when running this kernel.&lt;/div&gt;</summary>
		<author><name>Sbromwich</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Application:SBromwichKernel&amp;diff=9830</id>
		<title>Application:SBromwichKernel</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Application:SBromwichKernel&amp;diff=9830"/>
		<updated>2010-05-08T17:40:13Z</updated>

		<summary type="html">&lt;p&gt;Sbromwich: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The sbromwich series of kernels are my kernels with all current webos-internals testing patches applied, plus my own patches.&lt;br /&gt;
&lt;br /&gt;
= Patches applied for 1.4.1-23 =&lt;br /&gt;
&lt;br /&gt;
* Debug settings removed from default kernel build&lt;br /&gt;
* Compile kernel with explicit cortex-a8 tuning flags for gcc&lt;br /&gt;
* Tweak prcm power manager to more explicitly wait for power set calls to return, remove debug cruft, and add Wait For Interrupt instruction if a prcm setting attempt fails&lt;br /&gt;
* Enable preempt kernel&lt;br /&gt;
&lt;br /&gt;
= Known problems =&lt;br /&gt;
&lt;br /&gt;
* Pre can take some extra time to respond to certain activities, especially when waking up; lags of up to 2 seconds can be experienced on wakeup. The alternative is a reboot, which will take even longer.&lt;br /&gt;
&lt;br /&gt;
= Improvements =&lt;br /&gt;
&lt;br /&gt;
* User interactivity latency should be lower (time to respond to keypresses, etc).&lt;br /&gt;
* Fewer powerd wakeups allowing the system to sleep longer.&lt;br /&gt;
&lt;br /&gt;
= Warnings =&lt;br /&gt;
&lt;br /&gt;
* My patch makes the kernel boot at 800MHz. Run this kernel at your own risk. Not compliant with point 6 of http://forums.precentral.net/webos-internals/241355-next-generation-kernel-development-packaging.html .&lt;br /&gt;
* anticipatory io scheduler recommended.&lt;br /&gt;
* Install SmartReflex patches at your own risk. SmartReflex is not expected to work.&lt;/div&gt;</summary>
		<author><name>Sbromwich</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Application:SBromwichKernel&amp;diff=9829</id>
		<title>Application:SBromwichKernel</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Application:SBromwichKernel&amp;diff=9829"/>
		<updated>2010-05-08T17:33:25Z</updated>

		<summary type="html">&lt;p&gt;Sbromwich: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The sbromwich series of kernels are my kernels with all current webos-internals testing patches applied, plus my own patches.&lt;br /&gt;
&lt;br /&gt;
= Patches applied for 1.4.1-23 =&lt;br /&gt;
&lt;br /&gt;
* Debug settings removed from default kernel build&lt;br /&gt;
* Compile kernel with explicit cortex-a8 tuning flags for gcc&lt;br /&gt;
* Tweak prcm power manager to more explicitly wait for power set calls to return, remove debug cruft, and add Wait For Interrupt instruction if a prcm setting attempt fails&lt;br /&gt;
* Enable preempt kernel&lt;br /&gt;
&lt;br /&gt;
= Known problems =&lt;br /&gt;
&lt;br /&gt;
* Pre can take some extra time to respond to certain activities, especially when waking up; lags of up to 2 seconds can be experienced on wakeup. The alternative is a reboot, which will take even longer.&lt;br /&gt;
&lt;br /&gt;
= Improvements =&lt;br /&gt;
&lt;br /&gt;
* User interactivity latency should be lower (time to respond to keypresses, etc).&lt;br /&gt;
* Fewer powerd wakeups allowing the system to sleep longer.&lt;br /&gt;
&lt;br /&gt;
= Warnings =&lt;br /&gt;
&lt;br /&gt;
* My patch makes the kernel boot at 800MHz. Run this kernel at your own risk. Not compliant with point 6 of http://forums.precentral.net/webos-internals/241355-next-generation-kernel-development-packaging.html .&lt;br /&gt;
* anticipatory io scheduler recommended.&lt;br /&gt;
* Run SmartReflex at your own risk. It is not expected to work.&lt;/div&gt;</summary>
		<author><name>Sbromwich</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Application:SBromwichKernel&amp;diff=9828</id>
		<title>Application:SBromwichKernel</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Application:SBromwichKernel&amp;diff=9828"/>
		<updated>2010-05-08T17:02:41Z</updated>

		<summary type="html">&lt;p&gt;Sbromwich: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The sbromwich series of kernels are my kernels with all current webos-internals testing patches applied, plus my own patches.&lt;br /&gt;
&lt;br /&gt;
= Patches applied for 1.4.1-23 =&lt;br /&gt;
&lt;br /&gt;
* Debug settings removed from default kernel build&lt;br /&gt;
* Compile kernel with explicit cortex-a8 tuning flags for gcc&lt;br /&gt;
* Tweak prcm power manager to more explicitly wait for power set calls to return, remove debug cruft, and add Wait For Interrupt instruction if a prcm setting attempt fails&lt;br /&gt;
* Enable preempt kernel&lt;br /&gt;
&lt;br /&gt;
= Known problems =&lt;br /&gt;
&lt;br /&gt;
* Pre can take some extra time to respond to certain activities, especially when waking up; lags of up to 2 seconds can be experienced on wakeup. The alternative is a reboot, which will take even longer.&lt;br /&gt;
&lt;br /&gt;
= Improvements =&lt;br /&gt;
&lt;br /&gt;
* User interactivity latency should be lower (time to respond to keypresses, etc).&lt;br /&gt;
* Fewer powerd wakeups allowing the system to sleep longer.&lt;br /&gt;
&lt;br /&gt;
= Warnings =&lt;br /&gt;
&lt;br /&gt;
* My patch makes the kernel boot at 800MHz. Run this kernel at your own risk. Not compliant with point 6 of http://forums.precentral.net/webos-internals/241355-next-generation-kernel-development-packaging.html .&lt;br /&gt;
* anticipatory io scheduler recommended.&lt;/div&gt;</summary>
		<author><name>Sbromwich</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Application:SBromwichKernel&amp;diff=9827</id>
		<title>Application:SBromwichKernel</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Application:SBromwichKernel&amp;diff=9827"/>
		<updated>2010-05-08T15:35:54Z</updated>

		<summary type="html">&lt;p&gt;Sbromwich: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The sbromwich series of kernels are my kernels with all current webos-internals testing patches applied, plus my own patches.&lt;br /&gt;
&lt;br /&gt;
= Patches applied for 1.4.1-23 =&lt;br /&gt;
&lt;br /&gt;
* Debug settings removed from default kernel build&lt;br /&gt;
* Compile kernel with explicit cortex-a8 tuning flags for gcc&lt;br /&gt;
* Tweak prcm power manager to more explicitly wait for power set calls to return, remove debug cruft, and add Wait For Interrupt instruction if a prcm setting attempt fails&lt;br /&gt;
* Enable preempt kernel&lt;br /&gt;
&lt;br /&gt;
= Known problems =&lt;br /&gt;
&lt;br /&gt;
* Pre can take some extra time to respond to certain activities, especially when waking up; lags of up to 2 seconds can be experienced on wakeup. The alternative is a reboot, which will take even longer.&lt;br /&gt;
&lt;br /&gt;
= Improvements =&lt;br /&gt;
&lt;br /&gt;
* User interactivity latency should be lower (time to respond to keypresses, etc).&lt;br /&gt;
* Fewer powerd wakeups allowing the system to sleep longer.&lt;br /&gt;
&lt;br /&gt;
= Warnings =&lt;br /&gt;
&lt;br /&gt;
* My patch makes the kernel boot at 800MHz. Run this kernel at your own risk.&lt;br /&gt;
* anticipatory io scheduler recommended&lt;/div&gt;</summary>
		<author><name>Sbromwich</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Application:SBromwichKernel&amp;diff=9826</id>
		<title>Application:SBromwichKernel</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Application:SBromwichKernel&amp;diff=9826"/>
		<updated>2010-05-08T15:29:11Z</updated>

		<summary type="html">&lt;p&gt;Sbromwich: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The sbromwich series of kernels are my kernels with all current webos-internals testing patches applied, plus my own. Currently these are:&lt;br /&gt;
&lt;br /&gt;
* Debug settings removed from default kernel build&lt;br /&gt;
* Compile kernel with explicit cortex-a8 tuning flags for gcc&lt;br /&gt;
* Tweak prcm power manager to more explicitly wait for power set calls to return, remove debug cruft, and add Wait For Interrupt instruction if a prcm setting attempt fails&lt;br /&gt;
* Enable preempt kernel&lt;br /&gt;
&lt;br /&gt;
Known problems:&lt;br /&gt;
&lt;br /&gt;
* Pre can take some extra time to respond to certain activities, especially when waking up; lags of up to 2 seconds can be experienced on wakeup. The alternative is a reboot, which will take even longer.&lt;/div&gt;</summary>
		<author><name>Sbromwich</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Application:SBromwichKernel&amp;diff=9796</id>
		<title>Application:SBromwichKernel</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Application:SBromwichKernel&amp;diff=9796"/>
		<updated>2010-05-06T01:00:51Z</updated>

		<summary type="html">&lt;p&gt;Sbromwich: New page: The sbromwich series of kernels are my kernels with all current webos-internals testing patches applied, plus my own. Currently these are:  * Debug settings removed from default kernel bui...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The sbromwich series of kernels are my kernels with all current webos-internals testing patches applied, plus my own. Currently these are:&lt;br /&gt;
&lt;br /&gt;
* Debug settings removed from default kernel build&lt;br /&gt;
* Compile kernel with explicit cortex-a8 tuning flags for gcc&lt;br /&gt;
* Tweak prcm power manager to more explicitly wait for power set calls to return, remove debug cruft, and add Wait For Interrupt instruction if a prcm setting attempt fails&lt;br /&gt;
* Enable preempt kernel&lt;/div&gt;</summary>
		<author><name>Sbromwich</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Adding_patches_through_git&amp;diff=9795</id>
		<title>Adding patches through git</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Adding_patches_through_git&amp;diff=9795"/>
		<updated>2010-05-06T00:50:46Z</updated>

		<summary type="html">&lt;p&gt;Sbromwich: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''WIP incomplete'''&lt;br /&gt;
&lt;br /&gt;
Add kernel patches to be committed to the Preware feed by following this guide.&lt;br /&gt;
&lt;br /&gt;
= Prerequisites =&lt;br /&gt;
&lt;br /&gt;
* SSH key generated, with the id_dsa.pub authorised for commital on git.webos-internals.org (rwhitby is able to do this)&lt;br /&gt;
* GPL compliant patch to submit (preferably with a .patch extension)&lt;br /&gt;
&lt;br /&gt;
= Initialising your local repository =&lt;br /&gt;
&lt;br /&gt;
* You will need to pull down the kernel/patches repository as a starting point with &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;git clone git@git.webos-internals.org:kernels/patches.git&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A worked example is as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/kernels$ git clone git@git.webos-internals.org:kernels/patches.git&lt;br /&gt;
Initialized empty Git repository in /home/sbromwich/kernels/patches/.git/&lt;br /&gt;
Enter passphrase for key '/home/sbromwich/.ssh/id_dsa':&lt;br /&gt;
remote: Counting objects: 70, done.&lt;br /&gt;
remote: Compressing objects: 100% (68/68), done.&lt;br /&gt;
remote: Total 70 (delta 23), reused 0 (delta 0)&lt;br /&gt;
Receiving objects: 100% (70/70), 15.21 KiB, done.&lt;br /&gt;
Resolving deltas: 100% (23/23), done.&lt;br /&gt;
mason~/kernels$ ls&lt;br /&gt;
patches&lt;br /&gt;
mason~/kernels$ ls -l&lt;br /&gt;
total 4&lt;br /&gt;
drwxr-xr-x 5 sbromwich sbromwich 4096 Apr 22 22:17 patches&lt;br /&gt;
mason~/kernels$ cd patches/&lt;br /&gt;
mason~/kernels/patches$ ls&lt;br /&gt;
LICENSE  overclocking  sensors&lt;br /&gt;
mason~/kernels/patches$ ls -l&lt;br /&gt;
total 12&lt;br /&gt;
-rw-r--r-- 1 sbromwich sbromwich   88 Apr 22 22:17 LICENSE&lt;br /&gt;
drwxr-xr-x 2 sbromwich sbromwich 4096 Apr 22 22:17 overclocking&lt;br /&gt;
drwxr-xr-x 2 sbromwich sbromwich 4096 Apr 22 22:17 sensors&lt;br /&gt;
mason~/kernels/patches$&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Create a directory for your patch(es) and copy them in there.&lt;br /&gt;
&lt;br /&gt;
= Tag patches and submit to git =&lt;br /&gt;
&lt;br /&gt;
* Find the next available git tag with &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;git tag -l&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the following case, the next tag is v1.4.1-10:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/kernels/patches/prcm$ git tag -l&lt;br /&gt;
v1.4.0-0&lt;br /&gt;
v1.4.0-1&lt;br /&gt;
v1.4.1-1&lt;br /&gt;
v1.4.1-2&lt;br /&gt;
v1.4.1-3&lt;br /&gt;
v1.4.1-4&lt;br /&gt;
v1.4.1-5&lt;br /&gt;
v1.4.1-6&lt;br /&gt;
v1.4.1-7&lt;br /&gt;
v1.4.1-8&lt;br /&gt;
v1.4.1-9&lt;br /&gt;
mason~/kernels/patches/prcm$&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Tag the files with a meaningful commit message and the tag from the previous step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/kernels/patches/prcm$ git tag -a -m &amp;quot;PRCM resume from suspend fix/kludge&amp;quot; v1.4.1-10&lt;br /&gt;
mason~/kernels/patches/prcm$ &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Send the tagged files to the upstream repository with &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;git push ; git push --tags&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/kernels/patches/prcm$ git push ; git push --tags&lt;br /&gt;
Enter passphrase for key '/home/sbromwich/.ssh/id_dsa': &lt;br /&gt;
Everything up-to-date&lt;br /&gt;
Enter passphrase for key '/home/sbromwich/.ssh/id_dsa': &lt;br /&gt;
Counting objects: 1, done.&lt;br /&gt;
Writing objects: 100% (1/1), 187 bytes, done.&lt;br /&gt;
Total 1 (delta 0), reused 0 (delta 0)&lt;br /&gt;
To git@git.webos-internals.org:kernels/patches.git&lt;br /&gt;
 * [new tag]         v1.4.1-10 -&amp;gt; v1.4.1-10&lt;br /&gt;
mason~/kernels/patches/prcm$ &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Commit the tagged files to git =&lt;br /&gt;
&lt;br /&gt;
Committing the tagged files is the following three step process:&lt;br /&gt;
&lt;br /&gt;
* git add filenames&lt;br /&gt;
* git commit -m &amp;quot;commit message&amp;quot; filenames&lt;br /&gt;
* git push&lt;br /&gt;
&lt;br /&gt;
Worked example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/kernels/patches/prcm$ git add *&lt;br /&gt;
mason~/kernels/patches/prcm$ git commit -m &amp;quot;PRCM resume from suspend fix/kludge&amp;quot; *&lt;br /&gt;
Created commit 16fbb97: PRCM resume from suspend fix/kludge&lt;br /&gt;
 3 files changed, 84 insertions(+), 0 deletions(-)&lt;br /&gt;
 create mode 100644 prcm/README&lt;br /&gt;
 create mode 100644 prcm/prcm_clk.c.diff&lt;br /&gt;
 create mode 100644 prcm/proc_pwr.c.diff&lt;br /&gt;
mason~/kernels/patches/prcm$ git push&lt;br /&gt;
Enter passphrase for key '/home/sbromwich/.ssh/id_dsa': &lt;br /&gt;
Counting objects: 7, done.&lt;br /&gt;
Compressing objects: 100% (6/6), done.&lt;br /&gt;
Writing objects: 100% (6/6), 1.96 KiB, done.&lt;br /&gt;
Total 6 (delta 0), reused 0 (delta 0)&lt;br /&gt;
To git@git.webos-internals.org:kernels/patches.git&lt;br /&gt;
   b949e1d..16fbb97  master -&amp;gt; master&lt;br /&gt;
mason~/kernels/patches/prcm$&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Uh-oh, I screwed up a commit - how do I remove a file? =&lt;br /&gt;
&lt;br /&gt;
If you inadvertently commit a file in error, it is easy to remove with &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
git remove filename&lt;br /&gt;
git commit -m &amp;quot;commit message&amp;quot; filename&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Worked example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/build/hardware/uber-kernel-pre/build$ git rm src-1.4.1-6/linux-2.6.24/.config&lt;br /&gt;
rm 'hardware/uber-kernel-pre/build/src-1.4.1-6/linux-2.6.24/.config'&lt;br /&gt;
mason~/build/hardware/uber-kernel-pre/build$ git commit -m &amp;quot;Removing .config that should not have been committed in the first place&amp;quot; src-1.4.1-6/linux-2.6.24/.config&lt;br /&gt;
Created commit cd95fd3: Removing .config that should not have been committed in the first place&lt;br /&gt;
 1 files changed, 0 insertions(+), 1892 deletions(-)&lt;br /&gt;
 delete mode 100644 hardware/uber-kernel-pre/build/src-1.4.1-6/linux-2.6.24/.config&lt;br /&gt;
mason~/build/hardware/uber-kernel-pre/build$ &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you have modified the file, you will need to force the commit with the -f flag, as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/build/hardware/uber-kernel-pre/build$ git rm -f src-1.4.1-6/linux-2.6.24/arch/arm/mach-omap3pe/prcm_pwr.c src-1.4.1-6/linux-2.6.24/include/linux/vermagic.h&lt;br /&gt;
rm 'hardware/uber-kernel-pre/build/src-1.4.1-6/linux-2.6.24/arch/arm/mach-omap3pe/prcm_pwr.c'&lt;br /&gt;
rm 'hardware/uber-kernel-pre/build/src-1.4.1-6/linux-2.6.24/include/linux/vermagic.h'&lt;br /&gt;
mason~/build/hardware/uber-kernel-pre/build$ git commit -m &amp;quot;Removing commits that should not have been committed&amp;quot; src-1.4.1-6/linux-2.6.24/arch/arm/mach-omap3pe/prcm_pwr.c src-1.4.1-6/linux-2.6.24/include/linux/vermagic.h&lt;br /&gt;
Created commit 73eb872: Removing commits that should not have been committed&lt;br /&gt;
 2 files changed, 0 insertions(+), 1885 deletions(-)&lt;br /&gt;
 delete mode 100644 hardware/uber-kernel-pre/build/src-1.4.1-6/linux-2.6.24/arch/arm/mach-omap3pe/prcm_pwr.c&lt;br /&gt;
 delete mode 100644 hardware/uber-kernel-pre/build/src-1.4.1-6/linux-2.6.24/include/linux/vermagic.h&lt;br /&gt;
mason~/build/hardware/uber-kernel-pre/build$ &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= git conceptual tutorial =&lt;br /&gt;
&lt;br /&gt;
An excellent conceptual tutorial on how git works is available at http://www.eecs.harvard.edu/~cduan/technical/git/ courtesy of Charles Duan.&lt;/div&gt;</summary>
		<author><name>Sbromwich</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Adding_patches_through_git&amp;diff=9774</id>
		<title>Adding patches through git</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Adding_patches_through_git&amp;diff=9774"/>
		<updated>2010-05-04T00:50:31Z</updated>

		<summary type="html">&lt;p&gt;Sbromwich: Put in correct syntax for git tag&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''WIP incomplete'''&lt;br /&gt;
&lt;br /&gt;
Add patches to be committed to the Preware feed by following this guide.&lt;br /&gt;
&lt;br /&gt;
= Prerequisites =&lt;br /&gt;
&lt;br /&gt;
* SSH key generated, with the id_dsa.pub authorised for commital on git.webos-internals.org (rwhitby is able to do this)&lt;br /&gt;
* GPL compliant patch to submit (preferably with a .patch extension)&lt;br /&gt;
&lt;br /&gt;
= Initialising your local repository =&lt;br /&gt;
&lt;br /&gt;
* You will need to pull down the kernel/patches repository as a starting point with &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;git clone git@git.webos-internals.org:kernels/patches.git&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A worked example is as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/kernels$ git clone git@git.webos-internals.org:kernels/patches.git&lt;br /&gt;
Initialized empty Git repository in /home/sbromwich/kernels/patches/.git/&lt;br /&gt;
Enter passphrase for key '/home/sbromwich/.ssh/id_dsa':&lt;br /&gt;
remote: Counting objects: 70, done.&lt;br /&gt;
remote: Compressing objects: 100% (68/68), done.&lt;br /&gt;
remote: Total 70 (delta 23), reused 0 (delta 0)&lt;br /&gt;
Receiving objects: 100% (70/70), 15.21 KiB, done.&lt;br /&gt;
Resolving deltas: 100% (23/23), done.&lt;br /&gt;
mason~/kernels$ ls&lt;br /&gt;
patches&lt;br /&gt;
mason~/kernels$ ls -l&lt;br /&gt;
total 4&lt;br /&gt;
drwxr-xr-x 5 sbromwich sbromwich 4096 Apr 22 22:17 patches&lt;br /&gt;
mason~/kernels$ cd patches/&lt;br /&gt;
mason~/kernels/patches$ ls&lt;br /&gt;
LICENSE  overclocking  sensors&lt;br /&gt;
mason~/kernels/patches$ ls -l&lt;br /&gt;
total 12&lt;br /&gt;
-rw-r--r-- 1 sbromwich sbromwich   88 Apr 22 22:17 LICENSE&lt;br /&gt;
drwxr-xr-x 2 sbromwich sbromwich 4096 Apr 22 22:17 overclocking&lt;br /&gt;
drwxr-xr-x 2 sbromwich sbromwich 4096 Apr 22 22:17 sensors&lt;br /&gt;
mason~/kernels/patches$&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Create a directory for your patch(es) and copy them in there.&lt;br /&gt;
&lt;br /&gt;
= Tag patches and submit to git =&lt;br /&gt;
&lt;br /&gt;
* Find the next available git tag with &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;git tag -l&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the following case, the next tag is v1.4.1-10:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/kernels/patches/prcm$ git tag -l&lt;br /&gt;
v1.4.0-0&lt;br /&gt;
v1.4.0-1&lt;br /&gt;
v1.4.1-1&lt;br /&gt;
v1.4.1-2&lt;br /&gt;
v1.4.1-3&lt;br /&gt;
v1.4.1-4&lt;br /&gt;
v1.4.1-5&lt;br /&gt;
v1.4.1-6&lt;br /&gt;
v1.4.1-7&lt;br /&gt;
v1.4.1-8&lt;br /&gt;
v1.4.1-9&lt;br /&gt;
mason~/kernels/patches/prcm$&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Tag the files with a meaningful commit message and the tag from the previous step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/kernels/patches/prcm$ git tag -a -m &amp;quot;PRCM resume from suspend fix/kludge&amp;quot; v1.4.1-10&lt;br /&gt;
mason~/kernels/patches/prcm$ &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Send the tagged files to the upstream repository with &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;git push ; git push --tags&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/kernels/patches/prcm$ git push ; git push --tags&lt;br /&gt;
Enter passphrase for key '/home/sbromwich/.ssh/id_dsa': &lt;br /&gt;
Everything up-to-date&lt;br /&gt;
Enter passphrase for key '/home/sbromwich/.ssh/id_dsa': &lt;br /&gt;
Counting objects: 1, done.&lt;br /&gt;
Writing objects: 100% (1/1), 187 bytes, done.&lt;br /&gt;
Total 1 (delta 0), reused 0 (delta 0)&lt;br /&gt;
To git@git.webos-internals.org:kernels/patches.git&lt;br /&gt;
 * [new tag]         v1.4.1-10 -&amp;gt; v1.4.1-10&lt;br /&gt;
mason~/kernels/patches/prcm$ &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Commit the tagged files to git =&lt;br /&gt;
&lt;br /&gt;
Committing the tagged files is the following three step process:&lt;br /&gt;
&lt;br /&gt;
* git add filenames&lt;br /&gt;
* git commit -m &amp;quot;commit message&amp;quot; filenames&lt;br /&gt;
* git push&lt;br /&gt;
&lt;br /&gt;
Worked example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/kernels/patches/prcm$ git add *&lt;br /&gt;
mason~/kernels/patches/prcm$ git commit -m &amp;quot;PRCM resume from suspend fix/kludge&amp;quot; *&lt;br /&gt;
Created commit 16fbb97: PRCM resume from suspend fix/kludge&lt;br /&gt;
 3 files changed, 84 insertions(+), 0 deletions(-)&lt;br /&gt;
 create mode 100644 prcm/README&lt;br /&gt;
 create mode 100644 prcm/prcm_clk.c.diff&lt;br /&gt;
 create mode 100644 prcm/proc_pwr.c.diff&lt;br /&gt;
mason~/kernels/patches/prcm$ git push&lt;br /&gt;
Enter passphrase for key '/home/sbromwich/.ssh/id_dsa': &lt;br /&gt;
Counting objects: 7, done.&lt;br /&gt;
Compressing objects: 100% (6/6), done.&lt;br /&gt;
Writing objects: 100% (6/6), 1.96 KiB, done.&lt;br /&gt;
Total 6 (delta 0), reused 0 (delta 0)&lt;br /&gt;
To git@git.webos-internals.org:kernels/patches.git&lt;br /&gt;
   b949e1d..16fbb97  master -&amp;gt; master&lt;br /&gt;
mason~/kernels/patches/prcm$&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Uh-oh, I screwed up a commit - how do I remove a file? =&lt;br /&gt;
&lt;br /&gt;
If you inadvertently commit a file in error, it is easy to remove with &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
git remove filename&lt;br /&gt;
git commit -m &amp;quot;commit message&amp;quot; filename&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Worked example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/build/hardware/uber-kernel-pre/build$ git rm src-1.4.1-6/linux-2.6.24/.config&lt;br /&gt;
rm 'hardware/uber-kernel-pre/build/src-1.4.1-6/linux-2.6.24/.config'&lt;br /&gt;
mason~/build/hardware/uber-kernel-pre/build$ git commit -m &amp;quot;Removing .config that should not have been committed in the first place&amp;quot; src-1.4.1-6/linux-2.6.24/.config&lt;br /&gt;
Created commit cd95fd3: Removing .config that should not have been committed in the first place&lt;br /&gt;
 1 files changed, 0 insertions(+), 1892 deletions(-)&lt;br /&gt;
 delete mode 100644 hardware/uber-kernel-pre/build/src-1.4.1-6/linux-2.6.24/.config&lt;br /&gt;
mason~/build/hardware/uber-kernel-pre/build$ &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you have modified the file, you will need to force the commit with the -f flag, as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&lt;br /&gt;
mason~/build/hardware/uber-kernel-pre/build$ git rm -f src-1.4.1-6/linux-2.6.24/arch/arm/mach-omap3pe/prcm_pwr.c src-1.4.1-6/linux-2.6.24/include/linux/vermagic.h&lt;br /&gt;
rm 'hardware/uber-kernel-pre/build/src-1.4.1-6/linux-2.6.24/arch/arm/mach-omap3pe/prcm_pwr.c'&lt;br /&gt;
rm 'hardware/uber-kernel-pre/build/src-1.4.1-6/linux-2.6.24/include/linux/vermagic.h'&lt;br /&gt;
mason~/build/hardware/uber-kernel-pre/build$ git commit -m &amp;quot;Removing commits that should not have been committed&amp;quot; src-1.4.1-6/linux-2.6.24/arch/arm/mach-omap3pe/prcm_pwr.c src-1.4.1-6/linux-2.6.24/include/linux/vermagic.h&lt;br /&gt;
Created commit 73eb872: Removing commits that should not have been committed&lt;br /&gt;
 2 files changed, 0 insertions(+), 1885 deletions(-)&lt;br /&gt;
 delete mode 100644 hardware/uber-kernel-pre/build/src-1.4.1-6/linux-2.6.24/arch/arm/mach-omap3pe/prcm_pwr.c&lt;br /&gt;
 delete mode 100644 hardware/uber-kernel-pre/build/src-1.4.1-6/linux-2.6.24/include/linux/vermagic.h&lt;br /&gt;
mason~/build/hardware/uber-kernel-pre/build$ &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sbromwich</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Application:Govnah&amp;diff=9709</id>
		<title>Application:Govnah</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Application:Govnah&amp;diff=9709"/>
		<updated>2010-04-27T15:10:29Z</updated>

		<summary type="html">&lt;p&gt;Sbromwich: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{application&lt;br /&gt;
|name=Govnah&lt;br /&gt;
|type=webOS&lt;br /&gt;
|version=In Development&lt;br /&gt;
|tag=Utilities&lt;br /&gt;
|screenshot=Govnah_themes.png&lt;br /&gt;
|description=}}&lt;br /&gt;
&lt;br /&gt;
== Summary == &lt;br /&gt;
{{icon|Icon_WebOSInternals_Govnah.png|float:right;}}An App to do things.&lt;br /&gt;
&lt;br /&gt;
Available in the WebOS Internals Testing Feed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
* Main Scene&lt;br /&gt;
** Title Header (like preware/wirc/etc webos-internals apps)&lt;br /&gt;
** Current Governor (Tap to go to Governor Settings)&lt;br /&gt;
** Current Frequency&lt;br /&gt;
** Rotate graphs in main screen when device is rotated as well as individual graphs.&lt;br /&gt;
** Misc Stats&lt;br /&gt;
*** ...?&lt;br /&gt;
*** Graph of CPU temp over time&lt;br /&gt;
*** Auto-generate wallpaper with current graphs&lt;br /&gt;
*** Time in state - colour code from slowest freq (green) to highest freq (red)&lt;br /&gt;
*** Load average - figures are current, 5 min and 15 min (eg 1.0 0.5 0.4). Graph all 3 with some sort of alpha blend with a parallax effect from running 15 min graph 15x slower than current, ditto for 5 min?&lt;br /&gt;
*** Keep a record of record highest and lowest temperatures seen on the device&lt;br /&gt;
** Power draw - display graph for power draw (sawmill?) to match to see what the device thinks the power usage is like.&lt;br /&gt;
&lt;br /&gt;
* CPU Governor Scene&lt;br /&gt;
** Dropdown to change governor (SelectList)&lt;br /&gt;
** Form of all current settings for selected governor (dynamically generated from information provided by service)&lt;br /&gt;
&lt;br /&gt;
* IO Scheduler Scene&lt;br /&gt;
** Dropdown to select scheduler (cfq, noop, as etc.)&lt;br /&gt;
&lt;br /&gt;
* TCP Congestion Algo Scene?&lt;br /&gt;
&lt;br /&gt;
* App Icon (changes to display indication of CPU temp)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Load Reduction ===&lt;br /&gt;
* Govnah is saving data to an array which grows over time and sucks down CPU time/memory iterating over the array.&lt;br /&gt;
* Use sqlite db for saving?&lt;br /&gt;
* To reduce disk writes, have a preference option to save to /media/ramdisk if the user is only interested in the current session for pinch zooming - should reduce disk writes and improve performance though data will be lost on boot.&lt;br /&gt;
* Preference setting for frequency of polling.&lt;br /&gt;
* Use fixed array or circular buffer instead, though this will stop pinch scrolling from going back too far (another preference option?)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Governor Settings ==&lt;br /&gt;
* Generic items (needed for all)&lt;br /&gt;
** scaling_max_freq - Set the maximum frequency your CPU(s) are allowed to scale to. Look at the output from scaling_available_frequencies&lt;br /&gt;
** scaling_min_freq - Same as scaling_max_freq but setting a value that will not allow the CPU(s) to go below.&lt;br /&gt;
&lt;br /&gt;
* ondemand&lt;br /&gt;
** sampling_rate - This is measured in microseconds (one millionth of a second). This is how often you want the kernel to look at the CPU usage and to make decisions on what to do about the frequency. Typically this is set to values of around '10000' or more. If you wanted to set the sampling rate to 1 second you would set it to 1000000 like in the following example.&lt;br /&gt;
** sampling_rate_(min|max) - This is minimum and maximum sampling rates available that you may set 'sampling_rate' to. I believe in microseconds also. &lt;br /&gt;
** up_threshold - This defines what the average CPU usage between the samplings of 'sampling_rate' needs to be for the kernel to make a decision on whether or not it should increase the frequency. For example when it is set to its default value of '80' it means that between the checking intervals the CPU needs to be on average more than 80% in use to then decide that the CPU frequency needs to be increased. &lt;br /&gt;
** ignore_nice_load - This parameter takes a value of '0' or '1'. When set to '0' (its default), all processes are counted towards the 'cpu utilization' value. When set to '1', the processes that are run with a 'nice' value will not count (and thus be ignored) in the overall usage calculation. &lt;br /&gt;
** powersave_bias - This modifies the behavior of the ondemand governor to save more power by reducing the target frequency by a specified percentage. By default, (powersave_bias  = 0), the ondemand governor selects the minimum processor frequency that can still complete a workload with minimal idle time. Doing so should result in the highest performance to power efficiency ratio. In some cases, you might prefer a greater emphasis on power efficiency than performance. In this case, set the powersave_bias parameter to a value between 1 and 1000 to reduce the target frequency by one-thousandth of that value. For example, set powersave_bias to 100 for a one-tenth reduction in target frequency. In this case, if the governor chooses a target frequency of 2 GHz (with powersave_bias  = 100), the governor instead will request 1.8GHz – a one-tenth reduction. If 1.8 GHz is an exact match with an available hardware frequency (listed in the scaling_available_freq parameter), the processor is set to this frequency. If 1.8 GHz is not available, the processor fluctuates between the closest available upper and lower frequencies for an average frequency of 1.8 GHz. (from IBM web page). The original author of the ondemand powersave_bias code explains it as &amp;quot;For example, If ondemand requests 2.0GHz based on utilization, and powersave_bias=100, this code will knock 10% off the target and seek a target of 1.8GHz instead of 2.0GHz until the next sampling. If 1.8 is an exact match with an hardware frequency we use it, otherwise we average our time between the frequency next higher than 1.8 and next lower than 1.8&amp;quot; (from http://osdir.com/ml/kernel.cpufreq/2006-07/msg00114.html ) - the key word appears to be &amp;quot;average&amp;quot;. The author also warns &amp;quot;In practice, users will not be able to detect a difference between 0.1% increments, but 1.0% increments turned out to be too large. Also, the max value of 1000 (100%) would simply peg the system in its deepest power saving P-state, unless the processor really has a hardware P-state at 0Hz&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* conservative&lt;br /&gt;
** freq_step - This describes what percentage steps the CPU freq should be increased and decreased smoothly by. By default the CPU frequency will increase in 5% chunks of your maximum CPU frequency. You can change this value to anywhere between 0 and 100 where '0' will effectively lock your CPU at a speed regardless of its load whilst '100' will, in theory, make it behave identically to the &amp;quot;ondemand&amp;quot; governor. &lt;br /&gt;
** down_threshold - This is same as the 'up_threshold' found for the &amp;quot;ondemand&amp;quot; governor but for the opposite direction. For example when set to its default value of '20' it means that if the CPU usage needs to be below 20% between samples to have the frequency decreased. &lt;br /&gt;
** sampling_rate - same as ondemand.&lt;br /&gt;
** sampling_rate_(min|max) - same as ondemand.&lt;br /&gt;
** up_threshold - same as ondemand.&lt;br /&gt;
** ignore_nice_load - same as ondemand.&lt;br /&gt;
&lt;br /&gt;
* userspace&lt;br /&gt;
** scaling_setspeed - one of the values from scaling_available_frequencies&lt;br /&gt;
** NB - when userspace is selected LunaSysMgr will change the frequency as it feels.&lt;br /&gt;
&lt;br /&gt;
* powersave&lt;br /&gt;
** Nothing special&lt;br /&gt;
&lt;br /&gt;
* performance&lt;br /&gt;
** Nothing special&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* http://www.pantz.org/software/cpufreq/usingcpufreqonlinux.html&lt;br /&gt;
* http://publib.boulder.ibm.com/infocenter/lnxinfo/v3r0m0/index.jsp?topic=/liaai/cpufreq/TheOndemandGovernor.htm&lt;br /&gt;
* http://fasterdata.es.net/TCP-tuning/linux.html&lt;br /&gt;
* http://www.pdfgeni.com/book/Performance-analysis-of-loss-based-high-speed-TCP-congestion-control-algorithms-pdf.html - collection of documents on implementation of different IPv4 congestion control methods.&lt;/div&gt;</summary>
		<author><name>Sbromwich</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Research_Pre_Boot_Process&amp;diff=9706</id>
		<title>Research Pre Boot Process</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Research_Pre_Boot_Process&amp;diff=9706"/>
		<updated>2010-04-26T16:00:25Z</updated>

		<summary type="html">&lt;p&gt;Sbromwich: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Bootloader &amp;amp; kernel startup ==&lt;br /&gt;
&lt;br /&gt;
When the pre is starting it loads the boot.bin image into ram. This is the booloader bootie which loads the linux kernel. The Linux kernel is loaded with the following cmdline (which is build out of the env vars from bootie):&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
root=/dev/mmcblk0p2 rootwait ro fb=0x8f600000 fbcon=disable console=tty1 nduid=ea413b0b980b26d75c6658199d532472049644ae klog=0x8ff00000 klog_len=0x100000  boardtype=castle-dvt3 dsp_base=0x8f900000 dsp_len=0x600000&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When using the nova-installer-image-castle.uImage image bootie hands over the following cmdline to the kernel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
root=/dev/ram0 ramdisk=32768 ro fb=0x8f600000 fbcon=disable console=tty1 nduid=ea413b0b980b26d75c6658199d532472049644ae klog=0x8ff00000 klog_len=0x100000  boardtype=castle-dvt3 dsp_base=0x8f900000 dsp_len=0x600000 lastboot=recover&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The nova-installer-image-castle.uImage image uses a initrd an not an initramfs. Somehow bootie detects if the kernel which is loaded has an initrd build in. If yes, then bootie changes the cmdline for the kernel to the env var bootargs-ramdisk. &lt;br /&gt;
&lt;br /&gt;
You can even boot a kernel from your local host with novacom. First, log in with novaterm and run tellbootie recover. Wait for the USB logo to appear, then boot the kernel as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
novacom boot mem:// &amp;lt; uImage-kexecboot-2.6.24-r50-palmpre.bin&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
novacom loads the kernel into ram and then boots it. The kernel is loaded with the same cmdline as mentioned above. Note that this does not write the kernel to the Pre's storage, and the next time the device is rebooted the original kernel is loaded. If the Palm logo displays but does not start glowing, your kernel has probably locked up during boot. You can also run tail -f /var/log/messages to see if the devices is re-recognised during bootup; as soon as novacom goes online you should be able to novaterm in. Note that if the device is in airline mode (phone disabled) the kernel may fail to boot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
On startup /dev/root is mounted as rootfs. Then /sbin/init is called which mounts /dev/mapper/store-root as the new rootfs. Finally the init script on /dev/root calls the init script in /sbin /dev/mapper/store-root.&lt;br /&gt;
&lt;br /&gt;
The init script on /dev/mapper/store-root starts upstart or the miniboot.sh script in /etc.&lt;br /&gt;
&lt;br /&gt;
== Networking ==&lt;br /&gt;
When upstart is starting it executes a script called usbctrl whichs load the right usb driver and configuration for novacom or usbnetworking. Depending which machine is used the g_composite driver is loaded with a different product id.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
if [[ &amp;quot;$machineType&amp;quot; == &amp;quot;armv7l&amp;quot; ]];then&lt;br /&gt;
                if [[ -e /var/gadget/usbnet_enabled &amp;amp;&amp;amp; -e /var/gadget/novacom_enabled ]]; then&lt;br /&gt;
                        /sbin/modprobe -q g_composite product=0x101 || true&lt;br /&gt;
                elif [ -e /var/gadget/usbnet_enabled ]; then&lt;br /&gt;
                        /sbin/modprobe -q g_composite product=0x101 || true&lt;br /&gt;
                elif [ -e /var/gadget/novacom_enabled ]; then&lt;br /&gt;
                        /sbin/modprobe -q g_composite product=0x8002 || true&lt;br /&gt;
                else&lt;br /&gt;
                        /sbin/modprobe -q g_composite product=0x8004 || true&lt;br /&gt;
                fi&lt;br /&gt;
        elif [[ &amp;quot;$machineType&amp;quot; == &amp;quot;armv6l&amp;quot; ]];then&lt;br /&gt;
                if [[ -e /var/gadget/usbnet_enabled &amp;amp;&amp;amp; -e /var/gadget/novacom_enabled ]]; then&lt;br /&gt;
                        /sbin/modprobe -q g_composite product=0x103 || true&lt;br /&gt;
                elif [ -e /var/gadget/usbnet_enabled ]; then&lt;br /&gt;
                        /sbin/modprobe -q g_composite product=0x103 || true&lt;br /&gt;
                elif [ -e /var/gadget/novacom_enabled ]; then&lt;br /&gt;
                        /sbin/modprobe -q g_composite product=0x8012 || true&lt;br /&gt;
                else&lt;br /&gt;
                        /sbin/modprobe -q g_composite product=0x8012 || true&lt;br /&gt;
                fi&lt;br /&gt;
            else&lt;br /&gt;
                /sbin/modprobe -q g_composite || true&lt;br /&gt;
    fi&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Is the g_composite driver is build in the kernel the script changes the configuration of the gadget driver through a sysfs entry.&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
if [[ -e /var/gadget/usbnet_enabled &amp;amp;&amp;amp; -e /var/gadget/novacom_enabled ]]; then&lt;br /&gt;
  echo 5 &amp;gt; /sys/class/usb_gadget/config_num&lt;br /&gt;
elif [ -e /var/gadget/usbnet_enabled ]; then&lt;br /&gt;
  echo 5 &amp;gt; /sys/class/usb_gadget/config_num&lt;br /&gt;
elif [ -e /var/gadget/novacom_enabled ]; then&lt;br /&gt;
  echo 2 &amp;gt; /sys/class/usb_gadget/config_num&lt;br /&gt;
else&lt;br /&gt;
  echo 1 &amp;gt; /sys/class/usb_gadget/config_num&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sbromwich</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Application:Govnah&amp;diff=9705</id>
		<title>Application:Govnah</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Application:Govnah&amp;diff=9705"/>
		<updated>2010-04-26T12:49:07Z</updated>

		<summary type="html">&lt;p&gt;Sbromwich: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{application&lt;br /&gt;
|name=Govnah&lt;br /&gt;
|type=webOS&lt;br /&gt;
|version=In Development&lt;br /&gt;
|tag=Utilities&lt;br /&gt;
|screenshot=Govnah_themes.png&lt;br /&gt;
|description=}}&lt;br /&gt;
&lt;br /&gt;
== Summary == &lt;br /&gt;
{{icon|Icon_WebOSInternals_Govnah.png|float:right;}}An App to do things.&lt;br /&gt;
&lt;br /&gt;
Available in the WebOS Internals Testing Feed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
* Main Scene&lt;br /&gt;
** Title Header (like preware/wirc/etc webos-internals apps)&lt;br /&gt;
** Current Governor (Tap to go to Governor Settings)&lt;br /&gt;
** Current Frequency&lt;br /&gt;
** Rotate graphs in main screen when device is rotated as well as individual graphs.&lt;br /&gt;
** Misc Stats&lt;br /&gt;
*** ...?&lt;br /&gt;
*** Graph of CPU temp over time&lt;br /&gt;
*** Auto-generate wallpaper with current graphs&lt;br /&gt;
*** Time in state - colour code from slowest freq (green) to highest freq (red)&lt;br /&gt;
*** Load average - figures are current, 5 min and 15 min (eg 1.0 0.5 0.4). Graph all 3 with some sort of alpha blend with a parallax effect from running 15 min graph 15x slower than current, ditto for 5 min?&lt;br /&gt;
*** Keep a record of record highest and lowest temperatures seen on the device&lt;br /&gt;
&lt;br /&gt;
* CPU Governor Scene&lt;br /&gt;
** Dropdown to change governor (SelectList)&lt;br /&gt;
** Form of all current settings for selected governor (dynamically generated from information provided by service)&lt;br /&gt;
&lt;br /&gt;
* IO Scheduler Scene&lt;br /&gt;
** Dropdown to select scheduler (cfq, noop, as etc.)&lt;br /&gt;
&lt;br /&gt;
* TCP Congestion Algo Scene?&lt;br /&gt;
&lt;br /&gt;
* App Icon (changes to display indication of CPU temp)&lt;br /&gt;
&lt;br /&gt;
=== Load Reduction ===&lt;br /&gt;
* Govnah is saving data to an array which grows over time and sucks down CPU time/memory iterating over the array.&lt;br /&gt;
* Use sqlite db for saving?&lt;br /&gt;
* To reduce disk writes, have a preference option to save to /media/ramdisk if the user is only interested in the current session for pinch zooming - should reduce disk writes and improve performance though data will be lost on boot.&lt;br /&gt;
* Preference setting for frequency of polling.&lt;br /&gt;
* Use fixed array or circular buffer instead, though this will stop pinch scrolling from going back too far (another preference option?)&lt;br /&gt;
&lt;br /&gt;
=== Governor Settings ===&lt;br /&gt;
* Generic items (needed for all)&lt;br /&gt;
** scaling_max_freq - Set the maximum frequency your CPU(s) are allowed to scale to. Look at the output from scaling_available_frequencies&lt;br /&gt;
** scaling_min_freq - Same as scaling_max_freq but setting a value that will not allow the CPU(s) to go below.&lt;br /&gt;
&lt;br /&gt;
* ondemand&lt;br /&gt;
** sampling_rate - This is measured in microseconds (one millionth of a second). This is how often you want the kernel to look at the CPU usage and to make decisions on what to do about the frequency. Typically this is set to values of around '10000' or more. If you wanted to set the sampling rate to 1 second you would set it to 1000000 like in the following example.&lt;br /&gt;
** sampling_rate_(min|max) - This is minimum and maximum sampling rates available that you may set 'sampling_rate' to. I believe in microseconds also. &lt;br /&gt;
** up_threshold - This defines what the average CPU usage between the samplings of 'sampling_rate' needs to be for the kernel to make a decision on whether or not it should increase the frequency. For example when it is set to its default value of '80' it means that between the checking intervals the CPU needs to be on average more than 80% in use to then decide that the CPU frequency needs to be increased. &lt;br /&gt;
** ignore_nice_load - This parameter takes a value of '0' or '1'. When set to '0' (its default), all processes are counted towards the 'cpu utilization' value. When set to '1', the processes that are run with a 'nice' value will not count (and thus be ignored) in the overall usage calculation. &lt;br /&gt;
** powersave_bias - This modifies the behavior of the ondemand governor to save more power by reducing the target frequency by a specified percentage. By default, (powersave_bias  = 0), the ondemand governor selects the minimum processor frequency that can still complete a workload with minimal idle time. Doing so should result in the highest performance to power efficiency ratio. In some cases, you might prefer a greater emphasis on power efficiency than performance. In this case, set the powersave_bias parameter to a value between 1 and 1000 to reduce the target frequency by one-thousandth of that value. For example, set powersave_bias to 100 for a one-tenth reduction in target frequency. In this case, if the governor chooses a target frequency of 2 GHz (with powersave_bias  = 100), the governor instead will request 1.8GHz – a one-tenth reduction. If 1.8 GHz is an exact match with an available hardware frequency (listed in the scaling_available_freq parameter), the processor is set to this frequency. If 1.8 GHz is not available, the processor fluctuates between the closest available upper and lower frequencies for an average frequency of 1.8 GHz. (from IBM web page). The original author of the ondemand powersave_bias code explains it as &amp;quot;For example, If ondemand requests 2.0GHz based on utilization, and powersave_bias=100, this code will knock 10% off the target and seek a target of 1.8GHz instead of 2.0GHz until the next sampling. If 1.8 is an exact match with an hardware frequency we use it, otherwise we average our time between the frequency next higher than 1.8 and next lower than 1.8&amp;quot; (from http://osdir.com/ml/kernel.cpufreq/2006-07/msg00114.html ) - the key word appears to be &amp;quot;average&amp;quot;. The author also warns &amp;quot;In practice, users will not be able to detect a difference between 0.1% increments, but 1.0% increments turned out to be too large. Also, the max value of 1000 (100%) would simply peg the system in its deepest power saving P-state, unless the processor really has a hardware P-state at 0Hz&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* conservative&lt;br /&gt;
** freq_step - This describes what percentage steps the CPU freq should be increased and decreased smoothly by. By default the CPU frequency will increase in 5% chunks of your maximum CPU frequency. You can change this value to anywhere between 0 and 100 where '0' will effectively lock your CPU at a speed regardless of its load whilst '100' will, in theory, make it behave identically to the &amp;quot;ondemand&amp;quot; governor. &lt;br /&gt;
** down_threshold - This is same as the 'up_threshold' found for the &amp;quot;ondemand&amp;quot; governor but for the opposite direction. For example when set to its default value of '20' it means that if the CPU usage needs to be below 20% between samples to have the frequency decreased. &lt;br /&gt;
** sampling_rate - same as ondemand.&lt;br /&gt;
** sampling_rate_(min|max) - same as ondemand.&lt;br /&gt;
** up_threshold - same as ondemand.&lt;br /&gt;
** ignore_nice_load - same as ondemand.&lt;br /&gt;
&lt;br /&gt;
* userspace&lt;br /&gt;
** scaling_setspeed - one of the values from scaling_available_frequencies&lt;br /&gt;
** NB - when userspace is selected LunaSysMgr will change the frequency as it feels.&lt;br /&gt;
&lt;br /&gt;
* powersave&lt;br /&gt;
** Nothing special&lt;br /&gt;
&lt;br /&gt;
* performance&lt;br /&gt;
** Nothing special&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* http://www.pantz.org/software/cpufreq/usingcpufreqonlinux.html&lt;br /&gt;
* http://publib.boulder.ibm.com/infocenter/lnxinfo/v3r0m0/index.jsp?topic=/liaai/cpufreq/TheOndemandGovernor.htm&lt;br /&gt;
* http://fasterdata.es.net/TCP-tuning/linux.html&lt;br /&gt;
* http://www.pdfgeni.com/book/Performance-analysis-of-loss-based-high-speed-TCP-congestion-control-algorithms-pdf.html - collection of documents on implementation of different IPv4 congestion control methods.&lt;/div&gt;</summary>
		<author><name>Sbromwich</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Application:Govnah&amp;diff=9704</id>
		<title>Application:Govnah</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Application:Govnah&amp;diff=9704"/>
		<updated>2010-04-26T04:36:54Z</updated>

		<summary type="html">&lt;p&gt;Sbromwich: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{application&lt;br /&gt;
|name=Govnah&lt;br /&gt;
|type=webOS&lt;br /&gt;
|version=In Development&lt;br /&gt;
|tag=Utilities&lt;br /&gt;
|screenshot=Govnah_themes.png&lt;br /&gt;
|description=}}&lt;br /&gt;
&lt;br /&gt;
== Summary == &lt;br /&gt;
{{icon|Icon_WebOSInternals_Govnah.png|float:right;}}An App to do things.&lt;br /&gt;
&lt;br /&gt;
Available in the WebOS Internals Testing Feed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
* Main Scene&lt;br /&gt;
** Title Header (like preware/wirc/etc webos-internals apps)&lt;br /&gt;
** Current Governor (Tap to go to Governor Settings)&lt;br /&gt;
** Current Frequency&lt;br /&gt;
** Misc Stats&lt;br /&gt;
*** ...?&lt;br /&gt;
*** Graph of CPU temp over time&lt;br /&gt;
*** Auto-generate wallpaper with current graphs&lt;br /&gt;
*** Time in state - colour code from slowest freq (green) to highest freq (red)&lt;br /&gt;
*** Load average - figures are current, 5 min and 15 min (eg 1.0 0.5 0.4). Graph all 3 with some sort of alpha blend with a parallax effect from running 15 min graph 15x slower than current, ditto for 5 min?&lt;br /&gt;
*** Keep a record of record highest and lowest temperatures seen on the device&lt;br /&gt;
&lt;br /&gt;
* CPU Governor Scene&lt;br /&gt;
** Dropdown to change governor (SelectList)&lt;br /&gt;
** Form of all current settings for selected governor (dynamically generated from information provided by service)&lt;br /&gt;
&lt;br /&gt;
* IO Scheduler Scene&lt;br /&gt;
** Dropdown to select scheduler (cfq, noop, as etc.)&lt;br /&gt;
&lt;br /&gt;
* TCP Congestion Algo Scene?&lt;br /&gt;
&lt;br /&gt;
* App Icon (changes to display indication of CPU temp)&lt;br /&gt;
&lt;br /&gt;
=== Load Reduction ===&lt;br /&gt;
* Govnah is saving data to an array which grows over time and sucks down CPU time/memory iterating over the array.&lt;br /&gt;
* Use sqlite db for saving?&lt;br /&gt;
* To reduce disk writes, have a preference option to save to /media/ramdisk if the user is only interested in the current session for pinch zooming - should reduce disk writes and improve performance though data will be lost on boot.&lt;br /&gt;
* Preference setting for frequency of polling.&lt;br /&gt;
* Use fixed array or circular buffer instead, though this will stop pinch scrolling from going back too far (another preference option?)&lt;br /&gt;
&lt;br /&gt;
=== Governor Settings ===&lt;br /&gt;
* Generic items (needed for all)&lt;br /&gt;
** scaling_max_freq - Set the maximum frequency your CPU(s) are allowed to scale to. Look at the output from scaling_available_frequencies&lt;br /&gt;
** scaling_min_freq - Same as scaling_max_freq but setting a value that will not allow the CPU(s) to go below.&lt;br /&gt;
&lt;br /&gt;
* ondemand&lt;br /&gt;
** sampling_rate - This is measured in microseconds (one millionth of a second). This is how often you want the kernel to look at the CPU usage and to make decisions on what to do about the frequency. Typically this is set to values of around '10000' or more. If you wanted to set the sampling rate to 1 second you would set it to 1000000 like in the following example.&lt;br /&gt;
** sampling_rate_(min|max) - This is minimum and maximum sampling rates available that you may set 'sampling_rate' to. I believe in microseconds also. &lt;br /&gt;
** up_threshold - This defines what the average CPU usage between the samplings of 'sampling_rate' needs to be for the kernel to make a decision on whether or not it should increase the frequency. For example when it is set to its default value of '80' it means that between the checking intervals the CPU needs to be on average more than 80% in use to then decide that the CPU frequency needs to be increased. &lt;br /&gt;
** ignore_nice_load - This parameter takes a value of '0' or '1'. When set to '0' (its default), all processes are counted towards the 'cpu utilization' value. When set to '1', the processes that are run with a 'nice' value will not count (and thus be ignored) in the overall usage calculation. &lt;br /&gt;
** powersave_bias - This modifies the behavior of the ondemand governor to save more power by reducing the target frequency by a specified percentage. By default, (powersave_bias  = 0), the ondemand governor selects the minimum processor frequency that can still complete a workload with minimal idle time. Doing so should result in the highest performance to power efficiency ratio. In some cases, you might prefer a greater emphasis on power efficiency than performance. In this case, set the powersave_bias parameter to a value between 1 and 1000 to reduce the target frequency by one-thousandth of that value. For example, set powersave_bias to 100 for a one-tenth reduction in target frequency. In this case, if the governor chooses a target frequency of 2 GHz (with powersave_bias  = 100), the governor instead will request 1.8GHz – a one-tenth reduction. If 1.8 GHz is an exact match with an available hardware frequency (listed in the scaling_available_freq parameter), the processor is set to this frequency. If 1.8 GHz is not available, the processor fluctuates between the closest available upper and lower frequencies for an average frequency of 1.8 GHz. (from IBM web page). The original author of the ondemand powersave_bias code explains it as &amp;quot;For example, If ondemand requests 2.0GHz based on utilization, and powersave_bias=100, this code will knock 10% off the target and seek a target of 1.8GHz instead of 2.0GHz until the next sampling. If 1.8 is an exact match with an hardware frequency we use it, otherwise we average our time between the frequency next higher than 1.8 and next lower than 1.8&amp;quot; (from http://osdir.com/ml/kernel.cpufreq/2006-07/msg00114.html ) - the key word appears to be &amp;quot;average&amp;quot;. The author also warns &amp;quot;In practice, users will not be able to detect a difference between 0.1% increments, but 1.0% increments turned out to be too large. Also, the max value of 1000 (100%) would simply peg the system in its deepest power saving P-state, unless the processor really has a hardware P-state at 0Hz&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* conservative&lt;br /&gt;
** freq_step - This describes what percentage steps the CPU freq should be increased and decreased smoothly by. By default the CPU frequency will increase in 5% chunks of your maximum CPU frequency. You can change this value to anywhere between 0 and 100 where '0' will effectively lock your CPU at a speed regardless of its load whilst '100' will, in theory, make it behave identically to the &amp;quot;ondemand&amp;quot; governor. &lt;br /&gt;
** down_threshold - This is same as the 'up_threshold' found for the &amp;quot;ondemand&amp;quot; governor but for the opposite direction. For example when set to its default value of '20' it means that if the CPU usage needs to be below 20% between samples to have the frequency decreased. &lt;br /&gt;
** sampling_rate - same as ondemand.&lt;br /&gt;
** sampling_rate_(min|max) - same as ondemand.&lt;br /&gt;
** up_threshold - same as ondemand.&lt;br /&gt;
** ignore_nice_load - same as ondemand.&lt;br /&gt;
&lt;br /&gt;
* userspace&lt;br /&gt;
** scaling_setspeed - one of the values from scaling_available_frequencies&lt;br /&gt;
** NB - when userspace is selected LunaSysMgr will change the frequency as it feels.&lt;br /&gt;
&lt;br /&gt;
* powersave&lt;br /&gt;
** Nothing special&lt;br /&gt;
&lt;br /&gt;
* performance&lt;br /&gt;
** Nothing special&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* http://www.pantz.org/software/cpufreq/usingcpufreqonlinux.html&lt;br /&gt;
* http://publib.boulder.ibm.com/infocenter/lnxinfo/v3r0m0/index.jsp?topic=/liaai/cpufreq/TheOndemandGovernor.htm&lt;br /&gt;
* http://fasterdata.es.net/TCP-tuning/linux.html&lt;br /&gt;
* http://www.pdfgeni.com/book/Performance-analysis-of-loss-based-high-speed-TCP-congestion-control-algorithms-pdf.html - collection of documents on implementation of different IPv4 congestion control methods.&lt;/div&gt;</summary>
		<author><name>Sbromwich</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Application:Govnah&amp;diff=9703</id>
		<title>Application:Govnah</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Application:Govnah&amp;diff=9703"/>
		<updated>2010-04-26T01:19:58Z</updated>

		<summary type="html">&lt;p&gt;Sbromwich: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{application&lt;br /&gt;
|name=Govnah&lt;br /&gt;
|type=webOS&lt;br /&gt;
|version=In Development&lt;br /&gt;
|tag=Utilities&lt;br /&gt;
|screenshot=Govnah_themes.png&lt;br /&gt;
|description=}}&lt;br /&gt;
&lt;br /&gt;
== Summary == &lt;br /&gt;
{{icon|Icon_WebOSInternals_Govnah.png|float:right;}}An App to do things.&lt;br /&gt;
&lt;br /&gt;
Available in the WebOS Internals Testing Feed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
* Main Scene&lt;br /&gt;
** Title Header (like preware/wirc/etc webos-internals apps)&lt;br /&gt;
** Current Governor (Tap to go to Governor Settings)&lt;br /&gt;
** Current Frequency&lt;br /&gt;
** Misc Stats&lt;br /&gt;
*** ...?&lt;br /&gt;
*** Graph of CPU temp over time&lt;br /&gt;
*** Auto-generate wallpaper with current graphs&lt;br /&gt;
*** Time in state - colour code from slowest freq (green) to highest freq (red)&lt;br /&gt;
*** Load average - figures are current, 5 min and 15 min (eg 1.0 0.5 0.4). Graph all 3 with some sort of alpha blend with a parallax effect from running 15 min graph 15x slower than current, ditto for 5 min?&lt;br /&gt;
&lt;br /&gt;
* CPU Governor Scene&lt;br /&gt;
** Dropdown to change governor (SelectList)&lt;br /&gt;
** Form of all current settings for selected governor (dynamically generated from information provided by service)&lt;br /&gt;
&lt;br /&gt;
* IO Scheduler Scene&lt;br /&gt;
** Dropdown to select scheduler (cfq, noop, as etc.)&lt;br /&gt;
&lt;br /&gt;
* TCP Congestion Algo Scene?&lt;br /&gt;
&lt;br /&gt;
* App Icon (changes to display indication of CPU temp)&lt;br /&gt;
&lt;br /&gt;
=== Load Reduction ===&lt;br /&gt;
* Govnah is saving data to an array which grows over time and sucks down CPU time/memory iterating over the array.&lt;br /&gt;
* Use sqlite db for saving?&lt;br /&gt;
* To reduce disk writes, have a preference option to save to /media/ramdisk if the user is only interested in the current session for pinch zooming - should reduce disk writes and improve performance though data will be lost on boot.&lt;br /&gt;
* Preference setting for frequency of polling.&lt;br /&gt;
* Use fixed array or circular buffer instead, though this will stop pinch scrolling from going back too far (another preference option?)&lt;br /&gt;
&lt;br /&gt;
=== Governor Settings ===&lt;br /&gt;
* Generic items (needed for all)&lt;br /&gt;
** scaling_max_freq - Set the maximum frequency your CPU(s) are allowed to scale to. Look at the output from scaling_available_frequencies&lt;br /&gt;
** scaling_min_freq - Same as scaling_max_freq but setting a value that will not allow the CPU(s) to go below.&lt;br /&gt;
&lt;br /&gt;
* ondemand&lt;br /&gt;
** sampling_rate - This is measured in microseconds (one millionth of a second). This is how often you want the kernel to look at the CPU usage and to make decisions on what to do about the frequency. Typically this is set to values of around '10000' or more. If you wanted to set the sampling rate to 1 second you would set it to 1000000 like in the following example.&lt;br /&gt;
** sampling_rate_(min|max) - This is minimum and maximum sampling rates available that you may set 'sampling_rate' to. I believe in microseconds also. &lt;br /&gt;
** up_threshold - This defines what the average CPU usage between the samplings of 'sampling_rate' needs to be for the kernel to make a decision on whether or not it should increase the frequency. For example when it is set to its default value of '80' it means that between the checking intervals the CPU needs to be on average more than 80% in use to then decide that the CPU frequency needs to be increased. &lt;br /&gt;
** ignore_nice_load - This parameter takes a value of '0' or '1'. When set to '0' (its default), all processes are counted towards the 'cpu utilization' value. When set to '1', the processes that are run with a 'nice' value will not count (and thus be ignored) in the overall usage calculation. &lt;br /&gt;
** powersave_bias - This modifies the behavior of the ondemand governor to save more power by reducing the target frequency by a specified percentage. By default, (powersave_bias  = 0), the ondemand governor selects the minimum processor frequency that can still complete a workload with minimal idle time. Doing so should result in the highest performance to power efficiency ratio. In some cases, you might prefer a greater emphasis on power efficiency than performance. In this case, set the powersave_bias parameter to a value between 1 and 1000 to reduce the target frequency by one-thousandth of that value. For example, set powersave_bias to 100 for a one-tenth reduction in target frequency. In this case, if the governor chooses a target frequency of 2 GHz (with powersave_bias  = 100), the governor instead will request 1.8GHz – a one-tenth reduction. If 1.8 GHz is an exact match with an available hardware frequency (listed in the scaling_available_freq parameter), the processor is set to this frequency. If 1.8 GHz is not available, the processor fluctuates between the closest available upper and lower frequencies for an average frequency of 1.8 GHz. (from IBM web page). The original author of the ondemand powersave_bias code explains it as &amp;quot;For example, If ondemand requests 2.0GHz based on utilization, and powersave_bias=100, this code will knock 10% off the target and seek a target of 1.8GHz instead of 2.0GHz until the next sampling. If 1.8 is an exact match with an hardware frequency we use it, otherwise we average our time between the frequency next higher than 1.8 and next lower than 1.8&amp;quot; (from http://osdir.com/ml/kernel.cpufreq/2006-07/msg00114.html ) - the key word appears to be &amp;quot;average&amp;quot;. The author also warns &amp;quot;In practice, users will not be able to detect a difference between 0.1% increments, but 1.0% increments turned out to be too large. Also, the max value of 1000 (100%) would simply peg the system in its deepest power saving P-state, unless the processor really has a hardware P-state at 0Hz&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* conservative&lt;br /&gt;
** freq_step - This describes what percentage steps the CPU freq should be increased and decreased smoothly by. By default the CPU frequency will increase in 5% chunks of your maximum CPU frequency. You can change this value to anywhere between 0 and 100 where '0' will effectively lock your CPU at a speed regardless of its load whilst '100' will, in theory, make it behave identically to the &amp;quot;ondemand&amp;quot; governor. &lt;br /&gt;
** down_threshold - This is same as the 'up_threshold' found for the &amp;quot;ondemand&amp;quot; governor but for the opposite direction. For example when set to its default value of '20' it means that if the CPU usage needs to be below 20% between samples to have the frequency decreased. &lt;br /&gt;
** sampling_rate - same as ondemand.&lt;br /&gt;
** sampling_rate_(min|max) - same as ondemand.&lt;br /&gt;
** up_threshold - same as ondemand.&lt;br /&gt;
** ignore_nice_load - same as ondemand.&lt;br /&gt;
&lt;br /&gt;
* userspace&lt;br /&gt;
** scaling_setspeed - one of the values from scaling_available_frequencies&lt;br /&gt;
** NB - when userspace is selected LunaSysMgr will change the frequency as it feels.&lt;br /&gt;
&lt;br /&gt;
* powersave&lt;br /&gt;
** Nothing special&lt;br /&gt;
&lt;br /&gt;
* performance&lt;br /&gt;
** Nothing special&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* http://www.pantz.org/software/cpufreq/usingcpufreqonlinux.html&lt;br /&gt;
* http://publib.boulder.ibm.com/infocenter/lnxinfo/v3r0m0/index.jsp?topic=/liaai/cpufreq/TheOndemandGovernor.htm&lt;br /&gt;
* http://fasterdata.es.net/TCP-tuning/linux.html&lt;br /&gt;
* http://www.pdfgeni.com/book/Performance-analysis-of-loss-based-high-speed-TCP-congestion-control-algorithms-pdf.html - collection of documents on implementation of different IPv4 congestion control methods.&lt;/div&gt;</summary>
		<author><name>Sbromwich</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Application:Govnah&amp;diff=9702</id>
		<title>Application:Govnah</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Application:Govnah&amp;diff=9702"/>
		<updated>2010-04-26T01:16:20Z</updated>

		<summary type="html">&lt;p&gt;Sbromwich: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{application&lt;br /&gt;
|name=Govnah&lt;br /&gt;
|type=webOS&lt;br /&gt;
|version=In Development&lt;br /&gt;
|tag=Utilities&lt;br /&gt;
|screenshot=Govnah_themes.png&lt;br /&gt;
|description=}}&lt;br /&gt;
&lt;br /&gt;
== Summary == &lt;br /&gt;
{{icon|Icon_WebOSInternals_Govnah.png|float:right;}}An App to do things.&lt;br /&gt;
&lt;br /&gt;
Available in the WebOS Internals Testing Feed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
* Main Scene&lt;br /&gt;
** Title Header (like preware/wirc/etc webos-internals apps)&lt;br /&gt;
** Current Governor (Tap to go to Governor Settings)&lt;br /&gt;
** Current Frequency&lt;br /&gt;
** Misc Stats&lt;br /&gt;
*** ...?&lt;br /&gt;
*** Graph of CPU temp over time&lt;br /&gt;
*** Auto-generate wallpaper with current graphs&lt;br /&gt;
*** Time in state - colour code from slowest freq (green) to highest freq (red)&lt;br /&gt;
&lt;br /&gt;
* CPU Governor Scene&lt;br /&gt;
** Dropdown to change governor (SelectList)&lt;br /&gt;
** Form of all current settings for selected governor (dynamically generated from information provided by service)&lt;br /&gt;
&lt;br /&gt;
* IO Scheduler Scene&lt;br /&gt;
** Dropdown to select scheduler (cfq, noop, as etc.)&lt;br /&gt;
&lt;br /&gt;
* TCP Congestion Algo Scene?&lt;br /&gt;
&lt;br /&gt;
* App Icon (changes to display indication of CPU temp)&lt;br /&gt;
&lt;br /&gt;
=== Load Reduction ===&lt;br /&gt;
* Govnah is saving data to an array which grows over time and sucks down CPU time/memory iterating over the array.&lt;br /&gt;
* Use sqlite db for saving?&lt;br /&gt;
* To reduce disk writes, have a preference option to save to /media/ramdisk if the user is only interested in the current session for pinch zooming - should reduce disk writes and improve performance though data will be lost on boot.&lt;br /&gt;
* Preference setting for frequency of polling.&lt;br /&gt;
* Use fixed array or circular buffer instead, though this will stop pinch scrolling from going back too far (another preference option?)&lt;br /&gt;
&lt;br /&gt;
=== Governor Settings ===&lt;br /&gt;
* Generic items (needed for all)&lt;br /&gt;
** scaling_max_freq - Set the maximum frequency your CPU(s) are allowed to scale to. Look at the output from scaling_available_frequencies&lt;br /&gt;
** scaling_min_freq - Same as scaling_max_freq but setting a value that will not allow the CPU(s) to go below.&lt;br /&gt;
&lt;br /&gt;
* ondemand&lt;br /&gt;
** sampling_rate - This is measured in microseconds (one millionth of a second). This is how often you want the kernel to look at the CPU usage and to make decisions on what to do about the frequency. Typically this is set to values of around '10000' or more. If you wanted to set the sampling rate to 1 second you would set it to 1000000 like in the following example.&lt;br /&gt;
** sampling_rate_(min|max) - This is minimum and maximum sampling rates available that you may set 'sampling_rate' to. I believe in microseconds also. &lt;br /&gt;
** up_threshold - This defines what the average CPU usage between the samplings of 'sampling_rate' needs to be for the kernel to make a decision on whether or not it should increase the frequency. For example when it is set to its default value of '80' it means that between the checking intervals the CPU needs to be on average more than 80% in use to then decide that the CPU frequency needs to be increased. &lt;br /&gt;
** ignore_nice_load - This parameter takes a value of '0' or '1'. When set to '0' (its default), all processes are counted towards the 'cpu utilization' value. When set to '1', the processes that are run with a 'nice' value will not count (and thus be ignored) in the overall usage calculation. &lt;br /&gt;
** powersave_bias - This modifies the behavior of the ondemand governor to save more power by reducing the target frequency by a specified percentage. By default, (powersave_bias  = 0), the ondemand governor selects the minimum processor frequency that can still complete a workload with minimal idle time. Doing so should result in the highest performance to power efficiency ratio. In some cases, you might prefer a greater emphasis on power efficiency than performance. In this case, set the powersave_bias parameter to a value between 1 and 1000 to reduce the target frequency by one-thousandth of that value. For example, set powersave_bias to 100 for a one-tenth reduction in target frequency. In this case, if the governor chooses a target frequency of 2 GHz (with powersave_bias  = 100), the governor instead will request 1.8GHz – a one-tenth reduction. If 1.8 GHz is an exact match with an available hardware frequency (listed in the scaling_available_freq parameter), the processor is set to this frequency. If 1.8 GHz is not available, the processor fluctuates between the closest available upper and lower frequencies for an average frequency of 1.8 GHz. (from IBM web page). The original author of the ondemand powersave_bias code explains it as &amp;quot;For example, If ondemand requests 2.0GHz based on utilization, and powersave_bias=100, this code will knock 10% off the target and seek a target of 1.8GHz instead of 2.0GHz until the next sampling. If 1.8 is an exact match with an hardware frequency we use it, otherwise we average our time between the frequency next higher than 1.8 and next lower than 1.8&amp;quot; (from http://osdir.com/ml/kernel.cpufreq/2006-07/msg00114.html ) - the key word appears to be &amp;quot;average&amp;quot;. The author also warns &amp;quot;In practice, users will not be able to detect a difference between 0.1% increments, but 1.0% increments turned out to be too large. Also, the max value of 1000 (100%) would simply peg the system in its deepest power saving P-state, unless the processor really has a hardware P-state at 0Hz&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* conservative&lt;br /&gt;
** freq_step - This describes what percentage steps the CPU freq should be increased and decreased smoothly by. By default the CPU frequency will increase in 5% chunks of your maximum CPU frequency. You can change this value to anywhere between 0 and 100 where '0' will effectively lock your CPU at a speed regardless of its load whilst '100' will, in theory, make it behave identically to the &amp;quot;ondemand&amp;quot; governor. &lt;br /&gt;
** down_threshold - This is same as the 'up_threshold' found for the &amp;quot;ondemand&amp;quot; governor but for the opposite direction. For example when set to its default value of '20' it means that if the CPU usage needs to be below 20% between samples to have the frequency decreased. &lt;br /&gt;
** sampling_rate - same as ondemand.&lt;br /&gt;
** sampling_rate_(min|max) - same as ondemand.&lt;br /&gt;
** up_threshold - same as ondemand.&lt;br /&gt;
** ignore_nice_load - same as ondemand.&lt;br /&gt;
&lt;br /&gt;
* userspace&lt;br /&gt;
** scaling_setspeed - one of the values from scaling_available_frequencies&lt;br /&gt;
** NB - when userspace is selected LunaSysMgr will change the frequency as it feels.&lt;br /&gt;
&lt;br /&gt;
* powersave&lt;br /&gt;
** Nothing special&lt;br /&gt;
&lt;br /&gt;
* performance&lt;br /&gt;
** Nothing special&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* http://www.pantz.org/software/cpufreq/usingcpufreqonlinux.html&lt;br /&gt;
* http://publib.boulder.ibm.com/infocenter/lnxinfo/v3r0m0/index.jsp?topic=/liaai/cpufreq/TheOndemandGovernor.htm&lt;br /&gt;
* http://fasterdata.es.net/TCP-tuning/linux.html&lt;br /&gt;
* http://www.pdfgeni.com/book/Performance-analysis-of-loss-based-high-speed-TCP-congestion-control-algorithms-pdf.html - collection of documents on implementation of different IPv4 congestion control methods.&lt;/div&gt;</summary>
		<author><name>Sbromwich</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Application:Govnah&amp;diff=9698</id>
		<title>Application:Govnah</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Application:Govnah&amp;diff=9698"/>
		<updated>2010-04-25T17:14:18Z</updated>

		<summary type="html">&lt;p&gt;Sbromwich: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{application&lt;br /&gt;
|name=Govnah&lt;br /&gt;
|type=webOS&lt;br /&gt;
|version=In Development&lt;br /&gt;
|tag=Utilities&lt;br /&gt;
|screenshot=Govnah_themes.png&lt;br /&gt;
|description=}}&lt;br /&gt;
&lt;br /&gt;
== Summary == &lt;br /&gt;
{{icon|Icon_WebOSInternals_Govnah.png|float:right;}}An App to do things.&lt;br /&gt;
&lt;br /&gt;
Available in the WebOS Internals Testing Feed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
* Main Scene&lt;br /&gt;
** Title Header (like preware/wirc/etc webos-internals apps)&lt;br /&gt;
** Current Governor (Tap to go to Governor Settings)&lt;br /&gt;
** Current Frequency&lt;br /&gt;
** Misc Stats&lt;br /&gt;
*** ...?&lt;br /&gt;
*** Graph of CPU temp over time&lt;br /&gt;
*** Auto-generate wallpaper with current graphs&lt;br /&gt;
&lt;br /&gt;
* CPU Governor Scene&lt;br /&gt;
** Dropdown to change governor (SelectList)&lt;br /&gt;
** Form of all current settings for selected governor (dynamically generated from information provided by service)&lt;br /&gt;
&lt;br /&gt;
* IO Scheduler Scene&lt;br /&gt;
** Dropdown to select scheduler (cfq, noop, as etc.)&lt;br /&gt;
&lt;br /&gt;
* TCP Congestion Algo Scene?&lt;br /&gt;
&lt;br /&gt;
* App Icon (changes to display indication of CPU temp)&lt;br /&gt;
&lt;br /&gt;
=== Load Reduction ===&lt;br /&gt;
* Govnah is saving data to an array which grows over time and sucks down CPU time/memory iterating over the array.&lt;br /&gt;
* Use sqlite db for saving?&lt;br /&gt;
* To reduce disk writes, have a preference option to save to /media/ramdisk if the user is only interested in the current session for pinch zooming - should reduce disk writes and improve performance though data will be lost on boot.&lt;br /&gt;
* Preference setting for frequency of polling.&lt;br /&gt;
* Use fixed array or circular buffer instead, though this will stop pinch scrolling from going back too far (another preference option?)&lt;br /&gt;
&lt;br /&gt;
=== Governor Settings ===&lt;br /&gt;
* Generic items (needed for all)&lt;br /&gt;
** scaling_max_freq - Set the maximum frequency your CPU(s) are allowed to scale to. Look at the output from scaling_available_frequencies&lt;br /&gt;
** scaling_min_freq - Same as scaling_max_freq but setting a value that will not allow the CPU(s) to go below.&lt;br /&gt;
&lt;br /&gt;
* ondemand&lt;br /&gt;
** sampling_rate - This is measured in microseconds (one millionth of a second). This is how often you want the kernel to look at the CPU usage and to make decisions on what to do about the frequency. Typically this is set to values of around '10000' or more. If you wanted to set the sampling rate to 1 second you would set it to 1000000 like in the following example.&lt;br /&gt;
** sampling_rate_(min|max) - This is minimum and maximum sampling rates available that you may set 'sampling_rate' to. I believe in microseconds also. &lt;br /&gt;
** up_threshold - This defines what the average CPU usage between the samplings of 'sampling_rate' needs to be for the kernel to make a decision on whether or not it should increase the frequency. For example when it is set to its default value of '80' it means that between the checking intervals the CPU needs to be on average more than 80% in use to then decide that the CPU frequency needs to be increased. &lt;br /&gt;
** ignore_nice_load - This parameter takes a value of '0' or '1'. When set to '0' (its default), all processes are counted towards the 'cpu utilization' value. When set to '1', the processes that are run with a 'nice' value will not count (and thus be ignored) in the overall usage calculation. &lt;br /&gt;
** powersave_bias - This modifies the behavior of the ondemand governor to save more power by reducing the target frequency by a specified percentage. By default, (powersave_bias  = 0), the ondemand governor selects the minimum processor frequency that can still complete a workload with minimal idle time. Doing so should result in the highest performance to power efficiency ratio. In some cases, you might prefer a greater emphasis on power efficiency than performance. In this case, set the powersave_bias parameter to a value between 1 and 1000 to reduce the target frequency by one-thousandth of that value. For example, set powersave_bias to 100 for a one-tenth reduction in target frequency. In this case, if the governor chooses a target frequency of 2 GHz (with powersave_bias  = 100), the governor instead will request 1.8GHz – a one-tenth reduction. If 1.8 GHz is an exact match with an available hardware frequency (listed in the scaling_available_freq parameter), the processor is set to this frequency. If 1.8 GHz is not available, the processor fluctuates between the closest available upper and lower frequencies for an average frequency of 1.8 GHz. (from IBM web page). The original author of the ondemand powersave_bias code explains it as &amp;quot;For example, If ondemand requests 2.0GHz based on utilization, and powersave_bias=100, this code will knock 10% off the target and seek a target of 1.8GHz instead of 2.0GHz until the next sampling. If 1.8 is an exact match with an hardware frequency we use it, otherwise we average our time between the frequency next higher than 1.8 and next lower than 1.8&amp;quot; (from http://osdir.com/ml/kernel.cpufreq/2006-07/msg00114.html ) - the key word appears to be &amp;quot;average&amp;quot;. The author also warns &amp;quot;In practice, users will not be able to detect a difference between 0.1% increments, but 1.0% increments turned out to be too large. Also, the max value of 1000 (100%) would simply peg the system in its deepest power saving P-state, unless the processor really has a hardware P-state at 0Hz&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* conservative&lt;br /&gt;
** freq_step - This describes what percentage steps the CPU freq should be increased and decreased smoothly by. By default the CPU frequency will increase in 5% chunks of your maximum CPU frequency. You can change this value to anywhere between 0 and 100 where '0' will effectively lock your CPU at a speed regardless of its load whilst '100' will, in theory, make it behave identically to the &amp;quot;ondemand&amp;quot; governor. &lt;br /&gt;
** down_threshold - This is same as the 'up_threshold' found for the &amp;quot;ondemand&amp;quot; governor but for the opposite direction. For example when set to its default value of '20' it means that if the CPU usage needs to be below 20% between samples to have the frequency decreased. &lt;br /&gt;
** sampling_rate - same as ondemand.&lt;br /&gt;
** sampling_rate_(min|max) - same as ondemand.&lt;br /&gt;
** up_threshold - same as ondemand.&lt;br /&gt;
** ignore_nice_load - same as ondemand.&lt;br /&gt;
&lt;br /&gt;
* userspace&lt;br /&gt;
** scaling_setspeed - one of the values from scaling_available_frequencies&lt;br /&gt;
** NB - when userspace is selected LunaSysMgr will change the frequency as it feels.&lt;br /&gt;
&lt;br /&gt;
* powersave&lt;br /&gt;
** Nothing special&lt;br /&gt;
&lt;br /&gt;
* performance&lt;br /&gt;
** Nothing special&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* http://www.pantz.org/software/cpufreq/usingcpufreqonlinux.html&lt;br /&gt;
* http://publib.boulder.ibm.com/infocenter/lnxinfo/v3r0m0/index.jsp?topic=/liaai/cpufreq/TheOndemandGovernor.htm&lt;br /&gt;
* http://fasterdata.es.net/TCP-tuning/linux.html&lt;br /&gt;
* http://www.pdfgeni.com/book/Performance-analysis-of-loss-based-high-speed-TCP-congestion-control-algorithms-pdf.html - collection of documents on implementation of different IPv4 congestion control methods.&lt;/div&gt;</summary>
		<author><name>Sbromwich</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Application:Govnah&amp;diff=9697</id>
		<title>Application:Govnah</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Application:Govnah&amp;diff=9697"/>
		<updated>2010-04-25T14:34:17Z</updated>

		<summary type="html">&lt;p&gt;Sbromwich: Added pdfgeni link for TCP congestion control&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{application&lt;br /&gt;
|name=Govnah&lt;br /&gt;
|type=webOS&lt;br /&gt;
|version=In Development&lt;br /&gt;
|tag=Utilities&lt;br /&gt;
|screenshot=Govnah_themes.png&lt;br /&gt;
|description=}}&lt;br /&gt;
&lt;br /&gt;
== Summary == &lt;br /&gt;
{{icon|Icon_WebOSInternals_Govnah.png|float:right;}}An App to do things.&lt;br /&gt;
&lt;br /&gt;
Available in the WebOS Internals Testing Feed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
* Main Scene&lt;br /&gt;
** Title Header (like preware/wirc/etc webos-internals apps)&lt;br /&gt;
** Current Governor (Tap to go to Governor Settings)&lt;br /&gt;
** Current Frequency&lt;br /&gt;
** Misc Stats&lt;br /&gt;
*** ...?&lt;br /&gt;
*** Graph of CPU temp over time&lt;br /&gt;
&lt;br /&gt;
* CPU Governor Scene&lt;br /&gt;
** Dropdown to change governor (SelectList)&lt;br /&gt;
** Form of all current settings for selected governor (dynamically generated from information provided by service)&lt;br /&gt;
&lt;br /&gt;
* IO Scheduler Scene&lt;br /&gt;
** Dropdown to select scheduler (cfq, noop, as etc.)&lt;br /&gt;
&lt;br /&gt;
* TCP Congestion Algo Scene?&lt;br /&gt;
&lt;br /&gt;
* App Icon (changes to display indication of CPU temp)&lt;br /&gt;
&lt;br /&gt;
=== Load Reduction ===&lt;br /&gt;
* Govnah is saving data to an array which grows over time and sucks down CPU time/memory iterating over the array.&lt;br /&gt;
* Use sqlite db for saving?&lt;br /&gt;
* To reduce disk writes, have a preference option to save to /media/ramdisk if the user is only interested in the current session for pinch zooming - should reduce disk writes and improve performance though data will be lost on boot.&lt;br /&gt;
* Preference setting for frequency of polling.&lt;br /&gt;
* Use fixed array or circular buffer instead, though this will stop pinch scrolling from going back too far (another preference option?)&lt;br /&gt;
&lt;br /&gt;
=== Governor Settings ===&lt;br /&gt;
* Generic items (needed for all)&lt;br /&gt;
** scaling_max_freq - Set the maximum frequency your CPU(s) are allowed to scale to. Look at the output from scaling_available_frequencies&lt;br /&gt;
** scaling_min_freq - Same as scaling_max_freq but setting a value that will not allow the CPU(s) to go below.&lt;br /&gt;
&lt;br /&gt;
* ondemand&lt;br /&gt;
** sampling_rate - This is measured in microseconds (one millionth of a second). This is how often you want the kernel to look at the CPU usage and to make decisions on what to do about the frequency. Typically this is set to values of around '10000' or more. If you wanted to set the sampling rate to 1 second you would set it to 1000000 like in the following example.&lt;br /&gt;
** sampling_rate_(min|max) - This is minimum and maximum sampling rates available that you may set 'sampling_rate' to. I believe in microseconds also. &lt;br /&gt;
** up_threshold - This defines what the average CPU usage between the samplings of 'sampling_rate' needs to be for the kernel to make a decision on whether or not it should increase the frequency. For example when it is set to its default value of '80' it means that between the checking intervals the CPU needs to be on average more than 80% in use to then decide that the CPU frequency needs to be increased. &lt;br /&gt;
** ignore_nice_load - This parameter takes a value of '0' or '1'. When set to '0' (its default), all processes are counted towards the 'cpu utilization' value. When set to '1', the processes that are run with a 'nice' value will not count (and thus be ignored) in the overall usage calculation. &lt;br /&gt;
** powersave_bias - This modifies the behavior of the ondemand governor to save more power by reducing the target frequency by a specified percentage. By default, (powersave_bias  = 0), the ondemand governor selects the minimum processor frequency that can still complete a workload with minimal idle time. Doing so should result in the highest performance to power efficiency ratio. In some cases, you might prefer a greater emphasis on power efficiency than performance. In this case, set the powersave_bias parameter to a value between 1 and 1000 to reduce the target frequency by one-thousandth of that value. For example, set powersave_bias to 100 for a one-tenth reduction in target frequency. In this case, if the governor chooses a target frequency of 2 GHz (with powersave_bias  = 100), the governor instead will request 1.8GHz – a one-tenth reduction. If 1.8 GHz is an exact match with an available hardware frequency (listed in the scaling_available_freq parameter), the processor is set to this frequency. If 1.8 GHz is not available, the processor fluctuates between the closest available upper and lower frequencies for an average frequency of 1.8 GHz. (from IBM web page). The original author of the ondemand powersave_bias code explains it as &amp;quot;For example, If ondemand requests 2.0GHz based on utilization, and powersave_bias=100, this code will knock 10% off the target and seek a target of 1.8GHz instead of 2.0GHz until the next sampling. If 1.8 is an exact match with an hardware frequency we use it, otherwise we average our time between the frequency next higher than 1.8 and next lower than 1.8&amp;quot; (from http://osdir.com/ml/kernel.cpufreq/2006-07/msg00114.html ) - the key word appears to be &amp;quot;average&amp;quot;. The author also warns &amp;quot;In practice, users will not be able to detect a difference between 0.1% increments, but 1.0% increments turned out to be too large. Also, the max value of 1000 (100%) would simply peg the system in its deepest power saving P-state, unless the processor really has a hardware P-state at 0Hz&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* conservative&lt;br /&gt;
** freq_step - This describes what percentage steps the CPU freq should be increased and decreased smoothly by. By default the CPU frequency will increase in 5% chunks of your maximum CPU frequency. You can change this value to anywhere between 0 and 100 where '0' will effectively lock your CPU at a speed regardless of its load whilst '100' will, in theory, make it behave identically to the &amp;quot;ondemand&amp;quot; governor. &lt;br /&gt;
** down_threshold - This is same as the 'up_threshold' found for the &amp;quot;ondemand&amp;quot; governor but for the opposite direction. For example when set to its default value of '20' it means that if the CPU usage needs to be below 20% between samples to have the frequency decreased. &lt;br /&gt;
** sampling_rate - same as ondemand.&lt;br /&gt;
** sampling_rate_(min|max) - same as ondemand.&lt;br /&gt;
** up_threshold - same as ondemand.&lt;br /&gt;
** ignore_nice_load - same as ondemand.&lt;br /&gt;
&lt;br /&gt;
* userspace&lt;br /&gt;
** scaling_setspeed - one of the values from scaling_available_frequencies&lt;br /&gt;
** NB - when userspace is selected LunaSysMgr will change the frequency as it feels.&lt;br /&gt;
&lt;br /&gt;
* powersave&lt;br /&gt;
** Nothing special&lt;br /&gt;
&lt;br /&gt;
* performance&lt;br /&gt;
** Nothing special&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* http://www.pantz.org/software/cpufreq/usingcpufreqonlinux.html&lt;br /&gt;
* http://publib.boulder.ibm.com/infocenter/lnxinfo/v3r0m0/index.jsp?topic=/liaai/cpufreq/TheOndemandGovernor.htm&lt;br /&gt;
* http://fasterdata.es.net/TCP-tuning/linux.html&lt;br /&gt;
* http://www.pdfgeni.com/book/Performance-analysis-of-loss-based-high-speed-TCP-congestion-control-algorithms-pdf.html - collection of documents on implementation of different IPv4 congestion control methods.&lt;/div&gt;</summary>
		<author><name>Sbromwich</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Application:Govnah&amp;diff=9696</id>
		<title>Application:Govnah</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Application:Govnah&amp;diff=9696"/>
		<updated>2010-04-25T14:03:29Z</updated>

		<summary type="html">&lt;p&gt;Sbromwich: More powersave_bias clarification and a little tidying up&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{application&lt;br /&gt;
|name=Govnah&lt;br /&gt;
|type=webOS&lt;br /&gt;
|version=In Development&lt;br /&gt;
|tag=Utilities&lt;br /&gt;
|screenshot=Govnah_themes.png&lt;br /&gt;
|description=}}&lt;br /&gt;
&lt;br /&gt;
== Summary == &lt;br /&gt;
{{icon|Icon_WebOSInternals_Govnah.png|float:right;}}An App to do things.&lt;br /&gt;
&lt;br /&gt;
Available in the WebOS Internals Testing Feed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
* Main Scene&lt;br /&gt;
** Title Header (like preware/wirc/etc webos-internals apps)&lt;br /&gt;
** Current Governor (Tap to go to Governor Settings)&lt;br /&gt;
** Current Frequency&lt;br /&gt;
** Misc Stats&lt;br /&gt;
*** ...?&lt;br /&gt;
*** Graph of CPU temp over time&lt;br /&gt;
&lt;br /&gt;
* CPU Governor Scene&lt;br /&gt;
** Dropdown to change governor (SelectList)&lt;br /&gt;
** Form of all current settings for selected governor (dynamically generated from information provided by service)&lt;br /&gt;
&lt;br /&gt;
* IO Scheduler Scene&lt;br /&gt;
** Dropdown to select scheduler (cfq, noop, as etc.)&lt;br /&gt;
&lt;br /&gt;
* TCP Congestion Algo Scene?&lt;br /&gt;
&lt;br /&gt;
* App Icon (changes to display indication of CPU temp)&lt;br /&gt;
&lt;br /&gt;
=== Load Reduction ===&lt;br /&gt;
* Govnah is saving data to an array which grows over time and sucks down CPU time/memory iterating over the array.&lt;br /&gt;
* Use sqlite db for saving?&lt;br /&gt;
* To reduce disk writes, have a preference option to save to /media/ramdisk if the user is only interested in the current session for pinch zooming - should reduce disk writes and improve performance though data will be lost on boot.&lt;br /&gt;
* Preference setting for frequency of polling.&lt;br /&gt;
* Use fixed array or circular buffer instead, though this will stop pinch scrolling from going back too far (another preference option?)&lt;br /&gt;
&lt;br /&gt;
=== Governor Settings ===&lt;br /&gt;
* Generic items (needed for all)&lt;br /&gt;
** scaling_max_freq - Set the maximum frequency your CPU(s) are allowed to scale to. Look at the output from scaling_available_frequencies&lt;br /&gt;
** scaling_min_freq - Same as scaling_max_freq but setting a value that will not allow the CPU(s) to go below.&lt;br /&gt;
&lt;br /&gt;
* ondemand&lt;br /&gt;
** sampling_rate - This is measured in microseconds (one millionth of a second). This is how often you want the kernel to look at the CPU usage and to make decisions on what to do about the frequency. Typically this is set to values of around '10000' or more. If you wanted to set the sampling rate to 1 second you would set it to 1000000 like in the following example.&lt;br /&gt;
** sampling_rate_(min|max) - This is minimum and maximum sampling rates available that you may set 'sampling_rate' to. I believe in microseconds also. &lt;br /&gt;
** up_threshold - This defines what the average CPU usage between the samplings of 'sampling_rate' needs to be for the kernel to make a decision on whether or not it should increase the frequency. For example when it is set to its default value of '80' it means that between the checking intervals the CPU needs to be on average more than 80% in use to then decide that the CPU frequency needs to be increased. &lt;br /&gt;
** ignore_nice_load - This parameter takes a value of '0' or '1'. When set to '0' (its default), all processes are counted towards the 'cpu utilization' value. When set to '1', the processes that are run with a 'nice' value will not count (and thus be ignored) in the overall usage calculation. &lt;br /&gt;
** powersave_bias - This modifies the behavior of the ondemand governor to save more power by reducing the target frequency by a specified percentage. By default, (powersave_bias  = 0), the ondemand governor selects the minimum processor frequency that can still complete a workload with minimal idle time. Doing so should result in the highest performance to power efficiency ratio. In some cases, you might prefer a greater emphasis on power efficiency than performance. In this case, set the powersave_bias parameter to a value between 1 and 1000 to reduce the target frequency by one-thousandth of that value. For example, set powersave_bias to 100 for a one-tenth reduction in target frequency. In this case, if the governor chooses a target frequency of 2 GHz (with powersave_bias  = 100), the governor instead will request 1.8GHz – a one-tenth reduction. If 1.8 GHz is an exact match with an available hardware frequency (listed in the scaling_available_freq parameter), the processor is set to this frequency. If 1.8 GHz is not available, the processor fluctuates between the closest available upper and lower frequencies for an average frequency of 1.8 GHz. (from IBM web page). The original author of the ondemand powersave_bias code explains it as &amp;quot;For example, If ondemand requests 2.0GHz based on utilization, and powersave_bias=100, this code will knock 10% off the target and seek a target of 1.8GHz instead of 2.0GHz until the next sampling. If 1.8 is an exact match with an hardware frequency we use it, otherwise we average our time between the frequency next higher than 1.8 and next lower than 1.8&amp;quot; (from http://osdir.com/ml/kernel.cpufreq/2006-07/msg00114.html ) - the key word appears to be &amp;quot;average&amp;quot;. The author also warns &amp;quot;In practice, users will not be able to detect a difference between 0.1% increments, but 1.0% increments turned out to be too large. Also, the max value of 1000 (100%) would simply peg the system in its deepest power saving P-state, unless the processor really has a hardware P-state at 0Hz&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* conservative&lt;br /&gt;
** freq_step - This describes what percentage steps the CPU freq should be increased and decreased smoothly by. By default the CPU frequency will increase in 5% chunks of your maximum CPU frequency. You can change this value to anywhere between 0 and 100 where '0' will effectively lock your CPU at a speed regardless of its load whilst '100' will, in theory, make it behave identically to the &amp;quot;ondemand&amp;quot; governor. &lt;br /&gt;
** down_threshold - This is same as the 'up_threshold' found for the &amp;quot;ondemand&amp;quot; governor but for the opposite direction. For example when set to its default value of '20' it means that if the CPU usage needs to be below 20% between samples to have the frequency decreased. &lt;br /&gt;
** sampling_rate - same as ondemand.&lt;br /&gt;
** sampling_rate_(min|max) - same as ondemand.&lt;br /&gt;
** up_threshold - same as ondemand.&lt;br /&gt;
** ignore_nice_load - same as ondemand.&lt;br /&gt;
&lt;br /&gt;
* userspace&lt;br /&gt;
** scaling_setspeed - one of the values from scaling_available_frequencies&lt;br /&gt;
** NB - when userspace is selected LunaSysMgr will change the frequency as it feels.&lt;br /&gt;
&lt;br /&gt;
* powersave&lt;br /&gt;
** Nothing special&lt;br /&gt;
&lt;br /&gt;
* performance&lt;br /&gt;
** Nothing special&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* http://www.pantz.org/software/cpufreq/usingcpufreqonlinux.html&lt;br /&gt;
* http://publib.boulder.ibm.com/infocenter/lnxinfo/v3r0m0/index.jsp?topic=/liaai/cpufreq/TheOndemandGovernor.htm&lt;br /&gt;
* http://fasterdata.es.net/TCP-tuning/linux.html&lt;/div&gt;</summary>
		<author><name>Sbromwich</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Application:Govnah&amp;diff=9695</id>
		<title>Application:Govnah</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Application:Govnah&amp;diff=9695"/>
		<updated>2010-04-25T14:01:00Z</updated>

		<summary type="html">&lt;p&gt;Sbromwich: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{application&lt;br /&gt;
|name=Govnah&lt;br /&gt;
|type=webOS&lt;br /&gt;
|version=In Development&lt;br /&gt;
|tag=Utilities&lt;br /&gt;
|screenshot=Govnah_themes.png&lt;br /&gt;
|description=}}&lt;br /&gt;
&lt;br /&gt;
== Summary == &lt;br /&gt;
{{icon|Icon_WebOSInternals_Govnah.png|float:right;}}An App to do things.&lt;br /&gt;
&lt;br /&gt;
Available in the WebOS Internals Testing Feed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
* Main Scene&lt;br /&gt;
** Title Header (like preware/wirc/etc webos-internals apps)&lt;br /&gt;
** Current Governor (Tap to go to Governor Settings)&lt;br /&gt;
** Current Frequency&lt;br /&gt;
** Misc Stats&lt;br /&gt;
*** ...?&lt;br /&gt;
*** Graph of CPU temp over time&lt;br /&gt;
&lt;br /&gt;
* CPU Governor Scene&lt;br /&gt;
** Dropdown to change governor (SelectList)&lt;br /&gt;
** Form of all current settings for selected governor (dynamically generated from information provided by service)&lt;br /&gt;
&lt;br /&gt;
* IO Scheduler Scene&lt;br /&gt;
** Dropdown to select scheduler (cfq, noop, as etc.)&lt;br /&gt;
&lt;br /&gt;
* TCP Congestion Algo Scene?&lt;br /&gt;
&lt;br /&gt;
* App Icon (changes to display indication of CPU temp)&lt;br /&gt;
&lt;br /&gt;
=== Load Reduction ===&lt;br /&gt;
* Govnah is saving data to an array which grows over time and sucks down CPU time/memory iterating over the array.&lt;br /&gt;
* Use sqlite db for saving?&lt;br /&gt;
* To reduce disk writes, have a preference option to save to /media/ramdisk if the user is only interested in the current session for pinch zooming - should reduce disk writes and improve performance though data will be lost on boot.&lt;br /&gt;
* Preference setting for frequency of polling.&lt;br /&gt;
* Use fixed array or circular buffer instead, though this will stop pinch scrolling from going back too far (another preference option?)&lt;br /&gt;
&lt;br /&gt;
=== Governor Settings ===&lt;br /&gt;
* Generic items (needed for all)&lt;br /&gt;
** scaling_max_freq - Set the maximum frequency your CPU(s) are allowed to scale to. Look at the output from scaling_available_frequencies&lt;br /&gt;
** scaling_min_freq - Same as scaling_max_freq but setting a value that will not allow the CPU(s) to go below.&lt;br /&gt;
* ondemand&lt;br /&gt;
** sampling_rate - This is measured in microseconds (one millionth of a second). This is how often you want the kernel to look at the CPU usage and to make decisions on what to do about the frequency. Typically this is set to values of around '10000' or more. If you wanted to set the sampling rate to 1 second you would set it to 1000000 like in the following example.&lt;br /&gt;
** sampling_rate_(min|max) - This is minimum and maximum sampling rates available that you may set 'sampling_rate' to. I believe in microseconds also. &lt;br /&gt;
** up_threshold - This defines what the average CPU usage between the samplings of 'sampling_rate' needs to be for the kernel to make a decision on whether or not it should increase the frequency. For example when it is set to its default value of '80' it means that between the checking intervals the CPU needs to be on average more than 80% in use to then decide that the CPU frequency needs to be increased. &lt;br /&gt;
** ignore_nice_load - This parameter takes a value of '0' or '1'. When set to '0' (its default), all processes are counted towards the 'cpu utilization' value. When set to '1', the processes that are run with a 'nice' value will not count (and thus be ignored) in the overall usage calculation. &lt;br /&gt;
** powersave_bias - This modifies the behavior of the ondemand governor to save more power by reducing the target frequency by a specified percentage. By default, (powersave_bias  = 0), the ondemand governor selects the minimum processor frequency that can still complete a workload with minimal idle time. Doing so should result in the highest performance to power efficiency ratio. In some cases, you might prefer a greater emphasis on power efficiency than performance. In this case, set the powersave_bias parameter to a value between 1 and 1000 to reduce the target frequency by one-thousandth of that value. For example, set powersave_bias to 100 for a one-tenth reduction in target frequency. In this case, if the governor chooses a target frequency of 2 GHz (with powersave_bias  = 100), the governor instead will request 1.8GHz – a one-tenth reduction. If 1.8 GHz is an exact match with an available hardware frequency (listed in the scaling_available_freq parameter), the processor is set to this frequency. If 1.8 GHz is not available, the processor fluctuates between the closest available upper and lower frequencies for an average frequency of 1.8 GHz. (from IBM web page). The original author of the ondemand powersave_bias code explains it as &amp;quot;For example, If ondemand requests 2.0GHz based on utilization, and powersave_bias=100, this code will knock 10% off the target and seek a target of 1.8GHz instead of 2.0GHz until the next sampling. If 1.8 is an exact match with an hardware frequency we use it, otherwise we average our time between the frequency next higher than 1.8 and next lower than 1.8&amp;quot; (from http://osdir.com/ml/kernel.cpufreq/2006-07/msg00114.html ) - the key word appears to be &amp;quot;average&amp;quot;.&lt;br /&gt;
* conservative&lt;br /&gt;
** freq_step - This describes what percentage steps the CPU freq should be increased and decreased smoothly by. By default the CPU frequency will increase in 5% chunks of your maximum CPU frequency. You can change this value to anywhere between 0 and 100 where '0' will effectively lock your CPU at a speed regardless of its load whilst '100' will, in theory, make it behave identically to the &amp;quot;ondemand&amp;quot; governor. &lt;br /&gt;
** down_threshold - This is same as the 'up_threshold' found for the &amp;quot;ondemand&amp;quot; governor but for the opposite direction. For example when set to its default value of '20' it means that if the CPU usage needs to be below 20% between samples to have the frequency decreased. &lt;br /&gt;
** sampling_rate - same as ondemand.&lt;br /&gt;
** sampling_rate_(min|max) - same as ondemand.&lt;br /&gt;
** up_threshold - same as ondemand.&lt;br /&gt;
** ignore_nice_load - same as ondemand.&lt;br /&gt;
* userspace&lt;br /&gt;
** scaling_setspeed - one of the values from scaling_available_frequencies&lt;br /&gt;
** NB - when userspace is selected LunaSysMgr will change the frequency as it feels.&lt;br /&gt;
* powersave&lt;br /&gt;
** Nothing special&lt;br /&gt;
* performance&lt;br /&gt;
** Nothing special&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* http://www.pantz.org/software/cpufreq/usingcpufreqonlinux.html&lt;br /&gt;
* http://publib.boulder.ibm.com/infocenter/lnxinfo/v3r0m0/index.jsp?topic=/liaai/cpufreq/TheOndemandGovernor.htm&lt;br /&gt;
* http://fasterdata.es.net/TCP-tuning/linux.html&lt;/div&gt;</summary>
		<author><name>Sbromwich</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Application:Govnah&amp;diff=9694</id>
		<title>Application:Govnah</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Application:Govnah&amp;diff=9694"/>
		<updated>2010-04-25T14:00:33Z</updated>

		<summary type="html">&lt;p&gt;Sbromwich: Clarified powersave bias with info from Venkatesh Pallipadi&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{application&lt;br /&gt;
|name=Govnah&lt;br /&gt;
|type=webOS&lt;br /&gt;
|version=In Development&lt;br /&gt;
|tag=Utilities&lt;br /&gt;
|screenshot=Govnah_themes.png&lt;br /&gt;
|description=}}&lt;br /&gt;
&lt;br /&gt;
== Summary == &lt;br /&gt;
{{icon|Icon_WebOSInternals_Govnah.png|float:right;}}An App to do things.&lt;br /&gt;
&lt;br /&gt;
Available in the WebOS Internals Testing Feed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
* Main Scene&lt;br /&gt;
** Title Header (like preware/wirc/etc webos-internals apps)&lt;br /&gt;
** Current Governor (Tap to go to Governor Settings)&lt;br /&gt;
** Current Frequency&lt;br /&gt;
** Misc Stats&lt;br /&gt;
*** ...?&lt;br /&gt;
*** Graph of CPU temp over time&lt;br /&gt;
&lt;br /&gt;
* CPU Governor Scene&lt;br /&gt;
** Dropdown to change governor (SelectList)&lt;br /&gt;
** Form of all current settings for selected governor (dynamically generated from information provided by service)&lt;br /&gt;
&lt;br /&gt;
* IO Scheduler Scene&lt;br /&gt;
** Dropdown to select scheduler (cfq, noop, as etc.)&lt;br /&gt;
&lt;br /&gt;
* TCP Congestion Algo Scene?&lt;br /&gt;
&lt;br /&gt;
* App Icon (changes to display indication of CPU temp)&lt;br /&gt;
&lt;br /&gt;
=== Load Reduction ===&lt;br /&gt;
* Govnah is saving data to an array which grows over time and sucks down CPU time/memory iterating over the array.&lt;br /&gt;
* Use sqlite db for saving?&lt;br /&gt;
* To reduce disk writes, have a preference option to save to /media/ramdisk if the user is only interested in the current session for pinch zooming - should reduce disk writes and improve performance though data will be lost on boot.&lt;br /&gt;
* Preference setting for frequency of polling.&lt;br /&gt;
* Use fixed array or circular buffer instead, though this will stop pinch scrolling from going back too far (another preference option?)&lt;br /&gt;
&lt;br /&gt;
=== Governor Settings ===&lt;br /&gt;
* Generic items (needed for all)&lt;br /&gt;
** scaling_max_freq - Set the maximum frequency your CPU(s) are allowed to scale to. Look at the output from scaling_available_frequencies&lt;br /&gt;
** scaling_min_freq - Same as scaling_max_freq but setting a value that will not allow the CPU(s) to go below.&lt;br /&gt;
* ondemand&lt;br /&gt;
** sampling_rate - This is measured in microseconds (one millionth of a second). This is how often you want the kernel to look at the CPU usage and to make decisions on what to do about the frequency. Typically this is set to values of around '10000' or more. If you wanted to set the sampling rate to 1 second you would set it to 1000000 like in the following example.&lt;br /&gt;
** sampling_rate_(min|max) - This is minimum and maximum sampling rates available that you may set 'sampling_rate' to. I believe in microseconds also. &lt;br /&gt;
** up_threshold - This defines what the average CPU usage between the samplings of 'sampling_rate' needs to be for the kernel to make a decision on whether or not it should increase the frequency. For example when it is set to its default value of '80' it means that between the checking intervals the CPU needs to be on average more than 80% in use to then decide that the CPU frequency needs to be increased. &lt;br /&gt;
** ignore_nice_load - This parameter takes a value of '0' or '1'. When set to '0' (its default), all processes are counted towards the 'cpu utilization' value. When set to '1', the processes that are run with a 'nice' value will not count (and thus be ignored) in the overall usage calculation. &lt;br /&gt;
** powersave_bias - This modifies the behavior of the ondemand governor to save more power by reducing the target frequency by a specified percentage. By default, (powersave_bias  = 0), the ondemand governor selects the minimum processor frequency that can still complete a workload with minimal idle time. Doing so should result in the highest performance to power efficiency ratio. In some cases, you might prefer a greater emphasis on power efficiency than performance. In this case, set the powersave_bias parameter to a value between 1 and 1000 to reduce the target frequency by one-thousandth of that value. For example, set powersave_bias to 100 for a one-tenth reduction in target frequency. In this case, if the governor chooses a target frequency of 2 GHz (with powersave_bias  = 100), the governor instead will request 1.8GHz – a one-tenth reduction. If 1.8 GHz is an exact match with an available hardware frequency (listed in the scaling_available_freq parameter), the processor is set to this frequency. If 1.8 GHz is not available, the processor fluctuates between the closest available upper and lower frequencies for an average frequency of 1.8 GHz. (from IBM web page). The original author of the ondemand powersave_bias code explains it as &amp;quot;For example, If ondemand requests 2.0GHz based on utilization,&lt;br /&gt;
and powersave_bias=100, this code will knock 10% off the target and seek a target of 1.8GHz instead of 2.0GHz until the next sampling. If 1.8 is an exact match with an hardware frequency we use it, otherwise we average our time between the frequency next higher than 1.8 and next lower than 1.8&amp;quot; (from http://osdir.com/ml/kernel.cpufreq/2006-07/msg00114.html ) - the key word appears to be &amp;quot;average&amp;quot;.&lt;br /&gt;
* conservative&lt;br /&gt;
** freq_step - This describes what percentage steps the CPU freq should be increased and decreased smoothly by. By default the CPU frequency will increase in 5% chunks of your maximum CPU frequency. You can change this value to anywhere between 0 and 100 where '0' will effectively lock your CPU at a speed regardless of its load whilst '100' will, in theory, make it behave identically to the &amp;quot;ondemand&amp;quot; governor. &lt;br /&gt;
** down_threshold - This is same as the 'up_threshold' found for the &amp;quot;ondemand&amp;quot; governor but for the opposite direction. For example when set to its default value of '20' it means that if the CPU usage needs to be below 20% between samples to have the frequency decreased. &lt;br /&gt;
** sampling_rate - same as ondemand.&lt;br /&gt;
** sampling_rate_(min|max) - same as ondemand.&lt;br /&gt;
** up_threshold - same as ondemand.&lt;br /&gt;
** ignore_nice_load - same as ondemand.&lt;br /&gt;
* userspace&lt;br /&gt;
** scaling_setspeed - one of the values from scaling_available_frequencies&lt;br /&gt;
** NB - when userspace is selected LunaSysMgr will change the frequency as it feels.&lt;br /&gt;
* powersave&lt;br /&gt;
** Nothing special&lt;br /&gt;
* performance&lt;br /&gt;
** Nothing special&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* http://www.pantz.org/software/cpufreq/usingcpufreqonlinux.html&lt;br /&gt;
* http://publib.boulder.ibm.com/infocenter/lnxinfo/v3r0m0/index.jsp?topic=/liaai/cpufreq/TheOndemandGovernor.htm&lt;br /&gt;
* http://fasterdata.es.net/TCP-tuning/linux.html&lt;/div&gt;</summary>
		<author><name>Sbromwich</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Application:Govnah&amp;diff=9681</id>
		<title>Application:Govnah</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Application:Govnah&amp;diff=9681"/>
		<updated>2010-04-23T12:05:36Z</updated>

		<summary type="html">&lt;p&gt;Sbromwich: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{application&lt;br /&gt;
|name=Govnah&lt;br /&gt;
|type=webOS&lt;br /&gt;
|version=In Development&lt;br /&gt;
|tag=Utilities&lt;br /&gt;
|screenshot=Govnah_ss1.png&lt;br /&gt;
|description=}}&lt;br /&gt;
&lt;br /&gt;
== Summary == &lt;br /&gt;
{{icon|Icon_WebOSInternals_Govnah.png|float:right;}}An App to do things.&lt;br /&gt;
&lt;br /&gt;
Available in the WebOS Internals Testing Feed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
* Main Scene&lt;br /&gt;
** Title Header (like preware/wirc/etc webos-internals apps)&lt;br /&gt;
** Current Governor (Tap to go to Governor Settings)&lt;br /&gt;
** Current Frequency&lt;br /&gt;
** Misc Stats&lt;br /&gt;
*** ...?&lt;br /&gt;
*** Graph of CPU temp over time&lt;br /&gt;
&lt;br /&gt;
* Governor Scene&lt;br /&gt;
** Dropdown to change governor (SelectList)&lt;br /&gt;
** Form of all current settings for selected governor (dynamically generated from information provided by service)&lt;br /&gt;
&lt;br /&gt;
* App Icon (changes to display indication of CPU temp)&lt;br /&gt;
&lt;br /&gt;
=== Load Reduction ===&lt;br /&gt;
* Govnah is saving data to an array which grows over time and sucks down CPU time/memory iterating over the array.&lt;br /&gt;
* Use sqlite db for saving?&lt;br /&gt;
* To reduce disk writes, have a preference option to save to /media/ramdisk if the user is only interested in the current session for pinch zooming - should reduce disk writes and improve performance though data will be lost on boot.&lt;br /&gt;
* Preference setting for frequency of polling.&lt;br /&gt;
* Use fixed array or circular buffer instead, though this will stop pinch scrolling from going back too far (another preference option?)&lt;br /&gt;
&lt;br /&gt;
=== Governor Settings ===&lt;br /&gt;
* Generic items (needed for all)&lt;br /&gt;
** scaling_max_freq - Set the maximum frequency your CPU(s) are allowed to scale to. Look at the output from scaling_available_frequencies&lt;br /&gt;
** scaling_min_freq - Same as scaling_max_freq but setting a value that will not allow the CPU(s) to go below.&lt;br /&gt;
* ondemand&lt;br /&gt;
** sampling_rate - This is measured in microseconds (one millionth of a second). This is how often you want the kernel to look at the CPU usage and to make decisions on what to do about the frequency. Typically this is set to values of around '10000' or more. If you wanted to set the sampling rate to 1 second you would set it to 1000000 like in the following example.&lt;br /&gt;
** sampling_rate_(min|max) - This is minimum and maximum sampling rates available that you may set 'sampling_rate' to. I believe in microseconds also. &lt;br /&gt;
** up_threshold - This defines what the average CPU usage between the samplings of 'sampling_rate' needs to be for the kernel to make a decision on whether or not it should increase the frequency. For example when it is set to its default value of '80' it means that between the checking intervals the CPU needs to be on average more than 80% in use to then decide that the CPU frequency needs to be increased. &lt;br /&gt;
** ignore_nice_load - This parameter takes a value of '0' or '1'. When set to '0' (its default), all processes are counted towards the 'cpu utilization' value. When set to '1', the processes that are run with a 'nice' value will not count (and thus be ignored) in the overall usage calculation. &lt;br /&gt;
* conservative&lt;br /&gt;
** freq_step - This describes what percentage steps the CPU freq should be increased and decreased smoothly by. By default the CPU frequency will increase in 5% chunks of your maximum CPU frequency. You can change this value to anywhere between 0 and 100 where '0' will effectively lock your CPU at a speed regardless of its load whilst '100' will, in theory, make it behave identically to the &amp;quot;ondemand&amp;quot; governor. &lt;br /&gt;
** down_threshold - This is same as the 'up_threshold' found for the &amp;quot;ondemand&amp;quot; governor but for the opposite direction. For example when set to its default value of '20' it means that if the CPU usage needs to be below 20% between samples to have the frequency decreased. &lt;br /&gt;
** sampling_rate - same as ondemand.&lt;br /&gt;
** sampling_rate_(min|max) - same as ondemand.&lt;br /&gt;
** up_threshold - same as ondemand.&lt;br /&gt;
** ignore_nice_load - same as ondemand.&lt;br /&gt;
* userspace&lt;br /&gt;
** scaling_setspeed - one of the values from scaling_available_frequencies&lt;br /&gt;
** NB - when userspace is selected LunaSysMgr will change the frequency as it feels.&lt;br /&gt;
* powersave&lt;br /&gt;
** Nothing special&lt;br /&gt;
* performance&lt;br /&gt;
** Nothing special&lt;/div&gt;</summary>
		<author><name>Sbromwich</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Adding_patches_through_git&amp;diff=9659</id>
		<title>Adding patches through git</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Adding_patches_through_git&amp;diff=9659"/>
		<updated>2010-04-23T00:23:11Z</updated>

		<summary type="html">&lt;p&gt;Sbromwich: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''WIP incomplete'''&lt;br /&gt;
&lt;br /&gt;
Add patches to be committed to the Preware feed by following this guide.&lt;br /&gt;
&lt;br /&gt;
= Prerequisites =&lt;br /&gt;
&lt;br /&gt;
* SSH key generated, with the id_dsa.pub authorised for commital on git.webos-internals.org (rwhitby is able to do this)&lt;br /&gt;
* GPL compliant patch to submit (preferably with a .patch extension)&lt;br /&gt;
&lt;br /&gt;
= Initialising your local repository =&lt;br /&gt;
&lt;br /&gt;
* You will need to pull down the kernel/patches repository as a starting point with &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;git clone git@git.webos-internals.org:kernels/patches.git&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A worked example is as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/kernels$ git clone git@git.webos-internals.org:kernels/patches.git&lt;br /&gt;
Initialized empty Git repository in /home/sbromwich/kernels/patches/.git/&lt;br /&gt;
Enter passphrase for key '/home/sbromwich/.ssh/id_dsa':&lt;br /&gt;
remote: Counting objects: 70, done.&lt;br /&gt;
remote: Compressing objects: 100% (68/68), done.&lt;br /&gt;
remote: Total 70 (delta 23), reused 0 (delta 0)&lt;br /&gt;
Receiving objects: 100% (70/70), 15.21 KiB, done.&lt;br /&gt;
Resolving deltas: 100% (23/23), done.&lt;br /&gt;
mason~/kernels$ ls&lt;br /&gt;
patches&lt;br /&gt;
mason~/kernels$ ls -l&lt;br /&gt;
total 4&lt;br /&gt;
drwxr-xr-x 5 sbromwich sbromwich 4096 Apr 22 22:17 patches&lt;br /&gt;
mason~/kernels$ cd patches/&lt;br /&gt;
mason~/kernels/patches$ ls&lt;br /&gt;
LICENSE  overclocking  sensors&lt;br /&gt;
mason~/kernels/patches$ ls -l&lt;br /&gt;
total 12&lt;br /&gt;
-rw-r--r-- 1 sbromwich sbromwich   88 Apr 22 22:17 LICENSE&lt;br /&gt;
drwxr-xr-x 2 sbromwich sbromwich 4096 Apr 22 22:17 overclocking&lt;br /&gt;
drwxr-xr-x 2 sbromwich sbromwich 4096 Apr 22 22:17 sensors&lt;br /&gt;
mason~/kernels/patches$&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Create a directory for your patch(es) and copy them in there.&lt;br /&gt;
&lt;br /&gt;
= Tag patches and submit to git =&lt;br /&gt;
&lt;br /&gt;
* Find the next available git tag with &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;git -l&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the following case, the next tag is v1.4.1-10:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/kernels/patches/prcm$ git tag -l&lt;br /&gt;
v1.4.0-0&lt;br /&gt;
v1.4.0-1&lt;br /&gt;
v1.4.1-1&lt;br /&gt;
v1.4.1-2&lt;br /&gt;
v1.4.1-3&lt;br /&gt;
v1.4.1-4&lt;br /&gt;
v1.4.1-5&lt;br /&gt;
v1.4.1-6&lt;br /&gt;
v1.4.1-7&lt;br /&gt;
v1.4.1-8&lt;br /&gt;
v1.4.1-9&lt;br /&gt;
mason~/kernels/patches/prcm$&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Tag the files with a meaningful commit message and the tag from the previous step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/kernels/patches/prcm$ git tag -a -m &amp;quot;PRCM resume from suspend fix/kludge&amp;quot; v1.4.1-10&lt;br /&gt;
mason~/kernels/patches/prcm$ &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Send the tagged files to the upstream repository with &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;git push ; git push --tags&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/kernels/patches/prcm$ git push ; git push --tags&lt;br /&gt;
Enter passphrase for key '/home/sbromwich/.ssh/id_dsa': &lt;br /&gt;
Everything up-to-date&lt;br /&gt;
Enter passphrase for key '/home/sbromwich/.ssh/id_dsa': &lt;br /&gt;
Counting objects: 1, done.&lt;br /&gt;
Writing objects: 100% (1/1), 187 bytes, done.&lt;br /&gt;
Total 1 (delta 0), reused 0 (delta 0)&lt;br /&gt;
To git@git.webos-internals.org:kernels/patches.git&lt;br /&gt;
 * [new tag]         v1.4.1-10 -&amp;gt; v1.4.1-10&lt;br /&gt;
mason~/kernels/patches/prcm$ &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Commit the tagged files to git =&lt;br /&gt;
&lt;br /&gt;
Committing the tagged files is the following three step process:&lt;br /&gt;
&lt;br /&gt;
* git add filenames&lt;br /&gt;
* git commit -m &amp;quot;commit message&amp;quot; filenames&lt;br /&gt;
* git push&lt;br /&gt;
&lt;br /&gt;
Worked example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/kernels/patches/prcm$ git add *&lt;br /&gt;
mason~/kernels/patches/prcm$ git commit -m &amp;quot;PRCM resume from suspend fix/kludge&amp;quot; *&lt;br /&gt;
Created commit 16fbb97: PRCM resume from suspend fix/kludge&lt;br /&gt;
 3 files changed, 84 insertions(+), 0 deletions(-)&lt;br /&gt;
 create mode 100644 prcm/README&lt;br /&gt;
 create mode 100644 prcm/prcm_clk.c.diff&lt;br /&gt;
 create mode 100644 prcm/proc_pwr.c.diff&lt;br /&gt;
mason~/kernels/patches/prcm$ git push&lt;br /&gt;
Enter passphrase for key '/home/sbromwich/.ssh/id_dsa': &lt;br /&gt;
Counting objects: 7, done.&lt;br /&gt;
Compressing objects: 100% (6/6), done.&lt;br /&gt;
Writing objects: 100% (6/6), 1.96 KiB, done.&lt;br /&gt;
Total 6 (delta 0), reused 0 (delta 0)&lt;br /&gt;
To git@git.webos-internals.org:kernels/patches.git&lt;br /&gt;
   b949e1d..16fbb97  master -&amp;gt; master&lt;br /&gt;
mason~/kernels/patches/prcm$&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Uh-oh, I screwed up a commit - how do I remove a file? =&lt;br /&gt;
&lt;br /&gt;
If you inadvertently commit a file in error, it is easy to remove with &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
git remove filename&lt;br /&gt;
git commit -m &amp;quot;commit message&amp;quot; filename&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Worked example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/build/hardware/uber-kernel-pre/build$ git rm src-1.4.1-6/linux-2.6.24/.config&lt;br /&gt;
rm 'hardware/uber-kernel-pre/build/src-1.4.1-6/linux-2.6.24/.config'&lt;br /&gt;
mason~/build/hardware/uber-kernel-pre/build$ git commit -m &amp;quot;Removing .config that should not have been committed in the first place&amp;quot; src-1.4.1-6/linux-2.6.24/.config&lt;br /&gt;
Created commit cd95fd3: Removing .config that should not have been committed in the first place&lt;br /&gt;
 1 files changed, 0 insertions(+), 1892 deletions(-)&lt;br /&gt;
 delete mode 100644 hardware/uber-kernel-pre/build/src-1.4.1-6/linux-2.6.24/.config&lt;br /&gt;
mason~/build/hardware/uber-kernel-pre/build$ &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you have modified the file, you will need to force the commit with the -f flag, as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&lt;br /&gt;
mason~/build/hardware/uber-kernel-pre/build$ git rm -f src-1.4.1-6/linux-2.6.24/arch/arm/mach-omap3pe/prcm_pwr.c src-1.4.1-6/linux-2.6.24/include/linux/vermagic.h&lt;br /&gt;
rm 'hardware/uber-kernel-pre/build/src-1.4.1-6/linux-2.6.24/arch/arm/mach-omap3pe/prcm_pwr.c'&lt;br /&gt;
rm 'hardware/uber-kernel-pre/build/src-1.4.1-6/linux-2.6.24/include/linux/vermagic.h'&lt;br /&gt;
mason~/build/hardware/uber-kernel-pre/build$ git commit -m &amp;quot;Removing commits that should not have been committed&amp;quot; src-1.4.1-6/linux-2.6.24/arch/arm/mach-omap3pe/prcm_pwr.c src-1.4.1-6/linux-2.6.24/include/linux/vermagic.h&lt;br /&gt;
Created commit 73eb872: Removing commits that should not have been committed&lt;br /&gt;
 2 files changed, 0 insertions(+), 1885 deletions(-)&lt;br /&gt;
 delete mode 100644 hardware/uber-kernel-pre/build/src-1.4.1-6/linux-2.6.24/arch/arm/mach-omap3pe/prcm_pwr.c&lt;br /&gt;
 delete mode 100644 hardware/uber-kernel-pre/build/src-1.4.1-6/linux-2.6.24/include/linux/vermagic.h&lt;br /&gt;
mason~/build/hardware/uber-kernel-pre/build$ &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sbromwich</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Adding_patches_through_git&amp;diff=9658</id>
		<title>Adding patches through git</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Adding_patches_through_git&amp;diff=9658"/>
		<updated>2010-04-23T00:17:32Z</updated>

		<summary type="html">&lt;p&gt;Sbromwich: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''WIP incomplete'''&lt;br /&gt;
&lt;br /&gt;
Add patches to be committed to the Preware feed by following this guide.&lt;br /&gt;
&lt;br /&gt;
= Prerequisites =&lt;br /&gt;
&lt;br /&gt;
* SSH key generated, with the id_dsa.pub authorised for commital on git.webos-internals.org (rwhitby is able to do this)&lt;br /&gt;
* GPL compliant patch to submit (preferably with a .patch extension)&lt;br /&gt;
&lt;br /&gt;
= Initialising your local repository =&lt;br /&gt;
&lt;br /&gt;
* You will need to pull down the kernel/patches repository as a starting point with &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;git clone git@git.webos-internals.org:kernels/patches.git&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A worked example is as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/kernels$ git clone git@git.webos-internals.org:kernels/patches.git&lt;br /&gt;
Initialized empty Git repository in /home/sbromwich/kernels/patches/.git/&lt;br /&gt;
Enter passphrase for key '/home/sbromwich/.ssh/id_dsa':&lt;br /&gt;
remote: Counting objects: 70, done.&lt;br /&gt;
remote: Compressing objects: 100% (68/68), done.&lt;br /&gt;
remote: Total 70 (delta 23), reused 0 (delta 0)&lt;br /&gt;
Receiving objects: 100% (70/70), 15.21 KiB, done.&lt;br /&gt;
Resolving deltas: 100% (23/23), done.&lt;br /&gt;
mason~/kernels$ ls&lt;br /&gt;
patches&lt;br /&gt;
mason~/kernels$ ls -l&lt;br /&gt;
total 4&lt;br /&gt;
drwxr-xr-x 5 sbromwich sbromwich 4096 Apr 22 22:17 patches&lt;br /&gt;
mason~/kernels$ cd patches/&lt;br /&gt;
mason~/kernels/patches$ ls&lt;br /&gt;
LICENSE  overclocking  sensors&lt;br /&gt;
mason~/kernels/patches$ ls -l&lt;br /&gt;
total 12&lt;br /&gt;
-rw-r--r-- 1 sbromwich sbromwich   88 Apr 22 22:17 LICENSE&lt;br /&gt;
drwxr-xr-x 2 sbromwich sbromwich 4096 Apr 22 22:17 overclocking&lt;br /&gt;
drwxr-xr-x 2 sbromwich sbromwich 4096 Apr 22 22:17 sensors&lt;br /&gt;
mason~/kernels/patches$&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Create a directory for your patch(es) and copy them in there.&lt;br /&gt;
&lt;br /&gt;
= Tag patches and submit to git =&lt;br /&gt;
&lt;br /&gt;
* Find the next available git tag with &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;git -l&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the following case, the next tag is v1.4.1-10:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/kernels/patches/prcm$ git tag -l&lt;br /&gt;
v1.4.0-0&lt;br /&gt;
v1.4.0-1&lt;br /&gt;
v1.4.1-1&lt;br /&gt;
v1.4.1-2&lt;br /&gt;
v1.4.1-3&lt;br /&gt;
v1.4.1-4&lt;br /&gt;
v1.4.1-5&lt;br /&gt;
v1.4.1-6&lt;br /&gt;
v1.4.1-7&lt;br /&gt;
v1.4.1-8&lt;br /&gt;
v1.4.1-9&lt;br /&gt;
mason~/kernels/patches/prcm$&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Tag the files with a meaningful commit message and the tag from the previous step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/kernels/patches/prcm$ git tag -a -m &amp;quot;PRCM resume from suspend fix/kludge&amp;quot; v1.4.1-10&lt;br /&gt;
mason~/kernels/patches/prcm$ &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Send the tagged files to the upstream repository with &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;git push ; git push --tags&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/kernels/patches/prcm$ git push ; git push --tags&lt;br /&gt;
Enter passphrase for key '/home/sbromwich/.ssh/id_dsa': &lt;br /&gt;
Everything up-to-date&lt;br /&gt;
Enter passphrase for key '/home/sbromwich/.ssh/id_dsa': &lt;br /&gt;
Counting objects: 1, done.&lt;br /&gt;
Writing objects: 100% (1/1), 187 bytes, done.&lt;br /&gt;
Total 1 (delta 0), reused 0 (delta 0)&lt;br /&gt;
To git@git.webos-internals.org:kernels/patches.git&lt;br /&gt;
 * [new tag]         v1.4.1-10 -&amp;gt; v1.4.1-10&lt;br /&gt;
mason~/kernels/patches/prcm$ &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Commit the tagged files to git =&lt;br /&gt;
&lt;br /&gt;
Committing the tagged files is the following three step process:&lt;br /&gt;
&lt;br /&gt;
* git add filenames&lt;br /&gt;
* git commit -m &amp;quot;commit message&amp;quot; filenames&lt;br /&gt;
* git push&lt;br /&gt;
&lt;br /&gt;
Worked example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/kernels/patches/prcm$ git add *&lt;br /&gt;
mason~/kernels/patches/prcm$ git commit -m &amp;quot;PRCM resume from suspend fix/kludge&amp;quot; *&lt;br /&gt;
Created commit 16fbb97: PRCM resume from suspend fix/kludge&lt;br /&gt;
 3 files changed, 84 insertions(+), 0 deletions(-)&lt;br /&gt;
 create mode 100644 prcm/README&lt;br /&gt;
 create mode 100644 prcm/prcm_clk.c.diff&lt;br /&gt;
 create mode 100644 prcm/proc_pwr.c.diff&lt;br /&gt;
mason~/kernels/patches/prcm$ git push&lt;br /&gt;
Enter passphrase for key '/home/sbromwich/.ssh/id_dsa': &lt;br /&gt;
Counting objects: 7, done.&lt;br /&gt;
Compressing objects: 100% (6/6), done.&lt;br /&gt;
Writing objects: 100% (6/6), 1.96 KiB, done.&lt;br /&gt;
Total 6 (delta 0), reused 0 (delta 0)&lt;br /&gt;
To git@git.webos-internals.org:kernels/patches.git&lt;br /&gt;
   b949e1d..16fbb97  master -&amp;gt; master&lt;br /&gt;
mason~/kernels/patches/prcm$&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Uh-oh, I screwed up a commit - how do I remove a file? =&lt;br /&gt;
&lt;br /&gt;
If you inadvertently commit a file in error, it is easy to remove with &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
git remove filename&lt;br /&gt;
git commit -m &amp;quot;commit message&amp;quot; filename&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Worked example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/build/hardware/uber-kernel-pre/build$ git rm src-1.4.1-6/linux-2.6.24/.config&lt;br /&gt;
rm 'hardware/uber-kernel-pre/build/src-1.4.1-6/linux-2.6.24/.config'&lt;br /&gt;
mason~/build/hardware/uber-kernel-pre/build$ git commit -m &amp;quot;Removing .config that should not have been committed in the first place&amp;quot; src-1.4.1-6/linux-2.6.24/.config&lt;br /&gt;
Created commit cd95fd3: Removing .config that should not have been committed in the first place&lt;br /&gt;
 1 files changed, 0 insertions(+), 1892 deletions(-)&lt;br /&gt;
 delete mode 100644 hardware/uber-kernel-pre/build/src-1.4.1-6/linux-2.6.24/.config&lt;br /&gt;
mason~/build/hardware/uber-kernel-pre/build$ &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sbromwich</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Adding_patches_through_git&amp;diff=9657</id>
		<title>Adding patches through git</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Adding_patches_through_git&amp;diff=9657"/>
		<updated>2010-04-23T00:07:00Z</updated>

		<summary type="html">&lt;p&gt;Sbromwich: /* Prerequisites */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''WIP incomplete'''&lt;br /&gt;
&lt;br /&gt;
Add patches to be committed to the Preware feed by following this guide.&lt;br /&gt;
&lt;br /&gt;
= Prerequisites =&lt;br /&gt;
&lt;br /&gt;
* SSH key generated, with the id_dsa.pub authorised for commital on git.webos-internals.org (rwhitby is able to do this)&lt;br /&gt;
* GPL compliant patch to submit (preferably with a .patch extension)&lt;br /&gt;
&lt;br /&gt;
= Initialising your local repository =&lt;br /&gt;
&lt;br /&gt;
* You will need to pull down the kernel/patches repository as a starting point with &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;git clone git@git.webos-internals.org:kernels/patches.git&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A worked example is as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/kernels$ git clone git@git.webos-internals.org:kernels/patches.git&lt;br /&gt;
Initialized empty Git repository in /home/sbromwich/kernels/patches/.git/&lt;br /&gt;
Enter passphrase for key '/home/sbromwich/.ssh/id_dsa':&lt;br /&gt;
remote: Counting objects: 70, done.&lt;br /&gt;
remote: Compressing objects: 100% (68/68), done.&lt;br /&gt;
remote: Total 70 (delta 23), reused 0 (delta 0)&lt;br /&gt;
Receiving objects: 100% (70/70), 15.21 KiB, done.&lt;br /&gt;
Resolving deltas: 100% (23/23), done.&lt;br /&gt;
mason~/kernels$ ls&lt;br /&gt;
patches&lt;br /&gt;
mason~/kernels$ ls -l&lt;br /&gt;
total 4&lt;br /&gt;
drwxr-xr-x 5 sbromwich sbromwich 4096 Apr 22 22:17 patches&lt;br /&gt;
mason~/kernels$ cd patches/&lt;br /&gt;
mason~/kernels/patches$ ls&lt;br /&gt;
LICENSE  overclocking  sensors&lt;br /&gt;
mason~/kernels/patches$ ls -l&lt;br /&gt;
total 12&lt;br /&gt;
-rw-r--r-- 1 sbromwich sbromwich   88 Apr 22 22:17 LICENSE&lt;br /&gt;
drwxr-xr-x 2 sbromwich sbromwich 4096 Apr 22 22:17 overclocking&lt;br /&gt;
drwxr-xr-x 2 sbromwich sbromwich 4096 Apr 22 22:17 sensors&lt;br /&gt;
mason~/kernels/patches$&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Create a directory for your patch(es) and copy them in there.&lt;br /&gt;
&lt;br /&gt;
= Tag patches and submit to git =&lt;br /&gt;
&lt;br /&gt;
* Find the next available git tag with &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;git -l&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the following case, the next tag is v1.4.1-10:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/kernels/patches/prcm$ git tag -l&lt;br /&gt;
v1.4.0-0&lt;br /&gt;
v1.4.0-1&lt;br /&gt;
v1.4.1-1&lt;br /&gt;
v1.4.1-2&lt;br /&gt;
v1.4.1-3&lt;br /&gt;
v1.4.1-4&lt;br /&gt;
v1.4.1-5&lt;br /&gt;
v1.4.1-6&lt;br /&gt;
v1.4.1-7&lt;br /&gt;
v1.4.1-8&lt;br /&gt;
v1.4.1-9&lt;br /&gt;
mason~/kernels/patches/prcm$&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Tag the files with a meaningful commit message and the tag from the previous step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/kernels/patches/prcm$ git tag -a -m &amp;quot;PRCM resume from suspend fix/kludge&amp;quot; v1.4.1-10&lt;br /&gt;
mason~/kernels/patches/prcm$ &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Send the tagged files to the upstream repository with &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;git push ; git push --tags&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/kernels/patches/prcm$ git push ; git push --tags&lt;br /&gt;
Enter passphrase for key '/home/sbromwich/.ssh/id_dsa': &lt;br /&gt;
Everything up-to-date&lt;br /&gt;
Enter passphrase for key '/home/sbromwich/.ssh/id_dsa': &lt;br /&gt;
Counting objects: 1, done.&lt;br /&gt;
Writing objects: 100% (1/1), 187 bytes, done.&lt;br /&gt;
Total 1 (delta 0), reused 0 (delta 0)&lt;br /&gt;
To git@git.webos-internals.org:kernels/patches.git&lt;br /&gt;
 * [new tag]         v1.4.1-10 -&amp;gt; v1.4.1-10&lt;br /&gt;
mason~/kernels/patches/prcm$ &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Commit the tagged files to git =&lt;br /&gt;
&lt;br /&gt;
Committing the tagged files is the following three step process:&lt;br /&gt;
&lt;br /&gt;
* git add filenames&lt;br /&gt;
* git commit -m &amp;quot;commit message&amp;quot; filenames&lt;br /&gt;
* git push&lt;br /&gt;
&lt;br /&gt;
Worked example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/kernels/patches/prcm$ git add *&lt;br /&gt;
mason~/kernels/patches/prcm$ git commit -m &amp;quot;PRCM resume from suspend fix/kludge&amp;quot; *&lt;br /&gt;
Created commit 16fbb97: PRCM resume from suspend fix/kludge&lt;br /&gt;
 3 files changed, 84 insertions(+), 0 deletions(-)&lt;br /&gt;
 create mode 100644 prcm/README&lt;br /&gt;
 create mode 100644 prcm/prcm_clk.c.diff&lt;br /&gt;
 create mode 100644 prcm/proc_pwr.c.diff&lt;br /&gt;
mason~/kernels/patches/prcm$ git push&lt;br /&gt;
Enter passphrase for key '/home/sbromwich/.ssh/id_dsa': &lt;br /&gt;
Counting objects: 7, done.&lt;br /&gt;
Compressing objects: 100% (6/6), done.&lt;br /&gt;
Writing objects: 100% (6/6), 1.96 KiB, done.&lt;br /&gt;
Total 6 (delta 0), reused 0 (delta 0)&lt;br /&gt;
To git@git.webos-internals.org:kernels/patches.git&lt;br /&gt;
   b949e1d..16fbb97  master -&amp;gt; master&lt;br /&gt;
mason~/kernels/patches/prcm$&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sbromwich</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Adding_patches_through_git&amp;diff=9656</id>
		<title>Adding patches through git</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Adding_patches_through_git&amp;diff=9656"/>
		<updated>2010-04-22T23:42:54Z</updated>

		<summary type="html">&lt;p&gt;Sbromwich: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''WIP incomplete'''&lt;br /&gt;
&lt;br /&gt;
Add patches to be committed to the Preware feed by following this guide.&lt;br /&gt;
&lt;br /&gt;
= Prerequisites =&lt;br /&gt;
&lt;br /&gt;
* SSH key generated, with the id_dsa.pub authorised for commital on git.webos-internals.org (rhwitby is able to do this)&lt;br /&gt;
* GPL compliant patch to submit&lt;br /&gt;
&lt;br /&gt;
= Initialising your local repository =&lt;br /&gt;
&lt;br /&gt;
* You will need to pull down the kernel/patches repository as a starting point with &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;git clone git@git.webos-internals.org:kernels/patches.git&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A worked example is as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/kernels$ git clone git@git.webos-internals.org:kernels/patches.git&lt;br /&gt;
Initialized empty Git repository in /home/sbromwich/kernels/patches/.git/&lt;br /&gt;
Enter passphrase for key '/home/sbromwich/.ssh/id_dsa':&lt;br /&gt;
remote: Counting objects: 70, done.&lt;br /&gt;
remote: Compressing objects: 100% (68/68), done.&lt;br /&gt;
remote: Total 70 (delta 23), reused 0 (delta 0)&lt;br /&gt;
Receiving objects: 100% (70/70), 15.21 KiB, done.&lt;br /&gt;
Resolving deltas: 100% (23/23), done.&lt;br /&gt;
mason~/kernels$ ls&lt;br /&gt;
patches&lt;br /&gt;
mason~/kernels$ ls -l&lt;br /&gt;
total 4&lt;br /&gt;
drwxr-xr-x 5 sbromwich sbromwich 4096 Apr 22 22:17 patches&lt;br /&gt;
mason~/kernels$ cd patches/&lt;br /&gt;
mason~/kernels/patches$ ls&lt;br /&gt;
LICENSE  overclocking  sensors&lt;br /&gt;
mason~/kernels/patches$ ls -l&lt;br /&gt;
total 12&lt;br /&gt;
-rw-r--r-- 1 sbromwich sbromwich   88 Apr 22 22:17 LICENSE&lt;br /&gt;
drwxr-xr-x 2 sbromwich sbromwich 4096 Apr 22 22:17 overclocking&lt;br /&gt;
drwxr-xr-x 2 sbromwich sbromwich 4096 Apr 22 22:17 sensors&lt;br /&gt;
mason~/kernels/patches$&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Create a directory for your patch(es) and copy them in there.&lt;br /&gt;
&lt;br /&gt;
= Tag patches and submit to git =&lt;br /&gt;
&lt;br /&gt;
* Find the next available git tag with &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;git -l&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the following case, the next tag is v1.4.1-10:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/kernels/patches/prcm$ git tag -l&lt;br /&gt;
v1.4.0-0&lt;br /&gt;
v1.4.0-1&lt;br /&gt;
v1.4.1-1&lt;br /&gt;
v1.4.1-2&lt;br /&gt;
v1.4.1-3&lt;br /&gt;
v1.4.1-4&lt;br /&gt;
v1.4.1-5&lt;br /&gt;
v1.4.1-6&lt;br /&gt;
v1.4.1-7&lt;br /&gt;
v1.4.1-8&lt;br /&gt;
v1.4.1-9&lt;br /&gt;
mason~/kernels/patches/prcm$&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Tag the files with a meaningful commit message and the tag from the previous step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/kernels/patches/prcm$ git tag -a -m &amp;quot;PRCM resume from suspend fix/kludge&amp;quot; v1.4.1-10&lt;br /&gt;
mason~/kernels/patches/prcm$ &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Send the tagged files to the upstream repository with &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;git push ; git push --tags&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/kernels/patches/prcm$ git push ; git push --tags&lt;br /&gt;
Enter passphrase for key '/home/sbromwich/.ssh/id_dsa': &lt;br /&gt;
Everything up-to-date&lt;br /&gt;
Enter passphrase for key '/home/sbromwich/.ssh/id_dsa': &lt;br /&gt;
Counting objects: 1, done.&lt;br /&gt;
Writing objects: 100% (1/1), 187 bytes, done.&lt;br /&gt;
Total 1 (delta 0), reused 0 (delta 0)&lt;br /&gt;
To git@git.webos-internals.org:kernels/patches.git&lt;br /&gt;
 * [new tag]         v1.4.1-10 -&amp;gt; v1.4.1-10&lt;br /&gt;
mason~/kernels/patches/prcm$ &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Commit the tagged files to git =&lt;br /&gt;
&lt;br /&gt;
Committing the tagged files is the following three step process:&lt;br /&gt;
&lt;br /&gt;
* git add filenames&lt;br /&gt;
* git commit -m &amp;quot;commit message&amp;quot; filenames&lt;br /&gt;
* git push&lt;br /&gt;
&lt;br /&gt;
Worked example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/kernels/patches/prcm$ git add *&lt;br /&gt;
mason~/kernels/patches/prcm$ git commit -m &amp;quot;PRCM resume from suspend fix/kludge&amp;quot; *&lt;br /&gt;
Created commit 16fbb97: PRCM resume from suspend fix/kludge&lt;br /&gt;
 3 files changed, 84 insertions(+), 0 deletions(-)&lt;br /&gt;
 create mode 100644 prcm/README&lt;br /&gt;
 create mode 100644 prcm/prcm_clk.c.diff&lt;br /&gt;
 create mode 100644 prcm/proc_pwr.c.diff&lt;br /&gt;
mason~/kernels/patches/prcm$ git push&lt;br /&gt;
Enter passphrase for key '/home/sbromwich/.ssh/id_dsa': &lt;br /&gt;
Counting objects: 7, done.&lt;br /&gt;
Compressing objects: 100% (6/6), done.&lt;br /&gt;
Writing objects: 100% (6/6), 1.96 KiB, done.&lt;br /&gt;
Total 6 (delta 0), reused 0 (delta 0)&lt;br /&gt;
To git@git.webos-internals.org:kernels/patches.git&lt;br /&gt;
   b949e1d..16fbb97  master -&amp;gt; master&lt;br /&gt;
mason~/kernels/patches/prcm$&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sbromwich</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Adding_patches_through_git&amp;diff=9655</id>
		<title>Adding patches through git</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Adding_patches_through_git&amp;diff=9655"/>
		<updated>2010-04-22T22:55:00Z</updated>

		<summary type="html">&lt;p&gt;Sbromwich: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''WIP incomplete'''&lt;br /&gt;
&lt;br /&gt;
Add patches to be committed to the Preware feed by following this guide.&lt;br /&gt;
&lt;br /&gt;
= Prerequisites =&lt;br /&gt;
&lt;br /&gt;
* SSH key generated, with the id_dsa.pub authorised for commital on git.webos-internals.org (rhwitby is able to do this)&lt;br /&gt;
* GPL compliant patch to submit&lt;br /&gt;
&lt;br /&gt;
= Initialising your local repository =&lt;br /&gt;
&lt;br /&gt;
* You will need to pull down the kernel/patches repository as a starting point with &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;git clone git@git.webos-internals.org:kernels/patches.git&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A worked example is as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/kernels$ git clone git@git.webos-internals.org:kernels/patches.git&lt;br /&gt;
Initialized empty Git repository in /home/sbromwich/kernels/patches/.git/&lt;br /&gt;
Enter passphrase for key '/home/sbromwich/.ssh/id_dsa':&lt;br /&gt;
remote: Counting objects: 70, done.&lt;br /&gt;
remote: Compressing objects: 100% (68/68), done.&lt;br /&gt;
remote: Total 70 (delta 23), reused 0 (delta 0)&lt;br /&gt;
Receiving objects: 100% (70/70), 15.21 KiB, done.&lt;br /&gt;
Resolving deltas: 100% (23/23), done.&lt;br /&gt;
mason~/kernels$ ls&lt;br /&gt;
patches&lt;br /&gt;
mason~/kernels$ ls -l&lt;br /&gt;
total 4&lt;br /&gt;
drwxr-xr-x 5 sbromwich sbromwich 4096 Apr 22 22:17 patches&lt;br /&gt;
mason~/kernels$ cd patches/&lt;br /&gt;
mason~/kernels/patches$ ls&lt;br /&gt;
LICENSE  overclocking  sensors&lt;br /&gt;
mason~/kernels/patches$ ls -l&lt;br /&gt;
total 12&lt;br /&gt;
-rw-r--r-- 1 sbromwich sbromwich   88 Apr 22 22:17 LICENSE&lt;br /&gt;
drwxr-xr-x 2 sbromwich sbromwich 4096 Apr 22 22:17 overclocking&lt;br /&gt;
drwxr-xr-x 2 sbromwich sbromwich 4096 Apr 22 22:17 sensors&lt;br /&gt;
mason~/kernels/patches$&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Create a directory for your patch(es) and copy them in there.&lt;br /&gt;
&lt;br /&gt;
= Tag patches and submit to git =&lt;br /&gt;
&lt;br /&gt;
* Find the next available git tag with &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;git -l&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the following case, the next tag is v1.4.1-10:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/kernels/patches/prcm$ git tag -l&lt;br /&gt;
v1.4.0-0&lt;br /&gt;
v1.4.0-1&lt;br /&gt;
v1.4.1-1&lt;br /&gt;
v1.4.1-2&lt;br /&gt;
v1.4.1-3&lt;br /&gt;
v1.4.1-4&lt;br /&gt;
v1.4.1-5&lt;br /&gt;
v1.4.1-6&lt;br /&gt;
v1.4.1-7&lt;br /&gt;
v1.4.1-8&lt;br /&gt;
v1.4.1-9&lt;br /&gt;
mason~/kernels/patches/prcm$&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Tag the files with a meaningful commit message and the tag from the previous step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/kernels/patches/prcm$ git tag -a -m &amp;quot;PRCM resume from suspend fix/kludge&amp;quot; v1.4.1-10&lt;br /&gt;
mason~/kernels/patches/prcm$ &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Send the tagged files to the upstream repository with &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;git push ; git push --tags&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/kernels/patches/prcm$ git push ; git push --tags&lt;br /&gt;
Enter passphrase for key '/home/sbromwich/.ssh/id_dsa': &lt;br /&gt;
Everything up-to-date&lt;br /&gt;
Enter passphrase for key '/home/sbromwich/.ssh/id_dsa': &lt;br /&gt;
Counting objects: 1, done.&lt;br /&gt;
Writing objects: 100% (1/1), 187 bytes, done.&lt;br /&gt;
Total 1 (delta 0), reused 0 (delta 0)&lt;br /&gt;
To git@git.webos-internals.org:kernels/patches.git&lt;br /&gt;
 * [new tag]         v1.4.1-10 -&amp;gt; v1.4.1-10&lt;br /&gt;
mason~/kernels/patches/prcm$ &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sbromwich</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Adding_patches_through_git&amp;diff=9654</id>
		<title>Adding patches through git</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Adding_patches_through_git&amp;diff=9654"/>
		<updated>2010-04-22T22:51:18Z</updated>

		<summary type="html">&lt;p&gt;Sbromwich: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Add patches to be committed to the Preware feed by following this guide.&lt;br /&gt;
&lt;br /&gt;
= Prerequisites =&lt;br /&gt;
&lt;br /&gt;
* SSH key generated, with the id_dsa.pub authorised for commital on git.webos-internals.org (rhwitby is able to do this)&lt;br /&gt;
* GPL compliant patch to submit&lt;br /&gt;
&lt;br /&gt;
= Initialising your local repository =&lt;br /&gt;
&lt;br /&gt;
* You will need to pull down the kernel/patches repository as a starting point with &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;git clone git@git.webos-internals.org:kernels/patches.git&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A worked example is as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/kernels$ git clone git@git.webos-internals.org:kernels/patches.git&lt;br /&gt;
Initialized empty Git repository in /home/sbromwich/kernels/patches/.git/&lt;br /&gt;
Enter passphrase for key '/home/sbromwich/.ssh/id_dsa':&lt;br /&gt;
remote: Counting objects: 70, done.&lt;br /&gt;
remote: Compressing objects: 100% (68/68), done.&lt;br /&gt;
remote: Total 70 (delta 23), reused 0 (delta 0)&lt;br /&gt;
Receiving objects: 100% (70/70), 15.21 KiB, done.&lt;br /&gt;
Resolving deltas: 100% (23/23), done.&lt;br /&gt;
mason~/kernels$ ls&lt;br /&gt;
patches&lt;br /&gt;
mason~/kernels$ ls -l&lt;br /&gt;
total 4&lt;br /&gt;
drwxr-xr-x 5 sbromwich sbromwich 4096 Apr 22 22:17 patches&lt;br /&gt;
mason~/kernels$ cd patches/&lt;br /&gt;
mason~/kernels/patches$ ls&lt;br /&gt;
LICENSE  overclocking  sensors&lt;br /&gt;
mason~/kernels/patches$ ls -l&lt;br /&gt;
total 12&lt;br /&gt;
-rw-r--r-- 1 sbromwich sbromwich   88 Apr 22 22:17 LICENSE&lt;br /&gt;
drwxr-xr-x 2 sbromwich sbromwich 4096 Apr 22 22:17 overclocking&lt;br /&gt;
drwxr-xr-x 2 sbromwich sbromwich 4096 Apr 22 22:17 sensors&lt;br /&gt;
mason~/kernels/patches$&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Create a directory for your patch(es) and copy them in there.&lt;br /&gt;
&lt;br /&gt;
= Tag patches and submit to git =&lt;br /&gt;
&lt;br /&gt;
* Find the next available git tag with &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;git -l&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the following case, the next tag is v1.4.1-10:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/kernels/patches/prcm$ git tag -l&lt;br /&gt;
v1.4.0-0&lt;br /&gt;
v1.4.0-1&lt;br /&gt;
v1.4.1-1&lt;br /&gt;
v1.4.1-2&lt;br /&gt;
v1.4.1-3&lt;br /&gt;
v1.4.1-4&lt;br /&gt;
v1.4.1-5&lt;br /&gt;
v1.4.1-6&lt;br /&gt;
v1.4.1-7&lt;br /&gt;
v1.4.1-8&lt;br /&gt;
v1.4.1-9&lt;br /&gt;
mason~/kernels/patches/prcm$&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Tag the files with a meaningful commit message and the tag from the previous step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/kernels/patches/prcm$ git tag -a -m &amp;quot;PRCM resume from suspend fix/kludge&amp;quot; v1.4.1-10&lt;br /&gt;
mason~/kernels/patches/prcm$ &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Send the tagged files to the upstream repository with &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;git push ; git push --tags&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/kernels/patches/prcm$ git push ; git push --tags&lt;br /&gt;
Enter passphrase for key '/home/sbromwich/.ssh/id_dsa': &lt;br /&gt;
Everything up-to-date&lt;br /&gt;
Enter passphrase for key '/home/sbromwich/.ssh/id_dsa': &lt;br /&gt;
Counting objects: 1, done.&lt;br /&gt;
Writing objects: 100% (1/1), 187 bytes, done.&lt;br /&gt;
Total 1 (delta 0), reused 0 (delta 0)&lt;br /&gt;
To git@git.webos-internals.org:kernels/patches.git&lt;br /&gt;
 * [new tag]         v1.4.1-10 -&amp;gt; v1.4.1-10&lt;br /&gt;
mason~/kernels/patches/prcm$ &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sbromwich</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Adding_patches_through_git&amp;diff=9653</id>
		<title>Adding patches through git</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Adding_patches_through_git&amp;diff=9653"/>
		<updated>2010-04-22T22:50:13Z</updated>

		<summary type="html">&lt;p&gt;Sbromwich: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Add patches to be committed to the Preware feed by following this guide.&lt;br /&gt;
&lt;br /&gt;
= Prerequisites =&lt;br /&gt;
&lt;br /&gt;
* SSH key generated, with the id_dsa.pub authorised for commital on git.webos-internals.org (rhwitby is able to do this)&lt;br /&gt;
* GPL compliant patch to submit&lt;br /&gt;
&lt;br /&gt;
= Initialising your local repository =&lt;br /&gt;
&lt;br /&gt;
* You will need to pull down the kernel/patches repository as a starting point with &amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;git clone git@git.webos-internals.org:kernels/patches.git&amp;lt;/source&amp;gt; . A worked example is as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/kernels$ git clone git@git.webos-internals.org:kernels/patches.git&lt;br /&gt;
Initialized empty Git repository in /home/sbromwich/kernels/patches/.git/&lt;br /&gt;
Enter passphrase for key '/home/sbromwich/.ssh/id_dsa':&lt;br /&gt;
remote: Counting objects: 70, done.&lt;br /&gt;
remote: Compressing objects: 100% (68/68), done.&lt;br /&gt;
remote: Total 70 (delta 23), reused 0 (delta 0)&lt;br /&gt;
Receiving objects: 100% (70/70), 15.21 KiB, done.&lt;br /&gt;
Resolving deltas: 100% (23/23), done.&lt;br /&gt;
mason~/kernels$ ls&lt;br /&gt;
patches&lt;br /&gt;
mason~/kernels$ ls -l&lt;br /&gt;
total 4&lt;br /&gt;
drwxr-xr-x 5 sbromwich sbromwich 4096 Apr 22 22:17 patches&lt;br /&gt;
mason~/kernels$ cd patches/&lt;br /&gt;
mason~/kernels/patches$ ls&lt;br /&gt;
LICENSE  overclocking  sensors&lt;br /&gt;
mason~/kernels/patches$ ls -l&lt;br /&gt;
total 12&lt;br /&gt;
-rw-r--r-- 1 sbromwich sbromwich   88 Apr 22 22:17 LICENSE&lt;br /&gt;
drwxr-xr-x 2 sbromwich sbromwich 4096 Apr 22 22:17 overclocking&lt;br /&gt;
drwxr-xr-x 2 sbromwich sbromwich 4096 Apr 22 22:17 sensors&lt;br /&gt;
mason~/kernels/patches$&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Create a directory for your patch(es) and copy them in there.&lt;br /&gt;
&lt;br /&gt;
= Tag patches and submit to git =&lt;br /&gt;
&lt;br /&gt;
* Find the next available git tag with &amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;git -l&amp;lt;/source&amp;gt; . In the following case, the next tag is v1.4.1-10:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/kernels/patches/prcm$ git tag -l&lt;br /&gt;
v1.4.0-0&lt;br /&gt;
v1.4.0-1&lt;br /&gt;
v1.4.1-1&lt;br /&gt;
v1.4.1-2&lt;br /&gt;
v1.4.1-3&lt;br /&gt;
v1.4.1-4&lt;br /&gt;
v1.4.1-5&lt;br /&gt;
v1.4.1-6&lt;br /&gt;
v1.4.1-7&lt;br /&gt;
v1.4.1-8&lt;br /&gt;
v1.4.1-9&lt;br /&gt;
mason~/kernels/patches/prcm$&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Tag the files with a meaningful commit message and the tag from the previous step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/kernels/patches/prcm$ git tag -a -m &amp;quot;PRCM resume from suspend fix/kludge&amp;quot; v1.4.1-10&lt;br /&gt;
mason~/kernels/patches/prcm$ &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Send the tagged files to the upstream repository with &amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;git push ; git push --tags&amp;lt;/source&amp;gt; as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/kernels/patches/prcm$ git push ; git push --tags&lt;br /&gt;
Enter passphrase for key '/home/sbromwich/.ssh/id_dsa': &lt;br /&gt;
Everything up-to-date&lt;br /&gt;
Enter passphrase for key '/home/sbromwich/.ssh/id_dsa': &lt;br /&gt;
Counting objects: 1, done.&lt;br /&gt;
Writing objects: 100% (1/1), 187 bytes, done.&lt;br /&gt;
Total 1 (delta 0), reused 0 (delta 0)&lt;br /&gt;
To git@git.webos-internals.org:kernels/patches.git&lt;br /&gt;
 * [new tag]         v1.4.1-10 -&amp;gt; v1.4.1-10&lt;br /&gt;
mason~/kernels/patches/prcm$ &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sbromwich</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Adding_patches_through_git&amp;diff=9652</id>
		<title>Adding patches through git</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Adding_patches_through_git&amp;diff=9652"/>
		<updated>2010-04-22T22:49:30Z</updated>

		<summary type="html">&lt;p&gt;Sbromwich: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Add patches to be committed to the Preware feed by following this guide.&lt;br /&gt;
&lt;br /&gt;
= Prerequisites =&lt;br /&gt;
&lt;br /&gt;
* SSH key generated, with the id_dsa.pub authorised for commital on git.webos-internals.org (rhwitby is able to do this)&lt;br /&gt;
* GPL compliant patch to submit&lt;br /&gt;
&lt;br /&gt;
= Initialising your local repository =&lt;br /&gt;
&lt;br /&gt;
* You will need to pull down the kernel/patches repository as a starting point with &amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;git clone git@git.webos-internals.org:kernels/patches.git&amp;lt;/source&amp;gt; . A worked example is as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/kernels$ git clone git@git.webos-internals.org:kernels/patches.git&lt;br /&gt;
Initialized empty Git repository in /home/sbromwich/kernels/patches/.git/&lt;br /&gt;
Enter passphrase for key '/home/sbromwich/.ssh/id_dsa':&lt;br /&gt;
remote: Counting objects: 70, done.&lt;br /&gt;
remote: Compressing objects: 100% (68/68), done.&lt;br /&gt;
remote: Total 70 (delta 23), reused 0 (delta 0)&lt;br /&gt;
Receiving objects: 100% (70/70), 15.21 KiB, done.&lt;br /&gt;
Resolving deltas: 100% (23/23), done.&lt;br /&gt;
mason~/kernels$ ls&lt;br /&gt;
patches&lt;br /&gt;
mason~/kernels$ ls -l&lt;br /&gt;
total 4&lt;br /&gt;
drwxr-xr-x 5 sbromwich sbromwich 4096 Apr 22 22:17 patches&lt;br /&gt;
mason~/kernels$ cd patches/&lt;br /&gt;
mason~/kernels/patches$ ls&lt;br /&gt;
LICENSE  overclocking  sensors&lt;br /&gt;
mason~/kernels/patches$ ls -l&lt;br /&gt;
total 12&lt;br /&gt;
-rw-r--r-- 1 sbromwich sbromwich   88 Apr 22 22:17 LICENSE&lt;br /&gt;
drwxr-xr-x 2 sbromwich sbromwich 4096 Apr 22 22:17 overclocking&lt;br /&gt;
drwxr-xr-x 2 sbromwich sbromwich 4096 Apr 22 22:17 sensors&lt;br /&gt;
mason~/kernels/patches$&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Create a directory for your patch(es) and copy them in there.&lt;br /&gt;
&lt;br /&gt;
= Tag patches and submit to git =&lt;br /&gt;
&lt;br /&gt;
* Find the next available git tag with &amp;lt;source lang=&amp;quot;text&amp;quot;git -l&amp;lt;/source&amp;gt; . In the following case, the next tag is v1.4.1-10:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/kernels/patches/prcm$ git tag -l&lt;br /&gt;
v1.4.0-0&lt;br /&gt;
v1.4.0-1&lt;br /&gt;
v1.4.1-1&lt;br /&gt;
v1.4.1-2&lt;br /&gt;
v1.4.1-3&lt;br /&gt;
v1.4.1-4&lt;br /&gt;
v1.4.1-5&lt;br /&gt;
v1.4.1-6&lt;br /&gt;
v1.4.1-7&lt;br /&gt;
v1.4.1-8&lt;br /&gt;
v1.4.1-9&lt;br /&gt;
mason~/kernels/patches/prcm$&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Tag the files with a meaningful commit message and the tag from the previous step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/kernels/patches/prcm$ git tag -a -m &amp;quot;PRCM resume from suspend fix/kludge&amp;quot; v1.4.1-10&lt;br /&gt;
mason~/kernels/patches/prcm$ &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Send the tagged files to the upstream repository with &amp;lt;source lang=&amp;quot;text&amp;quot;git push ; git push --tags&amp;lt;/source&amp;gt; as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/kernels/patches/prcm$ git push ; git push --tags&lt;br /&gt;
Enter passphrase for key '/home/sbromwich/.ssh/id_dsa': &lt;br /&gt;
Everything up-to-date&lt;br /&gt;
Enter passphrase for key '/home/sbromwich/.ssh/id_dsa': &lt;br /&gt;
Counting objects: 1, done.&lt;br /&gt;
Writing objects: 100% (1/1), 187 bytes, done.&lt;br /&gt;
Total 1 (delta 0), reused 0 (delta 0)&lt;br /&gt;
To git@git.webos-internals.org:kernels/patches.git&lt;br /&gt;
 * [new tag]         v1.4.1-10 -&amp;gt; v1.4.1-10&lt;br /&gt;
mason~/kernels/patches/prcm$ &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sbromwich</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Adding_patches_through_git&amp;diff=9651</id>
		<title>Adding patches through git</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Adding_patches_through_git&amp;diff=9651"/>
		<updated>2010-04-22T22:48:17Z</updated>

		<summary type="html">&lt;p&gt;Sbromwich: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Add patches to be committed to the Preware feed by following this guide.&lt;br /&gt;
&lt;br /&gt;
= Prerequisites =&lt;br /&gt;
&lt;br /&gt;
* SSH key generated, with the id_dsa.pub authorised for commital on git.webos-internals.org (rhwitby is able to do this)&lt;br /&gt;
* GPL compliant patch to submit&lt;br /&gt;
&lt;br /&gt;
= Initialising your local repository =&lt;br /&gt;
&lt;br /&gt;
* You will need to pull down the kernel/patches repository as a starting point with &amp;lt;source lang=&amp;quot;text&amp;quot;git clone git@git.webos-internals.org:kernels/patches.git&amp;lt;/source&amp;gt; . A worked example is as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/kernels$ git clone git@git.webos-internals.org:kernels/patches.git&lt;br /&gt;
Initialized empty Git repository in /home/sbromwich/kernels/patches/.git/&lt;br /&gt;
Enter passphrase for key '/home/sbromwich/.ssh/id_dsa':&lt;br /&gt;
remote: Counting objects: 70, done.&lt;br /&gt;
remote: Compressing objects: 100% (68/68), done.&lt;br /&gt;
remote: Total 70 (delta 23), reused 0 (delta 0)&lt;br /&gt;
Receiving objects: 100% (70/70), 15.21 KiB, done.&lt;br /&gt;
Resolving deltas: 100% (23/23), done.&lt;br /&gt;
mason~/kernels$ ls&lt;br /&gt;
patches&lt;br /&gt;
mason~/kernels$ ls -l&lt;br /&gt;
total 4&lt;br /&gt;
drwxr-xr-x 5 sbromwich sbromwich 4096 Apr 22 22:17 patches&lt;br /&gt;
mason~/kernels$ cd patches/&lt;br /&gt;
mason~/kernels/patches$ ls&lt;br /&gt;
LICENSE  overclocking  sensors&lt;br /&gt;
mason~/kernels/patches$ ls -l&lt;br /&gt;
total 12&lt;br /&gt;
-rw-r--r-- 1 sbromwich sbromwich   88 Apr 22 22:17 LICENSE&lt;br /&gt;
drwxr-xr-x 2 sbromwich sbromwich 4096 Apr 22 22:17 overclocking&lt;br /&gt;
drwxr-xr-x 2 sbromwich sbromwich 4096 Apr 22 22:17 sensors&lt;br /&gt;
mason~/kernels/patches$&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Create a directory for your patch(es) and copy them in there.&lt;br /&gt;
&lt;br /&gt;
= Tag patches and submit to git =&lt;br /&gt;
&lt;br /&gt;
* Find the next available git tag with &amp;lt;source lang=&amp;quot;text&amp;quot;git -l&amp;lt;/source&amp;gt; . In the following case, the next tag is v1.4.1-10:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/kernels/patches/prcm$ git tag -l&lt;br /&gt;
v1.4.0-0&lt;br /&gt;
v1.4.0-1&lt;br /&gt;
v1.4.1-1&lt;br /&gt;
v1.4.1-2&lt;br /&gt;
v1.4.1-3&lt;br /&gt;
v1.4.1-4&lt;br /&gt;
v1.4.1-5&lt;br /&gt;
v1.4.1-6&lt;br /&gt;
v1.4.1-7&lt;br /&gt;
v1.4.1-8&lt;br /&gt;
v1.4.1-9&lt;br /&gt;
mason~/kernels/patches/prcm$&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Tag the files with a meaningful commit message and the tag from the previous step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/kernels/patches/prcm$ git tag -a -m &amp;quot;PRCM resume from suspend fix/kludge&amp;quot; v1.4.1-10&lt;br /&gt;
mason~/kernels/patches/prcm$ &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Send the tagged files to the upstream repository with &amp;lt;source lang=&amp;quot;text&amp;quot;git push ; git push --tags&amp;lt;/source&amp;gt; as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/kernels/patches/prcm$ git push ; git push --tags&lt;br /&gt;
Enter passphrase for key '/home/sbromwich/.ssh/id_dsa': &lt;br /&gt;
Everything up-to-date&lt;br /&gt;
Enter passphrase for key '/home/sbromwich/.ssh/id_dsa': &lt;br /&gt;
Counting objects: 1, done.&lt;br /&gt;
Writing objects: 100% (1/1), 187 bytes, done.&lt;br /&gt;
Total 1 (delta 0), reused 0 (delta 0)&lt;br /&gt;
To git@git.webos-internals.org:kernels/patches.git&lt;br /&gt;
 * [new tag]         v1.4.1-10 -&amp;gt; v1.4.1-10&lt;br /&gt;
mason~/kernels/patches/prcm$ &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sbromwich</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Adding_patches_through_git&amp;diff=9650</id>
		<title>Adding patches through git</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Adding_patches_through_git&amp;diff=9650"/>
		<updated>2010-04-22T22:47:11Z</updated>

		<summary type="html">&lt;p&gt;Sbromwich: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Add patches to be committed to the Preware feed by following this guide.&lt;br /&gt;
&lt;br /&gt;
= Prerequisites =&lt;br /&gt;
&lt;br /&gt;
* SSH key generated, with the id_dsa.pub authorised for commital on git.webos-internals.org (rhwitby is able to do this)&lt;br /&gt;
* GPL compliant patch to submit&lt;br /&gt;
&lt;br /&gt;
= Initialising your local repository =&lt;br /&gt;
&lt;br /&gt;
* You will need to pull down the kernel/patches repository as a starting point with {{{git clone git@git.webos-internals.org:kernels/patches.git}}} . A worked example is as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/kernels$ git clone git@git.webos-internals.org:kernels/patches.git&lt;br /&gt;
Initialized empty Git repository in /home/sbromwich/kernels/patches/.git/&lt;br /&gt;
Enter passphrase for key '/home/sbromwich/.ssh/id_dsa':&lt;br /&gt;
remote: Counting objects: 70, done.&lt;br /&gt;
remote: Compressing objects: 100% (68/68), done.&lt;br /&gt;
remote: Total 70 (delta 23), reused 0 (delta 0)&lt;br /&gt;
Receiving objects: 100% (70/70), 15.21 KiB, done.&lt;br /&gt;
Resolving deltas: 100% (23/23), done.&lt;br /&gt;
mason~/kernels$ ls&lt;br /&gt;
patches&lt;br /&gt;
mason~/kernels$ ls -l&lt;br /&gt;
total 4&lt;br /&gt;
drwxr-xr-x 5 sbromwich sbromwich 4096 Apr 22 22:17 patches&lt;br /&gt;
mason~/kernels$ cd patches/&lt;br /&gt;
mason~/kernels/patches$ ls&lt;br /&gt;
LICENSE  overclocking  sensors&lt;br /&gt;
mason~/kernels/patches$ ls -l&lt;br /&gt;
total 12&lt;br /&gt;
-rw-r--r-- 1 sbromwich sbromwich   88 Apr 22 22:17 LICENSE&lt;br /&gt;
drwxr-xr-x 2 sbromwich sbromwich 4096 Apr 22 22:17 overclocking&lt;br /&gt;
drwxr-xr-x 2 sbromwich sbromwich 4096 Apr 22 22:17 sensors&lt;br /&gt;
mason~/kernels/patches$&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Create a directory for your patch(es) and copy them in there.&lt;br /&gt;
&lt;br /&gt;
= Tag patches and submit to git =&lt;br /&gt;
&lt;br /&gt;
* Find the next available git tag with {{{git -l}} . In the following case, the next tag is v1.4.1-10:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/kernels/patches/prcm$ git tag -l&lt;br /&gt;
v1.4.0-0&lt;br /&gt;
v1.4.0-1&lt;br /&gt;
v1.4.1-1&lt;br /&gt;
v1.4.1-2&lt;br /&gt;
v1.4.1-3&lt;br /&gt;
v1.4.1-4&lt;br /&gt;
v1.4.1-5&lt;br /&gt;
v1.4.1-6&lt;br /&gt;
v1.4.1-7&lt;br /&gt;
v1.4.1-8&lt;br /&gt;
v1.4.1-9&lt;br /&gt;
mason~/kernels/patches/prcm$&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Tag the files with a meaningful commit message and the tag from the previous step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/kernels/patches/prcm$ git tag -a -m &amp;quot;PRCM resume from suspend fix/kludge&amp;quot; v1.4.1-10&lt;br /&gt;
mason~/kernels/patches/prcm$ &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Send the tagged files to the upstream repository with {{{git push ; git push --tags}}} as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/kernels/patches/prcm$ git push ; git push --tags&lt;br /&gt;
Enter passphrase for key '/home/sbromwich/.ssh/id_dsa': &lt;br /&gt;
Everything up-to-date&lt;br /&gt;
Enter passphrase for key '/home/sbromwich/.ssh/id_dsa': &lt;br /&gt;
Counting objects: 1, done.&lt;br /&gt;
Writing objects: 100% (1/1), 187 bytes, done.&lt;br /&gt;
Total 1 (delta 0), reused 0 (delta 0)&lt;br /&gt;
To git@git.webos-internals.org:kernels/patches.git&lt;br /&gt;
 * [new tag]         v1.4.1-10 -&amp;gt; v1.4.1-10&lt;br /&gt;
mason~/kernels/patches/prcm$ &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sbromwich</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Adding_patches_through_git&amp;diff=9649</id>
		<title>Adding patches through git</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Adding_patches_through_git&amp;diff=9649"/>
		<updated>2010-04-22T22:46:34Z</updated>

		<summary type="html">&lt;p&gt;Sbromwich: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Add patches to be committed to the Preware feed by following this guide.&lt;br /&gt;
&lt;br /&gt;
= Prerequisites =&lt;br /&gt;
&lt;br /&gt;
* SSH key generated, with the id_dsa.pub authorised for commital on git.webos-internals.org (rhwitby is able to do this)&lt;br /&gt;
* GPL compliant patch to submit&lt;br /&gt;
&lt;br /&gt;
= Initialising your local repository =&lt;br /&gt;
&lt;br /&gt;
* You will need to pull down the kernel/patches repository as a starting point with {{{git clone git@git.webos-internals.org:kernels/patches.git}}} . A worked example is as follows:&lt;br /&gt;
&lt;br /&gt;
{{{&lt;br /&gt;
mason~/kernels$ git clone git@git.webos-internals.org:kernels/patches.git&lt;br /&gt;
Initialized empty Git repository in /home/sbromwich/kernels/patches/.git/&lt;br /&gt;
Enter passphrase for key '/home/sbromwich/.ssh/id_dsa':&lt;br /&gt;
remote: Counting objects: 70, done.&lt;br /&gt;
remote: Compressing objects: 100% (68/68), done.&lt;br /&gt;
remote: Total 70 (delta 23), reused 0 (delta 0)&lt;br /&gt;
Receiving objects: 100% (70/70), 15.21 KiB, done.&lt;br /&gt;
Resolving deltas: 100% (23/23), done.&lt;br /&gt;
mason~/kernels$ ls&lt;br /&gt;
patches&lt;br /&gt;
mason~/kernels$ ls -l&lt;br /&gt;
total 4&lt;br /&gt;
drwxr-xr-x 5 sbromwich sbromwich 4096 Apr 22 22:17 patches&lt;br /&gt;
mason~/kernels$ cd patches/&lt;br /&gt;
mason~/kernels/patches$ ls&lt;br /&gt;
LICENSE  overclocking  sensors&lt;br /&gt;
mason~/kernels/patches$ ls -l&lt;br /&gt;
total 12&lt;br /&gt;
-rw-r--r-- 1 sbromwich sbromwich   88 Apr 22 22:17 LICENSE&lt;br /&gt;
drwxr-xr-x 2 sbromwich sbromwich 4096 Apr 22 22:17 overclocking&lt;br /&gt;
drwxr-xr-x 2 sbromwich sbromwich 4096 Apr 22 22:17 sensors&lt;br /&gt;
mason~/kernels/patches$&lt;br /&gt;
}}}&lt;br /&gt;
&lt;br /&gt;
* Create a directory for your patch(es) and copy them in there.&lt;br /&gt;
&lt;br /&gt;
= Tag patches and submit to git =&lt;br /&gt;
&lt;br /&gt;
* Find the next available git tag with {{{git -l}} . In the following case, the next tag is v1.4.1-10:&lt;br /&gt;
&lt;br /&gt;
{{{&lt;br /&gt;
mason~/kernels/patches/prcm$ git tag -l&lt;br /&gt;
v1.4.0-0&lt;br /&gt;
v1.4.0-1&lt;br /&gt;
v1.4.1-1&lt;br /&gt;
v1.4.1-2&lt;br /&gt;
v1.4.1-3&lt;br /&gt;
v1.4.1-4&lt;br /&gt;
v1.4.1-5&lt;br /&gt;
v1.4.1-6&lt;br /&gt;
v1.4.1-7&lt;br /&gt;
v1.4.1-8&lt;br /&gt;
v1.4.1-9&lt;br /&gt;
mason~/kernels/patches/prcm$&lt;br /&gt;
}}}&lt;br /&gt;
&lt;br /&gt;
* Tag the files with a meaningful commit message and the tag from the previous step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/kernels/patches/prcm$ git tag -a -m &amp;quot;PRCM resume from suspend fix/kludge&amp;quot; v1.4.1-10&lt;br /&gt;
mason~/kernels/patches/prcm$ &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Send the tagged files to the upstream repository with {{{git push ; git push --tags}}} as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mason~/kernels/patches/prcm$ git push ; git push --tags&lt;br /&gt;
Enter passphrase for key '/home/sbromwich/.ssh/id_dsa': &lt;br /&gt;
Everything up-to-date&lt;br /&gt;
Enter passphrase for key '/home/sbromwich/.ssh/id_dsa': &lt;br /&gt;
Counting objects: 1, done.&lt;br /&gt;
Writing objects: 100% (1/1), 187 bytes, done.&lt;br /&gt;
Total 1 (delta 0), reused 0 (delta 0)&lt;br /&gt;
To git@git.webos-internals.org:kernels/patches.git&lt;br /&gt;
 * [new tag]         v1.4.1-10 -&amp;gt; v1.4.1-10&lt;br /&gt;
mason~/kernels/patches/prcm$ &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sbromwich</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Adding_patches_through_git&amp;diff=9648</id>
		<title>Adding patches through git</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Adding_patches_through_git&amp;diff=9648"/>
		<updated>2010-04-22T22:45:04Z</updated>

		<summary type="html">&lt;p&gt;Sbromwich: New page: Add patches to be committed to the Preware feed by following this guide.  = Prerequisites =  * SSH key generated, with the id_dsa.pub authorised for commital on git.webos-internals.org (rh...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Add patches to be committed to the Preware feed by following this guide.&lt;br /&gt;
&lt;br /&gt;
= Prerequisites =&lt;br /&gt;
&lt;br /&gt;
* SSH key generated, with the id_dsa.pub authorised for commital on git.webos-internals.org (rhwitby is able to do this)&lt;br /&gt;
* GPL compliant patch to submit&lt;br /&gt;
&lt;br /&gt;
= Initialising your local repository =&lt;br /&gt;
&lt;br /&gt;
* You will need to pull down the kernel/patches repository as a starting point with {{{git clone git@git.webos-internals.org:kernels/patches.git}}} . A worked example is as follows:&lt;br /&gt;
&lt;br /&gt;
{{{&lt;br /&gt;
mason~/kernels$ git clone git@git.webos-internals.org:kernels/patches.git&lt;br /&gt;
Initialized empty Git repository in /home/sbromwich/kernels/patches/.git/&lt;br /&gt;
Enter passphrase for key '/home/sbromwich/.ssh/id_dsa':&lt;br /&gt;
remote: Counting objects: 70, done.&lt;br /&gt;
remote: Compressing objects: 100% (68/68), done.&lt;br /&gt;
remote: Total 70 (delta 23), reused 0 (delta 0)&lt;br /&gt;
Receiving objects: 100% (70/70), 15.21 KiB, done.&lt;br /&gt;
Resolving deltas: 100% (23/23), done.&lt;br /&gt;
mason~/kernels$ ls&lt;br /&gt;
patches&lt;br /&gt;
mason~/kernels$ ls -l&lt;br /&gt;
total 4&lt;br /&gt;
drwxr-xr-x 5 sbromwich sbromwich 4096 Apr 22 22:17 patches&lt;br /&gt;
mason~/kernels$ cd patches/&lt;br /&gt;
mason~/kernels/patches$ ls&lt;br /&gt;
LICENSE  overclocking  sensors&lt;br /&gt;
mason~/kernels/patches$ ls -l&lt;br /&gt;
total 12&lt;br /&gt;
-rw-r--r-- 1 sbromwich sbromwich   88 Apr 22 22:17 LICENSE&lt;br /&gt;
drwxr-xr-x 2 sbromwich sbromwich 4096 Apr 22 22:17 overclocking&lt;br /&gt;
drwxr-xr-x 2 sbromwich sbromwich 4096 Apr 22 22:17 sensors&lt;br /&gt;
mason~/kernels/patches$&lt;br /&gt;
}}}&lt;br /&gt;
&lt;br /&gt;
* Create a directory for your patch(es) and copy them in there.&lt;br /&gt;
&lt;br /&gt;
= Tag patches and submit to git =&lt;br /&gt;
&lt;br /&gt;
* Find the next available git tag with {{{git -l}} . In the following case, the next tag is v1.4.1-10:&lt;br /&gt;
&lt;br /&gt;
{{{&lt;br /&gt;
mason~/kernels/patches/prcm$ git tag -l&lt;br /&gt;
v1.4.0-0&lt;br /&gt;
v1.4.0-1&lt;br /&gt;
v1.4.1-1&lt;br /&gt;
v1.4.1-2&lt;br /&gt;
v1.4.1-3&lt;br /&gt;
v1.4.1-4&lt;br /&gt;
v1.4.1-5&lt;br /&gt;
v1.4.1-6&lt;br /&gt;
v1.4.1-7&lt;br /&gt;
v1.4.1-8&lt;br /&gt;
v1.4.1-9&lt;br /&gt;
mason~/kernels/patches/prcm$&lt;br /&gt;
}}}&lt;br /&gt;
&lt;br /&gt;
* Tag the files with a meaningful commit message and the tag from the previous step:&lt;br /&gt;
&lt;br /&gt;
{{{&lt;br /&gt;
mason~/kernels/patches/prcm$ git tag -a -m &amp;quot;PRCM resume from suspend fix/kludge&amp;quot; v1.4.1-10&lt;br /&gt;
mason~/kernels/patches/prcm$ &lt;br /&gt;
}}}&lt;br /&gt;
&lt;br /&gt;
* Send the tagged files to the upstream repository with {{{git push ; git push --tags}}} as follows:&lt;br /&gt;
&lt;br /&gt;
{{{&lt;br /&gt;
mason~/kernels/patches/prcm$ git push ; git push --tags&lt;br /&gt;
Enter passphrase for key '/home/sbromwich/.ssh/id_dsa': &lt;br /&gt;
Everything up-to-date&lt;br /&gt;
Enter passphrase for key '/home/sbromwich/.ssh/id_dsa': &lt;br /&gt;
Counting objects: 1, done.&lt;br /&gt;
Writing objects: 100% (1/1), 187 bytes, done.&lt;br /&gt;
Total 1 (delta 0), reused 0 (delta 0)&lt;br /&gt;
To git@git.webos-internals.org:kernels/patches.git&lt;br /&gt;
 * [new tag]         v1.4.1-10 -&amp;gt; v1.4.1-10&lt;br /&gt;
mason~/kernels/patches/prcm$ &lt;br /&gt;
}}}&lt;/div&gt;</summary>
		<author><name>Sbromwich</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Portal:Tools&amp;diff=9647</id>
		<title>Portal:Tools</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Portal:Tools&amp;diff=9647"/>
		<updated>2010-04-22T22:34:55Z</updated>

		<summary type="html">&lt;p&gt;Sbromwich: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__notoc__&lt;br /&gt;
{{portal-header|&lt;br /&gt;
This page lists tools used in any form.&lt;br /&gt;
}}&lt;br /&gt;
{{portal-two-columns&lt;br /&gt;
|column1=&lt;br /&gt;
== webOS Internal Related Tools ==&lt;br /&gt;
&lt;br /&gt;
* [[Getting started|Accessing Developer Mode]]&lt;br /&gt;
* [[Backing_Up_via_Rsync|Backing Up via Rsync]]&lt;br /&gt;
* [[Com Palm Appinstaller]]&lt;br /&gt;
* [[Com Palm Downloadmanager|Com Palm Downloadmanager]] &lt;br /&gt;
* [[Crond|Crond]]&lt;br /&gt;
* [[Detecting Application Errors, Syslog|Detecting Application Errors, Syslog]] &lt;br /&gt;
* [[How to solve 3G data problems]]&lt;br /&gt;
* [[Important_Personal_Data_Locations|Important Personal Data Locations]]&lt;br /&gt;
&amp;lt;!--* [[/var/luna/data|/var/luna/data]]--&amp;gt;&lt;br /&gt;
* [[/usr/bin/lunaprop|/usr/bin/lunaprop]]&lt;br /&gt;
* [[Java Services|Java Services]] &lt;br /&gt;
* [[Luna Send|Luna Send]] &lt;br /&gt;
* [[PalmDatabase.db3 File|PalmDatabase.db3 File]] &lt;br /&gt;
&amp;lt;!--* [[mediadb.db3 File|mediadb.db3 File]]--&amp;gt;&lt;br /&gt;
&amp;lt;!--* [[fileindexer File|fileindexer File]]--&amp;gt;&lt;br /&gt;
* [[Profile.d|Profile.d]] &lt;br /&gt;
* [[Tellbootie|Tellbootie]]&lt;br /&gt;
* [[Webos Doctor Versions|Webos Doctor Versions]]&lt;br /&gt;
&lt;br /&gt;
==Cross-Compiling and Kernels==&lt;br /&gt;
* [[Autobuilder Setup|Autobuilder Setup]]&lt;br /&gt;
* [[WebOS Internals PDK]]&lt;br /&gt;
* [[Cross Compiling|Cross Compiling]] &lt;br /&gt;
* [[Custom Kernels|Custom Kernels]] &lt;br /&gt;
* [[Optware Cross Compilation|Optware Cross Compilation]] &lt;br /&gt;
* [[Building_a_cross_toolchain|Building a cross-toolchain for armv7 on Gentoo]]&lt;br /&gt;
* [[Adding_patches_through_git|Adding patches through git]]&lt;br /&gt;
&lt;br /&gt;
|column2=&lt;br /&gt;
==SDK Related Tools ([[Comparison of Editors|Comparison Chart]]) ==&lt;br /&gt;
&amp;lt;!-- Warning Do not edit the order of the top two editors (Eclipse and Komodo) --&amp;gt;&lt;br /&gt;
===Eclipse===&lt;br /&gt;
&lt;br /&gt;
[http://www.eclipse.org/downloads/ Eclipse] is the editor officially supported by Palm.  You can find the Eclipse WebOS plugin [http://developer.palm.com/index.php?option=com_content&amp;amp;view=article&amp;amp;id=1639 here].&lt;br /&gt;
&lt;br /&gt;
===Komodo Edit===&lt;br /&gt;
&lt;br /&gt;
[http://www.activestate.com/komodo_edit/ Komodo Edit] is an easy to use cross platform open source editor. Use along side the webOS [http://www.webos.templarian.com/komodo/ Add-on] for easier development. Complete [http://www.webos.templarian.com/komodo/ Code Completion] is also available for Mojo. [[Komodo|Wiki Page with Screensots and Install Guide]].&lt;br /&gt;
&lt;br /&gt;
===Aptana Studio===&lt;br /&gt;
&lt;br /&gt;
[http://www.aptana.com/studio/download Aptana Studio] is a standalone version of an Eclipse plugin. Very easy to use. You can install the Aptana WebOS plugin by directing Aptana to check [https://cdn.downloads.palm.com/sdkdownloads/1.1/eclipse-plugin/eclipse-3.4/site.xml this link]. If you do not know how to set this up, please look at official Palm documentation [http://developer.palm.com/index.php?option=com_content&amp;amp;view=article&amp;amp;id=1639 here].&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Sbromwich</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Application:Govnah&amp;diff=9645</id>
		<title>Application:Govnah</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Application:Govnah&amp;diff=9645"/>
		<updated>2010-04-22T18:46:29Z</updated>

		<summary type="html">&lt;p&gt;Sbromwich: Adding suggestions for load reduction from IRC conversation 20100422&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{application&lt;br /&gt;
|name=Govnah&lt;br /&gt;
|type=webOS&lt;br /&gt;
|version=In Development&lt;br /&gt;
|tag=Utilities&lt;br /&gt;
|screenshot=Govnah_ss1.png&lt;br /&gt;
|description=}}&lt;br /&gt;
&lt;br /&gt;
== Summary == &lt;br /&gt;
{{icon|Icon_WebOSInternals_Govnah.png|float:right;}}An App to do things.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
* Main Scene&lt;br /&gt;
** Title Header (like preware/wirc/etc webos-internals apps)&lt;br /&gt;
** Current Governor (Tap to go to Governor Scene)&lt;br /&gt;
** Misc Stats&lt;br /&gt;
*** ...?&lt;br /&gt;
*** Graph of CPU temp over time&lt;br /&gt;
&lt;br /&gt;
* Governor Scene&lt;br /&gt;
** Dropdown to change governor (SelectList)&lt;br /&gt;
** Form of all current settings for selected governor (dynamically generated from information provided by service)&lt;br /&gt;
&lt;br /&gt;
* App Icon (changes to display indication of CPU temp)&lt;br /&gt;
&lt;br /&gt;
* Load reduction&lt;br /&gt;
** Govnah is saving data to an array which grows over time and sucks down CPU time/memory iterating over the array.&lt;br /&gt;
** Use sqlite db for saving?&lt;br /&gt;
** To reduce disk writes, have a preference option to save to /media/ramdisk if the user is only interested in the current session for pinch zooming - should reduce disk writes and improve performance though data will be lost on boot.&lt;br /&gt;
** Preference setting for frequency of polling.&lt;br /&gt;
** Use fixed array or circular buffer instead, though this will stop pinch scrolling from going back too far (another preference option?)&lt;/div&gt;</summary>
		<author><name>Sbromwich</name></author>
	</entry>
</feed>