WebOS 2 Upgrade Pre Minus

From WebOS Internals
Revision as of 11:05, 22 July 2011 by IDG (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Here are instructions for speeding up your Pre Minus once you have installed WebOS 2.1. As Jon Rubenstein commented at the February 9th event, the Pre Minus simply does not have enough horsepower at stock to run WebOS 2.1 efficiently. Follow this guideline to overclock, patch, hack and modify WebOS so that it will run as fast and as smoothly as possible with WebOS 2.1.

I must note that while all of these steps do help significantly, you still will find the performance not perfect. The Pre Minus hardware is over 2 years old now. You simply can't get something from nothing. These steps help greatly, but do not expect a miracle.

Warnings and other preambles

THESE INSTRUCTIONS ARE FOR A PRE MINUS RUNNING A META-DOCTORED COPY OF WEBOS 2.1. DO NOT USE ON ANY OTHER DEVICE UNLESS YOU ARE WILLING TO SUFFER THE CONSEQUENCES OF A BRICKED PHONE OR WORSE!!!!!

While it is nearly impossible to brick your Pre, you are still modifying the device heavily with these steps. BACK YOUR DEVICE UP FIRST!!!! Back up apps with Save/Restore from Preware, and then copy the entire USB partition to your harddrive on a computer. You will be sorry if you don't.

Also: While patching does not void your warranty, OVERCLOCKING WILL VOID YOUR WARRANTY. One of these steps involves using a testing kernel feed, and the warnings for that are available on the page we will be referencing for it. PLEASE READ THE WARNINGS. Ill summerise: It voids your warranty and there is a possibility that your phone will turn into a pile of liquid goo. Ok not really but it could break it. So far though I only know of one instance where overclocking destroyed a Pre.

Also these steps have been tried with WebOS 2.1 ONLY. If you attempt any of them with WebOS 1.4.5, do so at your own risk.

pre.... Pre Setup

Before starting, please ensure of something:

1. Put your Pre into developer mode. In Just Type write: "upupdowndownleftrightleftrightbastart". Open the Developer Mode app. Switch to 'ON'. Even if you do not use a computer once to perform these operations, you might brick WebOS and its essential you have developer mode on in order to change any files you messed up from a computer terminal.

2. Install Preware. If you have not, install the app Preware to your device. Instructions found in the Preware Homebrew Documentation app in the official app catalog, or here: Application:Preware

3. Install the homebrew app "Internalz Pro" from Preware. We will be using this to install patches.

The Steps to Speed Up the Pre Minus.

Step 1: Overclocking

WARNING: THIS STEP USES AN UNSTABLE TESTING KERNEL, AND SHOULD ONLY BE ATTEMPTED IF YOU ARE WILLING TO ACCEPT THE RISK THAT YOUR DEVICE MIGHT NOT BOOT, OR COULD FRY INTO A PUDDLE OF MOLTEN PLASTIC. YOU HAVE BEEN WARNED. IF YOU DO NOT ACCEPT THE ABOVE STATEMENT, THEN PLEASE ONLY INSTALL THE MORE STABLE "UBERKERNEL" FOUND IN PREWARE.

One of the most important steps is to overclock the processor and RAM using Unixpsycho's F105 Kernel. This kernel allows you to overclock the CPU to 1ghz as well as overclock the RAM, which is essential as RAM is the biggest issue with WebOS 2.1. At rest on a Pre2, I have seen that WebOS 2.1 uses about 300mb of ram. The Palm Pre Minus only has 256mb, so we are already using up more than 100% of the RAM of the phone before we even open an app. We must speed up and manage RAM as best we can in order to have any hope of running WebOS 2.1 smoothly.

The best way to install this kernel is through Preware.

1. First follow the steps to add the testing kernel feeds in Preware here: | Kernel Testing feeds

2. Once you have installed the feeds, go to Preware and go to Available Packages > Kernel > All and install the "F105 Thunderchief" Kernel.

3. Install Govnah from Preware as well. This is used to modify and monitor the CPU speeds.

4. Restart

Your phone should now be overclocked to 1Ghz and your RAM overclocked as well.

Step 2: Installing Patches to speed up the phone

Patches are a great and easy way to speed up the Pre Minus. They easily modify the code in WebOS so that your phone runs faster or is more responsive due to several different reasons.

Here are the list of patches to install from Preware in order to speed up the Pre Minus: (They are found under Available Packages > Patches )


Faster Card Animations HYPER Version

Smooth Scrolling

Increase Touch Sensitivity and Smoothness

Remove Dropped Packet Logging

Unset CFQ IO Scheduler

Unthrottle Download Manager


DO NOT install "Muffle System Logging" patch as this WILL break WebOS from indexing your photos, and any photos you take or download will disappear from the Photos app.

There you have it. Restart your Pre again and it should run faster as well.

Minimal System Logging

WebOS by default logs EVERYTHING you do, which can actually bog down the OS quite a bit. To disable this, follow these steps:

1. Open the phone dialer.

2. For Sprint/Verizon/CDMA: Dial ##5647# (##LOGS#) and press SEND. For AT&T/O2/GSM: Dial #*5647# and press SEND.

3. Tap "Change logging levels."

4. Tap "Set logging to minimal."

5. Tap OK to confirm.

6. Tap OK again after it finishes.

7. Reboot your Pre.

8. Enjoy the performance boost!

The overclocked kernels do this by default but its better to be safe than sorry and make sure they are disabled.

DO NOT USE THE MUFFLE SYSTEM LOGGING PATCH, IT WILL BREAK YOUR PHOTOS.

Install Preset Reset

Go to Preware and install the Homebrew app Preset Reset. Open it and set it to reset your phone every day at a specific time (most likely when you are sleeping) . This way your phone will be nice and fresh in the morning, and the cache and memory leaks from the day before will be wiped clean from the device.

Install JSTop

Install "JSTop" from Preware. Open the app and tap the top left where the name "JSTop appears" to access the preferences for the app. Click "Enable Auto GC" and "Disable Notifications".

This will have JSTop automatically clear out any garbage memory or memory leaks at set intervals, which are pure murder for the RAM starved Pre Minus.

Cleanup

Periodically go into apps and clear out any history. This history severally slows the phone down after it builds up.

Phone App - Clear call history

Messaging App - Delete all messages

Email App - Delete any old emails you dont need

Google Maps - Clear search history

Browser - Delete History and Cookies and Cache.

Also, turn off any notification service that you don't need, such as Facebook Updates, etc. All of these services require the app to run in the background to "listen" for notifications and take up RAM.

Remove any Just Type services that you don't use, these also take up indexing cache.


More advanced hacks

These next hacks are more advanced and should only be done by those who have some computer experience. They involve using the Terminal as well as installing special patch files to speed up the Pre. These are the most dramatic hacks however that have shown the best performance so far.


Modify System Control Configuration

Linux allows you to add a file that will modify how the kernel handles using the RAM as well as virtual memory in the Pre Minus. With such little RAM to spare, we are going to modify how Linux stores applications and cache on the Pre to remedy the hanging, stalls and other issues experienced with using WebOS 2.1 on the Pre Minus.

Simply download the patch file here and open it on your Pre with Internalz Pro to install it.

Sysctl.conf Patch

Reboot your Pre.

Updates will be provided occasionally so come back here to check out newer versions.

Modify Luna.conf

There are some modifications that can be done to the luna.conf file on WebOS to speed up the Pre Minus.

For now, the browser app is set to only close when the system runs out of ram. This means that even if you swipe away the Browser card, its still running in the background. The luna.conf has been modified in this patch to close the Browser immediately.

Some other minor tweaks have been added as well.

This will not conflict with the "Increase Touch Sensitivity and Smoothness" patch.

Download it here (open on your Pre with Internalz Pro to install):

Luna.conf Patch

Resize Swap File and Disable Compcache

ASSIDE FROM OVERCLOCKING WITH F105 KERNEL, THIS IS THE MOST ADVANCED PORTION OF THE WIKI THAT REQUIRES KNOWLEDGE OF HOW TO USE A LINUX TERMINAL. DO NOT ATTEMPT UNLESS YOU ARE WILLING TO POSSIBLY BREAK YOUR PRE, AND SUFFER THE CONSEQUENCES. BACK UP YOUR STUFF. YOU HAVE BEEN WARNED!!!!

A little preamble

WebOS 2.1 comes with 10mb of compcache enabled. Compcache is a compressed swap file that lives on RAM and basically creates more swap space for the kernel to use by compressing a portion of the RAM (about a 4/1 compression ratio) to use as swap. When you compress files you slow do the read/write speed, but you increase space. It has some advantages, but the bigger compcache you create, the less actual RAM you have to use for applications. With a RAM starved Pre Minus, this can be a bit problematic. Compcache is actually better for devices that use spinning magnetic hard drives, as they have very slow read/write speeds, and thus are not well suited for swapping files. Since the Pre has Solid State memory, compcache is not as essential because tests have shown it to be only slightly faster than the swap file on the Pre's internal memory (30mb/s for compcache vs. 24mb/s for swap partition) The current methodology is to disable compcache and instead resize the swap partition on the Pre to allow for more files to be swapped out of RAM (since we have very little of it) and onto the internal memory. Also, WebOS uses a method of swap called "backing store", and users have found that the linux swap method works much better, so we will be changing that as well.

Disabling Compcache and enable Swap On

DO NOT DO THIS STEP WITHOUT ALSO RESIZING THE SWAP PARTITION IN THE NEXT STEP!!

Download the attached patch file to modify the compcache configuration file to disable compcache and the backing store, and replace it with the Linux Swap file.

Download it here (open on your Pre with Internalz Pro to install): Compcache Patch

NOTE: You can simply remove the '/etc/palm/preferences/compcache_enabled' file. The swap is activated by /etc/event.d/swaphack

Resize the swap partition

In this step, you will need to use a Linux Terminal and Novacom in order to resize the partition. If you do not have Novacom or a linux terminal installed (although I don't know how you got WebOS 2.1 on your Pre Minus device without it....), please follow these instructions here to install it: Setting up Novacom


Getting to Novaterm

1. Plug your Pre Minus into your computer using a USB cable

2. Ensure that Developer Mode is enabled on the Pre.

3. Make sure the Pre is set to "Just Charge" and NOT USB Mode.

4. In the Terminal in Linux or Mac, type "Novaterm". Press Enter.

5. You should now be presented with the root terminal of your Pre Minus. Congrats, you are now in the Terminal of your Pre Minus phone.

Resizing the Swap Partition

WARNING THIS COULD ERASE YOUR PHONE, DESTROY YOUR PHONE, RESURRECT ZOMBIES FROM THE DEAD, MELT YOUR DEVICE INTO A PILE OF GOO. I CANNOT STRESS THIS ENOUGH.

   * I am not responsible for anything that happens to your phone
   * your media may be erased
   * your phone may need to be re-doctored
   * it may catch fire
   * the drive could be come corrupt
   * your phone may hate you for life
   * Back UP! Back UP! Back UP!

OK, so what we are going to do is resize the swap partition to 512MB. Why 512MB? Several reasons. First, the swap partition is currently at 100mb. With only 256MB of ram, this is too small. When the device fills up the 100mb of swap, the kernel must now clear out memory and make room. This causes the device to "hang" and "stall" and "lag", as the CPU must shuffle around applications in the memory to desperately try and make room. Resizing the swap partition to twice the size of physical RAM ensures that it will never be completely filled.

Before we resize the swap partition we must make room for it by shrinking the USB partition (the storage for your music, phots etc).

Follow the steps to resize your usb partition to a smaller size to make more room for a larger swap partition, and then resize your swap partition.

I HIGHLY recommend copying everything off your USB partition to your computer and wiping it clean!!! Also, Make sure no applications are currently running on your phone, and put it into airplane mode!!!

NOTE: you may want to do this from recovery mode instead, replacing lvm with lvm.static

First before you resize, backup your USB partition to your computer, and wipe it clean, unless you want to break your phones USB partition and have to WebOS Doctor.

In Nova Terminal, type (without quotes):

1. "resizefat -v /dev/store/media 6.0G" (First you should reduce the "inside" filesystem, the fat32 partition)

2. "lvm lvreduce -L 6.0G /dev/store/media" (And then you reduce the container partition)

3. "lvm lvresize -L +412M /dev/store/swap" (This expands your swap partition by 412mb [100mb + 412mb = 512mb])

4. "swapoff /dev/store/swap"

5. "mkswap /dev/store/swap"

6. "swapon /dev/store/swap"

7. reboot

8. Put the backed up USB files from your computer back onto the Pre.

To check the size and status of your swap file, type "/sbin/swapon -s" in novaterm.

Congrats! Your phone is now optimized to run WebOS 2.1. Enjoy! :)