[GT-P6210][KERNEL][UV/OC]garyd9's GT-P6210 kernel (updated 2012-01-23)

Search This thread

garyd9

Inactive Recognized Developer
Sep 13, 2006
2,643
2,732
53
Pittsburgh, PA
My experience is that Samsung specifically uses the CodeSourcery 2009q3-68 toolchain. The docs for Infuse and Galaxy S II kernels reference this, I believe so did the Honeycomb kernels for the Tab 10.1. I would not be surprised if they used the same toolchain here.
Aren't those 4.4.1? For some reason, they want a version of the toolchain not available via codesourcery for the tab plus. It's available with the android ndk and cyanogenmod, so not a big deal...
 

chip.hughes

Senior Member
Nov 29, 2008
202
27
Ripley
Gary,
I have spent many fruitless hours trying to find anything on the Galaxy SII that relates to the above mentioned toolchain and instructions. Lastnight I followed these instructions from this site:http://wiki.cyanogenmod.com/wiki/Building_Kernel_from_source#Download_Kernel_Source_Code
resulting in this final command: export CCOMPILER=${HOME}/android/system/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-

...but this is 4.4.0 and not 4.4.3

I must be missing something simple, looking right at it and not seeing it. Could you give me a little nudge?

Chip
 

garyd9

Inactive Recognized Developer
Sep 13, 2006
2,643
2,732
53
Pittsburgh, PA
resulting in this final command: export CCOMPILER=${HOME}/android/system/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-

...but this is 4.4.0 and not 4.4.3

I must be missing something simple, looking right at it and not seeing it. Could you give me a little nudge?
After getting the repo (which you apparently have already done), look on your own hdd, in your home directory, in android/system/prebuilt/linux-x86/toolchain. You should see a directory for 4.4.3 in there as well as 4.4.0... That's the toolchain I currently use myself.
 

chip.hughes

Senior Member
Nov 29, 2008
202
27
Ripley
make menuconfig ARCH=arm

When I run this command I get a GUI in the terminal, not sure what to choose or just to accept the defaults. I attached a screen shot.

Chip
 

garyd9

Inactive Recognized Developer
Sep 13, 2006
2,643
2,732
53
Pittsburgh, PA
make menuconfig ARCH=arm

When I run this command I get a GUI in the terminal, not sure what to choose or just to accept the defaults. I attached a screen shot.
Need to run it with the defconfig parameters as well (see examples I gave several posts back.) The whole point of menuconfig is to let you turn on and off kernel features.... explore it some and you'll see what I mean.


Sent from my GT-N7000 using Tapatalk
 

chip.hughes

Senior Member
Nov 29, 2008
202
27
Ripley
I'm going to jump around a bit, as I really need to run out and get some stuff done today, but the kernel image will be located in arch/arm/boot and called "zImage"

I ran the ./build_p6210_kernel, I got the spam. Cannot find zImage.

Chip
 

garyd9

Inactive Recognized Developer
Sep 13, 2006
2,643
2,732
53
Pittsburgh, PA
I ran the ./build_p6210_kernel, I got the spam. Cannot find zImage.
Are you getting errors? When I run the same script, here are the last several lines generated:
Code:
  Kernel: arch/arm/boot/Image is ready
  LZMA    arch/arm/boot/compressed/piggy.lzma
  SHIPPED arch/arm/boot/compressed/lib1funcs.S
  AS      arch/arm/boot/compressed/lib1funcs.o
  AS      arch/arm/boot/compressed/piggy.lzma.o
  LD      arch/arm/boot/compressed/vmlinux
  OBJCOPY arch/arm/boot/zImage
/home/garyd9/GT-P6210/kernel/scripts/mk_fipsbinary.sh arch/arm/boot/zImage
Make kernel fips binary..
Done.
  Kernel: arch/arm/boot/zImage is ready
If you aren't seeing that, then you might be getting an error. Look at the spam/output and try to figure out what's going wrong.
 

chip.hughes

