Related
MiRaGe is a lean and efficient kernel for the stock Nexus 4 ROM with the optimizations and updates that are not included in Google's stock kernel. MiRaGe kernel fits squarely in the stock Nexus 4 ROM; all of the modules are integrated in the kernel just like the stock kernel and it should work with all AOSP ROMs that work with the stock kernel and boot image. However, only the current stock ROM is tested. If you decide to use MiRaGe, just flash and forget it since I have avoided adding more sysfs parameters. It is not my goal to enable all possible tweaking options and add every possible feature to the kernel such as multitude of governors, io schedulers, sweep2wake, fastcharge, etc. This kernel is not intended as a tweaker's kernel. You can, of course, tweak it as much as you want since that is your phone and kernel. But please try removing your tweaks before posting any problems. I always test the latest builds with the current stock ROM before posting here.
I am sharing exactly what I have developed for myself and posting 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 when they make sense.
Source Code:
Source code is based on Google's msm kernel source (currently android-msm-mako-3.4-lollipop-mr1.1) and a summary of my changes are below. You can find the full details of my changes and the complete source code in my repo.
Changes:
- synced with mainline Linux 3.4.110
- cleaned up kernel configuration and removed many unnecessary options
- removed kernel debugging options
- built with the Linaro toolchain (gcc 4.9.4 - 15.06) using standard krait and -O2 optimization
- removed AOUT and OABI support
- disabled both user-space msm_mpdecision and kernel-space msm_mpdecision
- removed msm_run_queue_stats, dcvs, and stock msm_mpdecision in the kernel
- added autosmp, a simple and efficient (by me) multi-core cpu hotplug driver
- disabled the user-space thermald and switched to kernel-based msm_thermal
- replaced CFQ with the latest BFQ as the default IO scheduler
- backported random and prandom updates from Linux 3.13 (no entropy depletion anymore)
- backported workqueue from Linux 3.8 to include many important improvements
- backported rwsem from Linux 3.11 to include lock stealing improvements
- backported mutex and rcu locking from Linux 3.10 and 3.8, respectively
- backported slub memory allocator updates from Linux 3.8
- backported cpufreq driver, ondemand, and conservative governors from Linux 3.12
- updated interactive CPU governor from AOSP and CAF
- disabled userspace CPU governor,
- enabled callback-free CPUs (RCU_NOCB_CPU)
- backported TCP Small Queues and CODEL net scheduler from Linux mainline and set as default
- updated kernel scheduler, msm-hotplug, msm-idle, msm-pm code from CAF and Linux mainline
- applied patch [v4] binfmt_elf.c: use get_random_int() to help with entropy depleting
- enabled autogroup scheduler and applied patch per-uid task group for Android
- added optimized ARM RWSEM algorithm
- added optimized ARM SHA1/AES routines
- enabled CPU-supported unaligned accesses
- disabled gentle fair sleepers in scheduler
- updated Qualcomm HW RNG driver from CAF
- enabled BPF JIT compiler for packet filters
- applied glibc patch to improve the performance of memcpy and memmove
- applied word-at-a-time ARM API patches
- enabled CPU overclocking up to 1.728 GHz with user-space vdd control
- optimized vdd curves, L2 and bus speeds for better performance and efficiency
- removed unneeded a2xx and a4xx components from kgsl driver
- modified the prima wifi driver to disable debug code
- removed PMEM completely, MiRaGe is pure ION
- add support for kernel mode NEON and NEON acceleration
- add NEON optimized SHA1, SHA256, and SHA512 crypto code
- add LoUIS API for cache maintenance ops to improve cpu hotplug latency
- added and enabled power_efficient workqueue
- added and enabled msm memutils
- added screen gamma, user space cpu voltage control, and dt2w
- backported devfreq driver from CAF and switched kgsl 3d governor to simple_ondemand
- backported many other fixes/updates/optimizations from CAF and Linux mainline, see the repo for details
- init.d supported if /etc/init.d and busybox are available
- a diff file of changes to ramdisk is here
Downloads:
Boot image for stock ROM:
LMY standard kernel Built: 10/25/15 MD5sum: a315cc446499d60cb4b3a61ea7bfa8f8
LMY overclock kernel Built: 10/25/15 MD5sum: 7c72a66830f511b025968db2bb743429
Anykernel updater for custom ROM:
Revert back to stock kernel to restore the original ramdisk and flash anykernel package of MiRaGe after that. This is not needed in the next anykernel update.
LMY standard kernel Built: 10/25/15 MD5sum: 85b4136ac0ada793da7b80763193095a
LMY overclock kernel Built: 10/25/15 MD5sum: 2924fb6a963b40087c296a7b1abfc1d3
KTU standard kernel Built: 10/31/14 MD5sum: dca7d06933eb43c8da3ba7941bb6ac88
KTU overclock kernel Built: 10/31/14 MD5sum: dca7d06933eb43c8da3ba7941bb6ac88
The only difference between the standard and overclock builds is the ~100mV undervolt in the overclock build. Both kernels have maximum CPU_freq = 1.728 GHz, default CPU_freq = 1.512 GHz, overclocking, and user space cpu voltage control enabled. Since the CPU gets hot quickly in Nexus 4, I only recommend overclocking with the overclock build that has built-in undervolt. If the phone doesn't boot with overclock kernel, it means that your CPU is not able to handle the undervolt settings. In that case, you can just reboot into recovery and flash the standard kernel. No-frills CPU Control is recommended to set the max overclock frequency. Each CPU has different overclock/undervolt ability. Don't get disappointed if the OC build doesn't work for you.
Installation:
You can do one of the followings
- Flash the zip files in recovery, there is no need to wipe cache or dalvik-cache
- Flash the boot image in the zip file using either Flash Image GUI or fastboot
- Here is the original boot image for LMY48I build, in case needed for going back to stock. Either flash in the recovery or open the zip file to extract the boot image.
Credits:
- Special thanks to Linux, Google, CAF, Linaro developers in general.
- @tvall, @bedalus, @xboxfanj, @ihancioglu, @xenyz for collaboration
- @stratosk for the screen gamma interface and dt2w
- @defconoi for collaboration (see Unleashed Kernel Series)
- @mathkid95 for the any-kernel updater package
- @joeykrim for FlashImageGUI
- @Christopher83 for the optimized Linaro toolchain builds
- Other credits are given in the repo for each commit
Recommendations:
I am frequently receiving requests to add sound patches in the kernel. I agree that the sound is not very good but there are solutions. I am using the Viper4AndroidFX as a replacement sound processor. I recommend giving it a try. You need to go to the sound options and select ViPER4AndroidFX to use this sound processor or freeze MusicFX (I use Link2SD for this). There is plenty of information at the above link. With this available, I am not planning to add any sound patches.
Another frequent question is about choosing CPU governor and IO scheduler. In the earlier builds, interactive governor had the best balance of performance and battery life among other CPU governors and it is still available. In the latest builds, ondemand governor was backported from Linux 3.12 and replaced interactive as the default. The latest patches in the mainline Linux, especially stratosk's patch that optimized the load calculations made the new ondemand governor the better option regarding both power and performance. Regarding IO scheduler, BFQ scheduler has the best overall real-use performance and it is actively maintained/improved. You can use Nofrills CPU Control to change the governor and scheduler. But I would leave the defaults as BFQ scheduler and ondemand governor.
Since all of the cpu power control functions are contained in the kernel with MiRaGe, the userspace PowerHAL library will be giving the following messages in the logcat.
Code:
E/PowerHAL( 511): touch_boost: failed to send: No such file or directory
E/PowerHAL( 511): touch_boost: failed to send: No such file or directory
E/PowerHAL( 511): touch_boost: failed to send: No such file or directory
These are harmless but if you want to eliminate them, just make a backup and delete/rename /system/lib/hw/power.msm8960.so and power.mako.so. The single purpose of touch_boost is to enhance the system response to the user interaction. But using a service in the user space to send a touch boost signal to the kernel via slow sysfs file system is the wrong way of trying to achieve lower latency. In addition, every touch input doesn't need a CPU frequency boost which wastes battery power. The best way of achieving the low-latency system response to user interaction is improving the efficiency of existing CPU governor which raises the CPU frequency and hotplug driver which enables off-line cpu cores when needed. In MiRaGe, CPU freq is only controlled by the CPU governor based solely on the CPU load and the latency is low since efficiency is improved by reducing such unnecessary bloat. Additionally, highly-efficient autosmp hotplug driver works in-sync with the CPU governor to enable off-line cpu cores when the the CPU frequency reaches a high threshold and still more compute power is needed. Therefore, touch boost bloat is removed.
With some of the custom ROMs, root is lost after flashing MiRaGe because of using the init scripts in the ramdisk for starting the su daemon. SuperSU is the recommended solution. I might switch to any-kernel-updater to address this problem but as written in the OP, MiRaGe is primarily for the stock ROM. Also, having the full boot image in the zip file is more reliable than expanding/processing/repacking the boot image.
MiRaGe supports init.d if it is setup. To setup init.d do the followings either within ES File Explorer or terminal .
- install busybox (I use busybox on rails)
- create /system/etc/init.d and chmod to 755 (rwxr-xr-x)
- create your init scripts in the /system/etc/init.d directory. Name them 01yourscriptname (e.g. 01mysettings) and chmod 755. Make sure they are UNIX format (not in DOS/Windows).
example:
Code:
#!/system/bin/sh
echo 1 > /sys/devices/virtual/input/lge_touch/dt_wake_enabled
- reboot
Here is how to add multiROM support
How to build:
If you are going to distribute your builds, please don't build your binaries with the same name (i.e. MiRaGe) and distribute in this thread. I would recommend you to start an alternative thread. Otherwise the problem reports will be too confusing for everyone.
First requirement is an ARM toolchain for cross compiling, i.e. using an X86 computer to generate ARM binary. I use Linaro tool chain for cross compiling like many others since Linaro specifically develops tool chains that produce optimized binary for ARM architecture.
Linaro toolchains can be downloaded from Linaro binary page. Christopher83 has built the latest Linaro-14.08 toolchain based on gcc-4.8.4 which is stable/reliable and I recommend starting the development with this toolchain.
The binary Linaro toolchain for Linux package needs to be expanded in a certain directory, probably inside the home directory. The source code for kernel is available in my Github repo, You can either download the kernel source as a compressed package or you can git-clone it with the following command (you will need git installed in your Linux computer)
Code:
git clone https://github.com/mrg666/android_kernel_mako.git
The kernel source can again be in a specific home directory.
After the source and toolchain are prepared, copy the configuration file for shooter, arch/arm/configs/mako_config, as .config to the root of the kernel source and use the following command to build the kernel
Code:
make ARCH=arm CROSS_COMPILE=~/untarred-toolchain-dir/bin/arm-linux-gnueabihf- zImage -j8
Replace j8 in the above command according to the number of cpus you have on your computer.
Also set CROSS_COMPILE based on the directory you have expanded the binary toolchain package in your home directory.
I always use the latest version of Xubuntu x64 (with custom built kernel) on my Linux workstation that has a AMD FX-8320 (overclocked to 4.2 GHz), 8 GB RAM, 500 GB HD. The compile time is about 2 minutes for me using all 8 cores. I have been using Ubuntu since version 10.04 to build Gingerbread, Jellybean, and Linux kernel and updated the OS to each and every new version, all of them worked just fine. There is no magic version of Ubuntu. The build problems arise from the package requirements not the OS version.
The flash package is easy. Just use any-kernel updater package in the OP as a template and replace zImage in /kernel directory with your build. If you want to create a boot image, see this post
Now that you have source and can build the kernel, you can add all the features you want to your own kernel
Woww greatt, thanks mirage
many thanks Mirage!
Does JSS come with caf video driver or it can be flashed on non-cm roms without problems?
Inviato dal mio Nexus 4 con Tapatalk
Good to see new kernel which goal is simplicity, not many of them are here. ill try it when clean instal comes to repertoar. just one question, you didnt mention -O3 and gcc 4.8.2, so i asume you didnt use them? Thanks.
Poslano sa mog Nexus 4 koristeći Tapatalk
I haven't updated the video driver from CAF ... yet. I will do after the 4.4 update if Google hasn't done yet.
Kernel is compiled with gcc 4.7.4 using -O2 optimization. gcc 4.8 was not giving me reliable builds yet. I will switch when 4.8 becomes stable. I have tried O3 optimization in the past and I didn't see any benefit of it. Plus, O3 optimization caused reliability issues especially with the latest gcc compilers.
MiRaGe should be compatible all AOSP-based ROMs, as long as the same user-space libraries are used with the stock 4.3 ROM. I can't claim universal compatibility since even stock JSS and JWR builds need different kernels.
Would you consider making a ZIP?
I found your kernel to be quite interesting, but I don't really like flashing via IMG file.
C.T.Richter said:
Would you consider making a ZIP?
I found your kernel to be quite interesting, but I don't really like flashing via IMG file.
Click to expand...
Click to collapse
you can download one of 1000 kernels around here and replace the kernel.img ... and wholà you have a zip version.
anarkia1976 said:
you can download one of 1000 kernels around here and replace the kernel.img ... and wholà you have a zip version.
Click to expand...
Click to collapse
Can't agree with you more but the problem with so many people on xda is that they rarely even open up a zip file to see how it operates. Guarantee most of the people will shy away simply because of the lack of a zip. Again I agree its not that hard to do but lets be honest here most have problems searching so taking a boot.img and putting it in a zip probably aint happening
I have just uploaded the alternative flashable zip files. I will remove the image files since they are in the zip files now.
Just flashed on slim and lost root... Just a heads up
Sent from my Nexus 4 using XDA Premium 4 mobile app
anarkia1976 said:
you can download one of 1000 kernels around here
Click to expand...
Click to collapse
LOL that's right!
QUIETLYloud said:
Just flashed on slim and lost root... Just a heads up
Sent from my Nexus 4 using XDA Premium 4 mobile app
Click to expand...
Click to collapse
That can't happen due to flashing the zip files in the OP since there is nothing in the zip file that touches /system, it is not even mounted.
Gonna give it a go on Vanir. I'll report back of my root gets effected. Happened a lot with 4.3 when it first came out
Sent from my Nexus 4 using Tapatalk
DontPushButtons said:
Gonna give it a go on Vanir. I'll report back of my root gets effected. Happened a lot with 4.3 when it first came out
Sent from my Nexus 4 using Tapatalk
Click to expand...
Click to collapse
I am using CWM 6.0.4.4. It is constantly suggesting to restore my root although it is not lost. If this is what is mentioned here, just ignore it; root is not lost. SuperSU, su keep working. Actually, I am losing my patience with CWMT lately. Maybe it is time to switch to TWRP.
mrg666 said:
I am using CWM 6.0.4.4. It is constantly suggesting to restore my root although it is not lost. If this is what is mentioned here, just ignore it. Root is not lost. SuperSU, su keeps working. Actually, I am loosing my patience with CWMT lately. Maybe it is time to switch to TWRP.
Click to expand...
Click to collapse
I'd say it's long overdue to switch to twrp lol. Ever since I switched to twrp back on my rezound, I have NEVER looked back to cwm. Not to say cwm isnt/wasn't great.. But you know how it is lol.
Sent from my Nexus 4 using Tapatalk
DontPushButtons said:
I'd say it's long overdue to switch to twrp lol. Ever since I switched to twrp back on my rezound, I have NEVER looked back to cwm. Not to say cwm isnt/wasn't great.. But you know how it is lol.
Sent from my Nexus 4 using Tapatalk
Click to expand...
Click to collapse
I just don't like the "overdesigned" interface of TWRP. It is too fancy for my taste. But as long as it works when needed, it would be fine with me. I don't boot into recovery so frequently anyway since I flash the kernel in fastboot or Flash Image GUI.
Oddly enough, I lost root. I'm currently running the latest version of Paranoid Saberdroid.
C.T.Richter said:
Oddly enough, I lost root. I'm currently running the latest version of Paranoid Saberdroid.
Click to expand...
Click to collapse
Is it just what the recovery says? I use the stock JWR ROM and root is preserved when I flash although CWMT falsely complains about it.
Edit: I just tested with TWRP as well. Root is still preserved.
mrg666 said:
Is it just what the recovery says? I use the stock JWR ROM and root is preserved when I flash although CWMT falsely complains about it.
Edit: I just tested with TWRP as well. Root is still preserved.
Click to expand...
Click to collapse
Using TWRP there is no error message, it just says it was installed successfully.
I just tried it on a clean install, and the same thing happened.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
DOWNLOAD
HERE
Google Drive mirror
I'm not responsable for data loss or any damage to your phone if you're using my kernel. You flash this at your own risk. Always make a backup!
(You need SuperSU 2.50 for this kernel to work!)
M/6.0 kernel:
Features:
new name: almost-stock, since it's... almost stock, but not really.
built on the base of latest Android 6.0 release, merged with franciscofranco's L kernel and CM/CAF12.1
built with -mcpu=cortex-a15 for enabling maximum performance with our Krait CPU.
reduced wireless wakelocks
underclocked GPU idle (GPU min/max 20/450MHz)
default CPU governor: CAF interactive, updated from CM/CAF12.1 branch.
built with cpu-boost driver to handle touchboost, default touchboost is set to 500ms and 1.2GHz
Motorola memory patches for ARM
default hotplug: MPDecision with updated rq_stats from CM.
I/O default schedueler: row
the famous I2C @ 19.2MHz, plus some other chips dropped at 19.2MHz and voltages lowered for internal components (Cl3Kener)
compilled with Linaro GCC (5.2.0) - arter's own build.
removed useless debug
workqueue udates from linux 3.7, power saving workqueues set on by default
selinux enforced (You need SuperSU 2.50 for this to work!)
partialsuspend enabled
various updates and fixes for net, mmc, thermal, selinux, block, cpufreq, sched, rcu, block
I probably forgot something
Credits:
neobuddy89, dorimanx, hellscore, franciscofranco, flar2, Cl3Kener
Christopher83 for Linaro GCC binaries, tutorials on how to compile Linaro, his Linaro binaries and tutorials
other people who work on Linux kernel.
arter97 for his GCC 5.2.0
Kernels from where I cherry-pick: Chaos/Hybrid - neobuddy89, Uber - Cl3Kener
Other guys from where I might cherry pick in the future.
Sources:
Kernel: ttps://github.com/StefanescuCristian/hammerhead
Ramdisk: https://github.com/StefanescuCristian/ramdisk_hammerhead
Toolchain:
https://github.com/arter97/linaro-lto
The attached images are from the KK version.
Oh, and if you want to build this for yourself, check this out!
XDA:DevDB Information
[KERNEL] [6.0] almost-stock (aka ex big-bum), Kernel for the Google Nexus 5
Contributors
big_bum
Source Code: https://github.com/StefanescuCristian/hammerhead
Kernel Special Features: GCC5
Version Information
Status: No Longer Updated
Current Stable Version: 2
Stable Release Date: 2015-11-01
Created 2014-07-07
Last Updated 2015-11-01
Reserved
Old kernel info:
Which version do I need?
It's pretty simple and I think I structured the download sites pretty good. If you want another structure or you have ideas for improvements, then feel free to post them. Anyway:
For AOSP based ROMs (Mahdi, Paranoid, Liquid Smooth, etc) use the AOSP folder. If you didn't change the ROM to support f2fs or f2fs-all, you must use ext4 or mpd*.
For Cyanogenmod based ROMs (CM, Carbon, AOKP, etc) you must use the kernels from the CM folder (cm or cm-mpd) . You can flash a f2fs version on CM. Read post 2, the Q&A section.
*mpd stand for MPDecision (make poor decision). It's qualcomm's user-space implementation for plugging/unplugging the cores. Some people say it's bad, some people say it's good. I personally like it and use it
Reserved
Lollipop Kernel
Features:
backports from upstream for most of main components
exfat for mounting exfat formatted sticks via USB OTG
f2fs for mounting f2fs formatted sticks via USB OTG or if you have an f2fs formatted internal memory (use the same image for all combinations of f2fs formatted partitions).
for mounting OTG sticks formatted in NTFS/exFAT/f2fs/other filesystem I recommend this app. FAT formatted sticks will automount if you use CM (might work on AOSP too, I haven't tested it)
I also include cherry-picks from other N5 kernels (especially from Chaos/Hybrid - @neobuddy89, Uber - @Cl3Kener and Code_Blue - @eng.stk)
min default CPU freq: 300MHz
max default CPU freq: 2.26GHz
default CPU governor: impulse
available CPU governors: ondemand, bacon, performance, powersave, interactive
hotplug: msm_hotplug developed by myfluxi
cpu-boost driver from CM.
I/O readahead size: 512KB
I/O default schedueler: fiops
other available I/O scheduelers: noop, deadline, cfq, BFQ, tripndroid
GPU min/max 20/450MHz
GPU default governor: simple
other GPU available governors: ondemand, performance
color profiles. Based on franco, works with FKU or Nexus Display Control app.
savoca's KCAL
franco sound
CM sound patches
dynamic fsync
various memory improvements. This doesn't mean less consumed RAM, also free RAM is wasted RAM for linux. Also, read this: http://www.linuxatemyram.com/
msm limiter (limits screenoff freq to 1.2GHz)
KSM: Kernel Samepage Merging.
KSM merges memory pages from one app with another app, thus only loading one memory page, not two pages that are the same.
Let's say that app A has the page X loaded in memory. Let's say that app B loads pages X and Y in memory. KSM detects that and points app B to the memory address from page X loaded by app A. In the end we have this:
Without KSM:
A: X
B: X, Y
Total: X, X, Y
With KSM:
A: X
B: ^, Y
Total: X, Y
Click to expand...
Click to collapse
the famous I2C @ 19.2MHz, plus some other chips dropped at 19.2MHz
HTCP as default TCP congestion control. (I personally don't see any differences between different TCP Congestion Control algorithms)
other TCPCC available: reno, bic, cubic (I used this in DD-WRT), westwood (they say it's good for wireless/3G/4G devices), vegas, veno
compilled with latest Linaro GCC (4.9.3), and with SaberMod
removed useless debug
I probably forgot something
Q&A
- Is it stable/bug free?
- As stable/bug free as franco's kernel is.
- Does it score better in benchmarks?
- I think so. At least Antutu says so, in the integer and float benchmarks. Quadrant also says this. It's not a huge difference, and you can't see it with the naked eye. But I don't trust in benchmarks that much.
- How's the battery life?
- (From Reddit) "The same battery life you get with Franco, if not a little better. Optimization means better performance, better performance means less time executing the same code, less time online means more deep sleep. Idk how much better it is, but it's not worse, anyway."
How can I configure it?
1. Universal Kernel Manager (Synapse + Script). Flash kernel, flash the zip from the link, install Synapse. Read here for more info on frequency getting stuck at 1.2GHz. TL;DR: go and setup via Synapse how you want, then go to CPU Tab, set minimum freq to 300Mhz, apply, enjoy.
2. FKU
3. Kernel Tweaker
4. Trickster Mod, via scripts in init.d, etc.
Recommended & tested ROMs:
Optipop
SlimAOSP
Terminus
Blisspop
This doesn't mean that ROMs are not supported, jus that I haven't tested them. The ROMs from this list are working as they should with my kernel.
Rollback:
Rename /system/lib/hw/power.msm8974.so.bak to /system/lib/hw/power.msm8974.so
Rename /system/bin/thermal-engine-hh-bak to /system/bin/thermal-engine-hh
Reboot to the bootloader and flash stock Kernel by downloading the Nexus images and then fastboot flash boot boot.img
Start the phone
Reboot to bootloader again and flash what kernel you want, and then start the phone.
Special thanks for testing and help:
@_MirageX_ @dox81 [mention]@pianistaPL[/mention] [mention]@shadowdevil[/mention]
Special thanks for donations:
[mention]@Paddybecks87[/mention] and the guy from reddit (notable-_-shibboleth) who also uses my build of pf-kernel for Ubuntu. (If you see this and you have a XDA username, give me a PM to put you in the list here)
Sources:
Kernel: ttps://github.com/StefanescuCristian/hammerhead
Ramdisk: https://github.com/StefanescuCristian/ramdisk_hammerhead
Toolchains:
Linaro: https://github.com/Christopher83/arm-cortex_a15-linux-gnueabihf-linaro_4.9.git
SaberMod: https://github.com/AuxXxilium/sm-arm-cortex_a15-eabi-4.9
BbKT (Big bum Kernel Tweaker): https://github.com/StefanescuCristian/android-kernel-tweaker
fabi_92 said:
I use big bum as primary but with some secondary rom and some kernel doesn't work.
FIX:
-flash rom
-flash gapps
-flash big-bum
-flash zip EXT4 or F2FS
-done
Click to expand...
Click to collapse
Old kernel info:
I said last night that this kernel works on CM.
First of all, CM is CAF. Our kernel is not CAF. This means that some libraries are not compatible with our kernel and need to be changed to make it compatible. This is exactly what Calkulin made. He made a zip that contain non-CAF libs to boot stock AOSP kernels.
I took that zip, modified it and put our kernel in it. This is more like a hack, it's not the real CAF kernel!
Also, in the OP I said that this isn't CAF-compatible by default. This is what I was talking about. With a little hack, it can run on CM.
This has nothing to do with the kernel. It's all in the libs. I only made a simple/easy/convenient way to flash CM and this kernel together.
How to:
Scenario 1: You don't have CM installed, you want to install it.
1. Download CM(tested with 07.07 nightly) or CM-based ROM zip. (In theory it should work)
2. Flash CM/CM-based ROM, gapps. Read the ROM OP for more details.
3. Flash the latest kernel/zip from CM folder.
When updating the ROM, you must reflash the kernel zip file from CM folder.
When updating the kernel, you can flash the normal ext4 version (zip or img from AOSP folder), or the hacked CM one (the zip from CM folder).
Scenario 2: You have CM and you want to try this kernel.
1. Download and flash the kernel/zip from CM folder.
When updating the ROM, you must reflash the kernel zip file from CM folder.
When updating the kernel, you can flash the normal ext4 version (zip or img from AOSP folder), or the hacked CM one (the zip from CM folder).
QA:
-f2fs/f2fs-all version for CM?
-No.
First of all, CM formats partitions to ext4 when flashing. You must edit your updater-script for it to work. If you know this, then you know what I'm talking about in the next 2 paragraphs.
Second, you can make a flashable zip by yourself.
Third, it's easier to download the zip from the thread and flash it, then flash a f2fs/f2fs-all kernel. (AOSP folder, zip or img)
You just have to be carefull that if you're on f2fs-all, you must edit META-INF/com/google/android/updater-script from Calkulin's zip file: replace ext4 with f2fs. Repack, flash your zip, flash f2fs/f2fs-all kernel, enjoy.
-I have done what you said. I now run CM on f2fs/f2fs-all. What do I do in case of an update?
-Well, it depends.
For ROM update:
1. Flash CM ROM.
2. Flash the zip you made and flashed when you asked the previous question (third point)
3. Flash f2fs/f2fs-all kernel
For kernel update:
1. Flash the appropiate f2fs/f2fs-all kernel. (AOSP folder, zip or img)
Credits: Calkulin for his thread, zip, files and discovery.
That's cool man ! Thank you for sharing this with us !
Sent from my Nexus 5 using XDA Free mobile app
Nice one
Sent from my Nexus 5 using Tapatalk
Thanks for sharing your kernel with us. Specs and notes sounds great, looking forward to running this.
-Sent from my Almighty Nexus 5 Hammerhead using XDA Premium 4 mobile app
Best kernel in 'da hood !
WoW !
Downloading. :good:
No disrespect, but since this is based on Franco this should be in Android Development. The mods will more than likely move it there soon.
Sent from my Nexus 5 using XDA Premium 4 mobile app
Welcome and very nice OP
Best kernel name by some margin.
This thread must be moved to Android Development as there are no "original" features here. Read rules before posting bro
Enviado do meu Nexus 5 através de Tapatalk
No problem man. I'll report myself and tell a mod to move it.
EDIT: It's already reported.
Dude take it easy "bro"..why do people get so upset?!? It's a freaking website forum...nothing more..people already mentioned it before you in a much much nicer way...thanks for the work OP it's great
Sent from my Google/LGE Nexus 5 Hammerhead
I really didn't get upset.
I didn't know how else to move the thread, so I thought that reporting it is the way to go.
Nice I'm gonna test it out great work man
Btw can live without it but gotta ask is dt2w included?
Sent from my Nexus 5 using Tapatalk
big_bum said:
I really didn't get upset.
I didn't know how else to move the thread, so I thought that reporting it is the way to go.
Click to expand...
Click to collapse
@big_bum hey sorry man I wasn't talking to you...I was talking to TomorrowLand_Ace
Sent from my Google/LGE Nexus 5 Hammerhead
Nice
Sent from my Nexus 5 using XDA Premium 4 mobile app
Sounds awesome, trying out this kernel NOW! Thanks for sharing
Sent from my Nexus 5 using Tapatalk
idriff said:
Nice I'm gonna test it out great work man
Btw can live without it but gotta ask is dt2w included?
Sent from my Nexus 5 using Tapatalk
Click to expand...
Click to collapse
No. But if you want dt2w you can use Linaro. You'll loose bfq and franco sound patches.
Dt2w or s2w will never be great on this phone because of battery drain.
But we have a hardware pedometer in our phone, so theoretically all the apps that are tracking step numbers should not use any battery at all because they are not using the accelerometer. I guess we can't have it all.
Sent from my Nexus 5 using Tapatalk
Features:
Based on Chroma Kernel (special credit for TomorrowLand_Ace work)
Blu_active Default Governor
Blu_plug - CPU Hotplug (removed Franco hotplug)
FIOPS I/O Scheduler
Enabled Overclocking CPU & GPU
Undervolted GPU
Build on Ubuntu 14.10
Kernel is secure
Compiled with lastest UBERTC 4.9.3, -O3 flags (GPU included), Graphite, hardfloat, and many other otimizations
FauxSound
PowerSuspend Driver
MSM Sleeper
Battery Life eXtender
LCD KCAL (Last version from @savoca, can't be tuned from any kernel manager for now)
Init.d Support
USB OTG
LZ4 (for a faster boot)
S2W / DT2W
Wake Gestures (huge thanks to @flar2)
Stereo Call Recording
Removed a lot of debug
Some Features from 3.7+ linux kernel
Upstream with Linux kernel .00
Full F2FS support (need to mod ramdisk to make it work, will make it automatic later)
Lots of optimizations from CAF, CM, and other kernels around xda
Main idea: Greatly patched kernel with the best governor, I/O scheduler and hotplug built with UBER toolchain.
Download for Lollipop 5.1
MOD EDIT, Download removed, rule 12 @gregbradley
Credits:
@TomorrowLand_Ace
@eng.stk
@franciscofranco
@faux123
@flar2
@show-p1984
@neobuddy89
@savoca
@RIPng
Source
If you want to support student and his work:
XDA:DevDB Information
Crystal Kernel, Kernel for the Google Nexus 5
Contributors
mastero9017
Source Code: https://github.com/mastero9017/hammerhead
Kernel Special Features:
Version Information
Status: Stable
Created 2015-04-03
Last Updated 2015-04-03
Reserved.
Where is the download link.? Can't open
Zonkoprince said:
Where is the download link.? Can't open
Click to expand...
Click to collapse
Fixed, link is under clickable Mediafire.
What app i should use to customise?
Zonkoprince said:
What app i should use to customise?
Click to expand...
Click to collapse
I suggest Kernel Auditor.
Kinda wondering could you maybe add some features from this kernel thread?
http://forum.xda-developers.com/showthread.php?t=2845768
It has nexus 5 kernel too but the devs mainly focused on n4 so maybe you could make the n5 version of it especially the 5.1 version. If it is allowed by the devs. Since the last commit is 2 months old and no new updates for 2 months
JJsevol said:
Ah makes sense now.
@mastero9017 are there any other changes you made from chroma besides the blu changes and toolchain? Liking the kernal so far :good:
Click to expand...
Click to collapse
Everything is listed in OP. I'm not sure yet about future of this kernel. TomorrowLand_Ace will provide great patches for kernel itself and i will try to port changes to blu modules from shamu and tweaks some values, flags, etc
Thread temporarily closed whilst I look in to the multiple reports made
@eng.stk has explicitly said that you have not got permission to share his work.
Download removed, thread remains closed
Now i'm going to build a new custom kernel for G313HZ
I have downloaded source from samsung open source release center
i compiled the kernel with KSM, some more io schedulers/governors and installed it, phone runs well but camera error.
Any ideas?
Hello everyone,
trying to compile my first kernel, i have some questions i hope you can answer
First, here is the kernel source code of my phone (http://opensource.samsung.com/reception/receptionSub.do?method=sub&sub=F&searchValue=SM-G903F)
Second i use UberTC toolchain 4.9.4
Questions:
- Is it possible to update kernel (base is 3.10.67). According to kernel.org, 3.18 is available but dunno how to update.
- How to include i/o sch, gpu gov, cpu gov... I mean, do we need to take existing file from an already modified kernel with same processor or any other will be ok too ?
- How to add synapse / stweaks ... support ?
- Where to find commits from toolchains ? How to patch source code toolchain ?
I really thank you for any anwser / help
Nobody is able to help about my questions ? Really ?