[HTC EVO 3D] mrg666:
There are many kernel options for EVO 3D/V and most of them are excellent. The difference of MiRaGe is, first of all, it is mine and I like to use my kernel :) MiRaGe is a very lean, updated, optimized, overclocking kernel.

I am posting the kernel here so that I can return at least a small part of what I have received from the open source community. I thought the amount of time I have spent for MiRaGe could be useful for others as well. In short, take it if you want it, leave it if you don't. ;) But comments, suggestions are always welcome.

There are several custom ROMs in this forum and they can be incompatible with a different kernel.

If you are running a custom ROM please use the kernel that the ROM developer recommends.

If you know what you are doing and don't need hand holding, you will do what you want anyway.

Changes

separate builds for stock HTC/Sense ICS ROM and AOSP JB ROMs

based on the latest HTC official source

updated to current Linux 3.0 patch level - some of the most irrelevant commits for shooter board were omitted

added cifs, tun modules

enabled usb otg and added otg-wakelock

enabled autogroup scheduler option in CFS to improve interactive responsiveness

compiled with gcc 4.7.4 Linaro toolchain with -O2 optimization

CPU clocked at default 1.512 GHz, enabled higher overclock up to 1.7 GHz

3D GPU overclock to 320 MHz, added 160 MHz low frequency to save battery

2D GPU overclock to 266 MHz, added 160 MHz low frequency to save battery

smoothed voltage curve to increase stability and added CPU voltage table for user control

added 467 MHz bus speed to support 1.6 and 1.7 CPU frequencies

decreased the number of frequency steps using 108 MHz steps to increase efficiency of interactive governor

enabled cpu stats

backported staging/android drivers and updates from Google android-3.0 and 3.4 kernels

backported many msm/kgsl (a220) driver updates from CAF msm-3.4 and removed the unnecessary a3xx part of the driver

upgraded msm/qdsp6 sound driver to v3 from v2 from CM htc_msm8660 kernel

backported many ARM optimizations/updates/fixes from Linux 3.8 and CAF msm kernels

backported latest interactive cpu governor from Google android-3.4 kernel, set as default

backported ondemand governor from CAF msm-3.4 kernel

removed unnecessary cpu governors - governors available: <interactive>, ondemand, performance, powersave

backported latest ROW I/O scheduler from CAF msm-3.4 kernel

removed unnecessary i/o schedulers - schedulers available: <row>, noop, ondemand

backported bcm4329 wifi drivers from CAF msm-3.0 kernel, enabled AP_ONLY for WiFi tethering

backported bcmdhd wifi driver from CAF jb_chocolate for JB kernel

backported workqueue from Linux 3.6 to enhance the hotplug performance of kernel-based mpdecision

backported rwsem from Linux 3.11

completely revised kernel-based msm_mpdecision for performance

removed kernel debug bits, debugfs for security, and bugverbose for lower memory use

switched to simple FIFO net scheduler

added patch [v4] binfmt_elf.c: use get_random_int() to fix entropy depleting

backported latest Qualcomm Crypto Engine (QCE) from CAF msm-3.4

QDSP6V3 Hexagon driver enabled

The details of all changes and source code are available at my Github repo for Sense/ICS and AOSP/JB

Downloads

The GSM version of MiRaGe kernel and related thread is

here

These are any-kernel-updater packages that contain zImage + modules.

The latest stable build for CDMA Sense-ICS (11192013)

. MD5sum: 8092d83cea878bd7914e7c482b1eac57

The latest test build for CDMA Sense-ICS (01132014)

. MD5sum: 460f63d73f4ce60cf5fb107851a1a690

The latest stable build for CDMA AOSP-JB (11192013)

. MD5sum: cf1cf3051eadc6fcf32784705ca6d19e

The latest test build for CDMA AOSP-JB (01132014)

. MD5sum: 8dd5f2aaf018d180bb984475bd578d7d

The package that removes /system/bin/mpdecision and /system/bin/thermald

