As many of you might have already heard about it: That using the Linaro toolchain to compile a ROM increases performance. But making stock kernel sources compatible to be compiled with Linaro is no easy task. But, the steps are similar.
When it is compatible to be compiled with GCC 4.3.3, why shouldn't it compile with GCC 4.7?
The problem lies in the code. The transition from GCC 4.3.3 to GCC 4.6, lot of things changed. GCC decided that people should start writing "cleaner code". So, new errors occur when compiling with GCC 4.6+. Example: "unused-but-set-variable". This was not an error in GCC 4.3.3, but GCC 4.7 made it a big issue :crying:
As I said before, GCC 4.3 can compile it, while GCC 4.7 can't. So, I decided to use certain __attribute__'s, and #pragmas, to ignore the errors that one might encounter when trying to compile with GCC 4.7.
Mainly the lines used were:
Code:
__attribute__((__unused__))
and,
Code:
#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
Steps:
1. Download the GCC 4.7 toolchain using the following command, and place it inside your android-toolchains folder:
Code:
git clone https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.7
2. Download the kernel source compatible with GCC 4.7 from here
Code:
git clone git://github.com/vineethraj49/pico_kernel_stock.git
Edit the Makefile to correspond to the path of the GCC 4.7 toolchain :fingers-crossed:
Then, its simple,
Code:
make msm7627a_defconfig
and
Code:
make -jX
The code is compatible to be compiled with GCC 4.7 AS IS! You make modifications to code, you should & you WILL run into errors. Usually you can overcome errors by editing the required code, using #pragmas and __attribute__'s. If you ain't ready to work hard, please notify in the thread with the changes that you made to "msm7627a_defconfig", and the possibly a log, with the errors I will add the necessary __attribute__'s, and #pragmas :silly:
As for: Why didn't you make it compatible with Linaro toolchain?
The answer is that @Rishik999 is already working on making it compatible with Linaro, and I don't want to steal his idea
Credits:
Rishik999 for his idea about compiling with Linaro, and expect his kernel sources compatible with Linaro toolchain soon
http://gcc.gnu.org/gcc-4.6/porting_to.html
http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html
http://gcc.gnu.org/onlinedocs/gcc-4.6.0/gcc/Diagnostic-Pragmas.html
Google
Some IBM docs, which helped.
http://web.mst.edu/~cpp/common/common_errors.html
Linus and the 2000+ people who contributed to the first Linux kernel.
Source: https://github.com/vineethraj49/pico_kernel_stock
Disclaimer: Everybody can use my work without asking permission, all my stuff comes with a "sharing is caring" xda philosophy licence... just credits would be nice
Reserved
Remember, kernel compilable without errors AS IS!
I will add some steps about how to ignore errors in this post, maybe. So that I don't have to edit a 100+ files again :silly:
Great work
Great work ! :good:
Why posted on general ?
All is well, but i doubt linaro toolchain makes a lot of difference while compiling kernels.
+ i dont think anyone uses stock kernel (2.3.5 android htc sense)
Yes
everyone is on kernel 3
Hpsgill said:
Yes
everyone is on kernel 3
Click to expand...
Click to collapse
im still on gingerbread..
ohh
a gb lover
only few users using gb
everyone is on ics,jb or sense 4
Hpsgill said:
ohh
a gb lover
only few users using gb
everyone is on ics,jb or sense 4
Click to expand...
Click to collapse
yes i love gingerbread IMO the most stable android version for our phone
how i wish cm7 will be complete and also im waiting for the sense 4.1 by cute prince to be stable enough like gb and waiting your sense ex build 6 too
Related
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?
Hi all, so I've been wanting a really nice optimized Linaro recovery and have not been able to find one. So I decided to build my own and have found it to be very nice and stable, and of course to share with all of you xda peps
First off if you don't know what TWRP recovery is the original nexus 7 thread is HERE
Please read all of the original thread before flashing this recovery.
More info on how this recovery was built
Built using Linaro gcc 4.7 toolchain. I also built the toolchain from Linaro's gcc source. The toolchain source is HERE
This toolchain source gets update almost daily from linaro sources, but I don't normally have the time to build new toolchains daily. When I have time I will update it quite frequently.
Built off my own 4.1.2 kernel source. The kernel used to build this recovery was also compiled using the Linaro 4.7 toolchain.
I've added a few linaro recovery patches for interfaces to libpng. Those changes are HERE and HERE.
Built using Linaro bionic string routines optimizations.
Installation
Download the recovery image and flash in fastboot
Initial release 2.3.1.1 touch recovery
10.28.12 release 2.3.1.1 touch recovery
Kernel changes
Removed a lot of bloat from the kernel. I disabled GPU overclocking, user voltage control, cpu overclocking, a bunch of useless debugging stuff.
A short kernel changelog is HERE
Toolchain changes
Not much here. I included a static library to be used in the toolchain libiberty
A short changelog for the toolchain is HERE
Recovery changes
Built as engineering instead of userdebug.
11.5.12 release 2.3.1.1 touch recovery
Final android 4.1.2 linaro recovery version
Kernel changes
Mainline linux kernel upstream changes from linux-3.2.y
Changed kernel compression mode to GZIP and optimization level to -Os
Toolchain changes
Updated to latest linaro changes
Recovery changes
-O3 optimization level
Linaro strict-aliasing compiler flags optimization
Android-4.1.2 (This version is a final release, no more updates)
Size: 6.95 MB
MD5: e0f46f01556156b052b3779c9ed60e01
What? A Linaro recovery? I did not know there was such thing. I am downloading this now very excitedly.
Thank you. Very very helpful and nice.
OK... Now I need more info! I sorta understand the Linaro concept but my knowledge is limited. What's the reasons to base Recovery on it at this point? Any advantages, possible concerns? Will there be any noticeable differences? Just curious & wondering cause you said "you'd been wanting to make a recovery based on linaro".
Thank!
Sent from my Nexus 7 using Tapatalk 2
Hi men!
Thanks for your recovery.
But i experience some strange visual effects like distortion of the image or some lag effects.
---------- Post added at 04:21 PM ---------- Previous post was at 04:16 PM ----------
djd338 said:
OK... Now I need more info! I sorta understand the Linaro concept but my knowledge is limited. What's the reasons to base Recovery on it at this point? Any advantages, possible concerns? Will there be any noticeable differences? Just curious & wondering cause you said "you'd been wanting to make a recovery based on linaro".
Thank!
Sent from my Nexus 7 using Tapatalk 2
Click to expand...
Click to collapse
There is a discussion on this subject regarding some tests Ezekeel (XDA developper) made with different cross-compiler toolchains and those tests prooved that none of the compilers is better than another.
We heard a lot about linaro because when ICS was released, it was very laggy and linaro and is new compiler version 4.7 made ICS much smoother than before.
But for the pur performance linaro give no improvement if you compare with another one.
EDIT: I found the link of the test for you: http://forum.xda-developers.com/showpost.php?p=19872366&postcount=1
i remember this test,and also in my home test when i tried to build kernel,i don't see improvement using linaro or others toolchains..anyway it's great to have another thing to play on and see if it's best that the ufficial!
sert00 said:
i remember this test,and also in my home test when i tried to build kernel,i don't see improvement using linaro or others toolchains..anyway it's great to have another thing to play on and see if it's best that the ufficial!
Click to expand...
Click to collapse
Agree with you.
It wasn't for discredit the work of sparksco. I'm glad to test his work.
Just answer the question for the cross-compiler.
Thanks for the work sparksco
[email protected]_OC said:
Hi men!
There is a discussion on this subject regarding some tests Ezekeel (XDA developper) made with different cross-compiler toolchains and those tests prooved that none of the compilers is better than another.
We heard a lot about linaro because when ICS was released, it was very laggy and linaro and is new compiler version 4.7 made ICS much smoother than before.
But for the pur performance linaro give no improvement if you compare with another one.
EDIT: I found the link of the test for you: http://forum.xda-developers.com/showpost.php?p=19872366&postcount=1
Click to expand...
Click to collapse
That's one test with one toolchain by one developer. As far as I can tell he tested everything with one of linaro's really old toolchaons when they first released 4.6. So by looking at the dates I would guess linaro didn't add much to the toolchain at that point. There's also the GCC version to consider. This is using 4.7 and not 4.6. And lastly there's rom patches that linaro puts out that have nothing to do with the kernel but are used in the ROM building process when building recoveries. It's all debatable. I find this to be a bit smoother and backups seems to be a little faster but maybe it's just me.
[email protected]_OC said:
Hi men!
Thanks for your recovery.
But i experience some strange visual effects like distortion of the image or some lag effects.
Click to expand...
Click to collapse
Your going to have to provide more info than that. Your method of installing, what bootloader you have ect. Thanks.
Edit: flashing zip in recovery causes issues so I removed that method of installing.
sparksco said:
That's one test with one toolchain by one developer. As far as I can tell he tested everything with one of linaro's really old toolchaons when they first released 4.6. So by looking at the dates I would guess linaro didn't add much to the toolchain at that point. There's also the GCC version to consider. This is using 4.7 and not 4.6. And lastly there's rom patches that linaro puts out that have nothing to do with the kernel but are used in the ROM building process when building recoveries. It's all debatable. I find this to be a bit smoother and backups seems to be a little faster but maybe it's just me.
Click to expand...
Click to collapse
thanks.after give a try to this recovery,i agree with you with fact of possible quickest backup time.the general use is good,don't know if it's real an improvement,but i did a backup and at first look it seemed quicker..possible placebo effect,let's see what others say..
why you pulled cwm install version...bugged?
There's a lot of factors to consider. Just the fact that this is using a kernel I built with 4.7 from my own source code could improve things as well. FYI the kernel includes GPU overclocking.
sert00 said:
why you pulled cwm install version...bugged?
Click to expand...
Click to collapse
Read one post above yours...
Sent from my Nexus 7 using Tapatalk 2
sparksco said:
There's a lot of factors to consider. Just the fact that this is using a kernel I built with 4.7 from my own source code could improve things as well. FYI the kernel includes GPU overclocking.
Read one post above yours...
Sent from my Nexus 7 using Tapatalk 2
Click to expand...
Click to collapse
oh thanks,not saw the edit in the post!
New version is up.
Sent from my Nexus 7 using Tapatalk 2
I installed last night using goomanager, so I assume I have the previous version?
Anyway, it works great, so thanks.
stonebear said:
I installed last night using goomanager, so I assume I have the previous version?
Anyway, it works great, so thanks.
Click to expand...
Click to collapse
I am pretty sure you get the Official TWRP version from goomanager not this. Please correct me if I am wrong but I think that is what the Unofficial means.
zedorda said:
I am pretty sure you get the Official TWRP version from goomanager not this. Please correct me if I am wrong but I think that is what the Unofficial means.
Click to expand...
Click to collapse
Yea, I just realised that myself when I saw there were two threads.
What's the difference between this and ClockWorkMod? Is it more stable?
Neo3D said:
What's the difference between this and ClockWorkMod? Is it more stable?
Click to expand...
Click to collapse
Some more features on TWRP I think, especially the queue to flash multiple ZIP files. Flash it and see for yourself
modstorm said:
Some more features on TWRP I think, especially the queue to flash multiple ZIP files. Flash it and see for yourself
Click to expand...
Click to collapse
That, and I like the fact that you have an option to wipe cache/dalvik after flashing something
markj338 said:
That, and I like the fact that you have an option to wipe cache/dalvik after flashing something
Click to expand...
Click to collapse
That and TWRP can also be themed however I never found any themes :/
Introduction
This is a replacement kernel for CyanogenMod 10 and 10.1 evita builds. The kernel is designed to be as close as possible to the stock CyanogenMod kernel with a few improvements.
Linaro toolchain:
The kernel is compiled with the latest Linaro toolchain based on gcc 4.7 rather than the default Android toolchain. This may provide performance improvements in some situations. I have made a few patches applied to make it compatible with gcc 4.7.
Overclock:
The highest frequency now available under Settings -> Performance with these kernels is,
Code:
CPU: 1782 MHz 1.25 V
L2: 1350 MHz 1.15 V
BUS: 532 MHz
I've also included a modified thermald.conf in the flashable zip.
Refresh rate:
I've reverted the refresh rate to the original value from the sense source code (57 Hz). This works better when "Disable HW overlays" is selected.
Downloading and installing
Download the flashable zip,
cm10.1_vz-oc-linaro.4.zip MD5=7233ccffa17fa16a2dc6292ecf755fb4
mega.co.nz
ubuntuone.com
Older versions:
cm10.1_vz-oc-linaro.3.zip MD5=5e0efdfd0390f3f923090a574d142808
mega.co.nz
ubuntuone.com
cm10.1_vz-oc.2.zip MD5=cf2c4ee8ba09627e598b78dcea225d39
cm10.1_vz-oc-linaro.2.zip MD5=2931cc59515949fa461a89ea17c99328
vz-oc.1.zip MD5=2f1740d67cd1d5c02a7ac5489bafe7a0
vz-oc.2.zip MD5=4e4d444130e8eb71c27cc23fed65fc88
vz-oc-linaro.1.zip MD5=ca674641e05595e64698afda8aa02943
vz-oc-linaro.2.zip MD5=2b01472d00e069c53f934c30b49475d1
cm10.1_vz-oc.1.zip MD5=576db9e99b2289dae7fc5b548a0d61b4
cm10.1_vz-oc-linaro.1.zip MD5=1a5f3b50608e6b44da50829b2c04ec5c
If you have HBOOT earlier than 1.14 or have S-OFF, then you can just flash the zip from recovery. This will flash the kernel as well as all required modules and thermald.conf. Otherwise, HBOOT 1.14 users will need to extract the boot.img, enter bootloader mode and run
Code:
fastboot flash boot boot.img
Then you will also need to flash the zip to get modules and themald.conf.
Compatability
cm10.1_vz-oc-linaro.4 is compatible with CM10.1 UNOFFICIAL build from 16/04/2013 onwards.
cm10.1_vz-oc-linaro.3 is compatible with CM10.1 NIGHTLY build from 01/03/2013 onwards.
cm10.1_vz-oc.2 (and linaro) are compatible with CM10.1 NIGHTLY build from 19/02/2013 only.
cm10.1_vz-oc.1 (and linaro) are compatible with CM10.1 UNOFFICIAL build from 06/02/2013 only.
vz-oc.2 (and linaro) are compatible with CM10 NIGHTLY builds from 26/12/2012 to 13/01/2013.
vz-oc.1 (and linaro) are compatible with CM10 NIGHTLY builds from 28/11/2012 to 25/12/2012.
Future development
I hope to introduce GPU overclocking soon and there will be updated builds as
soon as changes come into the main CyanogenMod repo.
Building the kernel
For those who would like to build the kernel themselves, here are some basic
instructions. First you will need to acquire some tools. You can get the default
toolchain from the CM10 source code at,
Code:
system/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/
Otherwise, if you want to use the Linaro toolchain, you can get it at
Linaro toolchain
You will also need a working boot image to get the ramdisk from. You can build
mkbootimg using these instructions
building mkbootimg
Finally, you can get split_bootimg_pl from William Encks site
download split_bootimg_pl
Clone the repo and change to your desired branch
Code:
git clone https://github.com/vanja-zecevic/android_kernel_htc_msm8960.git
git checkout jellybean-oc
Now export an environmental variable pointing to your desired toolchain
Code:
export CCOMPILER=$PATH_TO_TOOLCHAIN/bin/arm-eabi-
Copy the config file, run menuconfig once and start the build replacing -j12
with your desired number of threads
Code:
cp ./config-oc ./.config
make ARCH=arm SUBARCH=arm CROSS_COMPILE=$CCOMPILER menuconfig
make ARCH=arm SUBARCH=arm CROSS_COMPILE=$CCOMPILER -j12
Extract a ramdisk from a working boot image and repack with your freshly built
kernel using the following command for cm10,
Code:
./split_bootimg_pl ./boot.img
./mkbootimg --base 0x80400000 --ramdiskaddr 0x81800000 \
--cmdline 'console=ttyHSL0,115200,n8' \
--kernel arch/arm/boot/zImage --ramdisk boot.img-ramdisk.gz \
-o boot_vz-oc.img
cm10.1 will need the following cmdline
Code:
--cmdline 'console=ttyHSL0,115200,n8 androidboot.hardware=qcom'
You are ready to flash your new kernel!
Contact
I hope you enjoy using this kernel! Please also visit the github page for this project for alternative download links and for the source code.
GitHub
Cheers,
Vanja
Looks good will give it a shot next time I'm on a CM10 based ROM. Will this only work on CM10 or will it work with other AOSP builds too?
Sent from my HTC One X using Tapatalk 2
1. Could you post flash able zips for the majority of us who can flash these in recovery?
2. Very few users including myself have issues with kernels without stock voltage values. The device will just not boot, any way to have separate versions without different voltages just to rule that issue out when people ask why their device won't boot?
Sent from my One X using Tapatalk 2
superchilpil said:
1. Could you post flash able zips for the majority of us who can flash these in recovery?
2. Very few users including myself have issues with kernels without stock voltage values. The device will just not boot, any way to have separate versions without different voltages just to rule that issue out when people ask why their device won't boot?
Sent from my One X using Tapatalk 2
Click to expand...
Click to collapse
+1 thank you
Straight talked from my HOX!
I like the idea of a stockish CM10 OC kernel, Me myself i underclock. I would give this a go see how it holds up. the increase in clock speed is usually a nice thing to have even if not used. Also a 2.0GHz version would be awesome too.
Nice job!
Sent from my Nexus 7
ChummyDays said:
Fastboot flash boot boot.img
Sent from my One X using Tapatalk
Sent from my One X using Tapatalk 2
Click to expand...
Click to collapse
Re read my post, I know how to use fastboot
Sent from my One X using Tapatalk 2
Thanks for the feedback people!
I'm currently running HBOOT 1.14, so I will need to downgrade to 1.09 before I can make/test flashable kernel zips. I think I will get around to this in the next week.
I will also look into some other requests.
Is anyone running the kernel? Are you happy with it? Any benchmarks?
rohan32 said:
Nice job!
Click to expand...
Click to collapse
Thanks Rohan, I was inspired by your work!
Quick question: Sweep2Wake support?
I know OP stated 'as close to stock as possible,' searched thread for 'sweep' and turned up nuffin, so I'm just curious. Glad to see another kernel option (and prospective CM10 material!).
superchilpil said:
1. Could you post flash able zips for the majority of us who can flash these in recovery?
2. Very few users including myself have issues with kernels without stock voltage values. The device will just not boot, any way to have separate versions without different voltages just to rule that issue out when people ask why their device won't boot?
Sent from my One X using Tapatalk 2
Click to expand...
Click to collapse
I don't plan on maintaining them, but if newer versions come out, just rename to boot.img and swap out the file in the zips:
With Linaro toolchain
without Linaro toolchain
Vanja, if you want these gone, let me know.
hands on CM boot screen animation
running stable build cm10, and like the title says, hangs on boot screen animation. Do you have to configure the thermald.conf first?
thanks
taylor.fowler said:
I don't plan on maintaining them, but if newer versions come out, just rename to boot.img and swap out the file in the zips:
Click to expand...
Click to collapse
Thanks Taylor! I've included zips now.
nespid said:
running stable build cm10, and like the title says, hangs on boot screen animation. Do you have to configure the thermald.conf first?
thanks
Click to expand...
Click to collapse
Hi nespid, unfortunately, these kernels currently only support builds from 28/11/2012 onward. I've re-written the "Compatibility" section to make that more clear.
I will put up a build compatible with the "stable" build in a few days if you like.
vanja_z said:
Hi nespid, unfortunately, these kernels currently only support builds from 28/11/2012 onward. I've re-written the "Compatibility" section to make that more clear.
I will put up a build compatible with the "stable" build in a few days if you like.
Click to expand...
Click to collapse
That would be absolutely great!
Thank you!
Sent from my HTC One X+ using xda app-developers app
just wondering ,when and if are you goin make one for cm10.1? because the one for cm10 just flatout smokes :good! really makes your phone move!! :good:
Re: [KERNEL] vz-oc kernel: CM10 overclocking, normal & Linaro builds
Any feedback on battery life with this one? And how does it play with No Frills CPU and such?
Thanks for the hard work!
Sent from my CM10ified Beast (a.k.a. HTC One XL)
I've put up cm10.1 kernels!
ps. cm10.0 stable kernel is coming soon, I haven't forgotten, sorry for the delay
vanja_z said:
I've put up cm10.1 kernels!
ps. cm10.0 stable kernel is coming soon, I haven't forgotten, sorry for the delay
Click to expand...
Click to collapse
That's awesome, I will be testing this soon. I know it was asked before but I'm also very interested to know, any plans on implementing sweep2wake? After using it for even a little bit it spoils you, it really is an awesome feature. Otherwise thank you for your hard work, I'll leave feedback in a couple days after testing!
Thanks much, got the kernel running on CM10.1 with 1.14 hboot no problems. Modified thermald.conf and seems to allow oc to stick thus far.
great work,
dbd
UPDATE: this kernel is working wonderfully with cm10.1. +1 for linaro toolchain.
I hope that _that will lead us in this topic because he seems to know away more than I do. I am here to learn and feel free to discuss anything that you like. No restrictions so we can get all the input from other users....
What is a toolchain?
After discussion with a few users, it is a mixed of toolchain types that they use.. According to my research, androideabi is targetting ROM build and optimize for the ROMs' binaries. It is fine when you use it to compile your kernel source but it is not optimized for the kernel compilation.
For kernel compiling, you should use the gnueabi toolchain because it uses the kernel's source for a specific kernel version during the toolcchain compiling for a better compatibility, I guess... However, some users reported that it was fine to use for ROM build also...
So the question is it matter what types of toolchains we are using? What are the benefits between the two? Does anyone see any difference between the two with users' experiences?
Here I will take this spot and fill it with useful info and links about what I have found on the web .... :good:
MythBusters XDA Edition: “Optimized” Compiler Toolchains
USING THE ANDROID TOOLCHAIN AS A STANDALONE COMPILER
ELinuxToolchains
The GNU Toolchain for ARM targets
ARM
lj50036 said:
Here I will take this spot and fill it with useful info and links about what I have found on the web .... :good:
MythBusters XDA Edition: “Optimized” Compiler Toolchains
Click to expand...
Click to collapse
It is great that you are joining the discussion because I have a lot of questions and some good optimizations while I tested with these toolchains. I will give what I know a long the way when the questions come up and hope we will have a better understanding what to use and not to use...
In the olden days, I used the 4.6.2 linaro toolchains and I have heard that a lot of people swear by DoomLord's prebuilts.
Just wanted to throw that out there. I personally have not tried anything above 4.7 yet but now I am tempted to
hardslog said:
In the olden days, I used the 4.6.2 linaro toolchains and I have heard that a lot of people swear by DoomLord's prebuilts.
Just wanted to throw that out there. I personally have not tried anything above 4.7 yet but now I am tempted to
Click to expand...
Click to collapse
Adding to your comment, I do see a performance improvement with different toolchains but some users said it is just a placebo...:crying: I am one of the trials and errors users with testing so nothing is going to stop me until proving by testing and users' experiences, haha...
BTW, I could not get the gcc-4.8/4.9 to work on our tf700 chipset yet because there are some graphical problems on linux kernel v3.1.10. I hope that someone can figure it out so we can test it...
There is a PAC rom in the TF300 forums that claims they are using SaberMod 4.8 without issues. http://forum.xda-developers.com/showthread.php?t=2501869
Furthermore there is a kernel (no longer in development it seems) in the TF300 forums that claims to use linaro 4.8 toolchains http://forum.xda-developers.com/showthread.php?t=2625580
hardslog said:
There is a PAC rom in the TF300 forums that claims they are using SaberMod 4.8 without issues. http://forum.xda-developers.com/showthread.php?t=2501869
Furthermore there is a kernel (no longer in development it seems) in the TF300 forums that claims to use linaro 4.8 toolchains http://forum.xda-developers.com/showthread.php?t=2625580
Click to expand...
Click to collapse
Thanks for the information...:good: I will look more into it when I have more time..
BTW, You should try the linaro toolchain for your kernel compilation but you should use the right kernel version that you intend to run. It is running very smooth... It takes less than 10 minutes to compile and test it out..
Cross Compiler Toolchains [Linaro GCC]
Hi,
Interesting thread but in my humble opinion should be in TF700's development section. So, I just used Christopher83's Toolchain for compiling _that's that10 kernel and flash it in CROMBi-kk RC3. As we have Tegra 3 Soc I used the toolchain with arm-cortex_a9-linux-gnueabi prefix which is optimized for Cortex-A9 cpu with Neon-VFPv3. I tested all the latest versions: 4.9 doesn't work at all (the TF700 was vibrating continuously!), the 4.8 had visual glitches but with 4.7 is working with no problems at all! Finally, from the same thread krislibaeer clarifies a bit the linaro prebuilt toolchains
here a little explanation:
arm-eabi toolchain: is for kernels
arm-linux-androideabi: is for rom building
so you use the arm-eabi toolchain for your kernels and the arm-linux-androideabi for roms
hope it helps a bit
so recommend is the arm-eabi toolchain for kernels
Click to expand...
Click to collapse
Hope that helps the discussion.
Cheers.
sziggins said:
Hi,
Interesting thread but in my humble opinion should be in TF700's development section. So, I just used Christopher83's Toolchain for compiling _that's that10 kernel and flash it in CROMBi-kk RC3. As we have Tegra 3 Soc I used the toolchain with arm-cortex_a9-linux-gnueabi prefix which is optimized for Cortex-A9 cpu with Neon-VFPv3. I tested all the latest versions: 4.9 doesn't work at all (the TF700 was vibrating continuously!), the 4.8 had visual glitches but with 4.7 is working with no problems at all! Finally, from the same thread krislibaeer clarifies a bit the linaro prebuilt toolchains
Hope that helps the discussion.
Cheers.
Click to expand...
Click to collapse
There are a few things that you need to pay attention to.
1. Neon-VFPv3 is for Cortex-a8 and not for a9. You may want to flag it as neon-fp16..
2. I believed that your toolchain is targetting linux kernel version 3.4.x or something but not for version 3.1.10.
3. I have the same issues with my owm builds gcc-4.8/4.9 without any solution.
4. Try some of -Ofast flag to see the improvement on v3.1.10
Good luck....:fingers-crossed:
LetMeKnow said:
There are a few things that you need to pay attention to.
1. Neon-VFPv3 is for Cortex-a8 and not for a9. You may want to flag it as neon-fp16..
2. I believed that your toolchain is targetting linux kernel version 3.4.x or something but not for version 3.1.10.
3. I have the same issues with my owm builds gcc-4.8/4.9 without any solution.
4. Try some of -Ofast flag to see the improvement on v3.1.10
Good luck....:fingers-crossed:
Click to expand...
Click to collapse
Just an FYI
I took the plunge and tried a new toolchain. Ended up trying a 4.9 linaro one for the Grimlock Kernel. Works like a champ on my TF300t. HOWEVER for some reason it will not even boot on a TF700. I'm told it vibrates and the screen goes all white or something. So here is the question:
Why would new toolchains work fine on a TF300 but not on a TF700? One of the transformers' great mysteries :laugh:
hardslog said:
Just an FYI
I took the plunge and tried a new toolchain. Ended up trying a 4.9 linaro one for the Grimlock Kernel. Works like a champ on my TF300t. HOWEVER for some reason it will not even boot on a TF700. I'm told it vibrates and the screen goes all white or something. So here is the question:
Why would new toolchains work fine on a TF300 but not on a TF700? One of the transformers' great mysteries :laugh:
Click to expand...
Click to collapse
Thanks for the information and very good quedtion....:good:
Here is my wild guess because the chipset is using in the tf700t, cortex-a9 t33... I checked the diffs on gcc4.7 and gcc4.9 and tried to match all libraries in hope that I could narrow down the bug but it was failed. There was one time that I succeeded boot into the tf700 with my compiled gcc4.9 and thought that I found the bug but if I rebooted it, it got back to the graphical issue, flicking screen... If I rebooted a few more times then the tf700 was working again. I did all my best to figure out the bug but it was a big failure at the end. That is how far it goes as of today... I don't know enough to solve the mysteries and hope that someone else will....:fingers-crossed:
LetMeKnow said:
Thanks for the information and very good quedtion....:good:
Here is my wild guess because the chipset is using in the tf700t, cortex-a9 t33... I checked the diffs on gcc4.7 and gcc4.9 and tried to match all libraries in hope that I could narrow down the bug but it was failed. There was one time that I succeeded boot into the tf700 with my compiled gcc4.9 and thought that I found the bug but if I rebooted it, it got back to the graphical issue, flicking screen... If I rebooted a few more times then the tf700 was working again. I did all my best to figure out the bug but it was a big failure at the end. That is how far it goes as of today... I don't know enough to solve the mysteries and hope that someone else will....:fingers-crossed:
Click to expand...
Click to collapse
Have you tried to compile a stock TF700 kernel with a 4.8 or 4.9 toolchain? I'm asking because _that kernel and Grimlock kernel actually change the cpu_speedo_id of the TF700 from 5 to 12
For reference check this commit: https://github.com/Hardslog/grimlock_kernel_asus_tegra3_unified/commit/50a19d0f6d6d03e6187a8fa7273be77755d72324#diff-c8f9ec2e1535a394abdd70e576a02ed7R160
I can only go so far with testing as I don't own a TF700........
hardslog said:
Have you tried to compile a stock TF700 kernel with a 4.8 or 4.9 toolchain? I'm asking because _that kernel and Grimlock kernel actually change the cpu_speedo_id of the TF700 from 5 to 12
For reference check this commit: https://github.com/Hardslog/grimlock_kernel_asus_tegra3_unified/commit/50a19d0f6d6d03e6187a8fa7273be77755d72324#diff-c8f9ec2e1535a394abdd70e576a02ed7R160
I can only go so far with testing as I don't own a TF700........
Click to expand...
Click to collapse
No, I have not but it is a good idea to try out. I have a few more days before leaving for two weeks... I will report back before the weekend, thanks again...:highfive:
BTW, have you try some -Ofast flags, not the -Ofast itself? Some of them are working very well with tf700 kernel..
Update: I don't have time to try your recommendation because I am preparing for my business trip. I will give it a test when I am back...
What is ubertc what does it do whats the difference between ubertc 6 and ubertc 4.9
Unless your a developer, it doesn't mean much... Basically it is a more updated toolchain used in compiling ROMs. Google would find this answer quickly. https://plus.google.com/+ChetKener/posts/YzMJEkzPQgp