[DEV ONLY!] Backporting OMAP Drivers from Linux 3.0 into our 2.6.35 Kernel - Samsung Galaxy SL i9003

PROJECT: Backport essential OMAP drivers from OMAPZOOM 3.0.y Kernel into our 2.6.35 Source
Firstly, I would like to thank dhiru1602 for his CM9/CM10 builds in which he fixed up a lot of bugs single-handedly.
Also, thanks to rocker529 who helped me in this Project.
Me, and rocker529 have been working on this project for the last few weeks, and we have made some progress.
Since backporting Kernel 3.0 wasn't possible on our GT-i9003, I contacted dhiru1602 regarding what could be done in order to have a fully working CM9/CM10 port. Since, the OMAPZOOM Kernels would refuse to boot and no news about the LG Optimus Black Kernel Sources I decided to work on this.
According to my study/research and after a talk with dhiru.
The following would be needed to fix up all Video decoding/recording , camera, lag, HW Composer issues with our present CM9/CM10 builds.
We need-
Implementation of ION Memory Allocator.
What is ION?
ION is a generalized memory manager that Google introduced in the Android 4.0 ICS (Ice Cream Sandwich) release to address the issue of fragmented memory management interfaces across different Android devices. There are at least three, probably more, PMEM-like interfaces. On Android devices using NVIDIA Tegra, there is "NVMAP"; on Android devices using TI OMAP, there is "CMEM"; and on Android devices using Qualcomm MSM, there is "PMEM" . All three SoC vendors are in the process of switching to ION.
You can read more documentation here: http://lwn.net/Articles/480055/
Our progress:
We managed to backport all the ION drivers including our OMAP Specific ION Allocator driver. Fixed up all the errors. It will compile, even managed to get it to boot. However, the required sysfs enteries seem to be missing at /dev/ion . All that I get is some enteries in /debug/ion .
This could possibly be due to improper changes made to our board-latona. We need to initialize ion properly when our board initializes(omap_ion_init() and omap_register_ion() ) which I have failed to do due to no possibility of getting logs on splash screen when the Kernel is loaded.This port also required to new memblock drivers from Linux 3.0 which I have backported.
You can take a look at the changes at my github, please point out if I have missed out anything
Implementation of DSSCOMP-
A: DSSCOMP is needed to make our OMAP HW Composer to work. I have merged all the possible necessary drivers needed for dsscomp. Firstly, dsscomp needs implementation of OMAP ION. Despite of this, we have managed to fix up all the compile errors encountered in our Kernel Source. The driver will compile, but will not boot since ION is not working. Also, it does not go past the boot screen so there are no chances of getting a log.
Again, you can look at my github to see what I have done.
Besides this, we had to backport a LOT of stuff from the OMAPZOOM 3.0 Kernel ! You can take a look at the changes I have made in detail at my github repo..
If I have missed out something, or if I am doing something wrong please help. If we can manage to fix this we could possibly have a stable CM9/CM10 in future.
Please keep this thread [DEV-ONLY] and avoid posting noob questions.
Thanks.

Current progress: Backporting all dependencies for ion and memblock to work.Not sure it would boot though.

Compile from my sources
If you wish to help us I have made a small guide on how to compile your Kernel from my Sources-
Please do not ask me stupid questions like how to copy modules, toolchain error, etc. Proceed only if you have basic knowledge about Linux Kernel Compiling.
Toolchain I use and reccomend: arm-eabi-4.4.3 from CyanogenMod repo. You can find it here.
I would recommend making a github account since it is free and will make it easy for us to track changes, again don't ask me on how to use git, there is plenty of information over the Internet. Take time and search,read etc.
Clone my github repo
Download these boot.img tools.
I will be using directory /home/aditya/i9003 for my reference, you may use any.
Assuming our Kernel is in i9003/Kernel.
Unpack your boot.img tools into tools folder at i9003/tools.
Follow the README in the tools, and unpack CM9/CM10 boot.img.
In the tools/unpack folder make sure you have boot.img-ramdisk.gz (Thats the ramdisk, do not unpack it)
Download this and extract it in i9003/tools folder such that you get i9003/tools/out (This folder will have files needed for CWM zip and compiled modules will go here)
Change your toolchain path in Makefile, add your name to i9003/Kernel/scripts/mkcompile.h if you wish.
Thats done. Your build environment is set up.
Now just,
Code:
cd i9003/Kernel
./build.sh
Sit back and relax, the resulting Kernel will be automatically packed into a flashable zip in i9003/BETA_KERNEL#.zip.
Simply copy to sdcard and flash.
Hoping more people can contribute to development for i9003.

rocker529 said:
Current progress: Backporting all dependencies for ion and memblock to work.Not sure it would boot though.
Click to expand...
Click to collapse
The functions needed for omap_reserve() need to be backported, can you commit your changes? They are not booting as per the ones in the omapzoom 3.0 Kernel.

good luck u guys. have u missed to write "wifi fix" on the topic or,
fix up all Video decoding/recording , camera, lag, HW Composer
Click to expand...
Click to collapse
does it not depend on kernel?

all the best bro with your project and thx you to try it for our phone !:laugh:
i think it is an good idea to make our phone stable before porting kernel 3.x

Good luck in developing, looking forward to this project. :thumbup:
Happy sl user
Sent from my GT-I9003 using xda app-developers app

you should add battery solution cuz battery drain is huge compared by ginger kernel ... the old kernels like amits and vurrut so much better compared to cm kernels
thanks 4 ur effort and waiting 4 ur custom cm10 rom if allah want
Sent from my GT-I9003 using xda app-developers app

Dude like seriously,
I have so much of expectation from u guyzz (Y)
Good Luck !!
Sent from my Galaxy SL using XDA Premium App !!

dorukc said:
good luck u guys. have u missed to write "wifi fix" on the topic or, does it not depend on kernel?
Click to expand...
Click to collapse
From what I know, the wifi module is not compiled from the kernel source and the TI SDK is used to compile it. But ION and DSSCOMP will not help with wifi. For that we will need to seperately debug the wifi drivers (ti_wlan) .
Sent from my GT-I9003 using xda premium

