[Galaxy Tab 8.9 Android Development] _motley:
FAQ

Q: What is a kernel and why would I need it? How is it different from a ROM?

A: The kernel is the lower level of the operating system, or the engine so to speak. It is a bridge between applications and the actual data processing done at the hardware level. The Android OS utilizes a custom Linux kernel. The stock kernel provided by Samsung limits the CPU clock speed (i.e. CPU frequency) and other functionality that the upper level operating system can request (like mounting NTFS hard disks, undervolting, encrption, using certain joystick controllers, mounting network shares etc.).

A kernel is different from a custom ROM. A ROM is a customized version of the Android Honeycomb OS and will also come with a kernel. Most ROMs will come with the stock kernel, they should designate which kernel they use. In other words, most ROMs provide a customized version of the upper level of the operating system including base services and applications.

Q: What do I have to wipe before I flash?

A: For kernel only flashes, like this one, you don't have to wipe anything.

Q: What does the zip file do when I flash?

A: When the zip is applied in CWM, it does the following things using Koush's AnyKernel method:

Unpacks your boot.img from into a temp folder (into ramdisk and zImage components)

Replaces your zImage, i.e. the kernel binary

Updates the ramdisk default.prop (sets ro.secure=0 for adb root shell and removes init.p3.rc lines that set frequencies and governor during boot)

Repacks the new boot image and flashes back to /dev/block/mmcblk0p3

Updates two kernel modules in the stock location /lib/modules

Q: Will I lose any customizations to my ramdisk provided by a custom ROM?

A: No, your should not due to the use of the AnyKernel method described above.

Q: Will other overclocking apps besides SetCPU work OK?

A: Yes, they should work, but just keep in mind that not all apps are able to under-volt. I will typically be using SetCPU for all my testing, so keep this in mind if you have problems.

Q: Will overclocking use more battery?

A: Yes, higher voltages equals more current draw (I=VR). It will depend upon your setup and individual usage scenarios to how much runtime you will lose.

Using the interactive governor, your tablet will scale down to lower frequencies when the highest clock speed is not necessary. At the lower frequencies, the tablet will not use more power than it does stock.

Q: What OC frequencies are safe?

A: From research thus far, 1.5GHz is the top end for every day use stablity for most tablets. However, due factory tolerances 1.5GHz still may not be stable for everyone. You may need to use 1.4GHz or even 1.2GHz. Many choose to run 1.4GHz since it still gives a great performance bump over stock, but less heat is generated, and it will chew up a little less battery.

Q: I set my OC frequency to X, but I don't think it is working. How do I test to know that it is working?

A: For 1.4-1.5GHz using the interactive governor, you should be able to see a Linpack score between 70-87 depending on what else is running on the tablet.

The ad-free version of Linpack is better because the ads can lower your scores unless you hit test at the right time when the ad is already loaded. If you keep hitting test at 1.5Ghz, your consistent higher scores should be around 78-85.

Verify the clock speed by using Linpack scores

Verify in SetCPU that the different clock speeds are being used periodically, most particularly the highest clock speed.

It is kind of finicky sometimes until you get it set right and sometimes after a new version is installed it will get finicky. After you get it set right, then it stays put on reboot and you should have any issues from there. I am still wondering if there isn't something I can do about it to force it honor any changes SetCPU requests to sysfs no matter what. This is the reason why I eventually set the default governor to On Demand and then suggest that you configure it to be Interactive in SetCPU (the recommended governor). This seemed to help trigger the proper acceptance from SetCPU on boot. Pershoot (the 10.1 kernel guru) suggested that it might be falling to conservative at the default frequency like when it goes to sleep, but not coming back. However,when it goes to sleep and I turn it back on, it always goes back to my 1.5GHz just fine. And when it's set and happy, it never has this issue on boot either. Maybe a second boot is all that it takes, but I would sure like to pin it down and understand it better. Let me know if anyone has any ideas.

If your Linpack scores suggest OC is not working, I recommend that you do the following:

Uncheck the SetCPU setting to "set on boot" for OC and UV settings. Don't set this for boot until you are sure you are good to go with your clock speed and UV settings.

Upgrade to the latest kernel version for your tablet if you haven't already (Choose, HC 3.1 or HC 3.2, then 7300 3G or 7310 WiFi)

Boot up and use SetCPU to set your desired OC frequency AND then setp to use the "interactive" governor.

Verify your linpack scores to make sure they are higher than stock (~50-55). See above reference scores and notes about ads slowing down the scores.

Q: How do I setup under-volting (UV)? What values should I use for each frequency?

A: Not all tablets are created equal at the factory. What works on anothers tablet may not work on yours.

Uncheck the SetCPU setting to "set on boot" for UV settings. Don't set this for boot until you are sure you are good to go with your modified UV settings.

Once the clock speed is verified (see previous question), run some bench marks (Linpack, AnTuTu, and Quadrant are good) and do some multiple-tab browsing sessions to make sure your tablet is stable. Watch some vids or whatever you like to do, this is the key.

If you are stable, step down your voltage at the highest clock speed by -25mV. Repeat the benchmarks and usage scenarios. If it fails (locks the tab), hold down the power key until it reboots and step back up +10mV and repeat until it is stable.

Repeat the UV calibration for the next lower clock speed and so forth. I don't typically mess with anything below GHz since those are stock values.

Q: So, what OC and UV settings do you use?

A: I typically run @1.5GHz -50mV and leave the rest of the frequencies as-is. For my usage, I don't find the CPU spending a lot of time anywhere else besides 216, 312, 1000, and 1504. Every other frequency is typically less than 1% of time in state. If folks can UV further and keep it stable, that is great. I don't worry about battery too much since I am mostly around the house and don't mind charging every 2-3 days.

Q: I noticed that the stock tablet does charge using a normal PC USB port. The tab say discharging with a red x but it seems to be charging. So do I really need to use the usb charging script?

A: I grabbed this fix from the 10.1 kernel base. I was wondering the same thing when I went forward with the code change.

Here is what I know so far. The change in the kernel allows the tablet to properly report the charging state properly back to the OS. After the fix, the USB charging seems to be much faster, but it may just be the reporting mechanism. Before, it would take forever to trickle up 1%. Now it really seems be a viable charging source, but still slower than plugging in to the wall of course. I have not however done any tests to prove this, but I think the mod is definitely worthwhile. Samsung should have done it like this stock, but I think they did not want to deal with support calls to troubleshoot charging via USB as it is not as fast and reliable.

That said, the option is there and folks have a choice on whether to activate it or not. Others, please report back on your experience on this topic.