What I have done so far:
1) setup cross compiling
2) downloaded the HTC-provided kernel source
3) wrote my own lkm & Makefile
4) grabbed .config from /proc/config.gz off the phone
The problem though is that the distributed HTC kernel is only the source and it doesn't have the compiled files used in the kernel module building processing. It also doesn't have the autoconf files are shown here in the make error:
" ERROR: Kernel configuration is invalid.
include/linux/autoconf.h or include/config/auto.conf are missing.
Run 'make oldconfig && make prepare' on kernel src to fix it."
So I am wondering, do I have to compile my own kernel in order to be able to compile modules or is there someway to make it work with the stock HTC kernel? Loadable modules are enabled in the stock kernel, but unless I am missing something I don't see how you can actually compile modules for it.
Thanks for any help, and I am very experienced with kernel development (on Intel) so feel free to provide any technical details.
So my question is when the 2.3 source code is released will we as evo users be able to compile it using current drivers that we have from 2.2 or is it going to be like 2.2 where it took a month or 2 to get the camera and other stuff working
Simplified do the drivers have to be re-written or will current ones work on 2.3
Mainly wondering as would be nice to have working gingerbread a few days after source released vs weeks/months
Sent from my PC36100 using XDA App
Android uses the Linux kernel. Drivers for the Linux kernel are called "kernel modules" and their files end in .ko (kernel object). Usually they have to be updated for every kernel release e.g. for 2.6.28, 2.6.35, etc to keep up with the kernel APIs.
In some ways Android is just "user space" meaning that it could run theoretically on any kernel. However there are some specific Android kernel requirements that the details are unclear on to me.
Cyanogen has a 2.6.35 and 2.6.36 kernel running, and Gingerbread will use 2.6.35. So things "should" work already. However there's no way to be sure until the actual source code is available.
Hi guys.
I'm a newbie about compiling kernel,and this is my personal compiled kernel based on Hashcode's git source( stock branch),also with some tweaks which I think can improve the responsiveness without bringing extra power consumption( or as little as possible).
This kernel will also be my testing platform to do some MOD porting from Ezekeel's GLaDOS kernel.
Thanks to all great developers in XDA , especially:
-Hashcode & intersectRaven : for their git repo alone with a working .config. alone
-Ezekeel : for his so many great MODs on Nexus S(my phone) and Galaxy Nexus(will be my next phone)
-whistlestop : For his improvement on CM7 (I'm completely unfamiliar with the user land things about android, without him I'll be still using the stock ROM)
Features:
-LAZY cpufreq governor ported from GLaDOS(http://forum.xda-developers.com/showthread.php?t=1276092) with some tweaks.
-TUN compiled into kernel (especially important for people living in regions with strict network censorship like CHINA! F*ck the GreatFireWall)
-CIFS compiled into kernel along with NLS-utf8 for non-ASCII characters.( Now who cares the size of the internal flash?)
-Minor tweaks on ondemand governor to improve responsiveness.
ToDo:
-BLX porting from GLaDOS(http://forum.xda-developers.com/showthread.php?t=1257497)
-TouchWake porting from GLaDOS(http://forum.xda-developers.com/showthread.php?t=1239240)
Because I'm a newbie on kernel development and the MODs above both have some code in hardware drivers, so it will be a long time before accomplish.
The kernel source code seems to work on both CM9 and stock ROM.
So later I'll upload the flashable kernel zip for CM9 and stock ROM after some test.
Download:
CM7:http://www.mediafire.com/?2nsm9lb7ylm3gnl
In next post,I'll post the procedure for compiling the kernel and the wifi driver.
In this post I'll post the detailed procedure of compile the kernel.
1.Get the kernel source and wifi driver:
If you want to compile the kernel based on my tweak,
you can use my repo (fork from hashcode's source):https://github.com/adam900710/kernel_omap(branch stock)
Or you can just start from scratch without my tweak:https://github.com/KFire-Android/kernel_omap(only branch stock is tested)
If you are unfamiliar with git,you can learn it on the GitHub's help page:
http://help.github.com/
Tiwlan drivers from neither omapzoom nor CM7 works due the lack of given functions.
ONLY the wifi driver from Amazon seems work. So you need to download the whole zip from Amazon:
http://www.amazon.com/gp/help/customer/display.html?nodeId=200203720
The wifi driver locates in mydroid/hardware/ti/wlan/wl1283
2.Get the cross compile toolchain:
Yes,you can build from scratch according to CLFS(http://trac.cross-lfs.org/),but a newbie like me is glad to use the pre-compiled toolchain like sourcery G++. Omappedia recommanded 2010q1-202(https://sourcery.mentor.com/sgpp/lite/arm/portal/release1293), so I use it as the toolchain and it works well.
The self-extrated installation program will install the toolchian without any problem.
Also other toolchain is available like linaro , but according to the post by Ezekeel (http://rootzwiki.com/topic/10855-researchmythbuster-optimized-compiler-toolchains/) , there seems no obvious difference. So the out-of-box sourcery G++ is a good choice.
3.Compile the kernel.
Code:
cd kernel_omap #cd into your kernel
make mrproper #clean the source tree( normally you can skip)
make otter_android_defconfig #get the default .config (also you can copy it manually)
make ARCH=arm menuconfig #if you want,you can tweak the config of the kernel.This needs headers of ncurse
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi -j4 #you should make sure that the toolchain is in you PATH
After some CPU time, the kernel is built, in arch/arm/boot/zImage. Also the modules is built in other places.
Since I built all TUN/CIFS and so on into kernel,so there is no need to install the modules.
4.Compile the wifi driver:
Code:
cd mydroid/hardware/ti/wlan/wl1283/platforms/os/linux/ #cd into the building folder
make ARCH=arm KERNEL_DIR=/home/adam/kernel_omap CROSS_COMPILE=arm-none-linux-gnueabi- TNETW=1273 -j4 #you need to change the path of KERNEL_DIR
CAUTION: DO NOT add DEBUG=n OR DELETE TNETW=1273....
I don't know why,but if you do so,the wifi driver won't work properly.
5. Package the kernel into boot.img with ramdisk.
Thanks to DooMLord , in his git repo , you can download the tools needed.
https://github.com/DooMLoRD/Kindle-Fire-Kernel/tree/master/final_files
Only minor changes are needed for the path ,every thing elso works fine.
You can use the ramdisk extracted from any CM7 boot.img using the perl script.
Then just ./make_bootimg will do everythin for you.
Great i will test it
Sent from my GT-P1000 using xda premium
Best kernel.
I'm running on CM7 with this kernel and get super-perfomance and perfect power consump (Using Lazy governor).
It's not support OC??
Sent from my GT-P1000 using xda premium
acax456 said:
It's not support OC??
Sent from my GT-P1000 using xda premium
Click to expand...
Click to collapse
Sorry, not support yet.
Maybe I'll add OC in next release.But I don't recommend OC because the power consumption...
can you able otg usb support ???
is this possible
Please add .zip for CM9!
Can I flash this from the recovery? or do I have to use adb??
please.update your kernel.since its been two months from last.update
Sent from my GT-P1000 using xda premium
I was Wondering How Do I Get Started Porting This Kernel I Know How To Make Roms because I Can From Android forums, Never Did Kernels Or Kernels Ports So How Do I Get Started.... The sources Are Here
Sources :-
Sources at*http://github.com/gokhanmoral/siyahkernel-sgs3
Ramfs at*http://github.com/gokhanmoral/ramfs-sgs3
Toolchain at*http://github.com/gokhanmoral/android_prebuiltSimply clone all to a directory and run build_kernel.sh in the kernel directory
Porting a Kernel primarily modifies the Ram Disk. You will need to get correct drivers from Samsung's source or from CM device tree. In addition, you have to make sure the Governors and Schedulers in Siyah are actually supported on this chipset.
Here's few Guides. Link 1 Link 2 and CM Build Guide
Most important of all, ask the Original Dev for permission!!!
hello everyone
can anyone please patch any cm 11/11.1 xperia arc kernel for 0% battery error..
if you know how to build a kernel please make one patched kernel for me..
i have searched the thread but there is no cm 11 kernel patch.
i know about this thread but can't compile a kernel
http://forum.xda-developers.com/showthread.php?t=1312398
Compile your own version
This are simplified steps. If you dont know how to do, search in the forum.
- First, download the stock kernel source for Xperia (watch out for the correct version), or the sources for your custom ROM you want to use if its not compatible with stock kernel. The developer thread of dev Kalled from Sony (search on developer thread) has some instructions on how to compile the kernel.
This is the direct link to download Sony stock kernel sources:
http://developer.sonymobile.com/downloads/opensource/
- For the ARM compiler, download the CodeSourcery arm eabi compiler version 2010q1.
https://sourcery.mentor.com/sgpp/lit...al/release1294
- Install the compiler on Linux (You can use a virtual machine if you have Windows - use Virtual Box or VMWave Player, both are free for home use).
- Overwrite the bq27520 driver source code with the patched driver from this thread.
- Next, follow the guide on Kalled thread to select phone version and compile the Kernel.
- In the end of compilation, you get a zImage file, that is YOUR Kernel. Congratulations.
- You need a ramdisk. If you are targeting a custom ROM, get a ramdisk compatible with your custom ROM. Also, you can go to DoomLord thread about ramdisk and get a ramdisk suitable for your building. Or generate/use your own ramdisk if you know how. If you use other's ramdisk, give theirs credit.
- With kernel image and ramdisk, generate the file boot.img using mkbootimg tool from Android SDK, or abootimg tool from kubuntu repositories.
- If you choose to use mkbootimg, download a compiled version of mkbootimg, or compile your own version from Android SDK.
- Now you have a boot.img file. Flash it on your phone using fastboot and you are done.
KERNEL I WANT IT TO BE PATCHED
http://www.mediafire.com/download/3o9w31gni49fz4t/11DarkAnzu20140320.img
I HAVE ATTACHED WHAT'S NEEDED(PATCH TO BE REPLACED)..
PLZZ ANYONE HELP..