Related
this thread is a short how to compile lge_star_kernel for cm7. as i am a noobie, if there is mistake, wrong, etc. please correct me.
there is cm kernel how to at http://wiki.cyanogenmod.com/wiki/Building_Kernel_from_source. i will make a few change from there for p990 (shown in bold)
benee in vorkKernel project posted how to compile vorkKernel at https://github.com/VorkTeam/vorkKernel-Scripts/wiki
git tutorial at http://gitref.org/creating/
lge-kernel-star is at http://github.com/CyanogenMod/lge-kernel-star/
# how to #
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-
3. copy config
> cp arch/arm/configs/star_cyanogenmod_defconfig .config
4. run configuration
> make ARCH=arm CROSS_COMPILE=$CCOMPILER oldconfig
5. build
> make ARCH=arm CROSS_COMPILE=$CCOMPILER -j`grep 'processor' /proc/cpuinfo | wc -l`
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.
kernel source mod
# 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
46: DATETODAY=`date +"%Y%m%d"`
47: UTS_VERSION="$DATETODAY#$VERSION"
# compiled by : since i have a different username on linux system that i use, force it to show the name you want on it.
67: echo \#define LINUX_COMPILE_BY \"YOUR_NAME\"
68: echo \#define LINUX_COMPILE_HOST \"YOUR_MACHINE\"
here is my (simplified) shell script to compile kernel
Code:
#!/bin/sh
export CCOMPILER=${HOME}/android/system/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-
cd ${HOME}/android/kernel/lge-kernel-star || exit
${CCOMPILER}gcc --verbose || exit # show the cross compiler
\cp arch/arm/configs/star_cyanogenmod_defconfig .config
make ARCH=arm CROSS_COMPILE=$CCOMPILER oldconfig
make ARCH=arm CROSS_COMPILE=$CCOMPILER -j`grep 'processor' /proc/cpuinfo | wc -l`
edit: added a printout of manual checking of compiler in line 4
Following is from myfluxi
myfluxi said:
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:
Code:
<project path="kernel/lge-kernel-star" name="CyanogenMod/lge-kernel-star.git" remote="github" revision="android-tegra-2.6.32" />
And a late happy birthday...
Cheers
Marc
Click to expand...
Click to collapse
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?
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?
Code:
[email protected]:~/android/kernel/lge-kernel-star$ make ARCH=arm CROSS_COMPILE=$CCOMPILER -j`grep 'processor' /proc/cpuinfo | wc -l`
scripts/kconfig/conf -s arch/arm/Kconfig
CHK include/linux/version.h
SYMLINK include/asm -> include/asm-arm
make[1]: `include/asm-arm/mach-types.h' is up to date.
CHK include/linux/utsrelease.h
CC scripts/mod/empty.o
cc1: error: unrecognized command line option "-mlittle-endian"
cc1: error: unrecognized command line option "-mapcs"
cc1: error: unrecognized command line option "-mno-sched-prolog"
cc1: error: unrecognized command line option "-mno-thumb-interwork"
scripts/mod/empty.c:1:0: error: unknown ABI (aapcs-linux) for -mabi= switch
scripts/mod/empty.c:1:0: error: bad value (armv5t) for -march= switch
make[2]: *** [scripts/mod/empty.o] Error 1
make[1]: *** [scripts/mod] Error 2
make: *** [scripts] Error 2
temasek said:
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?
Click to expand...
Click to collapse
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.)
pastime1971 said:
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.)
Click to expand...
Click to collapse
Thanks.
I'll have a go and it when I'm free. Good to have u onboard.
sibbor said:
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?
Click to expand...
Click to collapse
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"
> ${CCOMPILER}gcc --verbose
Using built-in specs.
Target: arm-eabi
Configured with: /home/jingyu/projects/gcc/android-toolchainsrc/build/../gcc/gcc-4.4.3/configure --prefix=/usr/local --target=arm-eabi --host=x86_64-linux-gnu --build=x86_64-linux-gnu --with-gnu-as --with-gnu-ld --enable-languages=c,c++ --with-gmp=/home/jingyu/projects/gcc/toolchain_build/gingerbreadobj/temp-install --with-mpfr=/home/jingyu/projects/gcc/toolchain_build/gingerbreadobj/temp-install --disable-libssp --enable-threads --disable-nls --disable-libmudflap --disable-libgomp --disable-libstdc__-v3 --disable-sjlj-exceptions --disable-shared --disable-tls --with-float=soft --with-fpu=vfp --with-arch=armv5te --enable-target-optspace --with-abi=aapcs --with-gcc-version=4.4.3 --with-binutils-version=2.19 --with-gmp-version=4.2.4 --with-mpfr-version=2.4.1 --with-gdb-version=7.1.x --with-arch=armv5te --with-multilib-list=mandroid --with-sysroot=/usr/local/google/home/android/cupcake_rel_root --enable-gold=both/gold --program-transform-name='s&^&arm-eabi-&'
Thread model: single
myfluxi said:
pastime1971 said:
Dear Marc,
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
Click to expand...
Click to collapse
Hey,
if you just want to be on top of things of our beloved lge-kernel-star, maybe just:
git clone git://github.com/CyanogenMod/lge-kernel-star.git
and then sync with
cd lge-kernel-star
git [pull | fetch]
What do you think?
Cheers
Marc
Click to expand...
Click to collapse
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.
Managed to build the kernel now. Will see if my freshly compiled Kang include it or not. If it's included I think it's magic... because I had to create the folders manually where I copied the zImage. Feels like it should already have been there, no?
Hey, pastime, you've got an error in point #6:
Code:
cp arch/arm/boot/zImage ~/andoid/system/device/lge/p990/kernel
should be
Code:
cp arch/arm/boot/zImage ~/and[B]r[/B]oid/system/device/lge/p990/kernel
sibbor said:
Managed to build the kernel now. Will see if my freshly compiled Kang include it or not. If it's included I think it's magic... because I had to create the folders manually where I copied the zImage. Feels like it should already have been there, no?
Hey, pastime, you've got an error in point #6:
Code:
cp arch/arm/boot/zImage ~/andoid/system/device/lge/p990/kernel
should be
Code:
cp arch/arm/boot/zImage ~/and[B]r[/B]oid/system/device/lge/p990/kernel
Click to expand...
Click to collapse
omg, sorry about the typo.... i manually typed those...
glad it is working for you now
when your kernel is included in your kang, you would see your name and host in "About phone"
edit: typo corrected
edit: i just read your comment on the folder... it should be there already, isn't it ? it is under YOUR_CYANOGEN_ROM_SOURCE_FOLDER/device/lge/p990/
edit: device/lge/p990/kernel is a file, not a folder. "zImage" is renamed to "kernel" in that folder (p990). wireless.ko is the same name in p990/prebuilt/
pastime1971 said:
omg, sorry about the typo.... i manually typed those...
glad it is working for you now
when your kernel is included in your kang, you would see your name and host in "About phone"
edit: typo corrected
edit: i just read your comment on the folder... it should be there already, isn't it ? it is under YOUR_CYANOGEN_ROM_SOURCE_FOLDER/device/lge/p990/
edit: device/lge/p990/kernel is a file, not a folder. "zImage" is renamed to "kernel" in that folder (p990). wireless.ko is the same name in p990/prebuilt/
Click to expand...
Click to collapse
Ah, yeah. Thanks!
Sure, it's working for me. [email protected] Sweet stuff! Thanks for the brilliant guide pastime.
Making my own shell scripts now I learn the whole process a bit better too, from A to Z ;-)
sibbor said:
Ah, yeah. Thanks!
Sure, it's working for me. [email protected] Sweet stuff! Thanks for the brilliant guide pastime.
Making my own shell scripts now I learn the whole process a bit better too, from A to Z ;-)
Click to expand...
Click to collapse
you are welcome.
enlighten us if you find a way to improve it, too.
i moved on to using "git pull", thanks to myfluxi
I did another "pull request" on kernel regarding touch screen.
Not sure if I did it right this time, it seems somehow different from last.
Let say you have a old pull request.
How do I withdraw it, update to the latest, and make a new pull request? (Assuming that is a right procedure.) I had to delete the old one, and started from the scratch. Doesn't feel right.
If you're only interested in the kernel, you can build just the boot image if you like:
make -j4 bootimage
Only takes a few seconds really.
Rusty! said:
If you're only interested in the kernel, you can build just the boot image if you like:
make -j4 bootimage
Only takes a few seconds really.
Click to expand...
Click to collapse
i imagined that something like that would be possible.
never knew how...
thanks, rusty
Rusty! said:
If you're only interested in the kernel, you can build just the boot image if you like:
make -j4 bootimage
Only takes a few seconds really.
Click to expand...
Click to collapse
Could u be a little more specific? I tried that command but it builds generic one... Am I missing something here? I think I am....
Insights pls?
make clean
. build/envsetup.sh
lunch p990-eng
make -j4 bootimage
Rusty! said:
make clean
. build/envsetup.sh
lunch p990-user
make -j4 bootimage
Click to expand...
Click to collapse
Cool.
The boot.img created in a blaze. But this method is only applicable if the kernel is committed? What if it is just committed in the star kernel git but yet to be merged to cm, then we do we have to create a zImage and then compile CM ?
Thanks.....
For any CM10 ROM, except new bootloader one, hackfest, and CM10.1
This tutorial shows you how to build CM10 kernel from RC and the CM team's source(it is their work), and using wkpark's ramhack patch or other patches
If you are uncomfortable in building the kernel, you use my flashable sample kernel at the end of the post, which uses 56 MB RAM hack.
Pre-requistes:
A Linux system
An internet connectionc
Some time and patience
But the time required for downloading resources, and building once everything is set up, is only a fraction of the time required for a full CM10 ROM
You can follow this guide, with or without having built CM10 following Raum1807's excellent CM10 building guide. At one of the places, the difference occurs whether you had built CM10 before or not, and I have listed it at that place
For a first time build, you need to follow all the steps, but 2nd time onwards, you can skip to the build step or RAM hack setting step
Instructions:
STEP 1: SETTING UP THE ENVIRONMENT
Install any CM10 ROM on the device (old bootloader, non-hackfest, non-CM10.1 one)
If you already have CM10 environment set up, skip to "Create an environment variable..." part
Install development support packages:
Debian based Linux distributions (like Ubuntu)
64bit systems:
Code:
sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \
libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \
libgl1-mesa-dev g++-multilib mingw32 openjdk-6-jdk tofrodos \
python-markdown libxml2-utils schedtool pngcrush xsltproc zlib1g-dev:i386
then
Code:
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
Red Hat based Linux distributions
32bit and 64bit systems:
git gnupg java-1.6.0-openjdk-devel flex bison gperf SDL-devel esound-devel wxGTK-devel zip curl ncurses-devel zlib-devel gcc-c++ glibc-devel
64bit only:
glibc-devel.i686 libstdc++.i686 zlib-devel.i686 ncurses-devel.i686
Setting up Java (thanks to Raum for the java setup guide)
You need a Java Development Kit for building CM10. Recommended is the SUN JDK 6. As of writing the most recent version is SUN JDK 6 Update 37.
1. Download the jdk-6u37-linux-i586.bin from the Oracle/Sun Java Download Area. If you are on 64-bit Ubuntu as I am, you should grab jdk-6u37-linux-x64.bin.
2. Make the bin file executable:
Code:
$ chmod +x jdk-6u37-linux-x64.bin
3. Extract the bin file:
Code:
$ ./jdk-6u37-linux-x64.bin
4. Move the extracted folder to this this location:
Code:
$ sudo mv jdk1.6.0_37 /usr/lib/jvm/./jdk-6u37-linux-x64.bin
5. Install the new Java source in system:
Code:
$ sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk-6u37-linux-x64.bin/bin/javac 1
$ sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk-6u37-linux-x64.bin/bin/java 1
$ sudo update-alternatives --install /usr/bin/javaws javaws /usr/lib/jvm/jdk-6u37-linux-x64.bin/bin/javaws 1
$ sudo update-alternatives --install /usr/bin/javadoc javadoc /usr/lib/jvm/jdk-6u37-linux-x64.bin/bin/javadoc 1
$ sudo update-alternatives --install /usr/bin/javah javah /usr/lib/jvm/jdk-6u37-linux-x64.bin/bin/javah 1
$ sudo update-alternatives --install /usr/bin/javap javap /usr/lib/jvm/jdk-6u37-linux-x64.bin/bin/javap 1
$ sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/jdk-6u37-linux-x64.bin/bin/jar 1
6. Select the default Java version for your system:
Code:
$ sudo update-alternatives --config javac
$ sudo update-alternatives --config java
$ sudo update-alternatives --config javaws
$ sudo update-alternatives --config javadoc
$ sudo update-alternatives --config javah
$ sudo update-alternatives --config javap
$ sudo update-alternatives --config jar
7. Check Java version:
Code:
$ java -version
8. Verify the symlinks. Javac, Java, Javaws, Javadoc, Javah, Javap and Jar should all point to the new Java location and version:
Code:
$ ls -la /etc/alternatives/java* && ls -la /etc/alternatives/jar
Now,
If you have CM10 source fetched already (if you have built cm10)
If the directory name where the cm10 source exists is "cm10" (as in Raum's building guide)
Create an environment variable denoting the location of the android toolchain as follows:
Code:
export CCOMPILER=${HOME}/cm10/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-
Or else, replace the path/name if yours is different
(If your arm-eabi version is not 4.4.3, check the folder name and change it accordingly)
If you do not have cm10 source on your pc, then you need to download the ARM EABI Toolchain separately
Download link, ready to extract
If above does not work, download from official site here
Download and extract then, create an environment variable denoting the location of the toolchain as follows:
Code:
export CCOMPILER=[extraction directory]/bin/arm-eabi-
Download Kernel Source Code:
Code:
mkdir -p ~/kernel
cd ~/kernel
Now download RC's CM10 kernel source
In terminal, do
Old bootloader:
Code:
git clone git://github.com/CyanogenMod/lge-kernel-star.git -b jellybean
New bootloader:
Here, pengus77 has made the necessary changes in his repo, so we fetch from that
Code:
git clone git://github.com/pengus77/lge-kernel-star.git
Thus, there should be a folder named "lge-kernel-star" inside /kernel folder
Then in terminal, cd to that directory "lge-kernel-star"
Code:
cd lge-kernel-star
Getting the config file
The next step is to copy the file "/kernel/lge-kernel-star/arch/arm/configs/cyanogenmod_p990_defconfig" to "/kernel/lge-kernel-star and rename it to ".config"
using the command:
Code:
cp arch/arm/configs/cyanogenmod_p990_defconfig .config
(Thanks to tonyp for the tip!)
STEP 2: CONFIGURATION
Configure the build:
Code:
make ARCH=arm CROSS_COMPILE=$CCOMPILER oldconfig
If it happens to ask anything, just accept the defaults at every step by pressing enter.
STEP 3: APPLYING PATCHES
Applying patches like wkpark's RAM hack patch
If you skip this step, the kernel will work, but you'll have a completely stock kernel without RAM hack or other tweaks
Download wkpark's two patches from here and here, and put them in your /kernel directory
Code:
cd ~/kernel
Now to apply the patches, we use the patch command like this:
Code:
patch -Np1 -d lge-kernel-star < patchname.patch
(replace patchname with name of the patch file)
Here, -N is for ignoring patches that seem to be already applied or reversed
p<num> Strip the smallest prefix containing num(here num=1) leading slashes from each file name found in the patch file
In this case, num=1 according to the path names in wkpark's patch, and in a lot of cases, the value of 1 is common
-d is to change to the directory immediately, before doing anything else
You need to apply wkpark's two patches one by one (0001-..., then bootloader-...)
If you get errors while patching, if they are basic errors like file not found etc. then you should manage to fix it yourself.
But if you get errors like "HUNK ... failed",
try
Code:
patch -Np1 --ignore-whitespace -d lge-kernel-star < patchname.patch
A "HUNK ignored" is ok, if patch was attempted previously, since that file might have been successfully patched last time
if a HUNK still fails, then read the troubleshooting guide
Setting RAM hack size (If you skipped the above patching step, dont do this)
wkpark's patch makes it possible for you to set ramhack size in kernel command line parameter.
The cmdline parameter has to have the full boot.img command line parameters, which you can obtain from dmesg. I have done it for you, so you can save time on that
Here's how it looks for the old bootloader: (for the new one, ignore this)
Code:
<5>[70:01:01 00:00:00.000] Kernel command line: loglevel=0 muic_state=1 CRC=10203036179a93 brdrev=1.0 uniqueid=37c7006421f6097 video=tegrafb console=ttyS0,115200n8 usbcore.old_scheme_first=1 tegraboot=sdmmc tegrapart=recovery:35e00:2800:800,linux:34700:1000:800,mbr:400:200:800,system:600:2bc00:800,cache:2c200:8000:800,misc:34200:400:800,userdata:38700:c0000:800 [email protected] vmalloc=128M androidboot.mode=normal androidboot.hardware=star androidboot.serialno=37c7006421f6097
Paste the line starting from loglevel=0 till the end (serialno) into .config file in lge-kernel-star folder in
CONFIG_CMDLINE="<here>"
Insert a carveout size in between vmalloc and androidboot.mode
Determing carveout size: carveout=<152 - RAM hack size>M
For example, if RAM hack size is 56, then carveout is 96M
So in that case, the cmdline is like this:
old bootloader:
Code:
CONFIG_CMDLINE="loglevel=0 muic_state=1 CRC=10203036179a93 brdrev=1.0 uniqueid=37c7006421f6097 video=tegrafb console=ttyS0,115200n8 usbcore.old_scheme_first=1 tegraboot=sdmmc tegrapart=recovery:35e00:2800:800,linux:34700:1000:800,mbr:400:200:800,system:600:2bc00:800,cache:2c200:8000:800,misc:34200:400:800,userdata:38700:c0000:800 [email protected] vmalloc=128M carveout=96M androidboot.mode=normal androidboot.hardware=star androidboot.serialno=37c7006421f6097"
new bootloader:
Code:
CONFIG_CMDLINE="tegraid=20.1.4.0.0 [email protected] carveout=152M android.commchip=0 vmalloc=128M androidboot.serialno=037c7006421f6097 video=tegrafb no_console_suspend=1 console=ttyS0,115200n8 debug_uartport=lsport,-3 androidboot.mode=normal usbcore.old_scheme_first=1 [email protected] [email protected] muic_state=0 tegraboot=sdmmc tegrapart=recovery:35e00:2800:800,boot:34700:1000:800,mbr:400:200:800,persist:600:2bc00:800,cache:2c200:7f00:800,misc:34200:400:800,userdata:38700:c0000:800,bcttable:0:600:800,bootloader:100:300:800,data/ve:f8800:1400:800,system:34c000:40000:800 "
and save the file
Dont set carveout too low, or else some gpu-intensive stuff may not work properly.
STEP 4: BUILDING THE KERNEL
In terminal,
Code:
cd ~/kernel/lge-kernel-star
Code:
make ARCH=arm CROSS_COMPILE=$CCOMPILER -j`grep 'processor' /proc/cpuinfo | wc -l`
This step may take a while, depending on your computer. Took ~5-10 mins for the first build for me, and ~1 min for the second build onwards.
If it asks in the terminal "use default config?" then say "y", if not, then ignore this
If you get some error and the building aborts within a few seconds, try the "Create environment variable part" again, and then return back directly to the build step.
After it is done, you should have a kernel stored in ~/kernel/lge-kernel-star/arch/arm/boot/zImage
Preparing the flashable zip for the kernel
Some compiled modules need to be included so that problems like wifi not switching on dont occur.
They are:
drivers/misc/bthid/bthid.ko
drivers/scsi/scsi_wait_scan.ko
drivers/net/wireless/bcm4329/wireless.ko
They will be used while preparing the flashable zip below.
Thanks to feav's compiled modules and benee's anykernel updater for star, all this is ready-made and you can simply:
Download the sample kernel zip attached below and replace /kernel/zImage and and the above modules in system/lib/modules/hw in that with yours, edit updater-script if you want.
Your flashable zip is now ready
STEP 5: FLASHING AND TESTING THE KERNEL
Put the sample kernel below as a backup in case your kernel does not boot and you need a working phone immediately.
Flash the kernel in recovery, wipe cache, dalvik cache and reboot.
If the phone goes past the LG logo screen(s) and into the bootscreen of the ROM, then it should work
Then you can check "kernel version" in settings->about phone to see your kernel information,
and you can see the new RAM size (which should be 342 MB + RAM hack size) in some app like battery dr saver, or antutu benchmark's system info.
If it doesnt work, make sure you have followed the entire guide properly and then ask queries
If you want to revert to another kernel, flash that kernel in recovery, or for stock kernel, flash your ROM.
Keeping kernel source up to date (for building again later after RC has made changes to the source):
Code:
cd ~/kernel/lge-kernel-star
git pull
This will update your source with the latest commits by RC. Then you can rebuild the kernel by doing the "create environment variable" and then skip directly to the build stage
Standard disclaimer:
I am not responsible if anything goes wrong with your phone or anything else.
Credits:
aremcee/RC and the rest of the CM team for all their work. This is their kernel you are building
wkpark for his valuable contributions, including the ramhack patches and cracking the new bootloader
benee for his Anykernel updater for star, and other tweaks
feav for his compiled wifi modules
pengus77 for the work to make it suitable for the new bootloader
Download links for sample kernels:
SAMPLE 56 MB RAMHACK KERNEL
SAMPLE 32 MB RAMHACK KERNEL
SAMPLE 24 MB RAMHACK KERNEL
Troubleshooting guide:
1. Patch failure
HUNK failed means that a particular file was not patched to some problem. In this case, a .rej file is saved in the same folder as the file to be patched, and it contains the stuff not patched.
Do not neglect "failed" hunk since it means a partially applied patch(some files patched, some files not), and may cause problems. "Ignored hunk" is ok, if the patch had been attempted before on a file and had succeeded on that file last time.
To manually patch the failed hunk, go that file where the hunk failed (has same name as .rej file without .rej extension)
For example, if .rej file is board-star.c.rej, and it contains the following sample lines (look for lines beginning with '+' and remove the + before adding, similar for -) go to board-star.c, and add the lines manually like this:
Code:
#if defined (CONFIG_STAR_REBOOT_MONITOR) || defined (CONFIG_BSSQ_REBOOT_MONITOR)
#define RAM_RESERVED_SIZE 100*1024
/* Force the reserved_buffer to be at its old (Froyo/GB) location
for reboot to work with the older bootloader */
if (strstr(saved_command_line, "brdrev=")) {
extern void *reserved_buffer;
pr_info("The older bootloader detected\n");
if (memblock_end_of_DRAM() > 0x17f80000) {
if (memblock_reserve(0x17f80000, RAM_RESERVED_SIZE)) {
pr_err("Fail to get reserved_buffer for the older bootloader\n");
} else {
pr_info("Change reserved_buffer for the older bootloader\n");
reserved_buffer = phys_to_virt(0x17f80000);
}
} else {
pr_info("Change reserved_buffer\n");
reserved_buffer = ioremap(0x17f80000, RAM_RESERVED_SIZE);
}
}
#endif
This was in the .rej file, and is to be added immediately after
Code:
#if defined(CONFIG_LGE_BROADCAST_TDMB)
star_dmb_init();
#endif /* CONFIG_LGE_BROADCAST */
in board-star.c (and before the next #if defined or closing bracket)
Similarly, the - lines to be deleted and + lines are to be added in that failed hunk file
(do this manual stuff only if hunk fails)
2. If ramhack kernel fails, but normal kernel works:
From your pc, in terminal do
adb shell dmesg > dmesg.txt
or from your phone, in android terminal emulator, do
dmesg > /sdcard/dmesg.txt
Copy it from your dmesg.txt starting from loglevel=0 till the end (serialno)
Look for a line in dmesg.txt which resembles this:
Code:
<5>[70:01:01 00:00:00.000] Kernel command line: loglevel=0 muic_state=1 CRC=10203036179a93 brdrev=1.0 uniqueid=37c7006421f6097 video=tegrafb console=ttyS0,115200n8 usbcore.old_scheme_first=1 tegraboot=sdmmc tegrapart=recovery:35e00:2800:800,linux:34700:1000:800,mbr:400:200:800,system:600:2bc00:800,cache:2c200:8000:800,misc:34200:400:800,userdata:38700:c0000:800 [email protected] vmalloc=128M androidboot.mode=normal androidboot.hardware=star androidboot.serialno=37c7006421f6097
Use your own phone's parameters instead of this and then set carveout size.
3. Problem with config file:
Pulling kernel config from device:
You need to retrieve a working kernel config from the device, and unzip it.
For that, connect your phone to your pc, enable USB debugging if it was disabled, and then in terminal
Code:
adb pull /proc/config.gz ~/kernel/lge-star-kernel-jellybean/config.gz
cat config.gz | gunzip > .config
Alternatively, you can pull the .config from the newest boot.img
Code:
scripts/extract-ikconfig boot.img > .config
Changes and updates:
25/12/12:
Added changes to be made for the new bootloader (in red color)
24/12/12:
Updated the guide, added some fixes and changes
22/12/12:
Slightly modified version of wkpark's 2nd patch (bootloader one) which may possibly fix one of the errors and may remove need for manually adding some lines
Last one
rugglez.....you rock mate....
I am not sure if I will really do something as I am getting old(lolz) and if I understand enough....
but thanks mate, for keeping spirits alive for this device
rugglez,
Did you see these posts: http://forum.xda-developers.com/showpost.php?p=34600723&postcount=189
http://forum.xda-developers.com/showpost.php?p=34601277&postcount=192
Did you experienced any ploblem with USB?
SREEPRAJAY said:
rugglez.....you rock mate....
I am not sure if I will really do something as I am getting old(lolz) and if I understand enough....
but thanks mate, for keeping spirits alive for this device
Click to expand...
Click to collapse
There are always some things worth experiencing once in life, like if you are an Android user, building a ROM and a kernel. You have experienced it with your wonderful AF kernel, thats important
feav said:
rugglez,
Did you see these posts: http://forum.xda-developers.com/showpost.php?p=34600723&postcount=189
http://forum.xda-developers.com/showpost.php?p=34601277&postcount=192
Did you experienced any ploblem with USB?
Click to expand...
Click to collapse
USB works fine, both adb and mass storage
This guide may seem intimidating, but trust me, once you complete it the first time, you'll find it really simple from the next build onwards.
Uploaded a slightly modified version of wkpark's 2nd patch (bootloader one) which may possibly fix one of the errors and may remove need for manually adding some lines. Updated link in OP and attached here too.
I tried the sample kernel and my camera stops functioning and so with other apps such as contacts, they don't start at all. Im on dec 20 nightly. Could it be the ramhack size? Maybe 32mb will suffice. Just saying.
Thanks to this, will probably try this next week..
aldyu said:
I tried the sample kernel and my camera stops functioning and so with other apps such as contacts, they don't start at all. Im on dec 20 nightly. Could it be the ramhack size? Maybe 32mb will suffice. Just saying.
Thanks to this, will probably try this next week..
Click to expand...
Click to collapse
Uploaded 32 MB ram hack kernel for those having problem with camera, try it out.
Download link 32MB RH
Update:
Added 24MB version too. Here you go:
24MB RH kernel
Thanks rugglez, 32 mb rh is ok so far, cm10 is way smoother and can still play nfs most wanted. Btw, can you apply the patch for double lg logo too by wkpark?
Sent from my P990-CM10
After installing the new kernel, if some apps still don't work or there any lag, disable "force gpu rendering" and "disable hardware overlays" in developer settings.
Thank you for your work! Just flashed the 32mb version without any problem. On cm7 the 48mb ramhack was the biggest without breaking 720p recording. Maybe you should give it a try!
Uhm download a kernel zip file?
How about git clone?
Sent from my Nexus 7 using xda app-developers app
tonyp said:
Uhm download a kernel zip file?
How about git clone?
Sent from my Nexus 7 using xda app-developers app
Click to expand...
Click to collapse
Git clone size = ~440mb
Zip size = 120mb which extracts to that same size
Takes more time to download more for people like me with slow Internet, no other reason
Hi rugglez, got the ff. error when installing the required packages, Im on ubuntu 12.10 x64.
Note, selecting 'libsdl1.2-dev' instead of 'libsdl-dev'
Package sun-java6-jdk is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package 'sun-java6-jdk' has no installation candidate
E: Unable to locate package libwxgtk2.6-dev
E: Couldn't find any package by regex 'libwxgtk2.6-dev'
How to fix? Thanks.
aldyu said:
Hi rugglez, got the ff. error when installing the required packages, Im on ubuntu 12.10 x64.
Note, selecting 'libsdl1.2-dev' instead of 'libsdl-dev'
Package sun-java6-jdk is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package 'sun-java6-jdk' has no installation candidate
E: Unable to locate package libwxgtk2.6-dev
E: Couldn't find any package by regex 'libwxgtk2.6-dev'
How to fix? Thanks.
Click to expand...
Click to collapse
Can you install the dependencies from Raum's CM10 building thread here?
Follow steps 1 and 2 there.
Let me know if that works, ive updated the guide's step 1(setting up environment)
Installing the dependencies from this guide was the only thing i didnt test, since i had the CM10 environment set up already
a step is missing from this guide.
adb pull /proc/config.gz ~/kernel/lge-star-kernel-jellybean/config.gz
cat config.gz | gunzip > .config
Click to expand...
Click to collapse
then
mv config arch/arm/configs/<your_config_name>_defconfig
make ARCH=arm CROSS_COMPILE=$CCOMPILER oldconfig
make <your_config_name>_defconfig
make ARCH=arm CROSS_COMPILE=$CCOMPILER menuconfig
Click to expand...
Click to collapse
then continue...
if you don't make the default config the compiler throws out some errors.
ps: nice guide btw
rugglez said:
Git clone size = ~1.5gb
Zip size = 440mb which extracts to that same size
Takes forever to download more than a gig for people like me with slow Internet, no other reason
Click to expand...
Click to collapse
Hmm.. downloading it now and wondering why it's only 120mb, not 440mb as you said.
rugglez said:
Can you install the dependencies from Raum's CM10 building thread here?
Follow steps 1 and 2 there.
Let me know if that works, ive updated the guide's step 1(setting up environment)
Installing the dependencies from this guide was the only thing i didnt test, since i had the CM10 environment set up already
Click to expand...
Click to collapse
Thanks, ok now using your updated guide.
Btw, did you happen to upload a copy of the kernel zip file? Downloading from github takes forever, only 8 kb/s.
aldyu said:
Thanks, ok now using your updated guide.
Btw, did you happen to upload a copy of the kernel zip file? Downloading from github takes forever, only 8 kb/s.
Click to expand...
Click to collapse
Just use "git clone git://github.com/CyanogenMod/lge-kernel-star.git", it should give you better download speed than for the zipped archive.
I synced the whole CM10 source tree on the remote buildbox in about 5-10 minutes - so github does provide great downspeed
@rugglez: You should add to the OP that you don't have to use adb to get the kernel config, it's already there
arch/arm/configs/cyanogenmod_p990_defconfig
Please refer to the old cm7 kernel how to by pastime: http://forum.xda-developers.com/showthread.php?t=1227241
I really like the fact that more and more building guides get posted here - and that more and more people are building their own ROMs and kernels these days.
After building (which already is a great start) many people even want to learn more about android development in general. That's the true xda spirit!
Kudos!
Workshop thread for Google AOSP
If you want to have 0 day software then lets start making it
To use any custom software you have to unlock bootloader following sony guide
Thanks to
Sony for providing us the chance to have official AOSP support
All developers that work or worked on android making an dream become reality
This guide is designed for an clean install of Ubuntu-server 13.04 LINK
follow all steps including
mkdir ~/android
cd ~/android
then we will init AOSP repo instead of AOPK
since we want to use 0 day software we will init master branch (default)
$ repo init -u https://android.googlesource.com/platform/manifest
then sync it
$ repo sync -jthread_number
!! thread number can speedup download if you have an good internet connection (any number 4->48 is)
!! depending on your connection can take a lot of time ..... please be patient!
after sync is finished we have to add sony repos
copy attached xml file in repo (remove fake zip extension)
mv sonyxperiadev.xml.zip .repo/local_manifests/sonyxperiadev.xml
sync again to get sony repos
$repo sync
get sony blobs and unpack them in /vendor/sony BLOB_LINK
source build/envsetup.sh
select target
lunch <enter>chose your device number and press enterbuild android images
make -j<cpu thread number>
ex: make -j4 (for i5)!! Take an box of beer and enjoy build will take 5min - 1 day depending on pcFind your images
find -type f |grep *.img will display your img files
flash images
fastboot flash partition image.img
ex:
fastboot flash boot boot.img
fastboot flash system system.img
fastboot flash userdata data.img
progress :
-added liblights
reserved for bugs
reserved for us
Well, the party begins!!
github account?
Traceback (most recent call last):
File "/home/support/android/.repo/repo/main.py", line 414, in <module>
_Main(sys.argv[1:])
File "/home/support/android/.repo/repo/main.py", line 390, in _Main
result = repo._Run(argv) or 0
File "/home/support/android/.repo/repo/main.py", line 138, in _Run
result = cmd.Execute(copts, cargs)
File "/home/support/android/.repo/repo/subcmds/init.py", line 352, in Execute
self._ConfigureUser()
File "/home/support/android/.repo/repo/subcmds/init.py", line 253, in _ConfigureUser
name = self._Prompt('Your Name', mp.UserName)
File "/home/support/android/.repo/repo/project.py", line 608, in UserName
self._LoadUserIdentity()
File "/home/support/android/.repo/repo/project.py", line 621, in _LoadUserIdentity
u = self.bare_git.var('GIT_COMMITTER_IDENT')
File "/home/support/android/.repo/repo/project.py", line 2202, in runner
p.stderr))
error.GitError: manifests var:
*** Please tell me who you are.
Run
git config --global user.email "[email protected]"
git config --global user.name "Your Name"
to set your account's default identity.
Omit --global to set the identity only in this repository.
fatal: unable to auto-detect email address (got '[email protected]pport-pc.(none)')
You just have to do what it says
Sent from my C6603 using xda premium
I decided to try it yesterday as directed by Sony. All perfect but still does not work neither GSM nor the camera. I guess then the repo sync with the new binaries will be much faster right? We do not know how they progress to solve the two major problems? Thxs.
BoRoU said:
I decided to try it yesterday as directed by Sony. All perfect but still does not work neither GSM nor the camera. I guess then the repo sync with the new binaries will be much faster right? We do not know how they progress to solve the two major problems? Thxs.
Click to expand...
Click to collapse
this is an workshop thread do the ideea is to try and solve bugs ourselves then push to fixes to sony github
good time to start learning to build roms
downloading repo
I I have no programming knowledge I can help?
If I build, compiled and installed the ROM but I do not know what else I can do. I put at your disposal for whatever you want.
Greetings.
BoRoU said:
I I have no programming knowledge I can help?
If I build, compiled and installed the ROM but I do not know what else I can do. I put at your disposal for whatever you want.
Greetings.
Click to expand...
Click to collapse
you can start learning programing
and help us make an dream come true
LOL I hope so. Unfortunately I'm too old and I have very little time for these appliances. Still try to help if only you to do testing work.
Greetings.
I got the same error as somebody else did earlier...
Code:
Traceback (most recent call last):
File "/home/daniel/android/.repo/repo/main.py", line 414, in <module>
_Main(sys.argv[1:])
File "/home/daniel/android/.repo/repo/main.py", line 390, in _Main
result = repo._Run(argv) or 0
File "/home/daniel/android/.repo/repo/main.py", line 138, in _Run
result = cmd.Execute(copts, cargs)
File "/home/daniel/android/.repo/repo/subcmds/init.py", line 352, in Execute
self._ConfigureUser()
File "/home/daniel/android/.repo/repo/subcmds/init.py", line 253, in _ConfigureUser
name = self._Prompt('Your Name', mp.UserName)
File "/home/daniel/android/.repo/repo/project.py", line 608, in UserName
self._LoadUserIdentity()
File "/home/daniel/android/.repo/repo/project.py", line 621, in _LoadUserIdentity
u = self.bare_git.var('GIT_COMMITTER_IDENT')
File "/home/daniel/android/.repo/repo/project.py", line 2202, in runner
p.stderr))
error.GitError: manifests var:
*** Please tell me who you are.
Run
git config --global user.email "[email protected]"
git config --global user.name "Your Name"
to set your account's default identity.
Omit --global to set the identity only in this repository.
fatal: unable to auto-detect email address (got '[email protected](none)')
Apparently my name/email must be inputted (is that a word?) somewhere before I can continue. Any ideas?
Never mind, I fixed it by having a read through the terminal's response.
These comands must be run:
$ git config --global user.email "[email protected]"
$ git config --global user.name "Your Name"
Gonna do repo sync soon I hope that I can be helpful even I am not advanced
FXP said:
This guide is designed for an clean install of Ubuntu-server 13.04 LINK
follow all steps including
mkdir ~/android
cd ~/android
then we will init AOSP repo instead of AOPK
since we want to use 0 day software we will init master branch (default)
$ repo init -u https://android.googlesource.com/platform/manifest
then sync it
$ repo sync -jthread_number
!! thread number can speedup download if you have an good internet connection (any number 4->48 is)
!! depending on your connection can take a lot of time ..... please be patient!
after sync is finished we have to add sony repos
copy attached xml file in repo (remove fake zip extension)
mv sonyxperiadev.xml.zip .repo/local_manifests/sonyxperiadev.xml
sync again to get sony repos
$repo sync
get sony blobs and unpack them in /vendor/sony BLOB_LINK
Click to expand...
Click to collapse
what is next step?
sources are synced and ready
DooMLoRD said:
what is next step?
sources are synced and ready
Click to expand...
Click to collapse
I know it's for CM but could be useful too
http://wiki.cyanogenmod.org/w/Build_for_yuga
Sent from my C6603 using xda premium
DooMLoRD said:
what is next step?
sources are synced and ready
Click to expand...
Click to collapse
. build/envsetup.sh
lunch full_c6603-userdebug
make -j4
jeroenqui said:
. build/envsetup.sh
lunch full_c6603-userdebug
make -j4
Click to expand...
Click to collapse
which are the img file do I need to flash through fastboot?
what is the command to make a zip file?.
thanks
Hi, I'm trying to build androidarmv6 for Cooper. I synced all the repositories and then ran lunch and chose cm_cooper-userdebug, but the command fails with
Code:
lunch
You're building on Linux
Lunch menu... pick a combo:
1. aosp_arm-eng 7. cm_goldfish-userdebug 13. cm_cooper-eng 19. cm_gio-userdebug 25. cm_icong-userdebug
2. aosp_x86-eng 8. cm_goldfish-user 14. cm_cooper-userdebug 20. cm_tass-userdebug 26. cm_liberty-userdebug
3. aosp_mips-eng 9. mini_mips-userdebug 15. cm_p500-userdebug 21. cm_tassve-userdebug 27. cm_marvel-userdebug
4. vbox_x86-eng 10. mini_x86-userdebug 16. cm_beni-userdebug 22. cm_totoro-userdebug
5. mini_armv7a_neon-userdebug 11. cm_callisto-eng 17. cm_cooperve-userdebug 23. cm_skate-userdebug
6. cm_goldfish-eng 12. cm_callisto-userdebug 18. cm_galaxy5-userdebug 24. cm_chacha-userdebug
Which would you like? [aosp_arm-eng] cm_cooper-userdebug
build/core/product_config.mk:239: *** _nic.PRODUCTS.[[device/samsung/cooper/cm.mk]]: "device/samsung/msm7x27-common/common.mk" does not exist. Schluss.
Device cooper not found. Attempting to retrieve device repository from androidarmv6 Github.
Found repository: android_device_samsung_cooper
Default revision: cm-11.0
Checking branch info
androidarmv6/android_device_samsung_cooper already exists
Syncing repository to retrieve project.
Fetching project repo
Fetching project androidarmv6/android_device_samsung_cooper
fatal: Invalid gitfile format: /ansys/android/.repo/repo/.git/clone.bundle
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Fetching projects: 100% (2/2), done.
Repository synced!
Looking for dependencies
Done
build/core/product_config.mk:239: *** _nic.PRODUCTS.[[device/samsung/cooper/cm.mk]]: "device/samsung/msm7x27-common/common.mk" does not exist. Schluss.
** Don't have a product spec for: 'cm_cooper'
** Do you have the right repo manifest?
Can somebody explain to me what the problem is and/or where I might find the product spec / right repo manifest?
PsirusGT said:
Hi, I'm trying to build androidarmv6 for Cooper. I synced all the repositories and then ran lunch and chose cm_cooper-userdebug, but the command fails with
Code:
lunch
You're building on Linux
Lunch menu... pick a combo:
1. aosp_arm-eng 7. cm_goldfish-userdebug 13. cm_cooper-eng 19. cm_gio-userdebug 25. cm_icong-userdebug
2. aosp_x86-eng 8. cm_goldfish-user 14. cm_cooper-userdebug 20. cm_tass-userdebug 26. cm_liberty-userdebug
3. aosp_mips-eng 9. mini_mips-userdebug 15. cm_p500-userdebug 21. cm_tassve-userdebug 27. cm_marvel-userdebug
4. vbox_x86-eng 10. mini_x86-userdebug 16. cm_beni-userdebug 22. cm_totoro-userdebug
5. mini_armv7a_neon-userdebug 11. cm_callisto-eng 17. cm_cooperve-userdebug 23. cm_skate-userdebug
6. cm_goldfish-eng 12. cm_callisto-userdebug 18. cm_galaxy5-userdebug 24. cm_chacha-userdebug
Which would you like? [aosp_arm-eng] cm_cooper-userdebug
build/core/product_config.mk:239: *** _nic.PRODUCTS.[[device/samsung/cooper/cm.mk]]: "device/samsung/msm7x27-common/common.mk" does not exist. Schluss.
Device cooper not found. Attempting to retrieve device repository from androidarmv6 Github.
Found repository: android_device_samsung_cooper
Default revision: cm-11.0
Checking branch info
androidarmv6/android_device_samsung_cooper already exists
Syncing repository to retrieve project.
Fetching project repo
Fetching project androidarmv6/android_device_samsung_cooper
fatal: Invalid gitfile format: /ansys/android/.repo/repo/.git/clone.bundle
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Fetching projects: 100% (2/2), done.
Repository synced!
Looking for dependencies
Done
build/core/product_config.mk:239: *** _nic.PRODUCTS.[[device/samsung/cooper/cm.mk]]: "device/samsung/msm7x27-common/common.mk" does not exist. Schluss.
** Don't have a product spec for: 'cm_cooper'
** Do you have the right repo manifest?
Can somebody explain to me what the problem is and/or where I might find the product spec / right repo manifest?
Click to expand...
Click to collapse
Make sure common.mk exists in device/samsung/msm7x27-common. If it is not there download it from androidarmv6 github(dirty solution-download whole msm7x27-common folder & manually & place it inside device/samsung folder). And try brunch command.
"brunch cooper".
Hey all,
I am trying to port ubuntu to Nokia X2 (ara). The problem is when I want to start the build:
Code:
# . build/envsetup.sh
including device/generic/armv7-a-neon/vendorsetup.sh
including device/generic/x86/vendorsetup.sh
including device/lge/hammerhead/vendorsetup.sh
including device/lge/mako/vendorsetup.sh
including device/asus/flo/vendorsetup.sh
including device/asus/deb/vendorsetup.sh
including device/asus/grouper/vendorsetup.sh
including device/asus/tilapia/vendorsetup.sh
including device/samsung/manta/vendorsetup.sh
including device/nokia/ara/vendorsetup.sh
including sdk/bash_completion/adb.bash
Code:
# lunch
You're building on Linux
Lunch menu... pick a combo:
1. aosp_arm-eng
2. aosp_x86-eng
3. aosp_mips-eng
4. vbox_x86-eng
5. mini_armv7a_neon-userdebug
6. mini_x86-userdebug
7. aosp_hammerhead-userdebug
8. aosp_mako-userdebug
9. aosp_flo-userdebug
10. aosp_deb-userdebug
11. aosp_grouper-userdebug
12. aosp_tilapia-userdebug
13. aosp_manta-userdebug
14. aosp_ara-userdebug
Which would you like? [aosp_arm-eng] 14
build/core/product_config.mk:222: *** Can not locate config makefile for product "aosp_ara". Stop.
** Don't have a product spec for: 'aosp_ara'
** Do you have the right repo manifest?
What did I miss? What is this config makefile which the luncher can not locate?