. Mpdecision included in the stock ICS ROM is a drag on the kernel performance without any noticeable benefit of battery life. MiRaGe kernel works much better without it. Thermald creates many error messages and it doesn't work well. If you have flashed the kernel in recovery you don't need this package. If you have flashed the kernel with Flash Image GUI, this package needs to be flashed in recovery only once after the initial flash of MiRaGe (not following updates).

The package to restore the stock kernel. MD5sum: 28505ef162e26634ad9bc37d3db5e81b The boot image, modules, mpdecision, and, thermald included in this package are from the March 2013 OTA (2.95) of VM and will only work with 1.57 and 1.58 hboot.

The package to restore the original /system/bin/mpdecision and /system/bin/thermald.

An Evervolv-based JB ROM I have built to match with this kernel is available here

Instructions and Recommendations

Flash Image GUI must be used when flashing the MiRaGe kernel first time over the stock kernel

since any-kernel-updater script will not be able to expand the stock encrypted boot image. If the EVO3D is still S-ON, Flash Image GUI is also recommended for flashing the MiRaGe kernel since Flash Image GUI bypasses S-ON safely and easily.

When the kernel package is flashed in the recovery, /system/bin/mpdecision and /system/bin/thermald are deleted since the kernel comes with corresponding kernel-based services. However those two binary files are not deleted by flashing the kernel using Flash Image GUI. So after flashing the MiRaGe kernel for the first time over the stock kernel, either flash the special package above or reflash the kernel in recovery to delete these files separately. This is required only once after the initial MiRaGe kernel upgrade.

I have tested the kernel with S-ON stock HBOOT 1.57/1.58 and also S-OFF JBear HBOOT 1.57.5757/1.58.5858/1.50.5050. Because the kernel upgrade package is an any-kernel-updater package (i.e. existing boot image is upgraded with new kernel binary), it should work with all HBOOT versions.

Against the widely claimed misconception, there is no need to wipe dalvik-cache with kernel flash. If you still want to wipe it for your superstition, there is no harm either other than wasting your time and wearing off the flash memory :)

If you try to flash the kernel in 4ext recovery while you are S-ON and get caught in a boot loop, you can boot into the fastboot (volume-down and power buttons) and recover the boot partition using the following command.

fastboot flash boot boot.img

You will need your original boot.img saved on your hard drive first. You can find the original boot.img in your original nandroid backup or in the stock-kernel package above if you are using the stock ICS ROM. In any case,

please do a nandroid backup before flashing anything

. For the boot image in the nandroid backup to work, you should have the same (or compatible) hboot when it was backed up. For example, the boot image that was working with v1.58 hboot will not boot with 1.50 but will boot with 1.57. I will not accept any responsibility with the loss of your phone or its warranty.

I use the excellent No-frills CPU Control app for controlling/changing the minimum/maximum frequencies, cpu governor, I/O scheduler and also monitoring the CPU stats. Normally, you don't need this app unless you want to control these settings, overclock, or monitor the CPU stats.

Using Kernel Tuner or similar apps is not recommended. I have optimized the kernel and MiRaGe kernel doesn't need any tuning/tweaking. Please don't post about kernel problems without mentioning that you are using kernel tuner.

Don't use the JB kernel with stock ICS ROM. Don't report problems to ROM developers without specifying that you use a different kernel with their ROM.

Credits

Thanks to Johnnyslt, Sultanxda (Android1234567), and Bigwillyg for their collaboration and help

Thanks to faux123, showp1984, MikeC84, Agraben, and Coolexe for their earlier development and patches

Special thanks to Koush for any kernel updater and joeykrim for Flash Image GUI

Thanks to LeslieAnn for testing USB OTG

Thanks to howpathetic for testing and help with the GSM build

Thanks to sellers86 for additional testing

Thanks to Christopher83 for the Linaro toolchain packages

And, also thanks to Linux, Google, CAF, CM, HTC developers, and all developers on XDA.

Battery Use and Performance for Reference

Battery life corresponds to light daily use with the original OEM battery and CPU @1.7 GHz overclock

The benchmarks are the best values with CPU @1.7 GHz overclock