• If you are experiencing issues logging in, we moved to a new and more secure software and older account passwords were not able to be migrated. We recommend trying to reset your password, then contacting us if there are issues.
  • Nearly done! Migration cleanup is mostly done. There are a small number of issues left that we continue to work on, but all the heavy lifting is done. We still would love to hear feedback over at this thread and also check out the new XDA app! Thanks and we hope you enjoy the new forums, and thanks for your support of XDA <3

[ROM + KERNEL][Linaro][EXT4][F2FS][OC/UC][UV][AndMore] Khaon's kitchen 13/01

Would you like me to provide a linaro compiled rom with optimized flags ?


  • Total voters
    25
  • Poll closed .

Khaon

Elite Member
Apr 3, 2012
1,271
1,677
0
Louvain-la-Neuve, Belgium
Khaon presents his kitchen for
Xioami MI2(s) devices



I am not responsible for any damage to your phone.
Read before downloading or posting in the thread:
Proceed with caution if you have no experience
.

Introduction

You will find in this thread links to my kernel and a custom CM rom compiled with linaro toolchains and with optimized flags. The rom is shipped with my kernel
This kernel is based on cyanogen's. It ingrates various patches, in my opinion, stock kernel misses. It supports both ext4 and f2fs partitions.

This is a xda debDB project, so feel free to fill in bug reports, feature(s) request and review!

This kernel works on cyanogenmod rom and maybe some other AOSP roms!!
It uses, for now, a simple all kernel repack script. Thus, this repack method is not guaranteed to work at 100%for your custom rom!

Roms reported working so far : Omni Rom, Gummy rom, Paranoid rom, Pacman Rom, CM11 also​



The kernel is fully supporting f2fs, if will correctly mount your partition as long as they were formated with f2fs and ext4.
You don't need to edit the rom's script, it will detect itself your partition's filesystem.


For those who don't know what is f2fs

F2FS (Flash-Friendly File System) is a flash file system created by Jaegeuk Kim (Hangul: 김재극) at Samsung for the Linux operating system kernel.[2]

The motive for F2FS was to build a file system that from the start takes into account the characteristics of NAND flash memory-based storage devices (such as solid-state disks, eMMC, and SD cards), which are widely used in computer systems ranging from mobile devices to servers.
Some benchmarks to point out the performance difference between EXT4 and F2FS

Features :

  • Compiled with lastest stable linaro - 4.9.2-201409
  • Compiled with appropriated optmizated flags : O3, etc.
  • Any kernel script
  • CPU Governors : onDemand,msm-dcvs,interactive, intelliactive,conservative, performance, userspace
  • GPU Governors: onDemand,performance,interactive
  • I/O schedulers : noop, cfq, row,deadline, bfq v7r6(tweaked for nand devices)
  • CPU hotplug drivers : intelli_plug
  • intelli_thermal
  • Support and up to date with upstream f2fs revision branch
  • Mounts dynamically your partition as long as they were formatted with ext4 or f2fs(not working yet with data f2fs with TDB and sys2)
  • CPU UC/OCing
  • GPU OCing up to 500 Mhz
  • FauxSound 3.6
  • supports kernel neon mode
  • kernel image compressed with lz4 algorithm for faster boot
  • arm optimized crypto algorithms
  • frandom: A fast random number generator for replacement to urandom
  • uksm in replacement for ksm
  • Westwood+ TCP congestion control algorithm
  • And many more patches(see my github!).
Instructions :
Code:
[B]Kernel:[/B]
1. Reboot to your recovery
2. Install the zip
3. Wipe your caches( /cache & dalvik-cache)
4. reboot & enjoy!
[B]Rom: [COLOR="Red"][FONT="Arial Black"][SIZE="2"]THE ROM IS SHIPPED WITH ORIGINAL CM11 KERNEL[/SIZE][/FONT][/COLOR][/B]
1. Just install  the zip! (if you have some partition ith f2fs it will detect itself)

[B]Format cache and data partitions to f2fs:[/B]
You can use @XperianPro 's [URL="http://forum.xda-developers.com/mi-2/development/rom-cyanogenmod-11-modified-edition-t2873261"]philz's recovery[/URL] he built for his modified rom
or use my custom twrp recovery, [B]need to use 2.8.1.0 and onwards[/B]

