[Android Software/Hacking General [Developers Only]] aorth:
Noma kernel for Huawei U8150

​

I'm introducing my custom kernel for Huawei U8150 IDEOS phones. In Kenyan Swahili noma usually means "tight," as in: "That music is tight!" It can be used in other ways too, but I like this connotation the best. ;)

Goals

​

My aim is to learn about Linux kernel internals, practice software development using git, and to share with the community. In addition to that, I want to explore and test tweaks which lead to increased/optimized performance on this bargain phone (it's very popular in Kenya). Some of the areas of improvement I have in mind are:

CPU scheduling (UI responsiveness, reducing lag)

CPU frequency scaling governors (smartass? ondemandX? interactiveX?)

I/O scheduling and filesystems (flash disk performance, throughput, latency, maybe simpleio scheduler?)

Security (network, local)

Newer drivers (mainstream, community kernel sources)

Newer GCC compilers (CodeSourcery, Linaro)

Easy rooting

Integrate ClockWorkMod Recovery

Integrate busybox

Explore different compression algorithms (LZO, gzip, LZF, etc) for zImage...

Compcache (zram) (info, announcement)

SLOB memory allocator for better memory allocation? (info)

Current features

​

- multi-touch gestures (on devices with [url=http://mjanja.co.ke/2011/08/does-your-huawei-u8150-support-multi-touch-gestures/]supported hardware[/url])
- over/under clocking of CPU frequencies
- Tiny RCU ([url=https://lwn.net/Articles/323929/]info[/url])
- BFQ I/O scheduler ([url=http://algo.ing.unimo.it/people/paolo/disk_sched/]info[/url])
- simpleio scheduler ([url=https://github.com/erasmux/hero-2.6.29-flykernel/wiki/Smartass]info[/url])
- "ck" patch set, including the Brain **** CPU scheduler (BFS) ([url=http://www.kernel.org/pub/linux/kernel/people/ck/patches/2.6/2.6.32/2.6.32-ck2/]info[/url])
- optimized memcopy/memmove ([url=https://github.com/alanorth/kernel_huawei_u8150/commit/871656cbba8ee70d0896ac5cae35a31c2e0873e3]info[/url])

Downloads

​

fastboot-flashable boot images:

20120514v1: info, download

20110903v83: info, download

20110827v56: info, download

20110824v49: info, download

20110823v47: info, download

noma_20110711v26_boot.img (the "oops, I messed up my phone" kernel... safe, stable defaults; close to "stock" Huawei)

Possibly more here (on github)

Change log

​

Change logs are a pain in the ass to keep up to date, but you can see changes live in the git repository itself. See the commit history of the below branches if you're curious:

froyo-noma-dev commits (dev, bleeding edge)

froyo-noma commits (stable)

Source code

​

I respect the GPL (the license covering the Linux kernel), so all the up-to-date source code for this kernel is available on github. My kernel is, in turn, based on the publicly-avaiable Froyo kernel sources from Huawei. You're free to fork, modify, and re-release the code as your own, but you must provide the source code for your resulting work. Doing so ensures you honor the terms of the license, but you're also giving back to the community. Basically, don't be a ****.

Credits

​

I've written zero lines of C code for this kernel. My work is merely to search for interesting modifications to the Linux kernel and add them to a git repository. The real work has been put in by the following people:

Linus Torvalds and all the other Linux kernel hackers around the world

tj_style (multi-touch gesture support)

Stefano Viola (over/underclock)

Renaud Allard for his Galaxy S awesome sauce (kernel, initramfs, etc)

Erasmux (smartassV2)

Let me know if I've left you out.

Donations

​

Hahaha! No seriously, save your money; I am gainfully employed and I just do this for fun (and lulz)! Instead, just hit "thanks" on this thread. Or, if you're ever in Nairobi you could always buy me a cup of coffee. ;)