0. install required development support package : (see cm kernel how to)
0. assuming that cm rom source in ~/android/system and kernel source in ~/android/kernel for 1A and 1B or ~/android/system/kernel for 1C
1A. download kernel source : (first time only. you can use git for deltas only. see post #4 and follow step 1B instead)
> mkdir -p ~/android/kernel
> cd ~/android/kernel
> git clone git://github.com/CyanogenMod/lge-kernel-star.git
> cd lge-kernel-star
1B. update kernel source by git for new commits
> cd ~/android/kernel/lge-kernel-star
> git pull
1C. alternatively, set up git for cm repo
> cp local_manifest.xml ~/android/system/.repo/local_manifest.xml
> cd ~/android/system
> repo sync -j16 kernel/lge-kernel-star
> cd ~/android/system/kernel/lge-kernel-star
2. set up compiler prefix : we need "ARM EABI Toolchain" from prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/ in CM ROM source tree (4.4.3 also works, and i'm using it)
> export CCOMPILER=${HOME}/android/system/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-
6. copy kernel and modules to cm source device folder (zImage is renamed as kernel)
> cp arch/arm/boot/zImage ~/android/system/device/lge/p990/kernel
> cp drivers/net/wireless/bcm4329/wireless.ko ~/android/system/device/lge/p990/prebuilt/wireless.ko
7. build CM ROM using the compiled kernel and modules
p.s. i use a bash script that does 2 to 6 automatically.
# version : the current versioning that shows up in Settings > About phone > kernel version is a bit hard to follow if everybody compiles his/her own kernel. i customize lge-kernel-star/scripts/mkcompile_h and use date as version
Hey, it's me again. Regarding the kernel thread, cloning the kernel ressources is not very efficient, instead add the git to your repository and just download deltas. Edit (typically) ~/android/.repo/local_manifest.xml by adding:
Thanks for sharing. I suppose that's the next fun thing to learn.
Oh btw how do u add/remove kernel or init.rc commits?
the way i understand it is that boot.img is built w/ kernel (as prebuilt) and init ram disk when you brunch.
there are several init.rc involved. (see out/target/product/p990/root/)
for example w/ secure clock commit, init.p990.rc is from device/lge/p990/init.p990.rc
so, i build (brunch) cyanogen w/ kernel (zImage goes to device/lge/p990/kernel and modules go to device/lge/p990/prebuilt/) compiled as above and init.rc's changed in cm (you could cherry pick them, i suppose)
for kernel itself, i don't know if you can cherry pick them or not. typically, i just apply diff patches. (if someone know how to cherry pick kernel commits, please let us know.)
the way i understand it is that boot.img is built w/ kernel (as prebuilt) and init ram disk when you brunch.
there are several init.rc involved. (see out/target/product/p990/root/)
for example w/ secure clock commit, init.p990.rc is from device/lge/p990/init.p990.rc
so, i build (brunch) cyanogen w/ kernel (zImage goes to device/lge/p990/kernel and modules go to device/lge/p990/prebuilt/) compiled as above and init.rc's changed in cm (you could cherry pick them, i suppose)
for kernel itself, i don't know if you can cherry pick them or not. typically, i just apply diff patches. (if someone know how to cherry pick kernel commits, please let us know.)
Thanks.
I'll have a go and it when I'm free. Good to have u onboard.
Exactly what I looked for the other day. Thanks a lot pastime1971!!
This time I won't fail ;)
EDIT: but I did... I guess it's the export that made me fail?
can you "echo $CCOMPILER" or "env | grep CCOMPILER" before make to ensure that it is exported correctly ?
it re-defines to use those arm-eabi-gcc and others. see lge-kernel-star/Makefile, line 309 : CC = $(CROSS_COMPILE)gcc
without it, you would be calling gcc which doesn't understand -mlittle-endian or other options in that log
edit: i commented out the line of export from my shell script, and i get the exact same error message. it must be export issue.
edit: you should get the following when you do "${CCOMPILER}gcc --verbose"
Do you know how to set up local copy of git for lge-kernel-star ?
I can add that line to cm/.repo/local_manifest.xml and it works.
But I would like to have a separate one just for kernel.
I can copy .repo from cm and strip it down, and leave just kernel. That works as well.
But I was wondering if there is a better way to do it. I tried to "repo init -u git://github.com/CyanogenMod/lge-kernel-star.git -b android-tegra-2.6.32" but it fails w/ the following message: #error message deleted#
besides, the source goes into .repo/manifests/
maybe I need to use git command directly ?
regards,
pastime
Hey,
if you just want to be on top of things of our beloved lge-kernel-star, maybe just:
thanks for your advice. i updated the first post accordingly.
edit: w/ today's commit, i tried "git fetch", and nothing happens. tried "git pull" and it downloads new commits. updated the first post. comment welcome if you know the difference between fetch and pull.
Unless you just emerged from a deep, dark, dank cavern under the Earth, you know … more
XDA Developers was founded by developers, for developers. It is now a valuable resource for people who want to make the most of their mobile devices, from customizing the look and feel to adding new functionality. Are you a developer?