Stuck up at the moment. The backported omap_reserve() functions aren't booting, getting stuck at splash screen. I'll wait, since hillbeast is busy now.. once he is free I will ask him for uart logs.. thinking of posting my kernel(cm10) for testing here , what say people?
Sent from my GT-I9003 using xda premium

^^ Go ahead and post it, but not on this thread. Leave this for development only.

I hope the kernel could be released soon AS possible
Sent from my GT-I9003 using xda app-developers app

Current progress and To-Dos:
The current progress is we are already having the board reserve memory for ion on startup. But since the reserve functions for vram, dsp, ipu and omapfb are not working, we need to backport all the functions and its dependancies from the omapzoom 3.0.y kernel.
To-Dos:
1.Have another brief look at omap_ion_init and omap_ion_register functions.
2.Try to backport the four functions from omapzoom 3.0.y kernel.
3.Have a check at memblock and mm drivers of our current kernel to check for dependancies.
4.If it doesn't boot, get UART logs from hillbeast for debug.

rocker529 said:
Current progress and To-Dos:
The current progress is we are already having the board reserve memory for ion on startup. But since the reserve functions for vram, dsp, ipu and omapfb are not working, we need to backport all the functions and its dependancies from the omapzoom 3.0.y kernel.
To-Dos:
1.Have another brief look at omap_ion_init and omap_ion_register functions.
2.Try to backport the four functions from omapzoom 3.0.y kernel.
3.Have a check at memblock and mm drivers of our current kernel to check for dependancies.
4.If it doesn't boot, get UART logs from hillbeast for debug.
Click to expand...
Click to collapse
Do you want me to edit the Kernel 3.x discussion thread to a backporting project (this) ?
Or simply create another independent one.

I think this topic is very well for questions and information and monitor progress
if there are no spam we get to the good times to follow.
Create a topic and put the other links on the first post when compared with the release obliged for calm languages ​​lamp.
This is the topic of CM10 should have done as the section between dev and overall it is not clear

^^ Wait till Adi_Pat or rocker529 decide to post their test kernel here or maybe give it a unique name and make another thread. Then it would be time to have a q&a or discussion thread. Hopefully this thread wont attract much crowd till there's stuff to download.

Adi_Pat said:
Stuck up at the moment. The backported omap_reserve() functions aren't booting, getting stuck at splash screen. I'll wait, since hillbeast is busy now.. once he is free I will ask him for uart logs.. thinking of posting my kernel(cm10) for testing here , what say people?
Sent from my GT-I9003 using xda premium
Click to expand...
Click to collapse
it will be another kernel or the kernel with omap drivers frim linux 3.0 into your 2.6?

Skander1998 said:
Do you want me to edit the Kernel 3.x discussion thread to a backporting project (this) ?
Or simply create another independent one.
Click to expand...
Click to collapse
No need editing it, as the 3.0.y kernel work is mainly done by hillbeast, and our's is just a backport of parts of the 3.0 kernel to the current 2.6.35.7 kernel, which is separate and non related.
Mamica said:
it will be another kernel or the kernel with omap drivers frim linux 3.0 into your 2.6?
Click to expand...
Click to collapse
Just the old 2.6.35.7 kernel, with DSSCOMP, ION and other dependancies backported from omapzoom 3.0 kernel.

ooikaisheng529 said:
No need editing it, as the 3.0.y kernel work is mainly done by hillbeast, and our's is just a backport of parts of the 3.0 kernel to the current 2.6.35.7 kernel, which is separate and non related.
Just the old 2.6.35.7 kernel, with DSSCOMP, ION and other dependancies backported from omapzoom 3.0 kernel.
Click to expand...
Click to collapse
with this kernel the rom might works much better than with an old kernel?

Related

[Q] kernel