Senior Member
Nov 29, 2008
202
27
Ripley
Ran out of space on my Linux box, short sighted of me I know, but I had several gig available when I started this project. Machine resisted all efforts to expand partition, I don't think I left it enough room to even remove anything. Could not revert to snapshot because had to delete that in order to attempt the resize. Didn't want to abandon all the work I had already done. Oh, well started over with new machine, this one has a 40 GB drive. Installed all the prerequisites, except sun-java6-jdk, kept getting error, looked all over the net, added repositories, clean sources list, everything, finally tried openjdk. Opened terminal and:
mkdir -p ~/android/system
cd ~/android/system
repo init -u git://github.com/CyanogenMod/android.git -b gingerbread
repo sync -j8
It ran for HOURS. Again. Then failed: error: RPC failed; result=18, HTTP code = 200. No explanation, no recourse, nothing, just hours of data that didn't go anywhere. I searched the drive, found a folder, Android, not much in it.
Breaks my heart. Starting over.
Chip
 

chip.hughes

Senior Member
Nov 29, 2008
202
27
Ripley
Hi Gary! I got my machine back together again, using the toolchain from NDK since I had to install all the SDK stuff to make ADB work on this thing anyway. I edited the "build_p6210_kernel" file to look for the NDK toolchain instead of the cyanogen one. I stopped getting toolchain issues when I moved the folder to "root", now I'm getting errors dealing with the "initramfs". Could you glance over this output and see if something jumps out at you? I feel like I am really close this time.

chip@ubuntu:~$ su
Password:
root@ubuntu:/home/chip# cd
root@ubuntu:~# cd P6210
root@ubuntu:~/P6210# cd ls
bash: cd: ls: No such file or directory
root@ubuntu:~/P6210# ls
initramfs linux_kernel_GT6210
root@ubuntu:~/P6210# cd linux_kernel_GT6210
root@ubuntu:~/P6210/linux_kernel_GT6210# ./build_p6210_kernel
#
# configuration written to .config
#
scripts/kconfig/conf --silentoldconfig arch/arm/Kconfig
CHK include/linux/version.h
CHK include/generated/utsrelease.h
make[1]: `include/generated/mach-types.h' is up to date.
CALL scripts/checksyscalls.sh
CHK include/generated/compile.h
GEN usr/initramfs_data.cpio.lzma
CC arch/arm/vfp/vfpmodule.o
CC kernel/sched.o
AS arch/arm/vfp/entry.o
In file included from kernel/sched.c:80:
arch/arm/mach-s5pv310/include/mach/sec_debug.h: In function 'sec_debug_init':
arch/arm/mach-s5pv310/include/mach/sec_debug.h:26: warning: no return statement in function returning non-void
AS arch/arm/vfp/vfphw.o
CC arch/arm/vfp/vfpsingle.o
CC arch/arm/vfp/vfpdouble.o
/root/P6210/linux_kernel_GT6210/scripts/gen_initramfs_list.sh: line 297: lzma: command not found
make[1]: *** [usr/initramfs_data.cpio.lzma] Error 1
make: *** [usr] Error 2
make: *** Waiting for unfinished jobs....
CC kernel/fork.o
LD arch/arm/vfp/vfp.o
LD arch/arm/vfp/built-in.o
CC kernel/exec_domain.o
CC kernel/panic.o
CC kernel/printk.o
CC kernel/cpu.o
In file included from kernel/printk.c:44:
arch/arm/mach-s5pv310/include/mach/sec_debug.h: In function 'sec_debug_init':
arch/arm/mach-s5pv310/include/mach/sec_debug.h:26: warning: no return statement in function returning non-void
kernel/cpu.c: In function 'take_cpu_down':
kernel/cpu.c:200: warning: unused variable 'cpu'
CC kernel/exit.o
CC kernel/itimer.o
TIMEC kernel/timeconst.h
CC kernel/softirq.o
CC kernel/resource.o
CC kernel/sysctl.o
CC kernel/sysctl_binary.o
CC kernel/capability.o
CC kernel/ptrace.o
CC kernel/timer.o
CC kernel/user.o
CC kernel/signal.o
CC kernel/sys.o
CC kernel/kmod.o
CC kernel/workqueue.o
CC kernel/pid.o
CC kernel/rcupdate.o
CC kernel/extable.o
CC kernel/params.o
CC kernel/posix-timers.o
CC kernel/kthread.o
CC kernel/wait.o
CC kernel/kfifo.o
CC kernel/sys_ni.o
CC kernel/posix-cpu-timers.o
CC kernel/mutex.o
CC kernel/hrtimer.o
CC kernel/rwsem.o
CC kernel/nsproxy.o
CC kernel/srcu.o
CC kernel/semaphore.o
CC kernel/notifier.o
CC kernel/ksysfs.o
CC kernel/pm_qos_params.o
CC kernel/sched_clock.o
CC kernel/cred.o
CC kernel/async.o
CC kernel/range.o
CC kernel/groups.o
CC kernel/freezer.o
CC kernel/stacktrace.o
CC kernel/irq/handle.o
CC kernel/power/main.o
CC kernel/time/timekeeping.o
In file included from kernel/irq/handle.c:25:
arch/arm/mach-s5pv310/include/mach/sec_debug.h: In function 'sec_debug_init':
arch/arm/mach-s5pv310/include/mach/sec_debug.h:26: warning: no return statement in function returning non-void
CC kernel/irq/manage.o
CC kernel/power/console.o
CC kernel/irq/spurious.o
CC kernel/time/ntp.o
CC kernel/power/process.o
CC kernel/irq/resend.o
CC kernel/power/suspend.o
CC kernel/irq/chip.o
CC kernel/time/clocksource.o
CC kernel/power/nvs.o
CC kernel/power/wakelock.o
CC kernel/irq/devres.o
CC kernel/time/jiffies.o
CC kernel/time/timer_list.o
CC kernel/irq/autoprobe.o
CC kernel/power/userwakelock.o
CC kernel/irq/proc.o
CC kernel/time/timecompare.o
CC kernel/power/earlysuspend.o
CC kernel/irq/pm.o
CC kernel/time/timeconv.o
CC kernel/power/fbearlysuspend.o
LD kernel/irq/built-in.o
CC kernel/futex.o
CC kernel/time/clockevents.o
CC kernel/power/poweroff.o
LD kernel/power/built-in.o
CC kernel/rtmutex.o
CC kernel/time/tick-common.o
CC kernel/time/tick-broadcast.o
CC kernel/smp.o
CC kernel/time/tick-oneshot.o
CC kernel/spinlock.o
CC kernel/uid16.o
CC kernel/time/tick-sched.o
CC kernel/module.o
CC kernel/kallsyms.o
LD kernel/time/built-in.o
CC kernel/cgroup.o
CC kernel/cgroup_freezer.o
GZIP kernel/config_data.gz
CC kernel/res_counter.o
CC kernel/stop_machine.o
CC kernel/hung_task.o
CC kernel/watchdog.o
CC kernel/rcutree.o
CC kernel/utsname_sysctl.o
CC kernel/elfcore.o
CC kernel/sched_cpupri.o
CC kernel/time.o
IKCFG kernel/config_data.h
CC kernel/configs.o
LD kernel/built-in.o
cp: missing destination file operand after `kernel/usr/initramfs/lib/modules/'
Try `cp --help' for more information.
CHK include/linux/version.h
CHK include/generated/utsrelease.h
make[1]: `include/generated/mach-types.h' is up to date.
CALL scripts/checksyscalls.sh
CHK include/generated/compile.h
GEN usr/initramfs_data.cpio.lzma
CC mm/bootmem.o
CC fs/open.o
CC mm/filemap.o
/root/P6210/linux_kernel_GT6210/scripts/gen_initramfs_list.sh: line 297: lzma: command not found
make[1]: *** [usr/initramfs_data.cpio.lzma] Error 1
make: *** [usr] Error 2
make: *** Waiting for unfinished jobs....
CC mm/mempool.o
CC fs/read_write.o
CC mm/oom_kill.o
CC fs/file_table.o
CC mm/fadvise.o
CC mm/maccess.o
CC fs/super.o
CC mm/page_alloc.o
CC mm/page-writeback.o
CC fs/char_dev.o
CC mm/readahead.o
CC fs/stat.o
CC mm/swap.o
CC mm/truncate.o
CC fs/exec.o
CC mm/vmscan.o
CC mm/shmem.o
CC fs/pipe.o
CC fs/namei.o
CC mm/prio_tree.o
CC mm/util.o
CC mm/mmzone.o
CC mm/vmstat.o
CC mm/backing-dev.o
CC mm/page_isolation.o
CC mm/mm_init.o
CC mm/mmu_context.o
CC mm/fremap.o
CC fs/fcntl.o
CC mm/highmem.o
CC mm/madvise.o
CC mm/memory.o
CC mm/mincore.o
CC fs/ioctl.o
CC mm/mlock.o
CC fs/readdir.o
CC fs/select.o
CC mm/mmap.o
CC mm/mprotect.o
CC mm/mremap.o
CC fs/fifo.o
CC mm/msync.o
CC fs/dcache.o
CC mm/rmap.o
CC mm/vmalloc.o
CC mm/pagewalk.o
CC mm/init-mm.o
CC mm/memblock.o
CC fs/inode.o
CC mm/bounce.o
CC mm/dmapool.o
CC mm/ashmem.o
CC fs/attr.o
CC mm/slub.o
CC fs/bad_inode.o
CC mm/percpu.o
CC fs/file.o
CC fs/filesystems.o
CC mm/cma.o
CC fs/namespace.o
CC mm/cma-best-fit.o
CC fs/seq_file.o
LD mm/built-in.o
CC fs/xattr.o
CC fs/libfs.o
CC fs/fs-writeback.o
CC fs/pnode.o
CC fs/drop_caches.o
CC fs/splice.o
CC fs/sync.o
CC fs/utimes.o
CC fs/stack.o
CC fs/fs_struct.o
CC fs/statfs.o
CC fs/buffer.o
CC fs/bio.o
CC fs/block_dev.o
CC fs/direct-io.o
CC fs/mpage.o
CC fs/ioprio.o
CC fs/cramfs/inode.o
CC fs/debugfs/inode.o
CC fs/devpts/inode.o
LD fs/devpts/devpts.o
LD fs/devpts/built-in.o
CC fs/ecryptfs/dentry.o
CC fs/debugfs/file.o
CC fs/cramfs/uncompress.o
LD fs/cramfs/cramfs.o
LD fs/cramfs/built-in.o
CC fs/ecryptfs/file.o
CC fs/ext2/balloc.o
CC fs/ecryptfs/inode.o
LD fs/debugfs/debugfs.o
LD fs/debugfs/built-in.o
CC fs/ext4/balloc.o
CC fs/ext2/dir.o
CC fs/ext2/file.o
CC fs/ecryptfs/main.o
CC fs/ext2/ialloc.o
CC fs/ext4/bitmap.o
fs/ecryptfs/main.c: In function 'parse_enc_filter_parms':
fs/ecryptfs/main.c:319: warning: unused variable 'count'
CC fs/ext4/dir.o
CC fs/ecryptfs/super.o
CC fs/ext2/inode.o
CC fs/ext4/file.o
CC fs/ecryptfs/mmap.o
CC fs/ext2/ioctl.o
CC fs/ext4/fsync.o
CC fs/ext2/namei.o
CC fs/ecryptfs/read_write.o
CC fs/ext4/ialloc.o
CC fs/ecryptfs/crypto.o
CC fs/ext2/super.o
CC fs/ext4/inode.o
CC fs/ext2/symlink.o
LD fs/ext2/ext2.o
LD fs/ext2/built-in.o
CC fs/fat/cache.o
CC fs/ecryptfs/keystore.o
CC fs/fat/dir.o
CC fs/ecryptfs/messaging.o
CC fs/ecryptfs/miscdev.o
fs/fat/dir.c: In function 'fat_add_entries':
fs/fat/dir.c:43: warning: 'de' may be used uninitialized in this function
fs/fat/dir.c:1241: note: 'de' was declared here
CC fs/fat/fatent.o
CC fs/ecryptfs/kthread.o
CC fs/ext4/ioctl.o
CC fs/ecryptfs/debug.o
CC fs/fat/file.o
CC fs/ext4/namei.o
LD fs/ecryptfs/ecryptfs.o
LD fs/ecryptfs/built-in.o
CC fs/fuse/dev.o
CC fs/fat/inode.o
CC fs/ext4/super.o
CC fs/fuse/dir.o
CC fs/fat/misc.o
CC fs/fat/namei_msdos.o
CC fs/fuse/file.o
CC fs/fat/namei_vfat.o
CC fs/ext4/symlink.o
CC fs/ext4/hash.o
LD fs/fat/fat.o
LD fs/fat/vfat.o
LD fs/fat/msdos.o
LD fs/fat/built-in.o
CC fs/jbd2/transaction.o
CC fs/ext4/resize.o
CC fs/fuse/inode.o
CC fs/jbd2/commit.o
CC fs/ext4/extents.o
CC fs/fuse/control.o
LD fs/fuse/fuse.o
LD fs/fuse/built-in.o
CC fs/nls/nls_base.o
CC fs/jbd2/recovery.o
CC fs/nls/nls_cp437.o
CC fs/nls/nls_ascii.o
CC fs/jbd2/checkpoint.o
CC fs/nls/nls_iso8859-1.o
LD fs/nls/built-in.o
CC fs/notify/fsnotify.o
CC fs/jbd2/revoke.o
CC fs/notify/notification.o
CC fs/ext4/ext4_jbd2.o
CC fs/ext4/migrate.o
CC fs/notify/group.o
CC fs/jbd2/journal.o
CC fs/notify/inode_mark.o
CC fs/ext4/mballoc.o
CC fs/notify/mark.o
CC fs/notify/vfsmount_mark.o
LD fs/notify/dnotify/built-in.o
LD fs/notify/fanotify/built-in.o
CC fs/notify/inotify/inotify_fsnotify.o
LD fs/jbd2/jbd2.o
LD fs/jbd2/built-in.o
CC fs/partitions/check.o
CC fs/notify/inotify/inotify_user.o
CC fs/ext4/block_validity.o
LD fs/notify/inotify/built-in.o
LD fs/notify/built-in.o
CC fs/proc/mmu.o
CC fs/partitions/msdos.o
CC fs/ext4/move_extent.o
CC fs/proc/task_mmu.o
CC fs/proc/inode.o
CC fs/partitions/efi.o
CC fs/proc/root.o
LD fs/ext4/ext4.o
LD fs/ext4/built-in.o
LD fs/quota/built-in.o
CC fs/ramfs/inode.o
CC fs/proc/base.o
LD fs/partitions/built-in.o
CC fs/romfs/storage.o
CC fs/ramfs/file-mmu.o
LD fs/ramfs/ramfs.o
LD fs/ramfs/built-in.o
CC fs/sysfs/inode.o
CC fs/romfs/super.o
CC fs/sysfs/file.o
LD fs/romfs/romfs.o
LD fs/romfs/built-in.o
CC fs/eventpoll.o
CC fs/sysfs/dir.o
CC fs/proc/generic.o
CC fs/anon_inodes.o
CC fs/proc/array.o
CC fs/sysfs/symlink.o
CC fs/signalfd.o
CC fs/proc/proc_tty.o
CC fs/sysfs/mount.o
CC fs/timerfd.o
CC fs/proc/cmdline.o
CC fs/sysfs/bin.o
CC fs/proc/cpuinfo.o
CC fs/eventfd.o
CC fs/proc/devices.o
CC fs/proc/interrupts.o
CC fs/sysfs/group.o
CC fs/aio.o
CC fs/proc/loadavg.o
LD fs/sysfs/built-in.o
CC fs/locks.o
CC fs/proc/meminfo.o
CC fs/proc/stat.o
CC fs/proc/uptime.o
CC fs/binfmt_script.o
CC fs/proc/version.o
CC fs/binfmt_elf.o
CC fs/posix_acl.o
CC fs/proc/softirqs.o
CC fs/proc/proc_sysctl.o
CC fs/xattr_acl.o
CC fs/generic_acl.o
CC fs/proc/proc_net.o
CC fs/proc/kmsg.o
CC fs/proc/page.o
LD fs/proc/proc.o
LD fs/proc/built-in.o
LD fs/built-in.o
root@ubuntu:~/P6210/linux_kernel_GT6210# cd arch
root@ubuntu:~/P6210/linux_kernel_GT6210/arch# cd arm
root@ubuntu:~/P6210/linux_kernel_GT6210/arch/arm# cd boot
root@ubuntu:~/P6210/linux_kernel_GT6210/arch/arm/boot# ls
bootp compressed install.sh Makefile
 

chip.hughes

Senior Member
Nov 29, 2008
202
27
Ripley
Well Gary, I tweaked your kernel. Added support for USB wireless, Everything still appears stable.:) Device still shows no wireless extensions for usb0.:( I'm still missing something. Maybe a wifi module?
 

aorth

Senior Member
Nov 10, 2010
1,122
1,997
Nairobi, Kenya
mjanja.ch
First, you need a compiler and toolchain. Samsung likes to use v4.4.3 of gcc, and we're kind of stuck for that in order to let things work properly with the ar6000.ko precompiled kernel module. The easiest way to get that is to take a few steps back and search for cyanogenmod. If you search, you'll find official cyanogenmod instructions for getting the code for and building for the Samsung Galaxy SII. That has the same CPU as this tablet, so get for it. Don't worry about getting any prebuild modules - we aren't actually compiling for the SGII.. we just want the 4.4.3 toolchain that comes with it. ;) (Among tons of other garbage, make sure this leaves you with a file similar to ~/android/system/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-gcc ) (You can also get this toolchain from the android ndk or from pulling the latest ICS sources from google... ) Following the directions for getting the cyanogenmod stuff will also ensure you have other tools installed on your machine as needed...

I just realized that kernels built using a compiler other than GCC 4.4.3 break the baseband on my P6200. I had read that the prebuilt Atheros wireless module would break, but it was working for me, so I just kept on compiling with Linaro 4.6, etc, frustrated as hell.

On a hunch I recompiled with GCC 4.4.3 from the Android NDK and everything's working now. I feel like a retard. That should teach me to live on the bleeding edge.

Back to hacking. When are we gonna start porting CM9? I'm game! :)
 
  • Like
Reactions: SrulDog

SrulDog

Member
Apr 28, 2011
41
1
please please please port cm9!!! I wish I had the skills (or the time to acquire the skills) to get it done!
 

Gazorninplat

Senior Member
Sep 8, 2009
134
0
Edmonton
Sorry I read through both this and your root thread and haven't come up with the answer. The firmware is listed in device settings right? So if the build ends with P6210XXLB2, I have LB2 firmware?

Does anybody know if LB2 is post-LA3, and therefore probably won't work with this kernel?

Thanks!
 

mike216

Senior Member
Nov 12, 2010
5,127
1,062
cleveland
Me to CM9 would be awesome Gary and your the only one with the brains around here. I'll gladly pay for your time

Sent from my Galaxy Nexus using xda premium
 

garyd9

Inactive Recognized Developer
Sep 13, 2006
2,643
2,732
53
Pittsburgh, PA
Me to CM9 would be awesome Gary and your the only one with the brains around here. I'll gladly pay for your time
If I do it, it wouldn't be for money. Don't expect anything to happen any time soon, however. Even samsung developers (who do this as a full time job) haven't managed to get ICS running on this device. Hell, they can't even fix the wifi issues.
 
  • Like
Reactions: mike216

mike216

Senior Member
Nov 12, 2010
5,127
1,062
cleveland
I do mean to bring up the money thing bud BUT I really don't have anything else I can offer. I'm learning Android on my days off so hopefully one day I can contribute to coding. Thanks Gary

Sent from my Galaxy Nexus using xda premium
 

Top Liked Posts

  • There are no posts matching your filters.
  • 18
    USE THIS AT YOUR OWN RISK.

    I am not installing this kernel on your device. I've even gone out of my way to not give clear directions on how to install it yourself. If you decide to install this kernel, you are assuming all risks involved with it.


    WARNING: THIS KERNEL IS NOT FULLY COMPATIBLE WITH THE LA3 FIRMWARE UPDATE. USING THIS KERNEL WITH THE UPDATED VERSION WILL RESULT IN WIRELESS ETHERNET BEING DISABLED.

    Welcome to my custom compiled kernel for the Samsung Galaxy Tab 7.0 (wifi only.) This kernel will ONLY work for the GT-P6210 model.

    The kernel should be compatible with any stock firmware or anything custom that's derived from the stock firmware. (I refuse to call it a ROM. It's not Read Only.)

    First, proper credit should go to Entropy512 and his SGH-i777 kernels. It's from that work I was inspired to do this, and from that work where I'm pulling ideas and changes (when compatible.) I'd give some credit to Samsung, but they only bothered to post partial source code, and didn't even bother to post it with the proper config flags.

    The idea behind this kernel is and will be to make the device more efficient. Longer battery life while running more smoothly is a Good Thing. I don't care about benchmark scores. In case someone missed that, I DO NOT CARE ABOUT BENCHMARK SCORES. Anyone can tweak a system to get a better benchmark, but that doesn't mean it'll actually work better. Concern #1 is and should always be stability. While some tweaks will be added that allow a user to make the system unstable, they won't be the default.


    Differences from stock currently include:
    • Very slight speed increase in bootup, possibly in other areas
    • Support for init.d script parsing on bootup
    • A real busybox (with proper links) installed to /sbin (and therefore available to the system)
    • Undervolting and minor overclocking support (via SetCPU)
    • android ram_console support (useful for post-mortem of crashes.)
    • standard boot animation support
    • quicker charging with iphone chargers
    Voltage and Clock Adjustments:
    If you choose to tinker with the processor voltages and/or clock speeds, there will be no support in this thread. None. Yes, I'm using it myself, but I won't even support myself if I screw things up. If you find an issue with this kernel, BEFORE you post about it here, re-test after reverting all the voltage and clock speeds back to default. If it works with the default clocks/voltages, then don't waste your time or mine by posting about it to this thread. It's not supported. You can destroy your tablet by messing with the voltages and clocks.

    You'll need a separate tool for voltage and clock adjustments. The one I see most frequently used is "SetCPU" (http://xdaforums.com/showthread.php?t=505419.) I'm in no way affiliated with the author of that tool. You should be warned that SetCPU does not seem to be fully compatible with our tablets: There seems to be no way to bring up the menu in the program. If the program is "honeycomb compatible", this is likely due to the author making assumptions about screen dimensions on tablet devices (fairly common error.) Don't tell me about it. It's not my program.


    ToDo:
    • Find source for the ethernet module and replace it (which will also allow adding more generic optimizations to the kernel.)
    • ethernet adhoc support (not really kernel specific, but not possible without the ethernet module...)
    • Figure out what samsung changed in the LA3 kernel (and didn't publish) so I can get the kernel working with the firmware update.
    Known Issues:
    • Probably not compatible with stock firmware updates. (won't fix.)
    • NOT COMPATIBLE WITH LA3 FIRMWARE UPDATE!!
    Flashing Instructions:
    This is being released as an installable "update.zip" style installer. Stick the .zip file on your device, reboot into recovery, and install it from there. If this isn't enough information, please search and read the forums before changing your device kernel. (Flashing a .zip in recovery is a very basic skill that should be mastered early.)

    Firmware Developers:
    If you want to use it, please link to this thread and give clear indication of which version of the kernel you are including.

    Legal:
    This is based on the linux kernel, and therefore I'm including links to the modified source for the kernel (https://github.com/garyd9/linux_kernel_GT-P6210) and contents of initramfs (https://github.com/garyd9/initramfs_normal_GT-P6210)

    PLEASE DO NOT MIRROR THE DOWNLOADS. IF YOU WANT TO REFERENCE THE KERNELS, PLEASE ONLY LINK TO THIS THREAD.
    4
    Change Log

    20120128:

    • Support for iphone charger detection - pull up to 750mA from detected iphone chargers (1500mA from the samsung charger, and 500mA from everything else including a computer USB port.)
    • Testing USB "high current" charging. This is currently not enabled by default (and until I'm happy that it's stable and safe, I won't be documenting it.)
    20120123: (actually posted on the 24th)

    • Minor adjustments related to the MMC and SD card interfaces (which includes the wifi interface)
    • Starting to pull in mainline kernel fixes (including fixes for some kernel panics/reboots.)
    20120107:

    • disable mali state tracking. Doesn't seem to have any actual impact, but should reduce a small amount of overhead
    • add support for "reboot bootloader." Actually, the support was already there if the command sent to reboot was "download", but several android tools (such as "Quick Boot") want to send the command as "bootloader." This is only useful if you have a desire to reboot your device into "Download Mode" (aka "ODIN mode")
    • Replaced samsung j4fs.ko binary module with one built from sources. No impact other than easier to maintain.
    20120105:
    • added standard bootanimation support (if bootanimation.zip is found in /system/media, it's used. Otherwise, the default samsung animation is used. Standard samsung music is played either way.)
    • It's now possible to tweak the conservative governor sampling rate down to 50,000 (default is still 100,000.) If done, this may make the tablet more responsive in some situations (however, there may also be a negative impact to battery life - everything is a trade-off.)
    20120102:
    • added android ram_console support. After installing this kernel, if you reboot/crash, it should leave a file in /proc called "last_kmsg" that will show the last several kernel messages from before the reboot/crash.
    20120101:
    • undervolting and overclocking support (only up to 1.4GHz)
    If you decide that you want to overclock or undervolt your tablet, you are 100% on your own. You can easily fry your tablet's processor by messing with voltages and clock speeds. If you have issues with this kernel, remove all overclocking and voltage adjustments before you even bother posting on this thread.
    • Use "SetCPU" to change voltages, clocks, and governors. SetCPU can be found on the market and on XDA at the following link: http://xdaforums.com/showthread.php?t=505419 (I am in no way affiliated with the author of that program.)
    20111231 (initial release):
    • build compatible with stock ar6000.ko module
    • init.d script support
    • busybox in /sbin
    • cleanup of kernel config to remove excess debugging (when possible)
    4
    Weekend update. There might not be any more kernel updates for a week (unless there's something critical to do) as I want to spend time time trying to completely replace samsung's ethernet module...

    20120107:

    • disable mali state tracking. Doesn't seem to have any actual impact, but should reduce a small amount of overhead
    • add support for "reboot bootloader." Actually, the support was already there if the command sent to reboot was "download", but several android tools (such as "Quick Boot") want to send the command as "bootloader." This is only useful if you have a desire to reboot your device into "Download Mode" (aka "ODIN mode")
    • Replaced samsung j4fs.ko binary module with one built from sources. No impact other than easier to maintain.
    3
    updated...

    20120105:
    • added standard bootanimation support (if bootanimation.zip is found in /system/media, it's used. Otherwise, the default samsung animation is used. Standard samsung music is played either way.)
    • It's now possible to tweak the conservative governor sampling rate down to 50,000 (default is still 100,000.) If done, this may make the tablet more responsive in some situations (however, there may also be a negative impact to battery life - everything is a trade-off.)
    (I'll be posting a sample boot animation in another post.)
    2
    new version:

    20120101:

    • undervolting and overclocking support (only up to 1.4GHz)
    If you decide that you want to overclock or undervolt your tablet, you are 100% on your own. You can easily fry your tablet's processor by messing with voltages and clock speeds. If you have issues with this kernel, remove all overclocking and voltage adjustments before you even bother posting on this thread.
    • Use "SetCPU" to change voltages, clocks, and governors. SetCPU can be found on the market and on XDA at the following link: http://xdaforums.com/showthread.php?t=505419 (I am in no way affiliated with the author of that program.)