[SIZE=1].[/SIZE]
Credits :

Cyanogenmod and particulary @@m11kkaa for their work on this device
Samsung for f2fs filesystem
@faux123for his work ( intelli_plug, intelli thermal, fauxsound, intelliactive)
@franciscofranco for his gpu governor
@osm0sis for his any kernel script 2.0
Linaro team for their work on the toolchain


XDA:DevDB Information
Khaon's kitchen for the Xiaomi mi2(s), ROM for the Xiaomi Mi 2

Contributors
Khaon, @faux123,@m11kkaa,@franciscofranco
Source Code: https://github.com/Khaon/mi2_kernel/tree/khaon

ROM OS Version: 4.4.x KitKat
ROM Kernel: Linux 3.4.x
Based On: Cyanogenmod

Version Information
Status: Snapshot
Stable Release Date: 2014-10-27

Created 2014-09-27
Last Updated 2015-01-05

XDA:DevDB Information
Khaon's kitchen for the Xiaomi mi2(s), ROM for the Xiaomi Mi 2

Contributors
Khaon, @faux123,@m11kkaa,@franciscofranco
Source Code: https://github.com/Khaon/mi2_kernel/tree/khaon

ROM OS Version: 4.4.x KitKat
ROM Kernel: Linux 3.4.x
Based On: Cyanogenmod

Version Information
Status: Snapshot
Stable Release Date: 2015-01-13

Created 2014-09-27
Last Updated 2015-01-13
 
Last edited:

Khaon

Elite Member
Apr 3, 2012
1,271
1,677
0
Louvain-la-Neuve, Belgium
Reserved

Changelog :
13/01
khaon said:
  • apq8064:final voltage for new L2 cache speed frequencies
  • merged with google's androidd 3.4 branch: squashed the following commits:
    • Merge remote-tracking branch 'common/android-3.4' into lollipop
    • ARM: pull in <asm/simd.h> from asm-generic
    • ARM: be strict about FP exceptions in kernel mode
    • ARM: move VFP init to an earlier boot stage
    • crypto: create generic version of ablk_helper
    • ARM: add support for kernel mode NEON
    • crypto: sha - Handle unaligned input data in generic sha256 and sha512.
    • crypto: sha512_generic - set cra_driver_name
    • crypto: sha512 - Expose generic sha512 routine to be callable from other modules
    • crypto: create generic version of ablk_helper
    • defconfig updated:enabled arm crypto
    • KEYS: Provide signature verification with an asymmetric key
    • KEYS: Asymmetric public-key algorithm crypto key subtype
    • KEYS: Implement asymmetric key type
    • crypto: add crypto_[un]register_shashes for [un]registering multiple shash entries at once
    • ARM: 8120/1: crypto: sha512: add ARM NEON implementation
    • ARM: 8119/1: crypto: sha1: add ARM NEON implementation
    • ARM: 8118/1: crypto: sha1/make use of common SHA-1 structures
    • crypto: arm-aes - fix encryption of unaligned data
    • CRYPTO: Fix more AES build errors
    • ARM: add .gitignore entry for aesbs-core.S
    • ARM: add support for bit sliced AES using NEON instructions
    • ARM: move AES typedefs and function prototypes to separate header
    • ARM: 7837/3: fix Thumb-2 bug in AES assembler code
    • ARM: 7723/1: crypto: sha1-armv4-large.S: fix SP handling
    • ARM: 7626/1: arm/crypto: Make asm SHA-1 and AES code Thumb-2 compatible
    • arm/crypto: Add optimized AES and SHA1 routines
  • sync with f2fs upstream branch
  • squashed few commits from CAF:
    • mm: vmscan: lock page on swap error in pageout
    • Staging: android: binder: More offset validation
    • Input: Send events one packet at a time
    • binder: NULL pointer reference
    • staging: binder: add vm_fault handler
    • staging: binder: Change binder mutex to rtmutex.

08/11

@khaon said:
  • rom
    • compiled with ftree-vectorize extra flags
  • kernel
    • cpufreq: create a helper function to get CPU utilization. Picked from @stratosk
    • aries_defconfig updated
    • block: zen: fix a bug in add_request, should use rq_is_sync
    • Adjust zen comments
    • Some cleanups to zen I/O scheduler
    • block:zen:I/O scheduler adjustments, reduce fifo_batch to 1
    • Add Zen I/O scheduler. Similar to SIO, primarily based on no-op and deadline. Intended to be mostly FCFS. Simpler than SIO in many ways, one of them being write requests/read requests have mostly the same priority.
    • f2fs: updated to upstream branch
    • added the new mount option fastboot for f2fs partition