Hi,
I am trying to extract the kernel from mmcblk0p20 using unpack-bootimg.pl
from this post: http://forum.xda-developers.com/showpost.php?p=2885020&postcount=1
I can get a valid ramdisk out of it but the kernel is not a gz file as it should be.
Any hint?
Etn40ff said:
Hi,
I am trying to extract the kernel from mmcblk0p20 using unpack-bootimg.pl
from this post: http://forum.xda-developers.com/showpost.php?p=2885020&postcount=1
I can get a valid ramdisk out of it but the kernel is not a gz file as it should be.
Any hint?
Click to expand...
Click to collapse
The kernel is not exactly a "gzipped" file because the first part of it has bootloader code that provides a mechanism to uncompress the remaining part of the kernel (which uses a form of gzip provided by a micro zlib).
More importantly, what are you trying to accomplish? The "kernel" image that comes from split_bootimg.pl (or such) is the actual file you use to re-pack, etc. Unless of course you're trying to decompile the kernel for reverse engineering purposes, but that would be pointless and you wouldn't be asking this question if that were the case.
If you're trying to get the kernel config, use extract-ikconfig from the 'scripts' directory in the Linux source tree. You have to invoke it by cd'ing into the Linux source directory and doing:
Code:
./scripts/extract-ikconfig /path/to/your/kernel-file &> /where/you/want/the/resulting-config
(you can't cd into 'scripts' and have it work).
Enjoy.
As you say unpacking the kernel to get the configuration is pointless: I could get it on htcdev without any effort.
I just had a boring night and I tried to kill it repacking my own flavour of android.
I was not able to make it boot so I started guessing which problem I was having; the kernel seemed a reasonable candidate (I was convinced that I was stripping the header away from it when unpacking)
how could you acquire that kernel? last time I checked there was no source?
You need the kernel source before a kernel can be made. Thats the sucky part.
Sent from my myTouch_4G_Slide using xda premium
Undeadk9 said:
You need the kernel source before a kernel can be made. Thats the sucky part.
Click to expand...
Click to collapse
Eh? No. A kernel exists, just in binary form. HTC has yet to release the source code, but unless you plan to modify parts of it, there's not much point.
nbetcher said:
Eh? No. A kernel exists, just in binary form. HTC has yet to release the source code, but unless you plan to modify parts of it, there's not much point.
Click to expand...
Click to collapse
A kernel source is no problem, I got it from android github.
The issue is the mods htc made and added, and the tools around it they used to compile.
I would like to compile my own, to optimize (did it on linux too).
If anyone can explain me simple how to use the binary kernel, I am happy too for now, if that makes me able to compile CM7
Anyone? Can't be too hard since a lot of folks pulled it of?
I have a lot of technical experience, just need some android specific info
I know nothing bout kernels. They scare me. I'll stick to ROM making.
Sent from my MyTouch 4G Slide using xda premium
OpenMinded said:
A kernel source is no problem, I got it from android github.
The issue is the mods htc made and added, and the tools around it they used to compile.
I would like to compile my own, to optimize (did it on linux too).
If anyone can explain me simple how to use the binary kernel, I am happy too for now, if that makes me able to compile CM7
Click to expand...
Click to collapse
It's not quite that simple. They don't just 'mod' the kernel, they add device support to it. The upstream Linux kernel does not support the latest and greatest Qualcomm-based devices, so HTC uses their own repository based on Codeaurora (http://www.codeaurora.org) which is downstream from Qualcomm. Confused yet?
Point being: Linux will not run properly on our device until we have either the HTC Sensation source, Doubleshot source, or someone sifts through and pieces together all of the various sources needed from Codeaurora.
To use the binary form, just use boot.img from our device's HBOOT image.
nbetcher said:
It's not quite that simple. They don't just 'mod' the kernel, they add device support to it. The upstream Linux kernel does not support the latest and greatest Qualcomm-based devices, so HTC uses their own repository based on Codeaurora (http://www.codeaurora.org) which is downstream from Qualcomm. Confused yet?
Point being: Linux will not run properly on our device until we have either the HTC Sensation source, Doubleshot source, or someone sifts through and pieces together all of the various sources needed from Codeaurora.
To use the binary form, just use boot.img from our device's HBOOT image.
Click to expand...
Click to collapse
Thank you for the explanation.
I have been compiling kernels on linux, I know we need drivers and that HTC patches the kernel. I did not know about codeaurora, thanks .
The HTC Sensation kernel source is on the HTC website:
http://developer.htc.com
I was wondering undead, how do you compile other ROMS? You just strip what is not needed? I thought you know how tot strip just the kernel, since you made a senseless rom.
I will try using the boot.img, thanks.
Does that mean porting a Sense rom would only require swapping the boot.img from another Sense 2.0/3.0 rom?
Thanks for the info
LOL. No its still the sense base and uses the stock boot.img from the stock ROM. It's still HTC at its core. Like I said I know 0 'zero' about kernels.
Sent from my MyTouch 4G Slide using xda premium
Undeadk9 said:
LOL. No its still the sense base and uses the stock boot.img from the stock ROM. It's still HTC at its core. Like I said I know 0 'zero' about kernels.
Sent from my MyTouch 4G Slide using xda premium
Click to expand...
Click to collapse
point taken . I think I just made a working zip containing only the stock kernel.
If I have time, I will try to put that kernel in a AOSP rom for the Sensation and see what that does. may take some time...
does any1 know how to mod the device checking of a rom?
i get an error 7, found it is because of the device check.
I modded the update script and binary from the Senation Alpha cm7 and got that error, which seems to point to a different model of phone.
I would like to work around it and see if the kernel works with cm7

▐▐ MISSION-HWA▐▐ aria

Wellcome to MISSION HWA
Why am I affected by?
Because you what CM9 and MIUI running on your phone.
But fast, smooth and with all functions or am I wrong?
About:
Wildfire S, Aria, Legend.. and more (you tell me) We all got the ports working on
your device. But without HWA it is unuseable. We are brothers and sisters, because our phones are similar.
CPU 600 MHz ARM 11
GPU Adreno 200
Why a mission?
You all are her because ONE PROBLEM needs to be solved.
Most things are fixed like WIFI/GPS/Network and so on.
Everyone love Android ICS but only a few run it because
its laggy, slow and not made for the daily use because of this bug.
And because I wanted a cool name^^
Most of the devices are running the CM7 Drowningchild Kernel.
We need to fix HWA. It enable a lot of apps for ICS and 3D but also the speed and smoothness.!
Working together is much successful than working alone.
Working harmonously together is much more enjoyable
And NOW START WORKING!
WE JUST NEED ONE WORKING KERNEL!! So we can port it and porting
a kernel isn't that hard.
GO TO THE THREAD
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
matt5eo said:
WE JUST NEED ONE WORKING KERNEL!! So we can port it and porting
a kernel isn't that hard.
Click to expand...
Click to collapse
Yes, it really is.
matt5eo said:
WE JUST NEED ONE WORKING KERNEL!! So we can port it and porting
a kernel isn't that hard.
Click to expand...
Click to collapse
Drowning can do that !
Only kernel? What about egl... etc?
Here's the precise status:
There's a group of devices based on the msm-7x27 arch that all use the same adreno 200 driver. Their libegls will work for us, once we get a kernel updated to use the right gpu drivers. The problem is, the gpu drivers are all built around a later fork of the msm kernel tree, which is after the clock code was RADICALLY overhauled. This means our board files (arch/arm/mach-msm/board-liberty*) are not compatible with the new kernel trees, and the clock stuff+kgl stuff backporting to a kernel that works for us means integrating the clock changes.
I've been in communication with drowningchild on this, btw. He is not going to contradict what I say here.
'Just' porting the kernel over here means integrating a few THOUSAND lines of code from a different kernel, some of which are conflicting changes with what is in our kernel right now. The alternative (porting our board files to the new kernel) means porting THOUSANDS of lines of code to a kernel that is also partially incompatible, so it means re-writing a good chunk of it.
If you don't believe that I'm credible, here's the article discussing my port of the HTC Hero CDMA to kernel 2.6.35:
http://www.xda-developers.com/android/2-6-35-kernel-successfully-ported-to-hero-cdma/
Let me know if I can help with anything...
(My kernel "skill" isn't very good though )
s0be said:
Here's the precise status:
There's a group of devices based on the msm-7x27 arch that all use the same adreno 200 driver. Their libegls will work for us, once we get a kernel updated to use the right gpu drivers. The problem is, the gpu drivers are all built around a later fork of the msm kernel tree, which is after the clock code was RADICALLY overhauled. This means our board files (arch/arm/mach-msm/board-liberty*) are not compatible with the new kernel trees, and the clock stuff+kgl stuff backporting to a kernel that works for us means integrating the clock changes.
I've been in communication with drowningchild on this, btw. He is not going to contradict what I say here.
'Just' porting the kernel over here means integrating a few THOUSAND lines of code from a different kernel, some of which are conflicting changes with what is in our kernel right now. The alternative (porting our board files to the new kernel) means porting THOUSANDS of lines of code to a kernel that is also partially incompatible, so it means re-writing a good chunk of it.
If you don't believe that I'm credible, here's the article discussing my port of the HTC Hero CDMA to kernel 2.6.35:
http://www.xda-developers.com/android/2-6-35-kernel-successfully-ported-to-hero-cdma/
Click to expand...
Click to collapse
Will it easier if porting a same processor device's kernel to our devices?
if i am not wrong , the sony X8 did have a same processor and it has HWA on ICS Port.
zhuoyang said:
Will it easier if porting a same processor device's kernel to our devices?
if i am not wrong , the sony X8 did have a same processor and it has HWA on ICS Port.
Click to expand...
Click to collapse
It will be easiest from another HTC device, as they'll have a more similar code base. I believe the Wildfire S is the prime candidate. I'm on a Don Quixote-esque approach of grabbing the 3.0.8 msm kernel from code-aurora and am trying to just dump board files in and fix up the fallout. Currently merging the AMSS and SMD stuffs (still a long way from boot testing, in other words).
if a newer htc base is what we need what about the htc pico/explorer, based on 2.6.38?
i find the kernel version very odd for an android device, and the cpu (msm7225A) is labeled a scorpion?
drowningchild said:
if a newer htc base is what we need what about the htc pico/explorer, based on 2.6.38?
i find the kernel version very odd for an android device, and the cpu (msm7225A) is labeled a scorpion?
Click to expand...
Click to collapse
Perhaps? Have a link to a recent tree for it? Ideally it'd be a 2.6.35 tree (not having to battle linux core changes is a huge plus), but 2.6.38 might not be bad. I believe 2.6.38 was the kernel standard for Honeycomb(could be completely off base), so it's likely that the chip was used in a tablet first, so a 2.6.38 kernel base was the standard (again complete smoke).
s0be said:
Perhaps? Have a link to a recent tree for it? Ideally it'd be a 2.6.35 tree (not having to battle linux core changes is a huge plus), but 2.6.38 might not be bad. I believe 2.6.38 was the kernel standard for Honeycomb(could be completely off base), so it's likely that the chip was used in a tablet first, so a 2.6.38 kernel base was the standard (again complete smoke).
Click to expand...
Click to collapse
all the kernels ive seen(tegra mostly) where .36
this is a GB 'mid range' device, odd that they label a new cortex a5 7225 :\
---------- Post added at 02:38 AM ---------- Previous post was at 02:18 AM ----------
bump with link to repo
https://github.com/drowningchild/msm-2.6.38
---------- Post added at 03:15 AM ---------- Previous post was at 02:38 AM ----------
repo uploaded, damn upload is slow
one thing i noticed was NO bcm4329(but 4330) drivers
the newest htc device with 7227 is the chacha(sources merged into my repo)
i guess they replaced the arm11 cpus with newer cortex a5 :\
We got hwa working on cm9 and on my miui v4 port. Now the latest iusses are wifi/gps and yes.. ..the camera. I think we need the driver from kernel 3.0.
About wrong facts.. sorry. I am a rom dev. Not really a kernel dev.
Gesendet von meinem GT-S5830 mit Tapatalk
matt5eo said:
We got hwa working on cm9 and on my miui v4 port. Now the latest iusses are wifi/gps and yes.. ..the camera. I think we need the driver from kernel 3.0.
About wrong facts.. sorry. I am a rom dev. Not really a kernel dev.
Gesendet von meinem GT-S5830 mit Tapatalk
Click to expand...
Click to collapse
:O
(Someone help me pick my jaw up off the floor, please.)
Sent from my HTC Intruder
matt5eo said:
We got hwa working on cm9 and on my miui v4 port. Now the latest iusses are wifi/gps and yes.. ..the camera. I think we need the driver from kernel 3.0.
About wrong facts.. sorry. I am a rom dev. Not really a kernel dev.
Gesendet von meinem GT-S5830 mit Tapatalk
Click to expand...
Click to collapse
Do you have a link to your working kernel tree and egl libraries? I pulled the libs from your MIUI port, and used DC's kernel tree, and am still hitting the same non functioning HWA. I also built a kernel for aria based on Alquez' kernel, with identical results. How have you verified HWA works?
if you see:
Code:
D/libEGL ( 97): loaded /system/lib/egl/libGLES_android.so
D/libEGL ( 97): loaded /system/lib/egl/libEGL_adreno200.so
D/libEGL ( 97): loaded /system/lib/egl/libGLESv1_CM_adreno200.so
D/libEGL ( 97): loaded /system/lib/egl/libGLESv2_adreno200.so
W/libEGL ( 97): 0: eglInitialize(0x1) failed (EGL_SUCCESS)
In your logcat, hwa isn't quite working.
BREAKING NEWS: http://www.xda-developers.com/android/qualcomm-releases-adreno-2xx-gpu-binaries-for-ics/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+xda-developers%2FShsH+%28xda-developers%29&utm_content=FaceBook
zhuoyang said:
BREAKING NEWS: http://www.xda-developers.com/andro...rs/ShsH+(xda-developers)&utm_content=FaceBook
Click to expand...
Click to collapse
Wow, that is huge.
Sent from my HTC Intruder
Those binaries are for arm v7 and the aria is arm v6 but maybe some of our devs can get some thing out of it. Fingers crossed
sent from wherever I am
derefas said:
HW working ! With latest driver for adreno from qualcomm
Yupiii!!11
Click to expand...
Click to collapse
eh, maybe working??

How to find the proprietary kernel modules for the kernel v3.0

Since I can not post threads in development "Drivers available from TI OMAP 3630", I write here.
If it can be useful for finding the kernel modules such as RFS,
the firmware of the galaxy s2 XXLPQ mounts the kernel v3.0.15
Source: http://www.xda-developers.com/android/ics-officially-released-for-sgs2-root-acquired/
gently, someone can report this info in the thread specified above?
Thanks
I have personally extracted the kernel of sgs2 to search for kernel modules.
Samsung was the only owner of the filesystem j4fs.
I looked at all the *.rc and I noticed that all partitions have become from rfs to ext4, including the partition efs.
All this I did for groped to understand how to bring the 3.0 kernel on our I9003.
Codeworkx is working on the 3.0 kernel for i9003.
Sent from my GT-I9003 using XDA
arindammanidas said:
Codeworkx is working on the 3.0 kernel for i9003.
Click to expand...
Click to collapse
Thanks, I had already seen that Codeworkx has started work on the kernel through dhiru1602's github.
News of recent days, the Linux 3.3 kernel has met with the Android kernel, if it were not for the drivers of TI, I could start from there.
My problem that I did not post enough to write in the development forum.

[KERNEL][ICS][Linux 3.0.44] Harsh Kernel P999 Build-0510 [zram][SNAPPY]]

Hello guys n gals,
This is T-Mobile G2X version of my Harsh Kernel for O2X based on 3.0.y sources.
It share same tweaks and changelog with its international brother O2X.
This is my FIRST kernel based on sources of wkpark and vadonka.
This kernel is compiled by me, and comes with more added patches by me.
If you like it hit THANKS button.
Click to expand...
Click to collapse
All credits goes to:
armcee (CM7 & CM9 GOD of LG devices)
CM Team (You guys rock)
wkpark (ported kernel 3.0.26 to our devices)
vadonka (various kernel tweaks and awesome sources)
pastime (helping at various stages, and awesome fixes)
Owain (Biggest motivation for compiling 100 times a day)
and to everybody else who participated in making this possible.
Harsh Kernel P999:
Code:
Build from 3.0.37 sources.
Compiled using tweaked CodeSourcery arm Toolchain.
Better battery.
Default SIO scheduler.
Working Data Usage ICS.
Working Data Usage Limit.
Fixed USB tethering(windows).
And many tweaks.
Changelog:
Build 0510 Stock & OC
Updated Linux version 3.0.44 now.
Stock & OC version both uploaded to goo.im.
linux version 3.0.43 and 3.0.44 brings lots of changes (150+ commits hope good)
Still works for both JB and ICS both.
build 0509 Stock & OC
Compile zram as module (Thanks Benee)
Fix zram for dual core
build 0309 Stock
Linux Version 3.0.42
JellyBean[Heckfest] supported (thanks Benee)
build 0208 Stock & OC
Linux Version 3.0.39
Reverted various fixes which were implemented in 1907
Compiled with linaro toolchain on OS X
build 1907 NO-OC
Linux Version 3.0.37
Improves SIO scheduler for flash storage.
Added V(R) I/O Scheduler. (select if from AnTuTu CPU Master)
other various fixes (thanks to vork[benee] and faux123)
build 1006 Stock & OC
Linux Version 3.0.34
Patches from NVIDIA for cpu control (power saving)
Lowmemory killer from linux 3.4 ported by vork (thanks benee)
build 0306 Stock
Some patches from Benee (vork)
And tegra OTG try update.
build 2205 Stock
Linux Version 3.0.32
Re-enabled ext3 ability (fix unsupported file system problem)
Increased XZ compression usage.
build 1505 Stock & OC
Added Force Fast Charging patch by Chad Froebel
Lots of tegra related v21 source drop fixes, thanks to faux123
New wifi code change, from v21 sources
As usual few kernel config changes (still have to find minimum config )
build 0805 Stock & OC
Linux Version 3.0.31
Battery heat protection (thanks wkpark)
And few more kernel config changes
build 0405 Stock & OC
v21y battery driver (thanks vadonka)
too many kernel config changes (100s of changes)
pmem size reduced (let me know 4 mb change can make difference or not)
build 2804 No-OC
Linux 3.0.30 sources
First attempt for CpuSpy to work
build 2704 Stock & OC
rmcc's tegra_odm_touch: More ICS-compatibility
Catalin Marinas: Kmemleak patches
build 2504 - NO-OC
Updated to Linux 3.0.29
Scheduler Tweak
Scheduler multi-core support
build 2204
OC Version of Build 1904
build 1904
ZRAM compression changed from LZO to Google's SNAPPY (~2x faster)
ZRAM disksize set to 64mb
SNAPPY KERNEL
build 1504 - OC
Build from kernel sources 3.0.28
USB Mass Storage support for both SD Cards (ROM required to make it work)
XZ Compression, so even smaller size of zips.
OC Enabled upto 1.4 GHz
zram enabled and allocated
And many small changer that are not stated here.
build 1104
Lower TouchLED Brightness
Kernel refresh, compiled with new toolchain
build 0604
SD Card IO speed fixed (thanks again wkpark)
Nothing much, just some cosmetic fixes in code
build 0504
Using AnyKernel by koush (easy flash for all ICS roms.)
Added Voodoo again
Fajarep BL values (better battery)
build ReBorn 0304
upgraded Linux kernel source version 3.0.27
various MMC tweak and safepoints
pastime .config fix for support voltage unit in uV
build ReBorn 0204-1
fixed WiFi not turning on
WiFi was not loading up before, NOW FIXED
build ReBorn 0204
ReBorn: used clean wkpark's sources
added patches handpicked (new branch).
removed voodoo sound.
better bettery & speed
build 3003
proper suspend (wkpark original work)
build 2903
latest wkpark's merge fixes (thanks)
pastime1971's fixes
build 2703-1
latest wkpark's fixes he posted. (thanks again)
Fixed reboot issue
build 2703
some more kernel config changes.
pastime kernel pull fix.
build 2503-3
some kernel config changes.
spica1234 call quality improvement patch
Compiled with more hard flags, faster compilation.
build-2503
Updated to kernel 3.0.26 (thanks vadonka)
Added Simple I/O scheduler as default
and few kernel config tweaks
build-2403-4
Removed Kernel Debugs (further cleaning)
implemented hard float in order to reduce compile time
added ramdisk tweaks
build-2403-2
Implemented cache (first try to improve performance)
improved gps (source wkpark)
build-2403-1
Fixed Internal Storage problems(thanks to wkpark)
few compiling fixes, cleaner build.
build-2303
Initial sources.
Added usb tethering
Fixed Data Usage and Limit
Added Voodoo Sound
Selfcompiled linaro toolchain​
Understanding build number:
build-ddmm-n
where dd=date, mm=month & n=compile number [start from 0/none]
Known bugs:
No HW Acceleration (Nvidia and LG at fault)
Reboot/Reboot recovery work 90% of time.
Download OC 0510 Link: Goo.im
Download NO-OC 0510 Link: Goo.im
My PIZZA suppliers (Donators, thanks a lot)
Owain van Brakel
Warren (djvoleur)
Gregory Martinson
Vu Phan
John(aragorn7)
sourcecode
Looks great!
Sent from my LG-P999 using XDA
zoppp said:
Looks great!
Sent from my LG-P999 using XDA
Click to expand...
Click to collapse
Thanks you. If you are on CM9 unofficial nightly, you can try it. I am out of thanks per day
Installed. Will test drive today.
Sent from my G2x running AOKP ICS Build 28
Is it overclocked?
Sent from my LG-P999 using xda premium
flak0 said:
Is it overclocked?
Sent from my LG-P999 using xda premium
Click to expand...
Click to collapse
No, its not overclocked.
Its on stock, will add overclock patch later, but defualt will always be stock.
Just for clarification: if hardware acceleration isn't yet included, what advantages are there to install this kernel over, say, faux's? Thanks.
GenghisKhan67 said:
Just for clarification: if hardware acceleration isn't yet included, what advantages are there to install this kernel over, say, faux's? Thanks.
Click to expand...
Click to collapse
Actually this is completely different kernel than faux kernel.
This kernel is not based on CM sources, it is based on kernel version 3.0.26, one of the latest in linux-3.0.y. If you guys know, Samsung Galaxy Nexus uses, kernel 3.0.8 in stock, this is kernel 3.0.26.
Faux kernel is based on CM sources linux-2.6.xx.x .
And there are no advantages as such, but deep sleep is finally working perfectly in kernel 3.0.y versions. So maybe better battery.
Working great on AOKP..... Battery seems a little bit better.
Sent from my LG-P999 using xda premium
the stock CM9 kernel has no HW accel, right? if so, i need this kernel for the voodoo, as stock CM9 doesn't have it.
joeyxl said:
the stock CM9 kernel has no HW accel, right? if so, i need this kernel for the voodoo, as stock CM9 doesn't have it.
Click to expand...
Click to collapse
True, stock CM9 do not have HW, neither do this kernel. And tegra2 devices will not have HW accel until Nvidia releases sources, or LG/T-Mobile release office ICS Rom.
Yes this kernel do have voodoo sound.
Appreciate your work. Thank you.
If you could please, in a timely fashion, provide the source to your changes and place it in the OP before the GPL police find out.
Thanks again!
Will there be a CM7 version of this kernel at all?
overground said:
Appreciate your work. Thank you.
If you could please, in a timely fashion, provide the source to your changes and place it in the OP before the GPL police find out.
Thanks again!
Click to expand...
Click to collapse
its already in its main thread in O2x, added it here too.
thendless said:
Will there be a CM7 version of this kernel at all?
Click to expand...
Click to collapse
No, not planned at the moment.
Nice!!! You work fast
Edit: Starting to like SIO, antutu benchmarks went up.
Sent from my LG-P999 using xda premium
Been following this project for awhile on other threads. I've been very impressed with this work. I've been curious about something, though, and didn't want to post this question in one of the main development threads.
What is the feasibility of upgrading the kernel to 3.1,3.2, or 3.3 series? For all I know it's completely impossible as I'm sure they had a reason to use 3.0 as the base for the project. I do find it interesting, though, that 3.3 comes with "android support" (not that I really know what that means either ).
MWBehr said:
Been following this project for awhile on other threads. I've been very impressed with this work. I've been curious about something, though, and didn't want to post this question in one of the main development threads.
What is the feasibility of upgrading the kernel to 3.1,3.2, or 3.3 series? For all I know it's completely impossible as I'm sure they had a reason to use 3.0 as the base for the project. I do find it interesting, though, that 3.3 comes with "android support" (not that I really know what that means either ).
Click to expand...
Click to collapse
yeah they have stated that next version will come with android support, it would not be 3.3, but would be 3.4. With more android related patches.
Guys even 3.0.y was a difficult task to port to tegra2, as no source, all thanks to wkpark and his awesome talents. I think your question can be better answered by him.
But code in 3.0.y to 3.1/3.2 has changed a lot, so would be very difficult to port, specially without any other android manufacturers not having 3.1/3.2 as base make it near impossible.
Harsh said:
yeah they have stated that next version will come with android support, it would not be 3.3, but would be 3.4. With more android related patches.
Guys even 3.0.y was a difficult task to port to tegra2, as no source, all thanks to wkpark and his awesome talents. I think your question can be better answered by him.
But code in 3.0.y to 3.1/3.2 has changed a lot, so would be very difficult to port, specially without any other android manufacturers not having 3.1/3.2 as base make it near impossible.
Click to expand...
Click to collapse
Thanks for the quick response. Ya, I was just curious more about if it was a possibility. If it takes a year or more, then that's what it takes. I have complete respect for the difficulties in porting something that's never been ported before.
so far so good...tks dev
Well...I can say this gets about 500 points higher on Quadrant 2.0 than Faux SV kernel. I didn't think it was fair to compare it to the OC version.

[DEV][TEAM WX435] Triumph Kernel Thoughts

All,
Since we are working as a DEV team now I wanted to share a PM I had with another DEV on the board about our Kernel. I hope this can assist some others that have more experience with the Kernel like b_randon
g60madman said:
subpsyke,
I would love to upgrade our kernel for the Motorola Triumph. How did you go about figuring which Code Aurora vanilla kernel to start with? I took over development for CM7 from Whyzor and would be interested in your methodology.
Thanks in advance,
g60
Click to expand...
Click to collapse
subpsyke said:
1. I unpacked the original Huawei source to one directory, and downloaded the CodeAurora kernel to another.
2. I used the release tags as a reference: https://www.codeaurora.org/xwiki/bin/QAEP/froyo_almond
https://www.codeaurora.org/xwiki/bin/QAEP/froyo
https://www.codeaurora.org/gitweb/quic/la/?p=kernel/msm.git;a=tags
3. I reverted the codeaurora repository to tag releases (e.g.: git reset --hard M76XXTSNCJNLYA6010) and compared the result via "diff urN" and meld. I knew I was getting closer when you get a smaller diff in the patch size, and used meld to see if the differences were likely to be Huawei's additions vs. CodeAurora's changes. It was only after going forward and backwards between tags was I sure of the proper baseline.
I performed the same discovery process with the Samsung kernel for my GT-I5500, which used M76XXTSNCJNLYA6040 as a baseline.
Click to expand...
Click to collapse
g60madman said:
Sweet thanks! I will check it out and see what I can do
Click to expand...
Click to collapse
subpsyke said:
No problem
I forgot to mention the last steps:
4. Once you establish the baseline, create a new branch: git checkout -b newbranch
5. Overlay the changes from the vendor to a new commit*:
cp ~/blah/vendorkernel/ . ; git add . ; git commit -m "Initial import of vendor changes".
6. Once you've commited the vendor changes, you can use "git merge origin/froyo_almond" to move from the baseline to a newer revision. The froyo_almond branch is most suitable, as it's locked at 2.6.32, and the development focus seems to be on the msm7k chipset series. You could try updating to the android-msm-2.6.32 kernel, but it has more significant changes that will require adaptations of the board file, and may not be worthwhile, as development focus seems to be on newer chipsets.
7. Inevitably you'll get merge conflicts, as more than likely some vendor commits may interfere with upstream changes. For this, you'll need to use your own discretion in fixing up the code. I use the "git mergetool", with meld configured as my default editor, and manually checked all the conflicts.
Good luck!
*You may also want to fix up permissions etc., if your vendor source comes from a zip tarball. But it's purely cosmetic.
Click to expand...
Click to collapse
g60madman said:
So is almond the best flavor to start with. I have been using MSM/QSD for a while and in when TickerGuy originally created our device files for cm7 he listed in the readme
CAF information:
Branch: froyo_pumpkin
Tag: M7630AABBQMLZA2030
Didn't know if I should start with pumpkin or use almond. Let me know what you think?
Thanks again for the info!
Click to expand...
Click to collapse
subpsyke said:
Hmm... if your phone really has a msm7630 chipset, then yes, you should probably go for the froyo_pumpkin branch. The froyo_almond branch is only for the msm7627 and qsd8650 chipsets.
Click to expand...
Click to collapse
g60madman said:
Well thats the stupid thing, since the beginning we have used always used msm7x30 for our board config, But our stock ROM from Virgin Mobile the config was msm7k in the build.prop. However if you hit the Motorola Dev our pone clearly states Qualcomm MSM8655. I am leaning towards using the almond branch would that be correct?
Click to expand...
Click to collapse
subpsyke said:
According to wikipedia, it's MSM8655.
Look at the table here: https://www.codeaurora.org/xwiki/bin/QAEP/
The froyo_almond supports qsd8650, and froyo_pumpkin supports qsd8650a_st1x. I honestly have no idea what the difference is, but it's within the realm of possibility that your phone's chipset is that odd revision on the pumpkin branch.
If your kernel is using a pumpkin baseline, then you should continue along the same branch.
Click to expand...
Click to collapse
g60madman said:
I will download pumpkin and compare the kernel. I am not sure why TickerGuy started with pumpkin. That maybe what our build is based off of but I am not 100%.
Click to expand...
Click to collapse
subpsyke said:
Ok. When you clone the codeaurora git repository, you'll have all the branches included anyway.
Click to expand...
Click to collapse
....sympathy post...
Sent from my SPH-D700 using xda premium
(The froyo_almond supports qsd8650, and froyo_pumpkin supports qsd8650a_st1x.) Is this the difference between the Photon 4G which has a WiMax radio in it, and the Triumph which does not include a 4G radio? <--- nvm when they came out I had heard they were the same phone except 4G, apparently the Photon is a Tegra 2 device.
Okay so after looking into code Aurora more, as soon as I get my Ubuntu back up I am going to work on a vanilla froyo 2.6.32.9 kernel by using the froyo_pumpkin branch on the tag Karl gave us. Once I do that and have a commit that adds in Motorola changes, I am going to use the gingerbread_rel branch to try to get a 2.6.35 kernel booting on the phone, then use the ics_chocolate_rb7 branch to hopefully get the 3.x kernel.booting. those branches all seem to have the best support for msm7630 chipsets which I believe is the closest to the msm8655 chip only that it is clocked at 800mhz instead of 1ghz. If anyone else can lend any advice or help it would be swell!!
Sent from my Triumph using Tapatalk
b_randon14 said:
Okay so after looking into code Aurora more, as soon as I get my Ubuntu back up I am going to work on a vanilla froyo 2.6.32.9 kernel by using the froyo_pumpkin branch on the tag Karl gave us. Once I do that and have a commit that adds in Motorola changes, I am going to use the gingerbread_rel branch to try to get a 2.6.35 kernel booting on the phone, then use the ics_chocolate_rb7 branch to hopefully get the 3.x kernel.booting. those branches all seem to have the best support for msm7630 chipsets which I believe is the closest to the msm8655 chip only that it is clocked at 800mhz instead of 1ghz. If anyone else can lend any advice or help it would be swell!!
Sent from my Triumph using Tapatalk
Click to expand...
Click to collapse
Swell, I love that word. Here is an email I got from TickerGuy on the Kernel a fe months back
g60madman said:
TickerGuy,
I know you have moved on from the MT. Currently I have taken over development for CM7 from Whyzor and had a question for you.
When you designed the original device files you listed in the readme:
Branch: froyo_pumpkin
Tag: M7630AABBQMLZA2030
Is that really our branch from MSM/QSD? I know the phone has the MSM8655 chip. So I'm just trying to figure out why we use msm7x30 for the board configuration and not say msm7k or qsd8k?
Thanks in advance for any help you can offer
Click to expand...
Click to collapse
TickerGuy said:
I think the reason had to do with some of the peripheral chips -- it was a lot of fun getting this phone to work as it has a number of very odd things about it, especially in the GPS area.
Click to expand...
Click to collapse
So I think it's safe to say the route you are taking the right route. Also when building the Kernel do not forget to merge in the Wyzor fixes for the Video as I am using the new Andreno drivers. Just an FYI.
Yeah I will on the cm7 kernel. As of right now I'm gonna try to get a stock froyo kernel booting off code Aurora sources then go ffrom there.
Sent from my Triumph using Tapatalk
I've got my Linux mint 13 up and running so I'm going to try to get my build environment setup to build kernels either tonight or tomorrow and start pulling in source.
By the way, Linux mint 13 is pretty nice distro so far. I like it alot better than Ubuntu!
Sent from my Triumph using Tapatalk
b_randon14 said:
I've got my Linux mint 13 up and running so I'm going to try to get my build environment setup to build kernels either tonight or tomorrow and start pulling in source.
By the way, Linux mint 13 is pretty nice distro so far. I like it alot better than Ubuntu!
Sent from my Triumph using Tapatalk
Click to expand...
Click to collapse
Also you don't need to download the pumpkin branch simple download the kernel
git clone git://codeaurora.org/kernel/msm.git
git reset --hard M7630AABBQMLZA2030
The M7630AABBQMLZA2030 is the pumpkin branch and that should take us back to the vanilla kernel
Here is the pastebin link for the warning I was getting from the linker during the build of the code Aurora kernel.
http://pastebin.com/GLMBSz26
You can look at the kernel source on my github. Its the froyo pumpkin kernel repo.
The warnings cone from the gcc linker saying that it's trying to link a non executible section in built-in.o
I'm not sure where to start looking for the issue at. If anyone can lend any insight I would be grateful!
Sent from my Triumph using Tapatalk
I switched to the gcc 4.3.1 toolchain included with the cm7 source and it booted up. Worked just as good as the stock kernel. I'm gonna have to see why the newer toolchains are not compiling it right. I use linaro 4.6 on bKernel froyo which is based off motos source. So I don't see why it wont build this code right. But at least I got one to boot! !!
Sent from my Triumph using Tapatalk
b_randon14 said:
I switched to the gcc 4.3.1 toolchain included with the cm7 source and it booted up. Worked just as good as the stock kernel. I'm gonna have to see why the newer toolchains are not compiling it right. I use linaro 4.6 on bKernel froyo which is based off motos source. So I don't see why it wont build this code right. But at least I got one to boot! !!
Sent from my Triumph using Tapatalk
Click to expand...
Click to collapse
Good work brother!
Thanks. Now lets try to move on up to 2.6.35. My idea is to make a different patch between 2.6.32.9 and 2.6.35.7 and maybe that will simplify updating it. I'm not sure which gingerbread branch I'm gonna use for the 2.6.35 kernel!
Sent from my Triumph using Tapatalk
I would think the gingerbread branch, and use the M7630AABBQMLZA404025I.xml version. That is where I snagged the keyboard updates.
g60madman said:
I would think the gingerbread branch, and use the M7630AABBQMLZA404025I.xml version.
Click to expand...
Click to collapse
you can use source kernal .35 for device fih-fbo..we are the same drive only need to change touch driver..
Yeah I would use the fih kernels but we has issues with them rebooting on us.
Sent from my Triumph using Tapatalk
b_randon14 said:
Yeah I would use the fih kernels but we has issues with them rebooting on us.
Sent from my Triumph using Tapatalk
Click to expand...
Click to collapse
yes you need get a logcat and new baseband for this kernal...I have a file to solve the rendom reboot..but I can't help to get you for the baseband...
The kernel shouldn't have nothing to do with the baseband. Which file is it?
Sent from my Triumph using Tapatalk
b_randon14 said:
The kernel shouldn't have nothing to do with the baseband. Which file is it?
Sent from my Triumph using Tapatalk
Click to expand...
Click to collapse
yes I know,I mean in rom library need these file,I will give you file when I go back home
Anyone got any ideas to fix the issues with newer toolchains when building from the code Aurora source?
Sent from my Triumph using Tapatalk 2
Have you tried downloading one of the gingerbread repo's from code Aurora? I am not sure if they have a different version of the tool chain or not?

Categories

Resources