[KERNEL] Anykernel - Samsung Galaxy Nexus

ANYKERNEL
tuna (maguro / toro / toroplus)​[#WARRANTY]
It is difficult to update all Roms frequently, and it does not always makes sense to compile, download and flash a whole rom, if only some kernel changes are applied.
This kernel will include changes before we add them official to our kernel source on Unlegacy-Android (most of the time security bugfixes)!
Android 5.1, Android 6.0 and Android 7.x
This Kernel should work on all Android 5.1, Android 6.0 and Android 7.xRoms
Android 4.4
On Android 4.4 we need a different kernel, 4.4 Kernel includes "KitKat" tag on zip name.
What else to say
Kernel compiled using GCC 4.7
Anykernel based on Anykernel2 by @osm0sis ( https://github.com/osm0sis/AnyKernel2 ) - it will dump your boot.img and replace the zImage and add proper kernel modules.
Roms with default libion
LineageOS (unofficial)
lineage-13.0_maguro-6.0.1-20180130-2235.zip and newer
lineage-13.0_toro-6.0.1-20180130-2258.zip and newer
lineage-13.0_toroplus-6.0.1-20180130-2323.zip and newer
OmniRom (unofficial)
OmniRom 4.4: omni_tuna-4.4.4-20180128-0005.zip and newer
OmniRom 6.0: omni_tuna-6.0.1-20180128-0334.zip and newer
OmniRom 7.x: omni_tuna-7.1.2-20180128-1348.zip and newer
SlimRoms (unofficial)
Slim6: Slim_tuna-6.0.1-20180128-2356.zip and newer
Slim7: Slim_tuna-7.1.2-20180131-1640.zip
Unlegacy-Android:
All official Unlegacy-Android builds starting on 15th feburary use the default libion
On older Roms, using TI's libion, you can use attached kernel from here.
[#DONATETOME]
XDA:DevDB Information
(tuna) Anykernel, Kernel for the Samsung Galaxy Nexus
Contributors
Android-Andi, Ziyan
Source Code: https://github.com/Unlegacy-Android/android_kernel_samsung_tuna/tree/staging
Kernel Special Features: Testing before applying on our source official, CVE fixes
Version Information
Status: Testing
Created 2017-06-23
Last Updated 2018-05-09

Reserved
As requested, here's my setup to compile tuna kernel.
01.05.2020
Follow https://github.com/andi34/android_build-bot/blob/manifest/README.md and https://github.com/andi34/android_build-bot/blob/kernelcompile/README.md
What do you need
Kernel Source (you can get our latest kernel source on SlimRoms, OmniRoms or CyanogenMods github, "tuna kernel")
GCC ( https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.7 )
pvr source, added to omap4-common device repo and hardware_ti_omap4 repo (can be found on SlimRoms, OmniRoms or CyanogenMods github)
you can use my scripts put below (update some paths, marked red )
AnyKernel2 Source from osm0sis (update for tuna needed)
build-gcc4.7.env
Code:
export CROSS_COMPILE=[COLOR="Red"]'/home/andi/android2/kernelcompile/arm-eabi-4.7/bin/arm-eabi-'[/COLOR]
export LDFLAGS=''
export CFLAGS=''
export SUBARCH=arm
export ARCH=arm
export STRIP=[COLOR="Red"]/home/andi/android2/kernelcompile/arm-eabi-4.7/bin/arm-eabi-strip[/COLOR]
alias 'stm'='$STRIP --strip-unneeded *.ko'
compile-tuna.sh
Code:
#!/bin/bash
readonly red=$(tput setaf 1) # red
readonly grn=$(tput setaf 2) # green
readonly ylw=$(tput setaf 3) # yellow
readonly blu=$(tput setaf 4) # blue
readonly cya=$(tput setaf 6) # cyan
readonly txtbld=$(tput bold) # Bold
readonly bldred=$txtbld$red # red
readonly bldgrn=$txtbld$grn # green
readonly bldylw=$txtbld$ylw # yellow
readonly bldblu=$txtbld$blu # blue
readonly bldcya=$txtbld$cya # cyan
readonly txtrst=$(tput sgr0) # Reset
err() {
echo "$txtrst${red}$*$txtrst" >&2
}
warn() {
echo "$txtrst${ylw}$*$txtrst" >&2
}
info() {
echo "$txtrst${grn}$*$txtrst"
}
setbuildjobs() {
# Set build jobs
JOBS=$(expr 0 + $(grep -c ^processor /proc/cpuinfo))
info "Set build jobs to $JOBS"
}
info "Kernel source path: $KERNELSOURCE"
info "PVR Source path: $PVRSAUCE"
info "Working directory: $WORKINGDIR"
info "resulting zImage and modules stored at: $WORKINGOUTDIR"
setbuildjobs
info "Moving to kernel source"
cd $KERNELSOURCE
info "Import toolchain environment setup"
info "Toolchain: $TOOLCHAIN"
source $SAUCE/build-$TOOLCHAIN.env
info "Create a buid directory, known as KERNEL_OUT directory"
# then always use "O=$SAUCE/tuna" in kernel compilation
info "create working directory"
mkdir -p $WORKINGDIR
warn "Make sure the kernel source clean on first compilation"
make O=$WORKINGDIR mrproper
warn "Rebuild the kernel after a change, maybe we want to reset the compilation counter"
echo 0 > $WORKINGDIR/.version
info "Import kernel config file: $DEFCONFIGNAME"
make O=$WORKINGDIR $DEFCONFIGNAME
info "Change kernel configuration if needed using:"
info " make O=$WORKINGDIR menuconfig "
info "lets build the kernel"
make -j$JOBS O=$WORKINGDIR
if [ -f $WORKINGDIR/arch/arm/boot/zImage ]; then
info "Copying the resulting zImage and modules to: $WORKINGOUTDIR"
info "Creating directory..."
mkdir -p $WORKINGOUTDIR
mkdir -p $WORKINGOUTDIR/modules
cp $WORKINGDIR/arch/arm/boot/zImage $WORKINGOUTDIR/
find $WORKINGDIR/ -type f -name *.ko -exec cp {} $WORKINGOUTDIR/modules/ \;
info "Files moved!"
info "Pointing KERNELDIR to KERNEL_OUT directory"
export KERNELDIR=$WORKINGDIR
warn "Make sure the PVR source clean."
warn "Running 'make clean'..."
make clean -C $PVRSAUCE/build/linux2/omap4430_android
info "Building the PVR module..."
make -j8 -C $PVRSAUCE/build/linux2/omap4430_android TARGET_PRODUCT="blaze_tablet" BUILD=release TARGET_SGX=540 PLATFORM_VERSION=4.1
info "Copying the resulting PVR module to: $WORKINGOUTDIR"
cp -fr $PVRSAUCE/binary2_omap4430_android_release/target/pvrsrvkm.ko $WORKINGOUTDIR/modules/pvrsrvkm_sgx540_120.ko
mv $PVRSAUCE/binary2_omap4430_android_release/target/pvrsrvkm.ko $WORKINGOUTDIR/modules/
warn "Don't leave any module objects in PVR source!"
warn "Running 'make clean'..."
make clean -C $PVRSAUCE/build/linux2/omap4430_android
info "Properly stripping the kernel modules for smaller size (implified as stm command inside build.env)..."
cd $WORKINGOUTDIR/modules
stm
info "####################"
info "# Done! #"
info "####################"
else
warn "####################"
warn "# FAILED! #"
warn "####################"
fi
cd $SAUCE
tuna_k.sh
Code:
#!/bin/bash
[COLOR="Red"]SAUCE=~/android2/kernelcompile
PVRSAUCE=~/android2/official/omap4/stable/pvr-source/eurasiacon
KERNELSOURCE=~/android2/official/kernel/android_kernel_ti_omap4[/COLOR]
TOOLCHAIN="gcc4.7"
DEFCONFIGNAME=tuna_kitkat_defconfig
WORKINGDIR=$SAUCE/tuna-kitkat
WORKINGOUTDIR=$WORKINGDIR-bin
. `dirname $0`/compile-tuna.sh
tuna_m.sh
Code:
#!/bin/bash
[COLOR="Red"]SAUCE=~/android2/kernelcompile
PVRSAUCE=~/android2/official/omap4/stable/pvr-source/eurasiacon
KERNELSOURCE=~/android2/official/kernel/android_kernel_ti_omap4[/COLOR]
TOOLCHAIN="gcc4.7"
DEFCONFIGNAME=tuna_defconfig
WORKINGDIR=$SAUCE/tuna-marshmallow
WORKINGOUTDIR=$WORKINGDIR-bin
. `dirname $0`/compile-tuna.sh

Hey together!
We started preparing a common 3.0 omap4 kernel.
I have started applying some small stuff to our current kernel (also reverts some previous commits) which needs testing.
The kernel should work on all L, M and N Roms. Please let me know if you face any new issues.

Android-Andi said:
Hey together!
We started preparing a common 3.0 omap4 kernel.
I have started applying some small stuff to our current kernel (also reverts some previous commits) which needs testing.
Click to expand...
Click to collapse
Thanks for your hard work. I flashed your kernel onto DU 11.5 (Android 7.12). It boots fine and I'm writing this post with this configuration. I will test it during the next days. First difference: Nightlight now works...

Android-Andi said:
Want to support development? You can consider donating, we've spent countless of hours with this
Click to expand...
Click to collapse
@Android-Andi @Ziyan Thank you for your work! I have donated $10 and I hope others will join me to support our developers

Android-Andi said:
Please let me know if you face any new issues.
Click to expand...
Click to collapse
It's running very well but I'm getting battery drain cause of missing deep-sleep-cycles.

@guest4711 maguro?

On toro or toroplus issues i need a dmesg always because i own a maguro only.

Android-Andi said:
@guest4711 maguro?
Click to expand...
Click to collapse
Yes, good old maguro (with baseband I9250XXLJ1, see #3).

@guest4711 attached kernel reverts "cpufreq: interactive: sync with p-android-omap-3.0-dev", let's see if this fixes your issue.

double, ignore

Android-Andi said:
@guest4711 attached kernel reverts "cpufreq: interactive: sync with p-android-omap-3.0-dev", let's see if this fixes your issue.
Click to expand...
Click to collapse
Ok, I'll test it. Simple dirty flashing without any wiping?

guest4711 said:
Ok, I'll test it. Simple dirty flashing without any wiping?
Click to expand...
Click to collapse
Yeah if it's not that i have another idea. My maguro was almost empty, only could quick test wifi, camera, audio yesterday. Charging it now and going to work on it later again.

Android-Andi said:
Yeah if it's not that i have another idea. My maguro was almost empty, only could quick test wifi, camera, audio yesterday. Charging it now and going to work on it later again.
Click to expand...
Click to collapse
Ok. Quick tries to enter deep sleeping show "some devices failed to suspend" in dmesg, see attached log.

guest4711 said:
Ok. Quick tries to enter deep sleeping show "some devices failed to suspend" in dmesg, see attached log.
Click to expand...
Click to collapse
Would it help to log the same with "DU kernel" and post it here? Or do you need other logs too?

guest4711 said:
Would it help to log the same with "DU kernel" and post it here? Or do you need other logs too?
Click to expand...
Click to collapse
One more to test.

Android-Andi said:
One more to test.
Click to expand...
Click to collapse
Keep quite, please - the cpus are sleeping...

One more attached. Almost spend the whole day with it.
Have fun with it!

Android-Andi said:
One more attached. Almost spend the whole day with it.
Have fun with it!
Click to expand...
Click to collapse
Thank you. Installed and running, but need a while for testing it.
Have a nice weekend!

Another one, adds a bunch of zram changes (not enabled - shouldn't hurt) and core parts from galaxy tab2 (shouldn't hurt tuna, but we need to test).

Related

[REF] Samsung's patches to Android's Linux kernel

Hi all,
I've created a patchset which contains all diffs between:
- kernel/common from current AOSP Git branch android-2.6.29
- GalaxyS/linux-2.6.29 from GT-i9000_OpenSource.zip/GalaxyS_Kernel.tar.gz, dated July 12, 2010, latest publicly available AFAIK.
For a complete HOWTO, see bottom of this post.
This can be very useful, as it shows exactly what Samsung changed or added, including some very helpful comments.
I'm sure this will reveal a boatload of interesting info, I will report here what I've found so far as fast as I can, please join in the fray!
(Note: I've found it very nice to use Midnight Commander under Linux: it allows you to browse patches as if they were files on a virtual filesystem (patchfs).)
Good Luck!
The patch files:
Samsung's GT-I9000 patches to Android's Linux kernel version 2.6.29 for Eclair.
Zip containing single patch file: link
Zip containing patches split into individual files: link
Hopefully all info that comes out of this can soon be Wikified.
UPDATE:
Supercurio has pointed out what appears to be the reference Samsung Git repository at git.kernel.org: link.
TMC_Sherpa has been working on a very interesting project here on XDA, comparing sources for different SGS models: link
Thanks for the information!
Here come the updates:
Samsung appear to have borrowed quite a bit of code from Simtec Electronics (an embedded systems supplier) and even from the OpenMoko project
They also used a (possibly customized) external tree from the Video4Linux project. I'll try to merge that into my tree, find the exact point in history for their merge. This will reduce the patch size somewhat.
A selection of files that may be of interest:
# Default kernel configs. There are quite a few board revisions out there, kernel hackers and ROM chefs, please take note!
# The .config used in default build is aries_rev03_defconfig with a custom initramfs, so you need to point CONFIG_INITRAMFS_SOURCE to the place where you store yours.
GalaxyS/linux-2.6.29/arch/arm/configs/aries_*
GalaxyS/linux-2.6.29/arch/arm/configs/jupiter_*
# Hardware setup and GPIO configuration (including GPS). Yay!
GalaxyS/linux-2.6.29/arch/arm/mach-s5pc110/include/mach/gpio-core.h
GalaxyS/linux-2.6.29/arch/arm/mach-s5pc110/include/mach/gpio.h
GalaxyS/linux-2.6.29/arch/arm/mach-s5pc110/include/mach/gpio-jupiter.h
GalaxyS/linux-2.6.29/arch/arm/mach-s5pc110/include/mach/gpio-p1p2.h
GalaxyS/linux-2.6.29/arch/arm/mach-s5pc110/mach-jupiter-gps.c
GalaxyS/linux-2.6.29/arch/arm/mach-s5pc110/mach-jupiter.c
GalaxyS/linux-2.6.29/arch/arm/mach-s5pc110/jupiter-rfkill.c
# Device memory maps
GalaxyS/linux-2.6.29/arch/arm/mach-s5pc110/include/mach/map.h
GalaxyS/linux-2.6.29/arch/arm/mach-s5pc110/include/mach/memory.h
# Definitions used with the param.lfs file system, including the kernel boot commandline.
GalaxyS/linux-2.6.29/arch/arm/mach-s5pc110/include/mach/param.h
# Jack and device detection driver
GalaxyS/linux-2.6.29/arch/arm/mach-s5pc110/sec_jack.c
GalaxyS/linux-2.6.29/arch/arm/mach-s5pc110/include/mach/sec_jack.h
# Some interesting customizations...
GalaxyS/linux-2.6.29/drivers/cpufreq
GalaxyS/linux-2.6.29/kernel/power/main.c
# Another 'TRS' headset jack detector driver. Is this actually used?
GalaxyS/linux-2.6.29/drivers/input/trs_connector.c
# Quantum, Melfas, S3C (dev board?) touchscreen drivers and firmware blobs, new flip touch driver
GalaxyS/linux-2.6.29/drivers/input/touchscreen
# S3C, Melfas, Cypress touch keypad drivers and firmware blobs
GalaxyS/linux-2.6.29/drivers/input/keyboard
# Camera driver
GalaxyS/linux-2.6.29/drivers/media/video/samsung/fimc
# (HW accelerated?) JPEG driver
GalaxyS/linux-2.6.29/drivers/media/video/samsung/jpeg_v2
# (HW accelerated) AV codecs, with 'firmwares' (the only binary blobs (wrapped in byte arrays) I've been able to find in this kernel. Not bad, Samsung!)
GalaxyS/linux-2.6.29/drivers/media/video/samsung/mfc40
GalaxyS/linux-2.6.29/drivers/media/video/samsung/mfc50
# Image rotator driver
GalaxyS/linux-2.6.29/drivers/media/video/samsung/rotator
# Transport Stream Interface (for digital TV?)
GalaxyS/linux-2.6.29/drivers/media/video/samsung/tsi
# TV-out driver
GalaxyS/linux-2.6.29/drivers/media/video/samsung/tv20_ap
# More weird tweaks, completely reworked resume behaviour...
GalaxyS/linux-2.6.29/drivers/mmc
# Added battery measurement driver for S5PC110
GalaxyS/linux-2.6.29/kernel/drivers/power
# Added Maxim 8698 and 8998 voltage regulator drivers
GalaxyS/linux-2.6.29/drivers/regulator/
# Added accelerometer, compass and proximity sensor drivers
GalaxyS/linux-2.6.29/drivers/sensor
# Added serial port (UART) driver for Samsung SoCs
GalaxyS/linux-2.6.29/drivers/serial
# Android and Samsung have different ideas about this...
GalaxyS/linux-2.6.29/drivers/staging/android/lowmemorykiller.c
# Added Flash drivers: TinyFSR, Flex-OneNAND and LinuStoreIII
# This could be interesting to study in relation to RFS I/O bottleneck woes.
GalaxyS/linux-2.6.29/drivers/tfsr
# Samsung custom USB setup, includes VendorIDs and ProductIDs.
GalaxyS/linux-2.6.29/drivers/usb/gadget
# USB OTG driver. Does this actually work on the SGS?
GalaxyS/linux-2.6.29/drivers/usb/host
# Samsung LCD panel drivers (probably not interesting for SGS) but there is the mDNIe driver in there somewhere... Nice!
GalaxyS/linux-2.6.29/drivers/video/samsung
# SGS I9000 boot logos. These are among the things that make the patch so large.
GalaxyS/linux-2.6.29/drivers/video/samsung/logo_rgb24_wvga_landscape.h
# This one is disabled entirely...
GalaxyS/linux-2.6.29/drivers/video/samsung/logo_rgb24_wvga_portrait.h
# Obviously, some kernel module needs do_sync() . Hmm... RFS maybe? Why?
GalaxyS/linux-2.6.29/fs/sync.c
# Customization to FAT FS, comment marked: /* 2009-06-25/ Kyo.oh/ workaround code for hiding /sdcard/sd/
# Lag fixers, ROM chefs: take note!
GalaxyS/linux-2.6.29/fs/fat/namei_vfat.c
# Changes to YAFFS2. Hmm... Why don't they actually use the YAFFS2 driver?
GalaxyS/linux-2.6.29/fs/yaffs2
# Maybe this can help with deciphering flash setup?
GalaxyS/linux-2.6.29/include/linux/fsr_if.h
# Kernel log via USB
GalaxyS/linux-2.6.29/kernel/printk.c
# GAForensic? What's that?
GalaxyS/linux-2.6.29/kernel/sched.c
# Small Samsung(/AOSP?) changes, experimental drivers for several Wolfson audio chips, including the WM8994. (This is what I am working on mainly ATM.)
GalaxyS/linux-2.6.29/sound
HOWTO create your own (Linux only for the moment, sorry ).
This assumes you have the following tools available on your system: (ba)sh, diff, file, filterdiff (from patchutils package), find, fromdos (from frotodos package) git (from any of the Git packages), grep, gzip, splitdiff (from patchutils package), tar, unzip, zip (optional), and a web browser ( ).
Code:
# Creating a patchset for Samsung's GT-I9000 changes
# to the Android kernel
# Change to Android build dir if needed
# cd android
# Download SGS kernel source
# % Browse to http://opensource.samsung.com/
# % Click on 'Mobile' in top menubar
# % Choose file to download
# % Accept license
# [While the download is churning away...]
# Create dir which will hold the AOSP kernel Git repositories
mkdir kernel
# Clone the AOSP common kernel tree, android-2.6.29 (Eclair) branch
git clone -b android-2.6.29 git://android.git.kernel.org/kernel/common.git kernel/common
# Unpack source zip and kernel
unzip GT-I9000_OpenSource.zip
tar vxzf GalaxyS_Kernel.tar.gz
# Some files in Samsung's source have MS-DOS style, Unix style, and
# even mixed MS-DOS/Unix style line endings. Convert these to Unix style.
# Be careful not to touch the module binaries in GalaxyS/modules
# (unless you don't mind recompiling them.)
# This may take a while...
find GalaxyS -type f | xargs -n 1 file | LANG=C grep 'terminators$' | \
while read LINE; do FILE=${LINE%%:*}; fromdos -p "$FILE"; done
# Create initial raw patchset
# This may take a while...
diff -uprN kernel/common GalaxyS/linux-2.6.29 > android-2.6.29_GT-I9000.patch-raw
# Clean up unneeded patches
filterdiff -x '*/.git*' -x '*/.mailmap' -x '*/Module.symvers' android-2.6.29_GT-I9000.patch-raw > android-2.6.29_GT-I9000.patch
# Split the patch into multiple files
mkdir android-2.6.29_GT-I9000_patches
cd android-2.6.29_GT-I9000_patches
# splitdiff uses the dirname of the patch as directory to store files(!)
# so symlink it in here temporarily.
ln -s ../android-2.6.29_GT-I9000.patch
splitdiff -a -d android-2.6.29_GT-I9000.patch
rm android-2.6.29_GT-I9000.patch
cd ..
# Gzip the patch
gzip android-2.6.29_GT-I9000.patch
# Tar up the patchset
tar cvzf android-2.6.29_GT-I9000_patches.tar.gz android-2.6.29_GT-I9000_patches/
# Optionally, zip it up.
# zip android-2.6.29_GT-I9000_patches.zip android-2.6.29_GT-I9000_patches/*
# Done!
EDIT: Added TRS connector detection driver, touchscreen and touch keypad drivers
I would have thought this has been done already. xD
Extremely helpful and insightful, thanks mate =)
Stefanauss said:
I would have thought this has been done already. xD
Extremely helpful and insightful, thanks mate =)
Click to expand...
Click to collapse
Of course I searched, but couldn't find anyone who has done this and actually published the findings, that's why this thread exists
Bump, updates and cleanup.
Great stuff! bumping this thread so more developers can see it
Stickied. Thanks for the efforts miki, the mods agreed that it looks great just the way it is, and we appreciate that you're keeping it updated.
tv-out drivers, now we only need a adapter
micro usb->hdmi cables are only a few dollar
KeesKaas said:
tv-out drivers, now we only need a adapter
micro usb->hdmi cables are only a few dollar
Click to expand...
Click to collapse
The tv-out is for the headset jack. Although I'm sure it would be possible to modify the code, if it doesn't already work.
sirphunkee said:
Stickied. Thanks for the efforts miki, the mods agreed that it looks great just the way it is, and we appreciate that you're keeping it updated.
Click to expand...
Click to collapse
Thanks! I'll do my best to update it. I hope the kernel hackers and ROM chefs out there have good use for it.
I'm sorry,but if this meaning that possible to port an official AOSP 2.6.34/35 kernel to SGS just for AOSP build or CM6?
zygame said:
I'm sorry,but if this meaning that possible to port an official AOSP 2.6.34/35 kernel to SGS just for AOSP build or CM6?
Click to expand...
Click to collapse
Sure! But I think you will need quite a lot of experience with doing complicated Git rebase merges. The difference in kernel versions is quite big (you did bring your seven mile boots did you?) but nothing is impossible, ask Linus
I find Samsung's changes quite clean (not too many arbitrary tweaks scattered all over the place), so it is doable. I've seen many miracles worked by the XDA people, so I would say: go for it!
Another fly in the ointment is the drivers/media/video stuff, which comes from a snapshot of the Video4Linux project. I'll see if I can find a nice point in (Git repo) history to stick that onto the AOSP tree (or separate out Samsung's patches to that entirely) and redo the patchset.
Update: added battery measurement driver, Maxim voltage regulator drivers.
Update: added sensors: accelerometer, compass and proximity sensor.
Update: added Flash drivers: TinyFSR, Flex-OneNAND and LinuStoreIII.
Update: added USB Gadget driver.
Update: added display panel (including mDNIe) drivers.
Update: add FAT FS (hide /sdcard/sd) mod.
This looks like a beginning of something BIG
miki4242 said:
Sure! But I think you will need quite a lot of experience with doing complicated Git rebase merges. The difference in kernel versions is quite big (you did bring your seven mile boots did you?) but nothing is impossible, ask Linus
I find Samsung's changes quite clean (not too many arbitrary tweaks scattered all over the place), so it is doable. I've seen many miracles worked by the XDA people, so I would say: go for it!
Another fly in the ointment is the drivers/media/video stuff, which comes from a snapshot of the Video4Linux project. I'll see if I can find a nice point in (Git repo) history to stick that onto the AOSP tree (or separate out Samsung's patches to that entirely) and redo the patchset.
Click to expand...
Click to collapse
If we have the kernel running with samsung patches it should be not that much work to get a rom running. But we really should keep contact with the cm guys or the work will be done twice...
Phlogiston said:
If we have the kernel running with samsung patches it should be not that much work to get a rom running. But we really should keep contact with the cm guys or the work will be done twice...
Click to expand...
Click to collapse
Agreed!
There is some interesting stuff here:
http://github.com/wesgarner/android_device_samsung_vibrant forked from:
http://github.com/CyanogenMod/android_device_samsung_vibrant
Anyone tried to let run cm on top of the stock .29 kernel? Any reason this would totally fail?
PS: Maybe we should create a new thread about kernel hacking for cm here? Who would jump in?
miki4242 said:
Agreed!
Click to expand...
Click to collapse
Agreed again!
zygame said:
if this meaning that possible to port an official AOSP 2.6.34/35 kernel to SGS just for AOSP build or CM6?
Click to expand...
Click to collapse
That's what I'm wondering - I've always thought that it really shouldn't be that difficult (conceptually speaking) to get AOSP running given that we have the source for Samsung's modifications.
I'm not experienced with Android or Linux development myself, but I hope someone can do it - would love to see AOSP running, because it would give me confidence that we don't need to rely on Samsung for future updates. There was some previous received wisdom that SGS ROMs had to come from Samsung because of "encrypted drivers", but as pointed out here, there's only two kernel modules that are even binary.
(The whole "encrypted drivers" thing never made sense to me.. it would be way against the GPL, and CPUs don't run encrypted code, so it would have to be decrypted before use anyway? I've always been confident that someone was confusing "precompiled drivers" with "encrypted drivers" because they weren't human-readable.)
It would be neat to compile linux-zen.git with these patches for a try (as zen now includes long due linux latency patches which might just fix some of the lag issues on the sgs - even with ext4/what-not)
I'm wondering if it would work however, it seems to me Samsung hacked up the kernel a lot and forgot proper locking, memory allocs. Changing most significant options in 2.6.29 = kernel panic on boot... like SLUB or preemptive kernel..
Battery current support?
Nice work there. I just wonder whether there is any manner to measure the current drawn at a specific moment from the battery (in other androids it is possible and there is even a widget for that).
This would allow us to optimize battery usage by identifying app increasing the consumption.
Just check here: http://forum.xda-developers.com/showthread.php?t=723217&page=8

CyanogenMod building quickstart

Took me some time to figure this out so I'm documenting it publicly.
Obviously you need a Linux system with a working build environment. A VM will do fine. It seems like the build scripts will prompt you when more things need installing.
So far it seems to be as simple as:
Code:
# First pick out a nice EMPTY directory to do this in!
repo init -u git://github.com/CyanogenMod/android.git -b jellybean
repo sync # Takes HOURS
. build/envsetup.sh && brunch samsung_i927
FYI, this process takes HOURS the first time. Expect to not have use of that computer for the better part of a day, or longer if it's a bit old.
It'll error because it expands to the wrong path (samsung_i927/samsung_i927, should be samsung/i927). Not sure what the story with that is, I just renamed the folders for now.
This nets you CM10. Where's CM10.1? Hell if I know. Still working on that. Substitute "cm-10.1" in place of "jellybean". It appears to be complete sources; I didn't see if it compiles or not because what I REALLY want is CM10.1. waiting to sync right now. Will let you know how well the build goes.
So, the official CM repository doesn't have 10.1 stuff for the Glide. You can manually check out the 4.1 stuff with git clone https://github.com/CyanogenMod/android_device_samsung_i927.git but it doesn't compile. I'm working on that right now... unless someone can get dman to release his 4.2 worktree.
Here's what I'm doing for CM10.1.
Same setup as above, but:
Before brunching:
Code:
cd device
git clone https://github.com/CyanogenMod/android_device_samsung_i927.git
mkdir samsung
mv android_device_samsung_i927 samsung/i927
I had to add a line to device/samsung/i927/BoardConfig.mk to get started:
Code:
TARGET_ARCH := arm
Apparently that's new in 4.2.
Then I pulled the kernel from here and compiled it using the kconfig pulled from my phone running dman's last build. Copied arch/arm/boot/zImage to out/target/product/i927/kernel back in the CM tree
Then:
Code:
cp kernel/arch/arm/boot/zImage cm/out/target/product/i927/kernel
mkdir cm/device/samsung/i927/prebuilt
cp kernel/drivers/net/wireless/bcmdhd/dhd.ko kernel/drivers/scsi/scsi_wait_scan.ko cm/device/samsung/i927/prebuilt
Then I "brunch i927" instead of samsung_i927. Now it's hung up on a driver that wasn't in the Kconfig... for a.... FM tuner? Odd. Awell, might as well give it what it wants!
So I started over because this is clearly newer and seems to have some important prebuilts already...
Still had to put TARGET_ARCH := arm in BoardConfig.mk but so far that's all I've had to do...
By the by, do "Breakfast i927" followed by "make -jX" (where X is twice the number of cores your build machine has) so it runs stuff in parallel and actually uses your whole CPU.

[Guide]How to Compile PAC Rom

Hey guys, so a lot of you have be eagerly anticipating the release of PAC-4.4. Others of you may be seeking pac for a device that is not supported at this moment. So I thought I would take this opportunity to write a guide on how to compile PAC.
In order to compile Android, I recommend that you use a Linux distro. For the purposes of this guide, I shall be using Ubuntu 13.10. It is pretty easy to set up, even as a dual boot with windows.
The first thing you need to do, once you have installed Ubuntu, is to set it up to be able to compile Android. There are a lot of guides that show you how to do this, and this guide has pretty clear instructions. Follow all of his directions until you reach the point where he tells you to initialize the repository (The command he has as an example there is repo init -u git://github.com/AOKP/platform_manifest.git -b jb-mr2. Do not run this command or you will have downloaded the AOKP sources instead of the PAC sources)
To download the pac sources, we need to initialize the repository first. For this guide, I will be downloading the pac source to ~/android/pac. Run:
Code:
mkdir -p ~/android/pac
cd ~/android/pac
repo init -u git://github.com/PAC-man/pacman.git -b pac-4.4
Now it is time to download the source itself. Keep in mind that the source is rather large (~10+ GB), so you might want to make yourself a cup of tea (or 10 cups if you have a crappy isp) while waiting. Run:
Code:
repo sync
Now, it is time to do the actually compiling. If your device is already supported by PAC, please skip directly to post 3. Else, go to post 2.
Adding Support for a device
To add support for your device, the first thing you need to do is to hunt down your device tree. If you are not sure where your device tree is located, google it or ask in your device's subforum. Now, it is time to add the files required to build.
From the root of directory where you have downloaded the pac source (~/android/pac), go to the vendor/pac directory. This is where we will be making the changes necessary to build for your device. Here are the files that need to be modified/added. Obviously, substitute your devices codename for CODENAME.
1. dependencies/CODENAME.dependencies
This file grabs your device and kernel tree. Look at the dependencies file of a device that is similar to yours to figure out what you need to place in here. A list of all the devices we support and their respective codenames can be found here. Again, if you are unsure about what to place here, you may want to ask for help in your devices subforum. Whenever possible, try to use the CM device tree. For the vendor files, keep the account name as "Pinky-Inky-and-Clyde" but change the repository to the appropriate OEM (check here for repos). Do not worry if the vendor files for your device are not in that repository. We will be adding them later.
Here is a sample CODENAME.dependencies file for a Samsung device (note that the account names are case sensitive):
Code:
[
{
"account": "Pinky-Inky-and-Clyde",
"repository": "proprietary_vendor_samsung",
"target_path": "vendor/samsung",
"revision": "cm-11.0"
},
{
"account": "CyanogenMod",
"repository": "android_device_samsung_CODENAME",
"target_path": "device/samsung/CODENAME",
"revision": "cm-11.0"
},
{
"account": "CyanogenMod",
"repository": "android_kernel_samsung_CODENAME",
"target_path": "kernel/samsung/CODENAME",
"revision": "master"
},
{
"account": "CyanogenMod",
"repository": "android_hardware_samsung",
"target_path": "hardware/samsung",
"revision": "cm-11.0"
}
]
Once you have done this, go to the root of your pac source (~/android/pac for this guide), and run
Code:
./vendor/pac/tools/getdependencies.py CODENAME
This will attempt to create the file .repo/local_manifests/roomservice.xml and then sync up the sources. If you have to make changes to your dependencies, please remove the roomservice.xml file and re-run the script again to ensure that no incorrect repositories are left lingering.
Go to the vendor files directory (~/android/pac/vendor/YOUR_OEM), and search for the vendor files of your device. If they are not there, you will have to search for them online and copy them into the folder.
Alternatively, if your device has an extract-files.sh script, in the device tree (located in device/OEM/CODENAME), you can hook up your device via usb and run that command to grab the vendor files directly from your device. In this case, connect your device and run:
Code:
cd device/OEM/CODENAME
./extract-files.sh
2. products/pac_CODENAME.mk
Again, look at the same file for a device that is similar to yours and make the appropriate changes for your device.
Here is a sample pac_CODENAME.mk file for a hdpi device:
Code:
# Check for target product
ifeq (pac_CODENAME,$(TARGET_PRODUCT))
# OVERLAY_TARGET adds overlay asset source
OVERLAY_TARGET := pa_hdpi
# PAC device overlay
PRODUCT_PACKAGE_OVERLAYS += vendor/pac/overlay/pac/hdpi_480x800
# PAC boot logo
PRODUCT_COPY_FILES += \
vendor/pac/prebuilt/common/bootlogo/pac_logo_480x800.rle:root/logo.rle
# Copy bootanimation
PRODUCT_COPY_FILES += \
vendor/pac/prebuilt/480x800/bootanimation.zip:system/media/bootanimation.zip
# include PAC common configuration
include vendor/pac/config/pac_common.mk
# Inherit CM device configuration
$(call inherit-product, device/samsung/CODENAME/cm.mk)
PRODUCT_NAME := pac_CODENAME
endif
Note: for the PAC device overlay, look inside vendor/pac/overlay/pac for the available overlays. Likewise, for the bootanimation and boot logo, look in their respective directories for the available sizes.
3. vendorsetup.sh
Add a line that looks something like this in the appropriate area of this file (under the appropriate OEM, and in alphabetical order, please).
Code:
add_lunch_combo pac_CODENAME-userbebug
--- The below files are not necessary for successful compilation, but are required if you submit your device for official PAC support. ---
4. Contributors
5. Nightly.xml
6. XDAThreads
7. devices-breakdown.xml
For these files, follow the format of the other devices.
Building PAC
Now that we got all of the housekeeping out of the way, it is time to build the rom!
Open up a terminal and change directory to the base of where you downloaded the PAC source to begin compiling. Run (substitute your device's codename for CODENAME):
Code:
./build-pac.sh CODENAME
There are some additional options available in the build script. To see them all, simply run:
Code:
./build-pac.sh
If everything goes well, your build should be starting. Go take a walk or something while it is building. This may take a while if you have a computer with weak specs.
Submitting your device for official support
Once you have successfully built PAC for your device and tested it, you can submit your changes to our gerrit for official support and automatic nightly builds.
In order to do this, you need to first sign up on our gerrit and get your ssh keys set up. So head on over to http://review.pac-rom.com/ to register for an account. Next, we need to generate an ssh key pair in order to push changes to gerrit. To check if you already have a key pair generated, run
Code:
ls ~/.ssh
If it shows a id_rsa.pub, you already have your keys generated and you can skip to the adding your ssh key to gerrit part.
On the other hand, if there is nothing in your .ssh folder, run
Code:
ssh-keygen -t rsa -C "[email protected]"
When you run this command, it will ask you where you want to save this file. Just hit enter. Next, it will ask you for a passphrase for your private key. Enter a passphrase here that you can remember.
Now, it is time to add your public key to our gerrit. To copy your public key over, run:
Code:
sudo apt-get install xclip
xclip -sel clip < ~/.ssh/id_rsa.pub
(Alternatively, you can cat the file and just copy it, but the above mentioned way avoids any missing characters while copying.)
Now, login to our gerrit and go to your account settings > ssh public keys. Click on add, and paste the key and save.
It is time to upload your changes. We have a script to make this process easier. To grab the script, run:
Code:
cd ~/bin
wget http://pac-rom.com/downloads/pac-review
chmod a+x pac-review
Now, run:
Code:
cd ~/android/pac
cd vendor/pac
git add -A
git commit
This should open up a text editor (probably nano) where you can put a commit message. For our purposes, just write something along the lines of "Add support for ___." To save the file, hit Ctrl + o. To exit, hit Ctrl + x. Then, run:
Code:
pac-review -p
Follow the prompts and your changes should be automatically pushed and a link will show to your change on gerrit.
If you realize that you made a mistake in your commit, DO NOT submit a new change. Instead, make your changes, then run:
Code:
git add -A
git commit --amend
Update your commit message if necessary and then push with the pac-review script. This will create a new patchset on our gerrit instead of creating a new commit.
And that is all! If you have any questions, dont hesitate to ask them here. Ill try to get back to you as soon as possible
Hey iurnait, I didn't find any instructions on pac's github on how to clone the entire trees. Please help.
Ateekujjawal said:
Hey iurnait, I didn't find any instructions on pac's github on how to clone the entire trees. Please help.
Click to expand...
Click to collapse
cd into the directory where you are working, and then run
Code:
repo init -u git://github.com/PAC-man/pacman.git -b pac-4.4
then run
Code:
repo sync
iurnait said:
cd into the directory where you are working, and then run
Code:
repo init -u git://github.com/PAC-man/pacman.git -b pac-4.4
then run
Code:
repo sync
Click to expand...
Click to collapse
By doing this, will I get all the packages_apps_settings,frameworks_av etc.
Ateekujjawal said:
By doing this, will I get all the packages_apps_settings,frameworks_av etc.
Click to expand...
Click to collapse
this will grab everything needed to compile
How can I use linaro toolchain to compile pacman and where to download it.
Simplest Method you found here:
http://forum.xda-developers.com/showthread.php?t=2644910
You need only one a Machine with a Ubuntu ready,
Is this method also usable for the LG P990 (Optimus 2x) ?
If so, any special things I should look out for with this old device?
Sent from my LG P990 running CM11 (thnx tonyp) via xda-developers app
DavidLouwers said:
Is this method also usable for the LG P990 (Optimus 2x) ?
If so, any special things I should look out for with this old device?
Sent from my LG P990 running CM11 (thnx tonyp) via xda-developers app
Click to expand...
Click to collapse
If you can find your device here: https://github.com/PAC-man/android_vendor_pac/blob/pac-4.4/devices-breakdown.xml
it will work
@DavidLouwers
talk with tonyp and penguin77 if the device repos work PAC 4.4
You can only one use the Kernel/Device/Vendor Tree... (if you planned to run as nightly in jenkins) If tonyp use for her [email protected] other modified repos was normally is in PAC or Cyanogenmod... it can build but you must modifing default.xml in .repo/manifests. But then you can not add to nighlys...
if you want help, ask me, i had this device before and maintained PAC for p990
MetaIIica said:
@DavidLouwers
talk with tonyp and penguin77 if the device repos work PAC 4.4
You can only one use the Kernel/Device/Vendor Tree... (if you planned to run as nightly in jenkins) If tonyp use for her [email protected] other modified repos was normally is in PAC or Cyanogenmod... it can build but you must modifing default.xml in .repo/manifests. But then you can not add to nighlys...
if you want help, ask me, i had this device before and maintained PAC for p990
Click to expand...
Click to collapse
Thanks, I will! I will do everything in my power to make PAC ROM available for my phone! I used to have your PAC 4.3 ROM, which I loved, and that's the reason I really want a KitKat PAC ROM, because KitKat is optimised for phones with low memory, so it'd be awesome to have PAC 4.4 for the old P990.
I shall try to gather the penguins and port PAC to P990!
Langes said:
If you can find your device here: github site, can't post it because I'm a new member :/
it will work
Click to expand...
Click to collapse
Sadly enough, P990 isn't on it, but with the help of Metallica and the penguins, maybe we'll be able to make PAC available for the P990 anyway!
Ateekujjawal said:
How can I use linaro toolchain to compile pacman and where to download it.
Click to expand...
Click to collapse
http://forum.xda-developers.com/showthread.php?t=2348366
For now, there is only cm11 available for the note 3.
Does this matter?
If not, I can try to make it
Gesendet von meinem SM-N9005 mit Tapatalk
Thumper_ said:
For now, there is only cm11 available for the note 3.
Does this matter?
If not, I can try to make it
Gesendet von meinem SM-N9005 mit Tapatalk
Click to expand...
Click to collapse
If there is a working cm 11 tree available, have a look at the second post on how to add PAC support. It shouldnt be too difficult considering you already have cm11
Sent from my Nexus 7 using Tapatalk
Thumper_ said:
For now, there is only cm11 available for the note 3.
Does this matter?
If not, I can try to make it
Gesendet von meinem SM-N9005 mit Tapatalk
Click to expand...
Click to collapse
Would be great if you built it and shared the build..not much available for the note 3 yet
Sent from my SM-N900P using Tapatalk
nelsonator1982 said:
Would be great if you built it and shared the build..not much available for the note 3 yet
Sent from my SM-N900P using Tapatalk
Click to expand...
Click to collapse
Just downloading the repo
Let's see what I can do.
Gesendet von meinem SM-N9005 mit Tapatalk
Can't get it
where should I place the pac_CODENAME.mk ?
Then the dependencies?
Suppose, I am building for c1905, then the dependencies must be in /device/sony/c1905/c1905.dependencies?
Then
Is this pac_c1905.mk okay?
Code:
# Check for target product
ifeq (pac_c1905,$(TARGET_PRODUCT))
# OVERLAY_TARGET adds overlay asset source
OVERLAY_TARGET := pa_hdpi
# PAC device overlay
PRODUCT_PACKAGE_OVERLAYS += vendor/pac/overlay/pac/hdpi_480x854
# PAC boot logo
PRODUCT_COPY_FILES += \
vendor/pac/prebuilt/common/bootlogo/pac_logo_480x854.rle:root/logo.rle
# Copy bootanimation
PRODUCT_COPY_FILES += \
vendor/pac/prebuilt/480x854/bootanimation.zip:system/media/bootanimation.zip
# include PAC common configuration
include vendor/pac/config/pac_common.mk
# Inherit CM device configuration
$(call inherit-product, device/sony/c1905/cm.mk)
PRODUCT_NAME := pac_c1905
endif
Help Me out. I am trying to build for Xperia M.

[Q] How to build CM10.2.1 from scratch?

Hi all.
I'd like to build CM10.2.1 from scratch with a few extras like up to date OpenSSH/OpenSSL.
The problem I have no idea whether this is (still) possible and where to start from.
I can see a number of tutorials on how to do it for CM11 or CM12. But there seems to be none for CM10.2.1.
Useless to say, I need CM10.2.1.
Is there any hint on how to?
Uqbar said:
Hi all.
I'd like to build CM10.2.1 from scratch with a few extras like up to date OpenSSH/OpenSSL.
The problem I have no idea whether this is (still) possible and where to start from.
I can see a number of tutorials on how to do it for CM11 or CM12. But there seems to be none for CM10.2.1.
Useless to say, I need CM10.2.1.
Is there any hint on how to?
Click to expand...
Click to collapse
Was there a release by CM of 10.2.1 ? I don't remember.. the earlier or first builds of CM (far as I remember) were from cm11...
MidnightDevil said:
Was there a release by CM of 10.2.1 ? I don't remember.. the earlier or first builds of CM (far as I remember) were from cm11...
Click to expand...
Click to collapse
http://download.cyanogenmod.org/?device=flo&type=stable
Uqbar said:
http://download.cyanogenmod.org/?device=flo&type=stable
Click to expand...
Click to collapse
You're right, I never ran across those. Our n7 came natively with Android 4.3, which would be CM10.3 from my understanding. Are you able to find a manifest for that version? I'm guessing if there have it there, the source code should be somewhere too. Have you tried looking at manifests to see what's the branch name for the code version you're looking for?
MidnightDevil said:
You're right
Click to expand...
Click to collapse
I knew.
MidnightDevil said:
Are you able to find a manifest for that version?
Click to expand...
Click to collapse
If I knew where to find a manifest file I was already half way.
MidnightDevil said:
I'm guessing if there have it there, the source code should be somewhere too.
Click to expand...
Click to collapse
"There" is the whole internet for me. Unless there is some more detailed hint.
MidnightDevil said:
Have you tried looking at manifests to see what's the branch name for the code version you're looking for?
Click to expand...
Click to collapse
Google allows me to find a lot of things. I only would like to get directions for the whole process, not single bits of information.
I mean, here I have directions for CM11 on Nexus 4. But the manifest is just "copy past these lines there", no explanation, no details. just "do it!". But I need to customize the process and the data for flo!
Uqbar said:
I knew.
If I knew where to find a manifest file I was already half way.
Click to expand...
Click to collapse
The manifests and readme files for each release are available on CM's github at https://github.com/CyanogenMod/android - just change the branch in the dropdown to the one you require (so the ones you're looking for would be at https://github.com/CyanogenMod/android/tree/cm-10.2 ).
Then you're probably fine following any instructions you've got on how to build for this device (e.g. CM's own guide at http://wiki.cyanogenmod.org/w/Build_for_flo), changing any branch references (from cm-11.0 to cm-10.2) as appropriate; for example to initialize the repo you'd use
Code:
$ repo init -u git://github.com/CyanogenMod/android.git -b cm-10.2
I'd suggest trying to build stock CM10.2 for flo from those instructions first, then once you've resolved any errors that crop up and got it building you can look at adding/amending the bits you want.
hopscotchjunkie said:
The manifests and readme files for each release are available on CM's github at https://github.com/CyanogenMod/android - just change the branch in the dropdown to the one you require (so the ones you're looking for would be at https://github.com/CyanogenMod/android/tree/cm-10.2 ).
Then you're probably fine following any instructions you've got on how to build for this device (e.g. CM's own guide at http://wiki.cyanogenmod.org/w/Build_for_flo), changing any branch references (from cm-11.0 to cm-10.2) as appropriate; for example to initialize the repo you'd use
Code:
$ repo init -u git://github.com/CyanogenMod/android.git -b cm-10.2
I'd suggest trying to build stock CM10.2 for flo from those instructions first, then once you've resolved any errors that crop up and got it building you can look at adding/amending the bits you want.
Click to expand...
Click to collapse
Thanks for the hints. In the meanwhile I have found the CM wiki and am studying it.
I'd need to know whether with these directions I will be able to update (for example) the OpenSSH/OpenSSL packages. I can also manually adapt everything (I am not a real newbie) but I'd like to know it in advance.
Thanks again for the infos.
UPDATE! I started following directions from the CM wiki. During the "repo sync" for CM 10.2 I have got stuck because of a DMCA takedown. This is the repo (android_external_svox) and this is the notice. The GitHub is asking me for a password I obviously don't know.
So basically I need to skip that. But don't know how to. Any extra hint?
Code:
...
Fetching project CyanogenMod/android_packages_apps_SpeechRecorder
Fetching projects: 99% (393/396)
Password for 'https://github.com':
remote: Repository unavailable due to DMCA takedown.
remote: See the takedown notice for more details:
remote: https://github.com/github/dmca/blob/master/2014-12-22-Cambridge-Mobile.md.
fatal: Authentication failed for 'https://github.com/CyanogenMod/android_external_svox/'
New update
I managed to get past the error even if I don't know whether that package (svox) will block my build.
The wiki says to:
Code:
cd ~/android/system/vendor/cm
./get-prebuilts
Unluckily for me neither that directory exists, not the script itself (get-prebuilts) exists.
I used "find" to case insensitively look for it within the ~/android/system tree. No way.
3rd update
Uqbar said:
I managed to get past the error even if I don't know whether that package (svox) will block my build.
The wiki says to:
Code:
cd ~/android/system/vendor/cm
./get-prebuilts
Unluckily for me neither that directory exists, not the script itself (get-prebuilts) exists.
I used "find" to case insensitively look for it within the ~/android/system tree. No way.
Click to expand...
Click to collapse
After having just skipped the above steps, I've (of course!) got this:
Code:
...
Repository synced!
Looking for dependencies
Adding dependencies to manifest
Adding dependency: CyanogenMod/android_kernel_google_msm -> kernel/google/msm
Using default branch for android_kernel_google_msm
Syncing dependencies
Fetching project CyanogenMod/android_kernel_google_msm
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
curl: (22) The requested URL returned error: 404 Not Found
Server does not provide clone.bundle; ignoring.
remote: Counting objects: 2496694, done.
remote: Compressing objects: 100% (406478/406478), done.
remote: Total 2496694 (delta 2065580), reused 2496690 (delta 2065578)
Receiving objects: 100% (2496694/2496694), 614.32 MiB | 1.67 MiB/s, done.
Resolving deltas: 100% (2065580/2065580), done.
From https://github.com/CyanogenMod/android_kernel_google_msm
* [new branch] cm-10.2 -> github/cm-10.2
* [new tag] cm-10.2-M1 -> cm-10.2-M1
* [new tag] cm-10.2.0 -> cm-10.2.0
* [new tag] cm-10.2.1 -> cm-10.2.1
Fetching projects: 100% (1/1), done.
Checking out files: 100% (41694/41694), done.
Done
build/core/product_config.mk:238: *** _nic.PRODUCTS.[[device/asus/flo/cm.mk]]: "frameworks/native/build/tablet-7in-xhdpi-2048-dalvik-heap.mk" does not exist. Stop.
** Don't have a product spec for: 'cm_flo'
** Do you have the right repo manifest?
Thus I am stuck untill I get the "get-prebuilts" script run. :crying:
Waiting for either some google result of mine or some merciful help from this community.

Troubleshooting kernel build ...

The device is currently running stock MMB29P release. My stock (unmodified) kernel boot.img builds fine using the AOSP build system, but the thing won't boot when flashed to the device... just hangs at the Google startup screen. Can anyone help me figure out where this build is going wrong? Won't boot even with TARGET_PREBUILT_KERNEL unset (using the default google prebuilt kernel).
These are my build steps. kernel/msm package is checked out to commit f97f123 (MMB29P release)
cd kernel/msm
export ARCH=arm64
export SUBARCH=arm64
export CROSS_COMPILE=prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/aarch64-linux-android-
make clean
make bullhead_defconfig
make -j8
cd ../..
source build/envsetup.sh
lunch aosp_bullhead-userdebug
export ANDROID_JACK_VM_ARGS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx3500m"
export TARGET_PREBUILT_KERNEL=kernel/msm/arch/arm64/boot/Image.gz-dtb
make clean
make -j8 bootimage
Got it to work by checking out the repo branch android-6.0.1_r8 (I was on master before). Any suggestions on how to get this to work on the master branch?
Shouldn't have to do all those steps in the kernel directory. Everything should be in your device make files i.e. BoardConfig... But since you did try this http://pastebin.com/Yrd5ZS4Y
Sent from my Nexus 6 using Tapatalk
Master branch doesn't have anysource AFAIK, just a place holder for the repo
A few of the tags, as well as the android-3.10-bullhead-marshmallow-dr0 /dr1/mr1-release have the source
Sent from my Nexus 5X using Tapatalk

Categories

Resources