This commit add a new mount option : fastboot

If a system wants to reduce the booting time as a top priority, now we can use a mount option, -o fastboot. With this option, f2fs conducts a little bit slow write_checkpoint, but it can avoid the node page reads during the next mount time.
As usual the rom is shipped with regular kernel, tdb users will have to flash tdb kernel
[/HIDE
[/QUOTE]

24/10




  • f2fs: remove pointless bit testing in f2fs_delete_entry()
  • f2fs: revisit inline_data to avoid data races and potential bugs
  • f2fs: fix possible data corruption in f2fs_write_begin()
  • f2fs: use current_sit_addr to replace the open code
  • f2fs: rename f2fs_set/clear_bit to f2fs_test_and_set/clear_bit
  • f2fs: set raw_super default to NULL to avoid compile warning
  • f2fs: introduce f2fs_change_bit to simplify the change bit logic
  • f2fs: remove the redundant function cond_clear_inode_flag
  • f2fs: remove the seems unneeded argument 'type' from __get_victim
  • f2fs: avoid returning uninitialized value to userspace from f2fs_trim_fs()
  • f2fs: declare f2fs_convert_inline_dir as a static function
  • f2fs: use kmap_atomic instead of kmap
  • f2fs: reuse make_empty_dir code for inline_dentry
  • f2fs: introduce f2fs_dentry_ptr structure for code clean-up
  • f2fs: should not truncate any inline_dentry
  • f2fs: reuse core function in f2fs_readdir for inline_dentry
  • f2fs: fix counting inline_data inode numbers
  • f2fs: add stat info for inline_dentry inodes
  • f2fs: avoid deadlock on init_inode_metadata
  • f2fs: fix to wait correct block type
  • f2fs: reuse find_in_block code for find_in_inline_dir
  • f2fs: reuse room_for_filename for inline dentry operation
  • f2fs: update f2fs documentation for inline dir support
  • f2fs: enable inline dir handling
  • f2fs: add key function to handle inline dir
  • f2fs: export dir operations for inline dir
  • f2fs: add a new mount option for inline dir
  • f2fs: add infra struct and helper for inline dir
  • f2fs: avoid infinite loop at cp_error
  • f2fs: avoid build warning
  • f2fs: fix to call f2fs_unlock_op
  • f2fs: avoid to allocate when inline_data was written
  • f2fs: use highmem for directory pages
  • f2fs: fix race conditon on truncation with inline_data
  • f2fs: should truncate any allocated block for inline_data write
  • f2fs: invalidate inmemory page
  • f2fs: do not make dirty any inmemory pages


[*]cpufreq:intelliactive:tweaked tunnables
[/LIST]



20/10

12/10:


  • fixed occasional errors that were preventing to mount correct partitions at boot

09/10


  • f2fs: updated to revision branch
  • aries: corrected the default max freq bouncing
  • intelli thermal : introducting, patched to upstream revision
  • aries : corrected voltage regulator !!! Voltage < 700 mV weren't correctly applied because of it.



28/09
GPU :
  • GPU overclocking : initial support

Sound:
  • Imported fauxSound 3.6[/


27/09:

  • GPU:
    KGSL : interactive governor: initial support​
  • Kernel:
    add support for LZ4-compressed kernel
    arm: add support for LZ4-compressed kernel
    lib: add support for LZ4-compressed kernel
    decompressor: add LZ4 decompressor module
    ARM: 7583/1: decompressor: Enable unaligned memory access for v6 and above
    frandom: A fast random number generator as a kernel module for Linux.
    SELinux: Fix memory leak upon loading policy​
  • FS:
    f2fs: initial suport with sources from upstream revision
    writeback: fix race that cause writeback hung​
    MM:
    mm: Increase VM_MAX_READAHEAD to 512
    mm: ukms : initial support ukms is an improvement upon KSM. Some basic data structures and routines are borrowed from ksm.c
    CHROMIUM: mm: Fix calculation of dirtyable memory​
  • Block:
    block: cgroups, kconfig, build bits for BFQ-v7r5-3.4
    block: introduce the BFQ-v7r5 I/O sched for 3.4
    Async I/O latency to a ssd greatly increased, 34% gain (Creds: kleikamp)
    block: Reserve only one queue tag for sync IO if only 3 tags are available
    ext4: speed up truncate/unlink by not using bforget() unless needed
    deadline: Allow 0ms deadline latency, increase the read speed
    mmc: disable CRC check​
  • crypto:
    arm/crypto: Add optimized AES and SHA1 routines
    crypto: sha1: add ARM NEON implementation
    crypto: arm-aes - fix encryption of unaligned data
    ARM: add .gitignore entry for aesbs-core.S
    ARM: add support for bit sliced AES using NEON instructions
    ARM: 7837/3: fix Thumb-2 bug in AES assembler code
    ARM: 7723/1: crypto: sha1-armv4-large.S: fix SP handling
    ARM: 7626/1: arm/crypto: Make asm SHA-1 and AES code Thumb-2 compatible
    ARM: 8118/1: crypto: sha1/make use of common SHA-1 structures​
  • arm : kernel neon mode:
    ARM: be strict about FP exceptions in kernel modee
    ARM: move VFP init to an earlier boot stage
    ARM: add support for kernel mode NEON​
  • ARM:
    intelli_plug : initial import
    Intelli_plug: kernel sched/core: add per cpu nr_running stats
    intelli_plug: refactor stats calculation code to be less intrusive
    Voltage Control: initial voltage control for MSM S4-Pro SOC
    ARM : vfp : using hard float now
    Intelliactive : iniatial introduction from faux123's mako repo​
 
Last edited:

Khaon

Elite Member
Apr 3, 2012
1,271
1,677
0
Louvain-la-Neuve, Belgium
wifi and bluethoot dont work in Moonlight Nexus 5 experience rom.
http://forum.xda-developers.com/mi-2/orig-development/rom-nexus-5-experience-rom-m2-2s-t2881568
I have also screen tearing. Any plans on anykernel version?
Only aosp or cm too?
At the moment I am running cyanogenmod rom and everything is working. All other issues on other roms are related most likely to the ramdisk. A first try is to repack. Otherwhise I can port the kernel for any rom.
 
Last edited:

paul89rulez

Elite Member
Apr 13, 2010
1,195
665
113
i think that its better to do an universal version (anykernel metod) for you (porting your kernel to all roms is difficult). Btw do as you wish, i m ready for test any Moonlight\Mokee version :)
 

Khaon

Elite Member
Apr 3, 2012
1,271
1,677
0
Louvain-la-Neuve, Belgium
i think that its better to do an universal version (anykernel metod) for you (porting your kernel to all roms is difficult). Btw do as you wish, i m ready for test any Moonlight\Mokee version :)
Well, I don't know what exactly is any kernel, I just wanted at first to share my own kernel for cyanogenmod since that's what I am running. However, it is with pleasure I would do an universal kernel just I need to look into any kernel :confused::silly:. any ressources are welcome!
 
  • Like
Reactions: ivangotoy

Khaon

Elite Member
Apr 3, 2012
1,271
1,677
0
Louvain-la-Neuve, Belgium

T3sla

Senior Member
Jan 14, 2012
447
107
43
Thessaloniki
Yeah I was just beeing busy to implement that. In fact it is just a repack of the the current rom ramdisk. However, like I said above, it is the first try, but it ain't 100% of the time working. Stay tunned then about to release a new updater-script zip
Problem with AOSB too.Screen tearing, wifi, bluetooth don't work, i guess all AOSP based roms will have the same problem.Waiting for the new one.Just a friendly request, it would be nice if you could add charge limiter, if it's possible of course.
 

T3sla

Senior Member
Jan 14, 2012
447
107
43
Thessaloniki
What do you mean exactly? A sysfs interface to sec the max amperage?
I don't know how exactly is implemented but i mean limit the charge level, e.g. stop charging when it hits 90%.The point behind this feature is that batteries last longer if you don't charge them to full capacity.It's better to charge them at lower level and more frequently instead of less full charges.A lot of laptops have this feature, also a relevant link i found.There is a very analytical post at batteryuniversity.com about the subject, i can search if you wanna read.
 
Last edited: