[Galaxy S II Android Development] Saber:
Troubleshooting

(Probably one of the most detailed troubleshooting guides for kernels on XDA)

Q:How do I flash your kernel?

A: You flash kernels like flashing roms, except you don't have to factory reset your phone. However, if you are official CM12.1 nightly, you will have to flash the kernel differently.

Method A: If you get signature verification errors, you need to sign the zip with a program like Sign-em or Sign+.

Method B: To flash this kernel on official CM12.1 nightly, you first need to flash Philz recovery on your phone via ODIN. Here is the link to the for philz recovery: Philz Touch Recovery After that, you can flash the kernel like normal.

Method C: Another way is to create a kernel .tar file by extracting the zimage file located in /boot folder of the kernel zip then create a .tar archive. Then flash it in ODIN. Here is the guide to create your own kernel tar file: http://xdaforums.com/galaxy-s2/development-derivatives/convert-kernel-zip-to-tar-t2994381 For your convenience, I've create a tar file of build b002 in the guide linked.

Q: Which kernel version build should I flash?

A: Flash the latest stable version if you want the most stable experience. Builds that have not been marked with 'Stable' are mostly stable, or haven't been tested enough to earn a stable tag. Either way, it's up to you which one you want to flash. Read the changelog for any important changes that might have occurred in a particular build.

Q: Which app should I use to tweak the kernel?

To have access to all of the tunables, you need to install stweaks from the playstore or from the apk linked in the downloads post.

Q: Wifi doesn't work after I flash this kernel

A: There are two main causes to this issue, either there is a problem with your:

- Partitions OR

- Permissions OR

- Gapps OR

- ROM OR

- Compatibility with your wifi hardware

Don't use a pit with modded preload! It will just cause issues with ROMs and Kernels. Use stock pit or use a pit with unmodded preload. Sometimes, the gapps package you flash somehow breaks compatibility with the kernel. You can fix this by flashing a different gapps (making sure to clean cache and dalvik). If you have permissions problem, you can fix this by repartitioning your internal sd card or by reflashing back to stock rom. Sometimes, the ROM doesn't fully support the wireless drivers in the kernel, this can be solved by flashing a different ROM or different kernel. But if your wifi hardware is not compatible (a way to tell this is when you have tried everything and failed), there is nothing you can do but reflash the rom or flash a different kernel.

Q: My battery life sucks after flashing this kernel!

A: Download and install Betterbatterystats and see what is the culprit to your problem. If it is kernel related, have you made sure you have wipe cache and dalvik and reset stweaks settings? If yes, it would be nice if you posted a logcat.

Q: How do I get a logcat for the kernel?

A: In stweaks, go to BUG-REPORT and tap on KERNEL-BUG.

Q: How do I trim my partitions?

BEWARE: Make sure you have read all of the precautions before attempting to trim your partitions!

Q: My device is (hard) bricked after flashing your kernel!

A: Have you read all of the precautions before installing the kernel? You made the decision to flash the kernel and now you've stuffed up your phone.

Q: I get constant FCs after flashing your kernel!

A: Have you wiped your cache partition, dalvik cache and reset stweaks settings? If you've done all of these already, a logcat would be nice :)

Q: What's a good combination for CPU governor and I/O scheduler?

A: Have a look at the default settings, they are optimised for our phone :)

However, here are some settings I personally like:

1. Governor: HYPER/Ondemand I/O scheduler:SIO/SIO

2. Governor: PegasusQ/Nightmare I/O scheduler: SIO/SIO

3. Governor: NeoX/Ondemand I/O scheduler: SIO/SIO

4. Governor: Nightmare/Nightmare I/O scheduler: SIO/SIO

Q: What is a TCP algorithm?

A: Congestion control strategies (or algorithms) are used by TCP, the data transmission protocol used by many Internet applications. The main goal of a TCP algorithm is to avoid sending more data than the network is capable of transmitting, that is, to avoid causing network congestion.

Q: What is UBER?