[KERNEL][NE2]SPH-L900 Community Kernel Project (Updated 05/29/14) - Sprint Samsung Galaxy Note II

Well, now that it's up and running it's time to properly set this thread up.
The idea of this thread is to provide a kernel repo that most can use to build their own.
I'll be building and posting the builds from this without modification.
May 29, 2014 Update: I have added the NE2 Kitkat kernel and built but it will remain untested.
I'll try to see if someone can test but it doesn't look like much has changed from MK4.
Project Repositories:
NE2 (4.4) (Initial Setup Only)
https://github.com/garwynn/L900_NE2_Kernel
MK4 (4.3) (WIP):
https://github.com/sleshepic/l900_MK4_Kernel (Thanks to sleshepic for his work on this!)
MC2:
https://github.com/garwynn/L900_MC2_Kernel
Older Versions (Development has stopped)
MA7 | LJC
Project Status:
NE2:
I've used the same as MK4 to make a test kernel. Untested though without a N2.
MK4:
Still trying to get a full boot.img together, stay tuned.
MC2 Status:
Kernel patched to current Linux 3.0.x (.71 at time of update)
Stock governors enabled, 6 additional ones added.
Project Downloads (Built Kernels):
My kernels are currently housed by rwilco12's Android Stock Repo. (All versions)
To compile on your own you need:
1) Linux Box - I'm using Ubuntu 14.04 and all prerequisites for building AOSP.
2) Android SDK with toolchains - I used arm-eabi-4.4.3 all the way through NE2.
3) Cloned repo from above.
Just modify the toolchain location in ./build_n2.sh and execute ./build_n2.sh.
Rest should go on its own.
On some cases I had to also change the toolchain location in main makefile.
Releasing/Posting your Kernels:
Folks are encouraged to try building the kernel and posting it if they want to.
Any posts should refer to using the kernel as their base.
If you modify the code further outside of this you should include a link to your repo for others to see those changes.
Anyone interested in chipping into this is more than welcome!
Thank you in advance for your time!

I've been playing, digging, etc for about a year now. Ive been attempting my first rom build and I think im really close. Its a 4.2 rom, so its been a challenge.
But I would love to participate in this too if its open to everyone.
Sent from my SPH-L900 using Tapatalk 2

cbucz24 said:
I've been playing, digging, etc for about a year now. Ive been attempting my first rom build and I think im really close. Its a 4.2 rom, so its been a challenge.
But I would love to participate in this too if its open to everyone.
Sent from my SPH-L900 using Tapatalk 2
Click to expand...
Click to collapse
That's the goal! It slowed down on the E4GT but it's hopefully going to heat up again soon.
The more people that get involved, the better the kernel should end up - and the more that fellow XDAers learn and share knowledge!

Talk to sleshepic. He built a kernel for his rom.
Sent from my SPH-L900 using Tapatalk 2

Self-plug below. It should get you started on kernels.
http://forum.xda-developers.com/showthread.php?t=1748297

btbamzao said:
Talk to sleshepic. He built a kernel for his rom.
Sent from my SPH-L900 using Tapatalk 2
Click to expand...
Click to collapse
Agat63 showed him and also is willing to show me but catching him will be tough for the next 3 weeks.
So that's what I'll go with if we can't get something cobbled together before then.

garwynn said:
Agat63 showed him and also is willing to show me but catching him will be tough for the next 3 weeks.
So that's what I'll go with if we can't get something cobbled together before then.
Click to expand...
Click to collapse
Agat was def helpful as always. The way I ended up doing it was slightly dif than the way he does it on the S3, really similar though. im really busy for a couple days but when I get to my comp with some time ill type up what I do.
My git wouldn't be a good source to clone from just cus my first commit had a few changes already, but it def would be helpful to get a working repo together with the Cypress touch drivers already placed in source - did they forget them or what lol. Could try getting that together too.

sleshepic said:
Agat was def helpful as always. The way I ended up doing it was slightly dif than the way he does it on the S3, really similar though. im really busy for a couple days but when I get to my comp with some time ill type up what I do.
My git wouldn't be a good source to clone from just cus my first commit had a few changes already, but it def would be helpful to get a working repo together with the Cypress touch drivers already placed in source - did they forget them or what lol. Could try getting that together too.
Click to expand...
Click to collapse
Thanks for the assist!
I'll try to commit a fresh LJC repo over the weekend then and we can go from there.
Hope I don't mess that up. I'll ask if I have any ??s.

Well, I made a repo here:
https://github.com/garwynn/L900_LJC_Kernel
...and followed the kernel readme instructions. Looks like it's compiling.
*Edit* ...and failed. arm-eabi-nm missing in toolchain I'm using.
(Wait, it's right there!)
Code:
/root/Kernel/L900_LJC_Kernel/scripts/mksysmap: line 44: ~/Kernel/toolchain/prebuilt/arm-eabi-4.4.3/bin/arm-eabi-nm: No such file or directory
make: *** [vmlinux] Error 1

How about a Modem Repo? Like on the Epic Touch

Avatar said:
How about a Modem Repo? Like on the Epic Touch
Click to expand...
Click to collapse
Rwilco12 - when he has time - is going to set up a Kernel/ROM/Modem Repo... at least time I talked to him.

Cool.

garwynn said:
Well, I made a repo here:
https://github.com/garwynn/L900_LJC_Kernel
...and followed the kernel readme instructions. Looks like it's compiling.
*Edit* ...and failed. arm-eabi-nm missing in toolchain I'm using.
(Wait, it's right there!)
Code:
/root/Kernel/L900_LJC_Kernel/scripts/mksysmap: line 44: ~/Kernel/toolchain/prebuilt/arm-eabi-4.4.3/bin/arm-eabi-nm: No such file or directory
make: *** [vmlinux] Error 1
Click to expand...
Click to collapse
Here is what my build looks like, in general. I have my toolchain referenced in the first export (which could also be easily put in the makefile so its not needed each time)
$ export CROSS_COMPILE=/media/Android/Kernel/toolchain/prebuilt/arm-eabi-4.4.3/bin/arm-eabi-
$ make t0spr_04_defconfig
$ make menuconfig (this is not necessary, and possibly not recommended unless you know what your changing etc, or could be manually edited in the file)
$ make modules
$ make -j5 (the -j5 is optional, I have a quad core processor so this just speeds things up, if you believe your comp is capable of faster than standard builds put the number of cores plus 1 for the number after "-j" )
Then that will build the zImage into the /arch/arm/boot directory.
Which we then bundle with the ramdisk to create the boot.img.
On the Epic Touch all we needed was the zImage for the kernel since the initramfs were bundled differently, but it's dif on our Note 2's. you'll need the ramdisk and zimage to make your boot.img. I pulled the ramdisk from the stock kernel.
I use
$ ./unpack-bootimg.pl boot.img
to pull the "ramdisk-contents" from the stock kernel, I renamed that folder "initramfs" and threw it in a folder along with my mkbootimg binary, and my zImage I just compiled. you can put this anywhere, I just put it in my working kernel folder so it's easy to navigate to
I put the newly created modules from zImage build in my initramfs/libs/modules with
$ find -name '*.ko' -exec cp -av {} [path to desired folder] \;
I navigate to the initramfs folder and
$ find .|cpio -o -H newc > ../ramdisk
$ cd ..
$ gzip ramdisk
$ ./mkbootimg --kernel ./zImage --ramdisk ./ramdisk.gz --board smdk4x12 --base 0x10000000 --pagesize 2048 --ramdiskaddr 0x11000000 -o boot.img
That last part is what bundles the zimage and ramdisk into the boot,img. sorry I had to rush it, hope i didn't miss much, can fill in the blanks as needed, just I'd get up whatever I could when I found a moment, open to help in any way I can.
Edit: Also, checked out the repo put up, Nice work so quick! this is the folder I mentioned that needs to be added or else the capacative touch keys won't work, unbelievable that that was missed in the source drop. I mean, isn't it supposed to be a buildable working version for it to meet open source standards? guess not. anyway, this "cypress" folder needs to be added to the source prior to build for the two touch keys to work. first time I finally got mine booting and all I was so psyched only to find out my touch keys didnt work, so frustrating. Just have to pull it from other source, or you can grab it from mine
https://github.com/sleshepic/Note_2_l900/tree/master/drivers/input/keyboard/cypress
Big thanks to agat63 and Andreilux for help along the way

Nice stuff here, will be following this thread. Here is another repo with fresh LJC kernel source with cypress drivers included https://github.com/slickrick/L900_Kernel

thewadegeek said:
Self-plug below. It should get you started on kernels.
http://forum.xda-developers.com/showthread.php?t=1748297
Click to expand...
Click to collapse
Mind if include this in OP revision after Phase 1 is finished?
Also thanks for the quick responses... will try to get to it this weekend but will probably be Monday. Sucks but that's the way it will be a few more weeks.
Sent from my SPH-L900 using Tapatalk 2

garwynn said:
Rwilco12 - when he has time - is going to set up a Kernel/ROM/Modem Repo... at least time I talked to him.
Click to expand...
Click to collapse
Working on it as we speak! I was able to finish the week with only 10 hours of overtime and had some free time to work on some projects.
Got one or two little things to sort out in the PHP but here's a sneak peek of what I've got coming! It's a complete rework of my original Repo for the E4GT with more devices and more goodies!
If there are any PHP gurus (or web design in general) and you're willing to help hit me up and maybe I can get over this last hurdle and make the New Repo public!
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}

garwynn said:
Mind if include this in OP revision after Phase 1 is finished?
Also thanks for the quick responses... will try to get to it this weekend but will probably be Monday. Sucks but that's the way it will be a few more weeks.
Sent from my SPH-L900 using Tapatalk 2
Click to expand...
Click to collapse
Nope feel free.
Sent from my SCH-R950 using Tapatalk 2

Well.. work on this may be pushed back a day or two, new source for the E4GT. Gotta look at it first.

Hi everyone.
I'm here by invitation and will try to participate as much as I can.
Hopefully with combined knowledge and power we can make this
project move faster.

agat63 said:
Hi everyone.
I'm here by invitation and will try to participate as much as I can.
Hopefully with combined knowledge and power we can make this
project move faster.
Click to expand...
Click to collapse
Okay... here's where I still stand.
Added Cypress and pushed a commit to Github.
Make still is good up until VMLinux and fails.
Didn't know I can just skip to here so here's the command and output:
Code:
[email protected]:~/Kernel/L900_LJC_Kernel# make vmlinux
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
LD vmlinux
SYSMAP System.map
/root/Kernel/L900_LJC_Kernel/scripts/mksysmap: line 44: ~/Kernel/toolchain/prebuilt/arm-eabi-4.4.3/bin/arm-eabi-nm: No such file or directory
make: *** [vmlinux] Error 1
Where should the vmlinux object be? It's trying to create system.map so I suspect that vmlinux is not being created properly.
I dumped a debug output from this make but it's 115MB.

Related

[ACS][DEV][TUTORIAL] How to Build A Custom Kernel for the Samsung Epic 4G Touch

How to Build a Kernel for the Samsung Epic 4G Touch
So you want to learn how to build a kernel? I guess you've more than likely come to the right place considering that's what the title has led you to believe, so why don't we get started?
As with all things worth doing, this is going to take a little time, and a little patience. If you don't get everything on the first try just go back and pick up where you left off. I'm 15. I started out the same way you did, all of us developers did. You can do it, it just takes practice and effort.
Prerequisites
First off, your going to need some sort of Linux distribution installed on your hard drive or running in a virtual machine. I personally prefer Ubuntu for it's user friendliness and easy learning curve but there are more bare distros out there you can mess around with. A mac might also work as well, but having never owned one I can't say for sure.
Setting up your build environment.
Once you have made sure you have a Linux distribution up and running (er..Mac) you can head on over to this link and download SPH-D710-Build-A-Kernel.zip. This zip archive includes everything you are going to need, even an automatic building script I was nice enough to provide for your building pleasure.
You are going to want to extract the contents of this zip compression archive to your home folder, like so.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Breakdown of contents.
Let's take a look at what is included in the contents we just extracted, shall we?
Code:
kernel
--source
--initramfs
----stock
--toolchain
build.sh
Inside the folder labeled kernel we have the folders source, initramfs, and toolchain. Let's break this down and explain what each is and what it means when compiling a kernel.
Source.
The kernel source is included in the source folder (duh..). This includes everything that is used to compile the kernel itself. These files are provided by Samsung after every update we get on our phones. So it's always a good idea to pay attention to when updates are released and then to check for kernel source updates at the Open Source Samsung website.
I plan to keep this all updated as soon as the source drops for updates as well if you don't feel comfortable updating it yourself.
Initramfs.
Moving on we have the initramfs folder. The initramfs of a kernel is like the insides of a human. It tells the kernel what to do, it's the brains of the whole operation. This is really where all the customization takes place and things like root and Clockworkmod Recovery are added. More on this all later in the tutorial.
Stock initramfs.
What we have currently in this folder is another sub-folder dubbed stock. This included the stock initramfs that I was able to pull from the kernel I grabbed from a stock Epic Touch. By building a kernel with this initramfs we are building a completely stock kernel.
As with every kernel however, unless it is custom signed by Samsung then the yellow triangle will occur on boot. That is unless you use a usb jig to rid yourself of this problem.
Toolchain.
Lastly, we have the toolchain folder. The toolchain is what is used to actually compile the kernel using the source.
In software, a toolchain is the set of programming tools that are used to create a product.
Click to expand...
Click to collapse
Custom build script.
Going back to our home directory (remember: the directory we extracting everything to), we have build.sh.
Me being the nice person that I am, I have included a custom build script so you don't have to manually have to type in commands in Terminal, that is what build.sh is. Double clicking it will reveal a prompt asking you what you wish to do, since we want to build the kernel we should probably select 'Run in Terminal'.
Once we do choose to actually click the 'Run in Terminal' option in the prompt we will be presented with...well, a Terminal that is running our custom build script. This script does alot of things without much effort, just a few button clicks, on your part.
It sets the path for the toolchain and the initramfs, something that we normally have to do manually, and it also takes the time to compile the kernel, pull the compiled modules, copy them to the initramfs, and recompile the kernel again. Afterwards, the compile zImage (kernel) is copied to the Desktop and automagically created into a .tar archive for flashing immediately via Odin.
Profit!
Bam! You've created your very first [stock] kernel.
Give yourself a pat on the back for being able to follow directions and be patient.
Flashing.
Once you've flashed your custom kernel you can flash it on your phone head on over to Settings and then to About Phone and find some interesting information under kernel that is sure to make you smile.
Part II coming very soon to a second post near you.
Part II: What does the build script actually do?
Part III: Being creative within the initramfs.
Part IV: Messing around with the source.
Part V: A conclusion to a story that just began.
Thanks bubby. I'm interested in learning this as well. Thanks man. Please keep this updated for us.
Sent From My Evo Killer!!!
Awesome
Sent from my SPH-D710 using XDA App
Thanks Bubby! This is exactly what I have been looking for... especially the build script. Now I don't have an excuse for being lazy, it's time to wipe off the dust from my old linux box!
Thank you Bubby! This is awesome, I'm pretty excited I've always wanted to play around with Android, I think this will be a great place to start! I just installed Ubuntu on my work laptop, probably a ****ty idea but wth. Looking forward to the later posts!
PS Can we get this Stickied?
OMG>>>>>>>> you rock. iv been looking all over for this and could never find anything for a samsung phone. they were all htc.......
Wheres the donate button? you have a KEG coming your way. THANK YOU.
Thanks. Really appreciate this.
Sent from my SPH-D710 using XDA App
spdwiz18 said:
OMG>>>>>>>> you rock. iv been looking all over for this and could never find anything for a samsung phone. they were all htc.......
Wheres the donate button? you have a KEG coming your way. THANK YOU.
Click to expand...
Click to collapse
A keg of juice hes 15 lol... So am i ... Thanks bubby for this
Sent from my SPH-D710 using XDA App
Great guide!!!
deano0714 said:
A keg of juice hes 15 lol... So am i ... Thanks bubby for this
Sent from my SPH-D710 using XDA App
Click to expand...
Click to collapse
Lol.... didn't say there was anything in the keg... Just saidI would donate to get him one...
Sent from my SPH-D710 using xda premium
Wow. I'm impressed. The sky is the limit for you. The way you conduct yourself on these forums is incredibly professional, responsible and void of any childish behavior that people twice your age get wrapped up in.
Thanks and keep up the great work! I look forward to the rest of the guide. Every couple of years I get an install of Linux going to play around with; I think I've just found a reason to try it out again!
Sent from my SPH-D710 using XDA App
Wow, thanks man!
This is awesome! Personally I probably won't ever make my own kernel but I appreciate the knowledge. Does anyone know if there is a custom rom tutorial guide?
Awesome, thanks for this guide bubby Been reading up on developing in Android and this will definitely help to get started!
spdwiz18 said:
OMG>>>>>>>> you rock. iv been looking all over for this and could never find anything for a samsung phone. they were all htc.......
Wheres the donate button? you have a KEG coming your way. THANK YOU.
Click to expand...
Click to collapse
If any of you feel like you wish to donate to me, I'm definitely not going to stop you. ;3
bubby323 said:
If any of you feel like you wish to donate to me, I'm definitely not going to stop you. ;3
Click to expand...
Click to collapse
Done. It's not much but i figured a token of my appreciation was warranted.

I9505 Common (CM10.1)

Post Updated from Original
Cyanogen has posted a i9505 common device tree.
It is based on his working configurations for US T-mobile.
There are two ways to get this:
1) Clone these repos:
https://github.com/CyanogenMod/android_device_samsung_jf-common
https://github.com/CyanogenMod/android_kernel_samsung_jf
https://github.com/CyanogenMod/android_device_samsung_jfltetmo
2) Set up your CM environment and "breakfast jfltetmo" to pull the 3 repos above.
The first 2 are the common device and kernel. The third can be used as a base for your device.
(So fork it to your own repo and start making changes)
Hope this gets other variants up quickly! Thanks again to Cyanogen for the work to get it this far so quickly!
garwynn said:
Well, while waiting for the SPH-L720 (Sprint GS4) to come out this weekend I'm trying to do what prep work I can. I'm checking both here and #cyanogenmod-dev to see if anyone else has started this, but just in case I created jflte-common repos to start allowing collaborative efforts for GS4 work to get CM going ASAP. I'll be using these to get the jfltespr (SPH-L720) trees up and running.
Now fair warning, I'm doing this as my first port attempt but have several kernels and a few recoveries that I've done already. So please bear with the learning curve...
I9505 Common Repos:
https://github.com/garwynn/i9505_rec_ramdisk (Thanks to ewmno for posting the i9505 recovery.img!)
https://github.com/garwynn/device_samsung_jflte-common
https://github.com/garwynn/vendor_samsung_jflte-common
https://github.com/garwynn/kernel_samsung_jflte
I'm downloading the only i9505 source I saw so I can find out what linux build version they're using as a base. Figured that's a good starting point to figure out where we start for kernel dev.
Anyone interested in helping - would be most appreciated! I'll start working on the tree repos this morning (US CDT)
Click to expand...
Click to collapse
Since it's Qualcomm based - First thing you should do is fork https://www.codeaurora.org/gitweb/quic/la/?p=kernel/msm.git;a=summary
Then go to Qualcomm's CAF release list at https://www.codeaurora.org/xwiki/bin/QAEP/release and go through the tags for your SoC and Android version. Check each out one by one. I'm fairly certain you are APQ8064T. Whcih is odd, there are no tags for the T variant...
Code:
git checkout <TAG>
Drop the Samsung tarball on top of the checked out tree, and diff it.
Code:
git diff > ../<TAG>.patch
Keep going until you find the patch that is the smallest. This is likely the CAF base that Samsung started from.
Two other things:
Be warned, Samsung hacks the **** out of their bases
Also, try to coordinate with cyanogen himself, I believe he'll be working on either the AT&T or T-Mobile variants.
Entropy512 said:
Since it's Qualcomm based ................................Blah Blah
Click to expand...
Click to collapse
What if i need to make 1 for I9500
Entropy512 said:
Since it's Qualcomm based - First thing you should do is fork https://www.codeaurora.org/gitweb/quic/la/?p=kernel/msm.git;a=summary
Then go to Qualcomm's CAF release list at https://www.codeaurora.org/xwiki/bin/QAEP/release and go through the tags for your SoC and Android version. Check each out one by one. I'm fairly certain you are APQ8064T. Whcih is odd, there are no tags for the T variant...
Code:
git checkout <TAG>
Drop the Samsung tarball on top of the checked out tree, and diff it.
Code:
git diff > ../<TAG>.patch
Keep going until you find the patch that is the smallest. This is likely the CAF base that Samsung started from.
Two other things:
Be warned, Samsung hacks the **** out of their bases
Also, try to coordinate with cyanogen himself, I believe he'll be working on either the AT&T or T-Mobile variants.
Click to expand...
Click to collapse
Thanks for the starting point, Entropy! I'll start on that during my lunch break.
I'm keeping up IRC on the build box but just sent an alt contact in case anyone else you know is interested in collaborating.
I'm guessing that they're not differentiating (yet) between the APQ8064 variants.
So I'll start pulling standard APQ8064 and hopefully get lucky.
might want to look at cpu_is_apq8064ab related stuff in the jb_2.5 branch to get an idea of where stuff is - The APQ8064T may be referenced as APQ8064AB in kernel sources. Not sure.
Still doesn't answer which tag to follow.
We are lucky to have such a driven Dev. Thank you gawynn, for all you have done, and all that you will do.
Kudos from the E4GT community.
Entropy512 said:
might want to look at cpu_is_apq8064ab related stuff in the jb_2.5 branch to get an idea of where stuff is - The APQ8064T may be referenced as APQ8064AB in kernel sources. Not sure.
Still doesn't answer which tag to follow.
Click to expand...
Click to collapse
No but it does allow me to thin out the list.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Every build that I have seen so far is March so we should be able to rule out any April builds.
So once I get access to my build box again (TV died yet again...) I'll start at the bottom and work my way up.
(Edited post) So far the above (AFAIK) addresses kernels. Still haven't addressed device.
Thinking we can still use this for graphics base:
https://github.com/CyanogenMod/android_device_samsung_msm8960-common
I almost want to fork d2-common for the jflte common device and start replacing S3 with S4 details.
I have that 9505 system dump on my build box so I can start extracting stuff from there.
More as I keep reading and digging.
Looking forward to development for S4 , planning on getting it as soon as my renewal will allow .
Sent from my SPH-D710 using xda premium
Cyanogen found kernel already, head is jb_2.5, didn't get the branch point but says he knows what it is.
In the meantime I went ahead and stripped d2-common and used that as a shell for jflte-common device.
Future status updates on this will be placed here at Cyanogen's request:
https://jira.cyanogenmod.org/browse/QSDB-25
Feel free to take a look there for progress reports.
Will be requesting thread lock for now.
As far as graphics base you'll almost surely have the same flags as any other caf-display device.
Sound can get a bit more funky... I'd look at mako, Sonys, and Oppo Find5 for inspiration there as those are the current non-T APQ8064s.
Entropy512 said:
As far as graphics base you'll almost surely have the same flags as any other caf-display device.
Sound can get a bit more funky... I'd look at mako, Sonys, and Oppo Find5 for inspiration there as those are the current non-T APQ8064s.
Click to expand...
Click to collapse
i9505 Latin JB source has Alsa audio folder in the platform side - wouldn't be able to use that?
You know what? Seeing as OSRC pulled it (for now) I'll make a repo for both the kernel and platform side and add the links here in a sec.
Edited:
https://github.com/garwynn/i9505_latin_jb_platform
https://github.com/garwynn/i9505_latin_jb_kernel
Hopefully we get the L720 stuff here soon so I can compare ROMs and kernels against the ones I have already.
Should give a good idea as to what can be common vs. proprietary.
Had to change my search for the kernel based on a misunderstanding of where to start.
So I started with the jb2.5 head and pulled this list from it.
As you can see I've been trying a "divide and conquer" method to figure out where the branch point is.
Tried checkout method after cloning the repo but can't seem to get it to pull the branch source.
So for now I'm resorting to a rather tedious process of clone branch, diff, delete, repeat.
Also doesn't help that I lost the build box for a day but hopefully will be fixed by 7 pm.
So while I wait for the build box to come back I'm going to see if that AT&T dump is different from the i9505 one I have.
If so should shed some light on what in the ROM will be common and what won't be.
garwynn said:
No but it does allow me to thin out the list.
Every build that I have seen so far is March so we should be able to rule out any April builds.
So once I get access to my build box again (TV died yet again...) I'll start at the bottom and work my way up.
(Edited post) So far the above (AFAIK) addresses kernels. Still haven't addressed device.
Thinking we can still use this for graphics base:
https://github.com/CyanogenMod/android_device_samsung_msm8960-common
I almost want to fork d2-common for the jflte common device and start replacing S3 with S4 details.
I have that 9505 system dump on my build box so I can start extracting stuff from there.
More as I keep reading and digging.
Click to expand...
Click to collapse
I don't know much about porting and building CM but I noticed there was some confusion about the chipset model. I'm wondering if this might help you in any way:
http://www.anandtech.com/show/6914/samsung-galaxy-s-4-review/3
ilabs said:
I don't know much about porting and building CM but I noticed there was some confusion about the chipset model. I'm wondering if this might help you in any way:
http://www.anandtech.com/show/6914/samsung-galaxy-s-4-review/3
Click to expand...
Click to collapse
That isn't useful. We are fully aware of which chipset is in this device. What we're not entirely sure of is which release tags/branch in CAF it corresponds to (unlike most other qcom processors, there is not a direct match between the chip's identifier and any CAF tags. That said, it is starting to seem like CAF is using the apq8064 releases for both apq8064 and apq8064t)
As embarrassing as this may be for me, let my facepalm teach others...
Read advice from mentors well.
And if not sure, read it again. And if still not sure, read it again.
Bold and italics below are my emphasis.
Entropy512 said:
Since it's Qualcomm based - First thing you should do is fork https://www.codeaurora.org/gitweb/quic/la/?p=kernel/msm.git;a=summary
Code:
git checkout <TAG> [I][B](Notice no -b here like I was doing and thus causing my headaches)[/B][/I]
Drop the Samsung tarball on top of the checked out tree, and diff it. (Don't go erasing what's already there like I do with other projects.)
Code:
git diff > ../<TAG>.patch
Keep going until you find the patch that is the smallest. This is likely the CAF base that Samsung started from.
Click to expand...
Click to collapse
Why does this matter? My diffs went from 24MB to 4MB and is a lot easier to see what may be going on.
When we do get to find the branch point it will make a huge difference when I pull a more recent version and then want to apply that patch to the newer version.
Entropy, had another question... In stock kernels I would normally patch Linux before doing anything else.
I'm assuming I'll want to grab the latest jb_2.5, patch Samsung's mods in first and wait until we get stable before patching Linux versions?
Just because we add Samsung's mods in doesn't mean everything will work perfectly as-is... and that logically would need addressed before anything else.
And still waiting for my build box to come up - the host is having their ISP issues addressed. Thankfully the home dual boot works great for simple things like these kernel diffs.
garwynn said:
As embarrassing as this may be for me, let my facepalm teach others...
Read advice from mentors well.
And if not sure, read it again. And if still not sure, read it again.
Bold and italics below are my emphasis.
Why does this matter? My diffs went from 24MB to 4MB and is a lot easier to see what may be going on.
When we do get to find the branch point it will make a huge difference when I pull a more recent version and then want to apply that patch to the newer version.
Entropy, had another question... In stock kernels I would normally patch Linux before doing anything else.
I'm assuming I'll want to grab the latest jb_2.5, patch Samsung's mods in first and wait until we get stable before patching Linux versions?
Just because we add Samsung's mods in doesn't mean everything will work perfectly as-is... and that logically would need addressed before anything else.
And still waiting for my build box to come up - the host is having their ISP issues addressed. Thankfully the home dual boot works great for simple things like these kernel diffs.
Click to expand...
Click to collapse
You mean pull in patches from kernel.org? I personally don't do that any more - it usually causes more problems than it is worth. The only time I've done that was a situation when I had to match d2's wifi backport on 4412 devices.
So far, devices in CM are a mix of two approaches:
1) The old (and usually quick) approach of taking the manufacturer tarball and dropping a bulk update from mako onto it. Since this is a MUCH newer CAF base and is 4.2.2 - this may not be necessary. You may just be able to get the kernel running CM10.1 with not much modification.
2) Chunk up the manufacturer's diffs and rebase them onto the latest jb_2.5 - d2 has done this, HTCs are in the process of doing so, and Sonys are probably going to do so in the next month or two. Same for Oppo Find5 - we used approach 1 initially, but are switching to 2.
For your sanity, you probably want to chunk up the manufacturer's diffs into smaller parts if you can. The workflow I used was:
Check out the closest CAF tag once you determine it.
Check out a new branch at this point using
Code:
git checkout -b <branchname>
In my case, I named the branch for find5 find5_CAFTAGHERE so I would always remember the tag.
Drop the kernel tarball on top of the CAF tag
Commit the whole big mess
Now, here's the fun part:
Unstage some files out of the commit. For example, if you want to unstage drivers/media/video out, do:
Code:
git reset HEAD^ drivers/media/video
Then
Code:
git commit --amend
This will remove the changes from drivers/media/video from the megacommit
Then
Code:
git add drivers/media/video
git commit
Commit just those changes. Try to find associated headers if you can from include/
Now, if you just split out one commit:
Code:
git rebase -i HEAD~2
to switch the order so the megacommit is the last commit for further chunking.
It's time consuming but makes the chunks much easier to analyze.
When I get home, I'll post my bash alias 'gitshowfiles' which shows a list of all files changed by the last commit. It's hightly useful.
When you're done, you'll have a nice reference like:
https://github.com/Entropy512/kernel_find5_reference/commits/find5_A8064AAAAANLYA101034
With the build box back in business I finally got to the point Entropy was talking about.
For reference here is the commit:
https://www.codeaurora.org/gitweb/q...it;h=b5075e02c2ff1d959c589552c62329c4797b0535
And I've attached the diff file so those following along can keep doing so.
(I've posted the same stuff on CM's Jira as well)
So I'll start 2 repos next.
1) Fork current CAF jb_2.5 to a new repo.
https://github.com/garwynn/kernel_samsung_jflte
2) Fork above version to this repo:
https://github.com/garwynn/i9505_CAFDiff
...where I'll start the process of splitting the big diff into smaller ones, just in case they are needed.
Now it's possible that Sprint's kernel could have branched off differently but there's an easy way I can think of to check that. Take the i9505 kernel source I have now, drop Sprint's on top and run a diff to see how different they really are.
And just an update. Sprint's GS4 is making its way to folks today. One person already has and I'm trying to get what I need to really get going.
Update 1: Odin mode shows "Write Protect Enabled" - wondering if this means bootloader is locked.
Few updates while I get things moving.
A second look at that LA kernel had what seems to be everyone's defconfig. Added and pushed to common kernel.
You'll probably need to combine your specific additions still to jf_defconfig to get a full one.
At least the Sprint one identifies an Audience audio chip and binary that should be there.
Did an initial push of common device folder after confirming Sprint's fstab matches common i9505.... so I'm guessing they're all the same. It's very rough so wouldn't try using it yet... just want access to it in case I pull to my home box. Now working to get a device specific one up enough to try a CWM build. Going to have to hold testing anyhow until we get a full restore and figure out about that write protect.
OK, for those not following the SPH-L720 thread, I'm doing test builds of CM/CWM at the moment to see what I can get working before I move over to the kernel.
I tried including msm8960-common and it failed on kernel issues. Think I'm going to leave it out for now and try just getting the CAF jb_2.5 to build successfully first. I can leave in qcom-common and that seems to at least play nice.
CWM working for SPH-L720 but users reporting that moving up/down requires 2 key presses to get it to move. Alpha 5 was reported as losing External SD card functionality - not sure why as I didn't change the fstab. i9505 users reporting that it didn't work, suggesting there may be a difference. We better nail that down and if need to move something from common to variant, do so before others start building off of it.
I'm starting to read the Find 5 configs as it seems one of the only ones with the Adreno 320 config. But again, I've got to get the kernel to build before I start really getting into this stuff.
I'll push updates to repos tonight after I get another successful build.

[DEV][WIP][ROM] CM10.2 Development thread - CALLING ALL DEVELOPERS

THIS ISN'T A PUBLIC ROM RELEASE. THIS IS FOR DEVELOPMENT ONLY. THE ROM DOES NOT BOOT. FOR MORE INFO READ THE ENTIRE POST
I've been working on bringing our device onto par with a build of Android 4.3. I've set up a GitHub organization just for our device and it has everything we need to build for the device. Now I've been somewhat quiet with what I've been doing lately and I really don't have time to list everything I've done. @bradthomas127 and I have been communicating back and forth about building. I'd say he's done just about as much work as I've done trying to get 4.3 building. Well now, after some tips from him, I've got it building. It's using, in my opinion, the best up-to-date trees there are for our hardware. I am opening this project up to anyone that can help get it BOOTING. I don't need testers as right now I feel like I myself am the best tester for now because getting adb working on a device that sticks at a blank scree is a pain in the a**. So PLEASE I encourage anyone that knows how to maintain a GitHub and can compile and do a little coding to try to help us. The more people we can get, the faster and better we can get 4.3 actually running on our device.
Here is the GitHub:
https://github.com/Primo-Dev
If you feel you are capable of helping us dev this please PM me and I may add you to the GitHub so you can contribute.
Here is the latest build:
http://d-h.st/JSo
Logcat can be downloaded here:
http://d-h.st/SYz
Now, some basic rules for this forum:
1. DON'T ASK FOR ETA OR UPDATES - This kind of stuff is hard and takes time
2. Don't ask to test - I'll open this up for testing if we ever get it to boot
3. To all other people who aren't devs: Don't post here as this is for development only. I've made this thread in hopes of finding more devs to try to help with this, not open this up as a public ROM.
What needs attention:
I'll post bits and pieces of logcat here that shows things that need to be worked on
Code:
I/auditd ( 99): Starting up
E/auditd ( 99): Failed on audit_set_pid with error: Protocol not supported
I/auditd ( 99): Exiting
W/dalvikvm( 161): PR_SET_NO_NEW_PRIVS failed. Is your kernel compiled correctly?: Invalid argument
I did not even notice this till you posted the logcat, libgenlock is not even building.
Code:
E/libEGL ( 1327): load_driver(/system/lib/egl/libEGL_adreno200.so): dlopen failed: could not load library "libgenlock.so" needed by "libEGL_adreno200.so"; caused by library "libgenlock.so" not found
Based on the logs, you'll need a kernel that has SELinux support. That is the major failure you are having. I am not sure if there will be a way to disable it.
robaho said:
Based on the logs, you'll need a kernel that has SELinux support. That is the major failure you are having. I am not sure if there will be a way to disable it.
Click to expand...
Click to collapse
That's what I've been thinking. All the devices that have been updated to cm10.2 have SELinux. Only problem is I'm not much of a kernel dev, but I can see what I can do. Also, if you take the main hardware libs from RhythmicRom and put them in cm10.2 you can get to the bootanimation.
Sent from my HTC One V using xda app-developers app
I just made a build with libgenlock.so in it, have not tried it yet.
I had to cherry pick this for SELinux support: GitHub That goes in primoc_defconfig and should take care of "audit_set_pid" & "PR_SET_NO_NEW_PRIVS" Errors.
To get libgenlock.so to build i had to bring in android_hardware_qcom_display-legacy because everything else is going ION now. display-legacy is "not" to replace qcom_display though we are already calling it in BoardConfigCommon.mk with this "TARGET_QCOM_DISPLAY_VARIANT := legacy", I used Icebox's but it is the same one we have in primo-dev <= lots of build errors though.
Edit: No boot, led blinks a couple times now. If anyone knows how to pull a logcat on 4.2+ on boot and would like to give it a try, it would be much appreciated.
cm-10.2-20130822-UNOFFICIAL-primoc.zip
-
bradthomas127 said:
I just made a build with libgenlock.so in it, have not tried it yet.
I had to cherry pick this for SELinux support: GitHub That goes in primoc_defconfig and should take care of "audit_set_pid" & "PR_SET_NO_NEW_PRIVS" Errors.
To get libgenlock.so to build i had to bring in android_hardware_qcom_display-legacy because everything else is going ION now. display-legacy is "not" to replace qcom_display though we are already calling it in BoardConfigCommon.mk with this "TARGET_QCOM_DISPLAY_VARIANT := legacy", I used Icebox's but it is the same one we have in primo-dev <= lots of build errors though.
Edit: No boot, led blinks a couple times now. If anyone knows how to pull a logcat on 4.2+ on boot and would like to give it a try, it would be much appreciated.
cm-10.2-20130822-UNOFFICIAL-primoc.zip
-
Click to expand...
Click to collapse
I'll logcat. I'll also post instructions on how I logcat on 4.2+.
Sent from my HTC One V using xda app-developers app
Hey @awidawad just an FYI the Incredible S has released CM10.2 and source is on Github. I figured it might help you guys somehow.
Sent from my LG Optimus F7 using xda app-developers app
reV17 said:
Hey @awidawad just an FYI the Incredible S has released CM10.2 and source is on Github. I figured it might help you guys somehow.
Sent from my LG Optimus F7 using xda app-developers app
Click to expand...
Click to collapse
Hmm thanks I'll do some research on github later. It has almost the same specs so it will be useful.
BTW: To anyone waiting for logcat instructions I'm trying to find a simplest way to do it with the little time I have between work and football, and school coming up.
Alright guy's i finally got it past the black screen of death but i am stuck in a bootloop, if you know how to get a logcat from a non booting ROM on 4.2+ i really need to know how or get a logcat posted on this.
cm-10.2-20130924-UNOFFICIAL-primoc.zip
bradthomas127 said:
Alright guy's i finally got it past the black screen of death but i am stuck in a bootloop, if you know how to get a logcat from a non booting ROM on 4.2+ i really need to know how or get a logcat posted on this.
cm-10.2-20130924-UNOFFICIAL-primoc.zip
Click to expand...
Click to collapse
Hey man I'll post how to when I get home
Sent from my C525c using Tapatalk 4
You need to enable adb and disable secure. If you use the eng (engineering) build. Otherwise you would need the GUI up so you can allow access from the computer due to the new security constraints.
Sent from my One V using xda app-developers app
Lucky CDMA people with half working 4.3 o-o
robaho said:
You need to enable adb and disable secure. If you use the eng (engineering) build. Otherwise you would need the GUI up so you can allow access from the computer due to the new security constraints.
Click to expand...
Click to collapse
I added ro.adb.secure=0 to the default.prop a couple days ago making the ramdisk/default.prop look like this now.
Code:
ro.adb.secure=0
ro.secure=0
ro.allow.mock.location=0
ro.debuggable=1
persist.sys.usb.config=adb
I've also tried moving adbkey.pub to data/misc/adb/pub_keys in TWRP but it gets erased as soon as i boot.
Is the USB driver working, that is, can you.see a USB device using your system devices view - varies by OS
Sent from my One V using xda app-developers app
This is how I logcat on 4.3:
First off, you're going to need a WORKING android device running 4.2+
Now:
1. Plug the device into your PC
2. Go to Settings>Development and enable adb
3. When the dialogue comes up asking to trust the computer tap yes. If it doesn't appear run "adb devices" on your PC.
4. Get a root file explorer
5. In the explorer, go to \data\misc\adb and copy adb_keys to your PC. (Copy adb_keys to your Sdcard, mount phone storage, then copy to PC.)
6. Download THIS and extract all files on your PC
7. Open up the extracted directory.
8. Place adb_keys in \data\misc\adb and then run the "Run_to_build_zip.bat" file.
9. Download THIS and flash in recovery on the device you're going to logcat.
10. Copy the zip that was just created on your PC to your sdcard and flash in recovery. (Zip will be named "adb_hack_step2_**.**.**@**_**.zip" )
Reboot, adb should now be enabled and work on the PC you used.
awidawad said:
This is how I logcat on 4.3:
First off, you're going to need a WORKING android device running 4.2+
Now:
1. Plug the device into your PC
2. Go to Settings>Development and enable adb
3. When the dialogue comes up asking to trust the computer tap yes. If it doesn't appear run "adb devices" on your PC.
4. Get a root file explorer
5. In the explorer, go to \data\misc\adb and copy adb_keys to your PC. (Copy adb_keys to your Sdcard, mount phone storage, then copy to PC.)
6. Download THIS and extract all files on your PC
7. Open up the extracted directory.
8. Place adb_keys in \data\misc\adb and then run the "Run_to_build_zip.bat" file.
9. Download THIS and flash in recovery on the device you're going to logcat.
10. Copy the zip that was just created on your PC to your sdcard and flash in recovery. (Zip will be named "adb_hack_step2_**.**.**@**_**.zip" )
Reboot, adb should now be enabled and work on the PC you used.
Click to expand...
Click to collapse
Not working for me, messed with it a couple times.
bradthomas127 said:
Not working for me, messed with it a couple times.
Click to expand...
Click to collapse
Strange... I've used that method multiple times in ubuntu.
Sent from my C525c using Tapatalk 4
awidawad said:
Strange... I've used that method multiple times in ubuntu.
Click to expand...
Click to collapse
Getting boot now, just boot loops every min.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
:highfive:
bradthomas127 said:
Getting boot now, just boot loops every min.
:highfive:
Click to expand...
Click to collapse
You might need Simon's battery fix in the kernel???
Sent from my One V using xda app-developers app
robaho said:
You might need Simon's battery fix in the kernel???
Sent from my One V using xda app-developers app
Click to expand...
Click to collapse
Do you mean this one? https://github.com/bradthomas127/an...mmit/9af6efa20ece323155a853ff508563a87670e2f0
Rukin added it 4 months ago.
You did just open my eyes though, i thought i commited the SELinux stuff but just noticed i didn't on this kernel, maybe why i am having reboots and SD card is not mounting (reason for no screen shot). Thanks :good:

[KERNEL] FreshKernel V4 [3.0.101] [4.4] [EXT4/F2FS] [24-7-14]

Introducing..
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Hi everyone, i'm a 16 years old guy who lives somewhere in Italy. I started to build this kernel for myself, but since i'm feeling good using it, i'll share it with you guys too.
Forked from p-omap-android-3.0-dev (aka Ziyann's mr2 updated with OmapZoom)
Built with Linaro 4.9.1
F2FS Compatibility*
First of all, i want to thank all the developers that work on our device for the dedication they put into this.
I don't have a lot of experience, i take this as a challenge to learn things!
Features!
ARMv7+NEON Enabled!
-o3 with Link-Time, Graphite and ffast-math Optimizations!
UKSM
All Ezekeel's stuff! (Sound control, Color control, Voltage control, Battery Life eXtender, etc.)
TouchBoost from FrancoKernel
Intelli-Plug! <-- This saves A LOT of battery, so please don't post things like "ermagherd my battery is always ded fix pl0x"
3.4 Wifi and Bluetooth Drivers! (WifiAp working)
Zram
Fast Charge
GPU OC and GPU Governors
A lot of CPU Governors, I/O Schedulers and TCP Algorithms!
Dynamic Fsync!
Optimizations to RAM, CPUidle, IPv4, etc.
Butter, a lot of butter
Sonic The Hedgehog Module is built-in, because the kernel GOTTAGOFAST
-DOWNLOAD ZONE-
Stable Releases (Lastest is V5)
Bleeding Edge
-CHANGELOG-
Want a changelog? Here. More details? Bleeding Edge and Stable.
Happy Flashing!
------------------------------------------------------------------------------------------------------------------------------------------------------------
GPL: https://github.com/freshgiammi/freshgiammi_kernel_tuna
G+: https://plus.google.com/u/0/+GianmarcoRengucci​
FAQ! (I'll write them soon..)
Reserved #2
bravo! I would be very interested in trying it ... but .... my GNEX is f2fs formatted .... Could you make it f2fs?
Nautilus74 said:
bravo! I would be very interested in trying it ... but .... my GNEX is f2fs formatted .... Could you make it f2fs?
Click to expand...
Click to collapse
I've seen some F2FS commits around github on bsmitty's kernel. I'll put up an experimental kernel and see what i can do, but i can't promise anything!
The hardest part is the ramdisk since i've never touched it. I may need a couple of days but i'll keep the thread updated!
Looks promising!
New kernel in post #1 in about ten minutes! (Version 3 Revision 5)
Still a boot.img, i'm sorry
Changelog in #2.
EDIT: It is still EXT4. Had to merge some commits i was working on, now i'm going to focus on F2FS.
Is LiquidSmooth compatible? Focused on batt or perf?
Sent with love @tapa
freshgiammi said:
New kernel in post #1 in about ten minutes! (Version 3 Revision 5)
Still a boot.img, i'm sorry
Changelog in #2.
EDIT: It is still EXT4. Had to merge some commits i was working on, now i'm going to focus on F2FS.
Click to expand...
Click to collapse
For F2FS check this out:
https://github.com/arter97/f2fs-backport
also you'll need to setup defconfig file to allow F2FS.
PS: your profile on XDA has borked github URL
santi1993 said:
Is LiquidSmooth compatible? Focused on batt or perf?
Click to expand...
Click to collapse
As far as i know, it is compatible. You could do "fastboot boot boot.img" without 'flash' to just boot the kernel. A reboot wipes it away.
It is focused on stability. The battery lasts like CM11 Stock, but it's faster.
jhonnyx said:
For F2FS check this out:
https://github.com/arter97/f2fs-backport
also you'll need to setup defconfig file to allow F2FS.
PS: your profile on XDA has borked github URL
Click to expand...
Click to collapse
I'm not sure i understood. All i need to do is merge the last commits from the master branch and setup the defconfig file?
I've taken a look to Fancy repository and there are about 10 pages of commits. (I'm confused as hell now!)
About the Github URL, I didn't knew it! Thanks for telling me, i'll fix it asap and add the repo url on #1.
freshgiammi said:
As far as i know, it is compatible. You could do "fastboot boot boot.img" without 'flash' to just boot the kernel. A reboot wipes it away.
It is focused on stability. The battery lasts like CM11 Stock, but it's faster.
I'm not sure i understood. All i need to do is merge the last commits from the master branch and setup the defconfig file?
I've taken a look to Fancy repository and there are about 10 pages of commits. (I'm confused as hell now!)
About the Github URL, I didn't knew it! Thanks for telling me, i'll fix it asap and add the repo url on #1.
Click to expand...
Click to collapse
You should do a new branch on git, switch to that branch, then merge the commits, so that, if there is some mistake, you can always stash your commits and/or go back to the original branch.
http://git-scm.com/book/en/Git-Branching-Basic-Branching-and-Merging
http://git-scm.com/book/en/Git-Tools-Stashing
jhonnyx said:
You should do a new branch on git, switch to that branch, then merge the commits, so that, if there is some mistake, you can always stash your commits and/or go back to the original branch.
http://git-scm.com/book/en/Git-Branching-Basic-Branching-and-Merging
http://git-scm.com/book/en/Git-Tools-Stashing
Click to expand...
Click to collapse
Perfect, thanks a lot! I'll create a f2fs branch and put up an experimental kernel.
Can someone help me testing/booting it? I can't format my phone because I need it this week and i can't test f2fs myself until next week.
EDIT: Okay, here are the commits on the new branch. @jhonnyx can you tell me if i did anything correctly? I also enabled the F2FS on the defconfig and i'm now building.
And i got two errors, yay!
Include/trace/events/f2fs.h: In function 'ftrace_raw_event_f2fs_writepages':
include/trace/events/f2fs.h:786:1: error: 'struct writeback_control' has no member named 'for_sync'
In file included from include/trace/ftrace.h:771:0,
from include/trace/define_trace.h:96,
from include/trace/events/f2fs.h:932,
from fs/f2fs/super.c:35:
include/trace/events/f2fs.h: In function 'perf_trace_f2fs_writepages':
include/trace/events/f2fs.h:786:1: error: 'struct writeback_control' has no member named 'for_sync'
make[2]: *** [fs/f2fs/super.o] Errore 1
make[1]: *** [fs/f2fs] Errore 2
make[1]: *** Attesa per i processi non terminati....
freshgiammi said:
Perfect, thanks a lot! I'll create a f2fs branch and put up an experimental kernel.
Can someone help me testing/booting it? I can't format my phone because I need it this week and i can't test f2fs myself until next week.
EDIT: Okay, here are the commits on the new branch. @jhonnyx can you tell me if i did anything correctly? I also enabled the F2FS on the defconfig and i'm now building.
And i got two errors, yay!
Include/trace/events/f2fs.h: In function 'ftrace_raw_event_f2fs_writepages':
include/trace/events/f2fs.h:786:1: error: 'struct writeback_control' has no member named 'for_sync'
In file included from include/trace/ftrace.h:771:0,
from include/trace/define_trace.h:96,
from include/trace/events/f2fs.h:932,
from fs/f2fs/super.c:35:
include/trace/events/f2fs.h: In function 'perf_trace_f2fs_writepages':
include/trace/events/f2fs.h:786:1: error: 'struct writeback_control' has no member named 'for_sync'
make[2]: *** [fs/f2fs/super.o] Errore 1
make[1]: *** [fs/f2fs] Errore 2
make[1]: *** Attesa per i processi non terminati....
Click to expand...
Click to collapse
I'll give a check on your repo, but, it should be no problem; or maybe it's some sort of problem I had on the past but can be fixed quick.
I'll be back
jhonnyx said:
I'll give a check on your repo, but, it should be no problem; or maybe it's some sort of problem I had on the past but can be fixed quick.
I'll be back
Click to expand...
Click to collapse
Great! Feel free to send me a PM or contact me on hangouts if you need anything.
freshgiammi said:
Great! Feel free to send me a PM or contact me on hangouts if you need anything.
Click to expand...
Click to collapse
Will do sir
Meanwhile, I found the culpirit.
Please add this commit
https://github.com/chonix/freshgiammi_kernel_tuna/commit/0670fa3261a24e5a7a3d22571f48cebac850c6ab
then try compiling again
I'm available through hangouts too, If there is anything I can help, please do not hesitate to knock on the door
jhonnyx said:
Will do sir
Meanwhile, I found the culpirit.
Please add this commit
https://github.com/chonix/freshgiammi_kernel_tuna/commit/0670fa3261a24e5a7a3d22571f48cebac850c6ab
then try compiling again
I'm available through hangouts too, If there is anything I can help, please do not hesitate to knock on the door
Click to expand...
Click to collapse
Thanks a lot, that commit made the trick!
The kernel built successfully, but I'm sure the ramdisk needs some modifications.. I'll look into it tomorrow.
However, I still need some volunteers to try the kernel since i can't format my phone for a week. Anyone?
NEWS: i've merged some commits from DirtyV's ramdisk to support both EXT4 and F2FS. All i need is testing.
Kernel will be up in #1 in not more than 30 minutes.
ALSO, it's going to be a zip file if everything goes well.
EDIT: ZIP file is up! On my CM11 EXT4 formatted ROM it work flawlessly. If it boots on F2FS i'll merge the branch and start working again on the features.
Nice work!
I try f2fs kernel now!
Nautilus74 said:
Nice work!
I try f2fs kernel now!
Click to expand...
Click to collapse
Let me know if it works, so i can merge all the stuff
unfortunately my GNEX doesn't start ...

[WIP] Stock Kernel Compiled From Source

Hello Everyone,
I recently bought this device G7 play with on-going offer with MetroPCS. Since last one week, I've been getting my hands dirty on successfully building and booting the kernel from the source code provided by moto here https://github.com/MotorolaMobilityLLC/kernel-msm/releases/tag/MMI-PPYS29.105-134-7
I would like to share with you all my progress currently.
Working:
Boots
Touch works
Not Working:
Camera
Baseband (radio)
A lot more
Screenshot :
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
I will update my progress here and release it once I manage get around few major issues and also I'm working on building TWRP for our device from source.
Sorry for my ignorance, but what does this mean for the g7 play development?, Thnx
Hello, is this 32bit or 64bit?
brickhayabusa said:
Sorry for my ignorance, but what does this mean for the g7 play development?, Thnx
Click to expand...
Click to collapse
I will try to build a functional TWRP, custom kernel and maybe even a ROM.
Electimon said:
Hello, is this 32bit or 64bit?
Click to expand...
Click to collapse
It is a 64 bit build
kD said:
I will try to build a functional TWRP, custom kernel and maybe even a ROM.
It is a 64 bit build
Click to expand...
Click to collapse
Do you have telegram?
@kD
You might be able to get LTE working by reflashing the modem and wiping modemst1 & 2. Your kernel might actually get around the security problems we have with installing twrp on stock as well. I'd love to do some testing with it. If you feel like dropping me a link, please send me a pm.
Spaceminer said:
@kD
You might be able to get LTE working by reflashing the modem and wiping modemst1 & 2. Your kernel might actually get around the security problems we have with installing twrp on stock as well. I'd love to do some testing with it. If you feel like dropping me a link, please send me a pm.
Click to expand...
Click to collapse
Sent a PM to you.
Thanks for your work!!!
A custom kernel for this device will be amazing! Go on!!
Using this kernel im going to build halium-boot eta s0n
This is amazing!! Please continue, you are a hope for us and share your progress with us
nothing new?
@kD
I don't know if you saw this but one of the devs from Motorola finally updated the build process. You'd have to adapt some minor things like folder names, and the -j number but it should work. I can't believe how stupidly complicated building the kernel modules are. No body would remember this line for line, and they waited like a year to tell us this crap.
https://github.com/MotorolaMobilityLLC/readme/blob/master/MMI-PPYS29.105-134-7.txt
Spaceminer said:
@kD
I don't know if you saw this but one of the devs from Motorola finally updated the build process. You'd have to adapt some minor things like folder names, and the -j number but it should work. I can't believe how stupidly complicated building the kernel modules are. No body would remember this line for line, and they waited like a year to tell us this crap.
https://github.com/MotorolaMobilityLLC/readme/blob/master/MMI-PPYS29.105-134-7.txt
Click to expand...
Click to collapse
Seems like great news! When we can get a 64 bit OS running ill make a zip to convert from this 64 bit rom to 64 bit halium 9!
Hey man! Good work! Any news in your 64bit kernel?
@kD
How do you get past this part compiling the kernel?
Code:
( perl -le 'print \"# This file was automatically generated from:\n#\t\" . join(\"\n#\t\", @ARGV) . \"\n\" ~/android/kernel/msm-4.9/arch/arm/configs/msm8953-perf_defconfig ~/android/kernel/msm-4.9/arch/arm/configs/ext_config/moto-msm8953.config ~/android/kernel/msm-4.9/arch/arm/configs/ext_config/debug-msm8953.config ~/android/kernel/msm-4.9/arch/arm/configs/ext_config/debug-msm8953_32.config ~/android/kernel/msm-4.9/arch/arm/configs/ext_config/debug-sdm632-channel.config ~/android/kernel/msm-4.9/arch/arm/configs/ext_config/moto-msm8953_32.config ~/android/kernel/msm-4.9/arch/arm/configs/ext_config/moto-sdm632-channel.config && cat ~/android/kernel/msm-4.9/arch/arm/configs/msm8953-perf_defconfig ~/android/kernel/msm-4.9/arch/arm/configs/ext_config/moto-msm8953.config ~/android/kernel/msm-4.9/arch/arm/configs/ext_config/debug-msm8953.config ~/android/kernel/msm-4.9/arch/arm/configs/ext_config/debug-msm8953_32.config ~/android/kernel/msm-4.9/arch/arm/configs/ext_config/debug-sdm632-channel.config ~/android/kernel/msm-4.9/arch/arm/configs/ext_config/moto-msm8953_32.config ~/android/kernel/msm-4.9/arch/arm/configs/ext_config/moto-sdm632-channel.config ) > ~/android/out/target/product/generic/obj/kernel/msm-4.9/mapphone_defconfig || ( rm -f ~/android/out/target/product/generic/obj/kernel/msm-4.9/mapphone_defconfig && false )
It originally gave me an error because of an extra ' symbol in there. Upon removing it, the command goes through, but... It drops me into some kind of "perl shell" that I can't get out of to enter the next commands. I almost have a script ready to auto build our kernel, but that perl command is holding up progress.
Spaceminer said:
@kD
How do you get past this part compiling the kernel?
Code:
( perl -le 'print \"# This file was automatically generated from:\n#\t\" . join(\"\n#\t\", [user=2467029]@argv[/user]) . \"\n\" ~/android/kernel/msm-4.9/arch/arm/configs/msm8953-perf_defconfig ~/android/kernel/msm-4.9/arch/arm/configs/ext_config/moto-msm8953.config ~/android/kernel/msm-4.9/arch/arm/configs/ext_config/debug-msm8953.config ~/android/kernel/msm-4.9/arch/arm/configs/ext_config/debug-msm8953_32.config ~/android/kernel/msm-4.9/arch/arm/configs/ext_config/debug-sdm632-channel.config ~/android/kernel/msm-4.9/arch/arm/configs/ext_config/moto-msm8953_32.config ~/android/kernel/msm-4.9/arch/arm/configs/ext_config/moto-sdm632-channel.config && cat ~/android/kernel/msm-4.9/arch/arm/configs/msm8953-perf_defconfig ~/android/kernel/msm-4.9/arch/arm/configs/ext_config/moto-msm8953.config ~/android/kernel/msm-4.9/arch/arm/configs/ext_config/debug-msm8953.config ~/android/kernel/msm-4.9/arch/arm/configs/ext_config/debug-msm8953_32.config ~/android/kernel/msm-4.9/arch/arm/configs/ext_config/debug-sdm632-channel.config ~/android/kernel/msm-4.9/arch/arm/configs/ext_config/moto-msm8953_32.config ~/android/kernel/msm-4.9/arch/arm/configs/ext_config/moto-sdm632-channel.config ) > ~/android/out/target/product/generic/obj/kernel/msm-4.9/mapphone_defconfig || ( rm -f ~/android/out/target/product/generic/obj/kernel/msm-4.9/mapphone_defconfig && false )
It originally gave me an error because of an extra ' symbol in there. Upon removing it, the command goes through, but... It drops me into some kind of "perl shell" that I can't get out of to enter the next commands. I almost have a script ready to auto build our kernel, but that perl command is holding up progress.
Click to expand...
Click to collapse
Hi @Spaceminer.
I'm a new XDA Developers Community member. English is not a my first language. I'm a Software Engineer in my country and I'm 23 years old.
Even so, I'm going to try to support you with anything. I don't know a lot of Android, I've done some Android applications and I know a very little about root, recovery and custom kernels.
I don't know perl, but I've seen that you have forgotten to write ' at the end of this part:
join("\n#\t", @argv) . "\n"
PD: I'm from Mexico. Greetings.
ErikAlvarez00 said:
Hi @Spaceminer.
I'm a new XDA Developers Community member. English is not a my first language. I'm a Software Engineer in my country and I'm 23 years old.
Even so, I'm going to try to support you with anything. I don't know a lot of Android, I've done some Android applications and I know a very little about root, recovery and custom kernels.
I don't know perl, but I've seen that you have forgotten to write ' at the end of this part:
join("\n#\t", @argv) . "\n"
PD: I'm from Mexico. Greetings.
Click to expand...
Click to collapse
That explains the problem. I removed one of those, because it caused an error, but it really needed to be moved to the end... Thank you so much!
What's wrong with this command?
I need help with the syntax on this. There's an error somewhere and I can't find it, so I can't finish building a 64bit kernel. I've tried moving the ' symbol to a few places and nothing works. I'm very lost on this part.
Code:
( perl -le 'print \"# This file was automatically generated from:\n#\t\" . join(\"\n#\t\", [user=2467029]@argv[/user]) . \"\n\"' kernel/msm-4.9/arch/arm/configs/msm8953-perf_defconfig kernel/msm-4.9/arch/arm/configs/ext_config/moto-msm8953.config kernel/msm-4.9/arch/arm/configs/ext_config/debug-msm8953.config kernel/msm-4.9/arch/arm/configs/ext_config/debug-msm8953_32.config kernel/msm-4.9/arch/arm/configs/ext_config/debug-sdm632-channel.config kernel/msm-4.9/arch/arm/configs/ext_config/moto-msm8953_32.config kernel/msm-4.9/arch/arm/configs/ext_config/moto-sdm632-channel.config && cat kernel/msm-4.9/arch/arm/configs/msm8953-perf_defconfig kernel/msm-4.9/arch/arm/configs/ext_config/moto-msm8953.config kernel/msm-4.9/arch/arm/configs/ext_config/debug-msm8953.config kernel/msm-4.9/arch/arm/configs/ext_config/debug-msm8953_32.config kernel/msm-4.9/arch/arm/configs/ext_config/debug-sdm632-channel.config kernel/msm-4.9/arch/arm/configs/ext_config/moto-msm8953_32.config kernel/msm-4.9/arch/arm/configs/ext_config/moto-sdm632-channel.config ) > $kernel_out_dir/mapphone_defconfig || ( rm -f $kernel_out_dir/mapphone_defconfig && false )
Edit: I think that I found the solution. It should actually be this according to build instructions for other Motorola devices.
/bin/bash -c "( perl -le 'print "# This file was automatically generated from:\n#\t" . join("\n#\t", @argv) . "\n"'

Categories

Resources