Porting 3.10 kernel to i9505 - Galaxy S 4 Developer Discussion [Developers-Only]

Google has recently released the 3.10 linux kernel for Android. and CodeAurora has also got it. I was wondering if it's realistic to port in this phase. I tried to but I failed hard lol. Main reason to port the 3.10 series is that it should have a great battery life. I'm not sure whether it will run on KitKat since it's supposed to be for Android 5.0.
Links:
Google Kernel: https://android.googlesource.com/kernel/common.git/+/experimental/android-3.10
CodeAurora Kernel: https://www.codeaurora.org/cgit/quic/la/kernel/msm-3.10
Anyone else attempted? If anyone could give me some more info about this I would be very happy!

Thread cleaned
How many times do we have to say it?
Keep this damn soap opera drama OFF XDA and stick to your Google +
How rude to bring all this crap in here to the OP's discussion
Next talk of secret kernels or banned members will be...trouble.
If you have no respect for XDA, then leave XDA...please!
Thank you for your cooperation
Friendly Neighborhood Senior Moderator

From my experience i know that binary compatibility between linux kernel versions (even between minor versions) is the latest thing developers care about. Even if you make this kernel work on i9505 i doubt u will be able to use binaries (those /system/lib/*.so files) from any existing ROM and thus u won't be able to make ROM with this kernel.
Need to wait when Samsung will move to this kernel version, but i'm affraid it won't happen on any existing phone. Usually, Samsung stick on the kernel version phone launched.

sorg said:
From my experience i know that binary compatibility between linux kernel versions (even between minor versions) is the latest thing developers care about. Even if you make this kernel work on i9505 i doubt u will be able to use binaries (those /system/lib/*.so files) from any existing ROM and thus u won't be able to make ROM with this kernel.
Need to wait when Samsung will move to this kernel version, but i'm affraid it won't happen on any existing phone. Usually, Samsung stick on the kernel version phone launched.
Click to expand...
Click to collapse
It's possible that CAF updated their repos or AOSP for the 3.10 kernel. There's references to 3.12 at master in bionic.
broodplank1337, what happens if you build a recovery and fastboot boot that?

xboxfanj said:
It's possible that CAF updated their repos or AOSP for the 3.10 kernel. There's references to 3.12 at master in bionic.
Click to expand...
Click to collapse
Doesn't AOSP use any libraries from stock ROM?
I didn't try AOSP, but CM usually required many libraries from stock ROM last time i've tried (couple years ago).

sorg said:
Doesn't AOSP use any libraries from stock ROM?
I didn't try AOSP, but CM usually required many libraries from stock ROM last time i've tried (couple years ago).
Click to expand...
Click to collapse
Yeah, there's a bunch of proprietary files specific to the SOC.

It's not as simple as the code existing on CAF, the device branch for your specific SoC needs it as well.
Of course, one could do this manually, but the effort and skills required is not trivial.

LLStarks said:
It's not as simple as the code existing on CAF, the device branch for your specific SoC needs it as well.
Of course, one could do this manually, but the effort and skills required is not trivial.
Click to expand...
Click to collapse
True. Caf does have some 3.10 device branches but none for 8960/8064, since those are not supported. Not sure why since they do support weaker chips such as 8226 and 8610. They do have some ramdisk changes for 3.10, but even with all that, I have no adb and no ramconsole on the optimus g (nexus 4).
Sent from my Optimus G using xda app-developers app

The only things I'd really want out of a >3.4 kernel is dma_buf support, the msm drm, and Freedreno
Maybe it would be easier to backport these features since by themselves they go a long way to making desktop Linux on our phones easier

LLStarks said:
The only things I'd really want out of a >3.4 kernel is dma_buf support, the msm drm, and Freedreno
Maybe it would be easier to backport these features since by themselves they go a long way to making desktop Linux on our phones easier
Click to expand...
Click to collapse
my s3 3.4-drm kernels supports it - patches came from here ==>
(s4 kernel is a WIP)
https://github.com/freedreno/kernel-msm/

That stuff's outdated
Real magic is here: http://cgit.freedesktop.org/~robclark/linux/refs/heads
Additionally, I wonder if anyone has attempted to boot Linux off the Hexagon DSP which is a pretty much like a 2nd CPU in your phone that's waiting to be used

LLStarks said:
That stuff's outdated
Real magic is here: http://cgit.freedesktop.org/~robclark/linux/refs/heads
Additionally, I wonder if anyone has attempted to boot Linux off the Hexagon DSP which is a pretty much like a 2nd CPU in your phone that's waiting to be used
Click to expand...
Click to collapse
We have offloaded all audio processing and mp3 decoding to the DSP. Thus allowing all 4 primary cores to sleep while playing audio. Media player app itself may use CPU cycles for UI updates when the screen is on. Working on WMA decoding...
Sent from my GT-I9505G using XDA Premium 4 mobile app

please make this kernel work with miui rom!

Related

Kexec-hardboot patch

In this post, I would like to explain what kexec-hardboot patch is.
@kernel developers: I would like to ask you to merge this patch to your kernels, because it is essential part of MultiROM - it allows me to boot any kernel without changing the boot partition. I realize that it is no small request, but the patch is not big, touches relatively stable parts of kernel and should not cause any problems. Thank you.
What is kexec?
It is syscall of Linux kernel, which allows you to boot another Linux kernel without restarting the device - "Linux boots itself". The functionality is equivalent to fastboot -c *cmdline* boot zImage initrd.img, but without PC and fastboot. It is fairly known thing, so more info at wikipedia and man kexec.
Standard kexec call unfortunatelly does not work on Nexus 4. It freezes somewhere, and it is very difficult to find out where - probably some of the drivers are not shut down/re-initialized properly, it is a commong thing among Android devices, which is why kexec-hardboot was made.
What is the difference between normal and hardboot exec?
Kexec-hardboot patch adds a real device restart to that process, so that all the drivers can be properly reinitialized. It stores new kernel to RAM, reboots the device as usual, and kernel from boot partition immediately jumps to the one which was stored to RAM before reboot.
Unlike grouper's kexec-hardboot patch, this one only requires the host kernel to be patched. This is one of the improvements I made, and I think it is pretty significant.
To sumarize the process:
kexec --load-hardboot.... is called and kernel it loaded into RAM.
kexec -e is called. Special info is written to memory (to area which is not overwritten on reboot) and the device is rebooted.
After reboot, very early in the boot process, kernel checks if that special info is present in RAM and if so, it loads new kernel from RAM and jumps to it.
Kexecd' kernel starts and boots.
For more info, read the original thread.
Patches:
Kernel patch: https://gist.github.com/Tasssadar/6766757, 4.3 AOSP kernel repo, cm 10.2 kernel repo
This is the kernel patch. Only the host kernel needs to be patched.
Related CONFIG options:
CONFIG_KEXEC=y
CONFIG_KEXEC_HARDBOOT=y
CONFIG_ATAGS_PROC=y
All these options must be enabled.​
Userspace kexec binary: https://github.com/Tasssadar/kexec-tools
I had to change some things in kexec userspace binary because of some kernel bugs, complete description is in that repository. You can get statically built binary at https://github.com/Tasssadar/multirom/blob/master/install_zip/prebuilt-installer/multirom/kexec​
Usage:
Once you have the kernel patches and kexec userspace binary in place, just run following command to boot into new kernel:
Code:
kexec --load-hardboot zImage --initrd=initrd.img --mem-min=0x85000000 --command-line="$(cat /proc/cmdline)"
kexec -e
Note the command line parameter - cmdline from bootloader is not added automatically, you have to put it there by yourself.
Authors:
This patch was made by Mike Kasick for Samsung Epic 4G. Since that, it was ported to several devices, one of them is Asus Transformer TF201 - I used patch from TF201 and modified it a bit (basically just changed few SoC specific constants). People at #ubuntu-arm helped me out with that, thanks.
For flo, I've improved the patch a bit - only the host needs to be patched now and I also fixed a bug with /proc/atags not reading all tags.
Thanks, added.
Actual kexec testing would have to go to kexec users after kernel passes normal use testing.
Also merged, thanks Tassadar!
I will be merging.... Thank you
Sweet..time.
Sent from my Nexus 4 using xda app-developers app
hope my previous port over to mako helped you
@ramgear
Sent from my Nexus 4 using Tapatalk 4
Added to my cm10.2 caf kernel.
thanks a lot
what would be the benefit for end user? Or is it just for devs to try kernels faster?
Sent from teh void
asim0 said:
what would be the benefit for end user? Or is it just for devs to try kernels faster?
Sent from teh void
Click to expand...
Click to collapse
The primary benefit is so that users can run Multi-ROM and have different kernel based ROMs.
Is it possible to find a nice German guy who can request on http://www.android-hilfe.de/custom-...ss15j-jwr66v-hells-core-b38-19-09-2013-a.html to add this patch to hellscore ?
Thanks
-=-=-
hellsgod Pm-ed , let`s hope
Sent from my Nexus 4 using Tapatalk 2
xanthrax said:
Is it possible to find a nice German guy who can request on http://www.android-hilfe.de/custom-...ss15j-jwr66v-hells-core-b38-19-09-2013-a.html to add this patch to hellscore ?
Thanks
Sent from my Nexus 4 using Tapatalk 2
Click to expand...
Click to collapse
+1 on that mate
I already asked the dev to implement this Patch. He wants to implement this patch in some later builds, to be sure the patch works correctly.
Hellsgood said that the patch will be implemented on v40 ! :good:
Merged - Thank you Tasssadar
hells
any1 found 4.2.2 kernel that has kexec?
aqsede said:
any1 found 4.2.2 kernel that has kexec?
Click to expand...
Click to collapse
Check multirom thread. Tasssadar posted one there.
http://forum.xda-developers.com/showthread.php?p=46596551
Sent from my Nexus 4 using Tapatalk
@Tasssadar
I don't know if you're around this thread much anymore, but would it be possible to implement this patch alone in another model of phone's kernels?
I have an Optimus G which is almost identical to the N4 and am trying to read as much as I can on this patch but am not finding if it is device specific, and if it is, how much needs to be changed to be used on a different device (even if it is almost the same phone).
I know there are kernels that have this patch enabled but I don't know where it came from if it's not yours. I have been told it is not possible with a stock based kernel for the O.G. but I see you have some stock kernels for the N4.
I know almost is not exact, but I think so much of them are the same that it doesn't normally take much. Thank you for your time and work put into this.
dopy25 said:
@Tasssadar
I don't know if you're around this thread much anymore, but would it be possible to implement this patch alone in another model of phone's kernels?
I have an Optimus G which is almost identical to the N4 and am trying to read as much as I can on this patch but am not finding if it is device specific, and if it is, how much needs to be changed to be used on a different device (even if it is almost the same phone).
I know there are kernels that have this patch enabled but I don't know where it came from if it's not yours. I have been told it is not possible with a stock based kernel for the O.G. but I see you have some stock kernels for the N4.
I know almost is not exact, but I think so much of them are the same that it doesn't normally take much. Thank you for your time and work put into this.
Click to expand...
Click to collapse
the kernel part itself you probably wont need to modify the patch, however you probably will need to change the offssets in multirom itself. if i recall, there is a guide on how to port multirom for other devices
opssemnik said:
the kernel part itself you probably wont need to modify the patch, however you probably will need to change the offssets in multirom itself. if i recall, there is a guide on how to port multirom for other devices
Click to expand...
Click to collapse
Thank you but I am already using multirom on my phone (Lg Optimus G on Sprint). It works like a champ, but I am trying to see if it can be applied to a stock rom. I am having issues with stock roms not using already patched kernels and would like to know if it is possible to use the patch mentioned here on another phone. The N4 and Optimus G are basically the same phone so I thought it might work.

Needs USB OTG with Charging?

So I'm using one of the kitkat roms and I can't seem to get USB OTG and USB charging to work at the same time? Is this just not possible? Or do I need to do something special? I bought one of the OTG Y cables that allows the hookup of a charger and a USB device and it's still no go, it'll show it's charging for a minute or so after a USB device is mounted but then the charging icon goes away?
Someone had mentioned to me that a custom kernel may be needed?
Yep you would need a custom kernel.
ThatFrigginAzn said:
Yep you would need a custom kernel.
Click to expand...
Click to collapse
Any documentation around on how to build this kernel to do what I need?
Hdale85 said:
Any documentation around on how to build this kernel to do what I need?
Click to expand...
Click to collapse
Look in my signature for a guide. For the specifics, you will need to find a kernel on github that has what you are looking for and port it to your build. My roll your own kernel guide will get you started. You will need a partition with Debian Linux to complete the guide. I suggest AntiX.
sleekmason said:
Look in my signature for a guide. For the specifics, you will need to find a kernel on github that has what you are looking for and port it to your build. My roll your own kernel guide will get you started. You will need a partition with Debian Linux to complete the guide. I suggest AntiX.
Click to expand...
Click to collapse
Can it be a kernel from another device? or does it need to be similar?
Also how about Ubuntu? I'm familiar with Ubuntu, but I'll look at AntiX
From what I gather I only need USB host mode so that the USB port is not outputting power.
Hdale85 said:
Can it be a kernel from another device? or does it need to be similar?
Also how about Ubuntu? I'm familiar with Ubuntu, but I'll look at AntiX
From what I gather I only need USB host mode so that the USB port is not outputting power.
Click to expand...
Click to collapse
Ubuntu should work, though the names of the dependencies might be off. Easier to just partition off and install Antix. Damn good distro. I went with stable for the guide, but you can easily switch later to testing or unstable by changing up the sources list.
For what you need, you may find it as an option when adjusting the menuconfig during the make process.
The second post in the thread tells a bit about changes necessary for the 500 device, as I originally made the guide for the 510.
There are currently two other kernels for the 500 that were successfully made using the guide. One of them also has a decent install through recovery script
sleekmason said:
Ubuntu should work, though the names of the dependencies might be off. Easier to just partition off and install Antix. Damn good distro. I went with stable for the guide, but you can easily switch later to testing or unstable by changing up the sources list.
For what you need, you may find it as an option when adjusting the menuconfig during the make process.
The second post in the thread tells a bit about changes necessary for the 500 device, as I originally made the guide for the 510.
There are currently two other kernels for the 500 that were successfully made using the guide. One of them also has a decent install through recovery script
Click to expand...
Click to collapse
What's the difference between the 500 and 510?
Hdale85 said:
What's the difference between the 500 and 510?
Click to expand...
Click to collapse
The 510 is the Google play edition, whereas the 500 is the lg version. If you didn't buy it through the play store, you have the 500.
The best way to learn would be to follow the guide all the way through, copy and paste, and then figure out what you are doing while you are doing it!
Also, this should be posted in the questions thread rather than development if a moderator would be so kind to move this post.
Oh ok the 510 is the google play edition. Either kernel should work right? They are the same device... I'm not running the stock rom as I wanted a basic 4.4 rom as this is eventually going in my car.
Well you posted right before me lol, but I made the post here because I know there are a couple other people looking for the same thing so I was hoping we could develop a kernel for everyone.
Hdale85 said:
Oh ok the 510 is the google play edition. Either kernel should work right? They are the same device... I'm not running the stock rom as I wanted a basic 4.4 rom as this is eventually going in my car.
Click to expand...
Click to collapse
Unfortunately no, there are some differences, mostly with naming, but that can be important.
There are two parts to the boot image for our device, the ramdisk, and the kernel itself. The ramdisk plays a key roll in deciding certain options for the device, while the kernel controls more common options you may find on any device.
Most of the install from recovery scripts, repack the kernel zimage with the existing ramdisk from the device. But this doesn't really matter either.
All of the multi device kernels tend to be larger than necessary and have problems they shouldn't.
Long story short is that each device has it's own kernel source, which has supposedly been optimized for its device. This isn't exactly true, and the list of changes I've made to better the 510 device's kernel is astounding.
If you follow my guide, all of this will become apparent.
Alright thanks I'll look over it.
So what makes the510 different?? Is the firmware different? Obviously they didn't change the hardware so could one somehow convert the 500 to a 510? Only reason I'm interested is because some of that stuff you said doesn't work on the 500 it seems? Such as fastboot?
Hdale85 said:
So what makes the510 different?? Is the firmware different? Obviously they didn't change the hardware so could one somehow convert the 500 to a 510? Only reason I'm interested is because some of that stuff you said doesn't work on the 500 it seems? Such as fastboot?
Click to expand...
Click to collapse
Lg specific drivers mostly. Fastboot requires an unlocked boot loader, which the V500 does not have. An exploit is used to bypass the boot loader on the 500. Loki.
The gpe is pure android, with just a couple of perks thrown in, as it uses an Lg platforms. Our device , that being the V510 most closely resembles the Nexus 4 (Mako) version, and was probably based off that device. The items I have added to the 510 kernel as enhancements, mostly came from a mako kernel with the rest simply being tweak corrections to the existing source code.
Those changes alone made huge improvements in performance and battery.
sleekmason said:
Lg specific drivers mostly. Fastboot requires an unlocked boot loader, which the V500 does not have. An exploit is used to bypass the boot loader on the 500. Loki.
The gpe is pure android, with just a couple of perks thrown in, as it uses an Lg platforms. Our device , that being the V510 most closely resembles the Nexus 4 (Mako) version, and was probably based off that device. The items I have added to the 510 kernel as enhancements, mostly came from a mako kernel with the rest simply being tweak corrections to the existing source code.
Those changes alone made huge improvements in performance and battery.
Click to expand...
Click to collapse
Yea I just found the long thread about converting, its strange they can't seem to get it to work? Quite strange... Well I'll have to research the other bits I guess from others that have made V500 kernels or something.
maybe this commit is what you need
https://github.com/oubeichen/android_kernel_lge_v500/commit/ee86db750adf2bb7b4f7b988ba6937d92551373b
I havent tested yet but this is ported from a nexus4 kernel thread. v500 and nexus4 have the same power management ic
Sent from my LG-V500 using XDA Premium 4 mobile app
oubeichen said:
maybe this commit is what you need
https://github.com/oubeichen/android_kernel_lge_v500/commit/ee86db750adf2bb7b4f7b988ba6937d92551373b
I havent tested yet but this is ported from a nexus4 kernel thread. v500 and nexus4 have the same power management ic
Sent from my LG-V500 using XDA Premium 4 mobile app
Click to expand...
Click to collapse
If anybody wants this, I'll compile it into the V510. Looks pretty straightforward. Thank you for the link.
Hdale85 said:
Well you posted right before me lol, but I made the post here because I know there are a couple other people looking for the same thing so I was hoping we could develop a kernel for everyone.
Click to expand...
Click to collapse
Indeed! :fingers-crossed:
treetop777 said:
Indeed! :fingers-crossed:
Click to expand...
Click to collapse
I'm going to take a stab at a custom kernel, but I have to setup linux on my desktop again so I'm not sure when I'll get around to it lol. Might be able to this week sometime.
If I can't get USB Host mode with charging enabled I'm going to have to look into a wireless HD solution or something, and even then that won't fix the setup I wanted to use for high end sound.
news ????

can i use different kernel

I have a chinese tablet I ported a ROM for that tablet I have flashed the ported ROM but now I am having bootloop because i don't have the kernel so can I use kernel from different device having same CPU?
You will have to edit the kernel. Each devices kernel is built just for that device. That is why there is no universal kernel.
zelendel said:
You will have to edit the kernel. Each devices kernel is built just for that device. That is why there is no universal kernel.
Click to expand...
Click to collapse
I can't figure out why there doesn't exist an universal kernel. Which parts of kernel should be modified or added for a specific device?
JasonKidd said:
I can't figure out why there doesn't exist an universal kernel. Which parts of kernel should be modified or added for a specific device?
Click to expand...
Click to collapse
That's because each device has different hardware and is programmed differently. Same thing goes for Linux. The kernel that works for my setup won't work on yours.
To be honest I have no idea. You will have to rip the kernel apart and fix the errors one by one. Most likely start with the graphics drivers and such. Their are great tut all over the site.
The lack of kernel source is one well known issue of China based devices.
zelendel said:
That's because each device has different hardware and is programmed differently. Same thing goes for Linux. The kernel that works for my setup won't work on yours.
To be honest I have no idea. You will have to rip the kernel apart and fix the errors one by one. Most likely start with the graphics drivers and such. Their are great tut all over the site.
The lack of kernel source is one well known issue of China based devices.
Click to expand...
Click to collapse
Thanks for your instant response. I think the HAL of android is aimed to solve the problem of compatibility of different devices. But the vendor must open thier souce of kernel if they modified it.
Can't we put all specific drivers at HAL?
JasonKidd said:
Thanks for your instant response. I think the HAL of android is aimed to solve the problem of compatibility of different devices. But the vendor must open thier souce of kernel if they modified it.
Can't we put all specific drivers at HAL?
Click to expand...
Click to collapse
No because they will conflict with each other. Yes the vendor must open the source. You are gonna be pretty stuck without kernel source for the device.

[Dev]AOSP/CM Porting Discussion

In the interest of keeping this topic easy to follow, lets keep the posts developer/development related. Off topic posts and questions will likely be reported. Warning From A Moderator: http://forum.xda-developers.com/showthread.php?p=64117749
Hello everyone,
This thread is for discussing, and furthering the development of aosp/cm for our devices. I and most others believe it is in the best interest of getting the port done if we all collaborate on it. I will try to update this op and post relevant information as it becomes available.
Cheers!
CM13 Working Repo
https://github.com/7420dev
Current Goals: Listed In Order Of Priority
1.) Fixing The Various Drivers(camera,etc.)
2.) Misc. Bug Fixing
Current Status:
Open Source Gralloc in testing. Appears to be working properly.(Screen Works)
List Of Working Drivers:
-WiFi
-GPS
-AP Hotspot
-Basic 2D Graphics
-GPS
-LED
-MTP
-Sound
-BT
-Texting(SMS/MMS)
-Mobile Data
-Telephony
Here's a video from @arter97 booting cm using @tdcfpp gralloc:
https://youtu.be/fv0I45HtgtQ
Donating:
If you wish to donate, please donate to the people putting the most effort into this project! To make it easier these are the top two currently.
@tdcfpp and @sktjdgns1189 and you can donate to him here: https://t.co/sf7R69JYqx tdcfpp is working extremely hard on porting gralloc, and making excellent progress. Sktjdgns1189 is working on hard on fixing various driver issues. So far he's fixed telephony, sound and WiFi to name a few. I will try to update this as more people contribute!
Do not ask for etas or test builds!
It will happen eventually, but it will be laggy, and buggy. There is no point, if people wanted AOSP or CM, they shouldn't get a Samsung/Exynos device.
Is posible to port meizu pro 5 rom wich have same soc aas galaxy s6.
Rekan_ said:
It will happen eventually, but it will be laggy, and buggy. There is no point, if people wanted AOSP or CM, they shouldn't get a Samsung/Exynos device.
Click to expand...
Click to collapse
I would be surprised if it was laggy. Buggy, most likely, but laggy I don't think so. I've used aosp on other Samsung devices and it was always faster than TW. I didn't buy my s6 with the expectation of aosp, but if it is possible, I would definitely like to try it. The exynos 7420 is an absolute beast, and if the 810 can run the nexus like butter, imagine what the 7420 could do.
kiko3 said:
Is posible to port meizu pro 5 rom wich have same soc aas galaxy s6.
Click to expand...
Click to collapse
It could be possible. It will be interesting to see when the source comes out.
Sent from my SM-G925K using XDA Free mobile app
Xileforce said:
I would be surprised if it was laggy. Buggy, most likely, but laggy I don't think so. I've used aosp on other Samsung devices and it was always faster than TW. I didn't buy my s6 with the expectation of aosp, but if it is possible, I would definitely like to try it. The exynos 7420 is an absolute beast, and if the 810 can run the nexus like butter, imagine what the 7420 could do.
Click to expand...
Click to collapse
Probably the older Samsung devices had their sources released and this phones sources haven't been.
And yeah, I had a smooth experience with my S4 and S3 with AOSP
Pure Android 6.0 on galaxy tab S is not laggy at all! it's so smooth compared to touchwizz. On S6 it will literally flying
I don't know anything about how to achieve this.
But I found the Meizu MX Pro 5 firmware (Which have the same chip as s6)
download.meizu.com/Firmware/Flyme/PRO_5/4.5.4.1/cn/20151022054017/9e3d5077/update.zip
Hope it helps
I know the end goal is to be able to compile Android for the Galaxy S6 from scratch, but I was wondering if it would be technically possible to create some sort of hybrid version. Although a complete AOSP version would be amazing, I believe a lot of users would be happy if someone could take the current kernel based on Samsung sources, so everything around boot and driver/hardware initialization should work, and put some version of the AOSP interface on top of that. Similar to how the Google Play Editions used to work. Is that in any way feasible?
woeds said:
I know the end goal is to be able to compile Android for the Galaxy S6 from scratch, but I was wondering if it would be technically possible to create some sort of hybrid version. Although a complete AOSP version would be amazing, I believe a lot of users would be happy if someone could take the current kernel based on Samsung sources, so everything around boot and driver/hardware initialization should work, and put some version of the AOSP interface on top of that. Similar to how the Google Play Editions used to work. Is that in any way feasible?
Click to expand...
Click to collapse
One of the things I have done is to take a hal library and substitute it on stock with an open source one. That have worked on the i9300 with gralloc.
---------- Post added at 08:29 AM ---------- Previous post was at 08:27 AM ----------
One thing I would need from our kernel devs is a dual boot kernel. Would it be possible @arter97?
tdcfpp said:
One of the things I have done is to take a hal library and substitute it on stock with an open source one. That have worked on the i9300 with gralloc.
---------- Post added at 08:29 AM ---------- Previous post was at 08:27 AM ----------
One thing I would need from our kernel devs is a dual boot kernel. Would it be possible @arter97?
Click to expand...
Click to collapse
Haha
I've been dualbooting my S6 since my kernel's debut.
This is a bit hacky, but it's working since S3 days.
This will give you a bit of an idea how it works :
https://bitbucket.org/arter97/andro...unt.sh?at=g920fi&fileviewer=file-view-default
First time I spun a CM build from bmc08gt sources, I dualbooted it with Touchwiz intact.
Obviously, ramdisk is not compatible. So to boot different ROMs, different boot.img would be needed but it's not a big deal (at least for me).
Even using the recovery as the handy multiboot solution is quite nice since I'd say the actual recovery won't be much needed during development.
BOOT = Touchwiz, RECOVERY = CM.
arter97 said:
Haha
I've been dualbooting my S6 since my kernel's debut.
This is a bit hacky, but it's working since S3 days.
This will give you a bit of an idea how it works :
https://bitbucket.org/arter97/andro...unt.sh?at=g920fi&fileviewer=file-view-default
First time I spun a CM build from bmc08gt sources, I dualbooted it with Touchwiz intact.
Obviously, ramdisk is not compatible. So to boot different ROMs, different boot.img would be needed but it's not a big deal (at least for me).
Even using the recovery as the handy multiboot solution is quite nice since I'd say the actual recovery won't be much needed during development.
BOOT = Touchwiz, RECOVERY = CM.
Click to expand...
Click to collapse
Well, I don't want to re-invent the wheel. Is it possible to dual boot with your s6 kernel?
tdcfpp said:
Well, I don't want to re-invent the wheel. Is it possible to dual boot with your s6 kernel?
Click to expand...
Click to collapse
By flashing the kernel each time, yes.
(Or using RECOVERY as a second kernel)
arter97 said:
Haha
I've been dualbooting my S6 since my kernel's debut.
This is a bit hacky, but it's working since S3 days.
This will give you a bit of an idea how it works :
https://bitbucket.org/arter97/andro...unt.sh?at=g920fi&fileviewer=file-view-default
First time I spun a CM build from bmc08gt sources, I dualbooted it with Touchwiz intact.
Obviously, ramdisk is not compatible. So to boot different ROMs, different boot.img would be needed but it's not a big deal (at least for me).
Even using the recovery as the handy multiboot solution is quite nice since I'd say the actual recovery won't be much needed during development.
BOOT = Touchwiz, RECOVERY = CM.
Click to expand...
Click to collapse
Couldn't we use an implementation of anykernel to allow ramdisk compatibility with cm and tw at the same time?
Xileforce said:
Couldn't we use an implementation of anykernel to allow ramdisk compatibility with cm and tw at the same time?
Click to expand...
Click to collapse
Multibooting with a single kernel requires multiple ramdisk to be in a single boot.img
Anykernel method is not suitable with this.
arter97 said:
Multibooting with a single kernel requires multiple ramdisk to be in a single boot.img
Anykernel method is not suitable with this.
Click to expand...
Click to collapse
Oh okay I see what you are referring to. I meant in terms of not multibooting. As in if we wanted to develop a kernel that would work on both tw and cm, probably the only way to do that would be anykernel correct?
Xileforce said:
Oh okay I see what you are referring to. I meant in terms of not multibooting. As in if we wanted to develop a kernel that would work on both tw and cm, probably the only way to do that would be anykernel correct?
Click to expand...
Click to collapse
Yes and it still requires some source changes to accommodate both CM and Touchwiz(MTP, etc) but still I don't like Anykernel method.
I will release 2 separate kernels if CM happens.
arter97 said:
Yes and it still requires some source changes to accommodate both CM and Touchwiz(MTP, etc) but still I don't like Anykernel method.
I will release 2 separate kernels if CM happens.
Click to expand...
Click to collapse
You got time ahead then.
arter97 said:
Yes and it still requires some source changes to accommodate both CM and Touchwiz(MTP, etc) but still I don't like Anykernel method.
I will release 2 separate kernels if CM happens.
Click to expand...
Click to collapse
Got it. I feared there may be some source changes. I've never been a fan of anykernel either.
Found out that this app is compatible with the s6. I'm wondering if the tool would be able to patch your kernel @arter97
http://forum.xda-developers.com/showthread.php?t=2447534

For devs: Looking to play with the kernel sources?

The good stuff: https://github.com/jcadduono/android_kernel_lge_msm8996/commits/android-7.0
Fork it!
Update: CAF branch has some problems at the moment, use this one instead for now.
So this is currently the v10d release. It's compatible with V20 Nougat v10d and G5 v20a.
Place toolchain (pick one up from here) in ~/build/toolchain & tar xf.
git clone https://[email protected]/yourname/android_kernel_lge_msm8996.git
If you want to change any config options:
./menuconfig.sh (optional target, ex. twrp or lge)
Ready?
./build.sh h850/h830/h918/us996/any model you want
Models are applied onto the target base defconfig, so your V20 kernels will build for all V20 variants and for all variants of the G5 as well.
Create your own by copying arch/arm64/configs/lge_defconfig to arch/arm64/configs/your-awesome_defconfig!
Grab:
build/arch/arm64/boot/Image.lz4-dtb [or] build/arch/arm64/boot/Image.gz-dtb
build/lib/modules
Place in:
https://github.com/jcadduono/lazyflasher/tree/kernel-flasher
make
You got yourself a magical all-powerful custom kernel installer, complete with your own custom kernel!
Notice that there's a few branches:
opensource is where I merge LG changes, when it's updated, android-7.0 is rebased on it
android-7.0 is a starting off point closest to absolute stock, base off here
android-7.0-security adds security and bug fixes from CAF on top of android-7.0 branch
twrp-7.0 is for Team Win Recovery Project (yes, it's ready, come with an unlocked device and I'll give it to you)
nethunter-7.0 is for the Kali NetHunter project (if you dare, some fun there)
Another issue was their weird build system, I dropped that. Replaced tuxera's exFAT prebuilt downloader with Samsung's GPL'd exFAT drivers instead. Unsure how well it works replacing it like that, we'll have to see.
I also added Qualcomm's Core Control which they just released the sources to somewhat recently. I believe it's already included on the G5 and probably V20 as a kernel module. Their released version doesn't have module support yet but it's fairly easy to add I guess with the leaked proprietary module version out there to pick pieces from.
Have fun!
Great Man !
thanks for this..
I've been following the root process since the beginning and I'm amazed at the relatively short amount of time it took. Huge kudos to @jcadduono! I will purchase this phone. Now, since the kernel needed to have it's encryption support modifed, are the patches added to a branch on your Github fork? I would like to compile a custom kernel, along with patching it with SultanXDA's SafetyNet boot bypass. Which branch will be appropiate to fork to flash on the TWRP/Rooted V20?
Thanks much @jcadduono! I'm going to start poking around in here and see if I can find anything particularly interesting.
zabracks said:
Thanks much @jcadduono! I'm going to start poking around in here and see if I can find anything particularly interesting.
Click to expand...
Click to collapse
Hey guys so I did get a kernel booting but not yet one built from CAF sources so it'll take a bit of work to figure out why.
There seems to be a couple occurrences of null pointer dereferences in early boot stage in both stock release and this CAF. Currently investigating (or trying to anyway, it's hard to find people that can flash my test builds and report back with logs - I do not own this phone)
jcadduono said:
Hey guys so I did get a kernel booting but not yet one built from CAF sources so it'll take a bit of work to figure out why.
There seems to be a couple occurrences of null pointer dereferences in early boot stage in both stock release and this CAF. Currently investigating (or trying to anyway, it's hard to find people that can flash my test builds and report back with logs - I do not own this phone)
Click to expand...
Click to collapse
I've got an H918, if you need somebody to test a kernel.
jcadduono said:
Hey guys so I did get a kernel booting but not yet one built from CAF sources so it'll take a bit of work to figure out why.
There seems to be a couple occurrences of null pointer dereferences in early boot stage in both stock release and this CAF. Currently investigating (or trying to anyway, it's hard to find people that can flash my test builds and report back with logs - I do not own this phone)
Click to expand...
Click to collapse
two things. Did you figure out how to compile boot.img or are you flashing the zimage? also hit me up on hangouts I've been wanting to dive into this device just looking for someone else to colaberate with.
EDIT: sent email in PM
albinoman887 said:
two things. Did you figure out how to compile boot.img or are you flashing the zimage? also hit me up on hangouts I've been wanting to dive into this device just looking for someone else to colaberate with.
EDIT: sent email in PM
Click to expand...
Click to collapse
I can compile it and flash it. There seems to be an issue with the sources LG has provided regarding display drivers. It seems any attempts at a stock kernel build results in a messed up screen once you hit the lock screen. I assume this has something to do with 2D graphics firmware and kernel framebuffer driver badly interacting. These sources are for v10b firmware, while the device appears to ship with v10d. I don't know if LG made any changes since then that could have caused this issue.
FYI the sources up right now are not my CAF merge, I had to move it to (same url but with -caf on the end) - I still have some issues to work out with the CAF merged sources (they aren't booting for whatever reason - not even TWRP).
It could take me a while to work on this as I still don't and likely never will own this device due to my lack of trust when it comes to LG.
jcadduono said:
I can compile it and flash it. There seems to be an issue with the sources LG has provided regarding display drivers. It seems any attempts at a stock kernel build results in a messed up screen once you hit the lock screen. I assume this has something to do with 2D graphics firmware and kernel framebuffer driver badly interacting. These sources are for v10b firmware, while the device appears to ship with v10d. I don't know if LG made any changes since then that could have caused this issue.
FYI the sources up right now are not my CAF merge, I had to move it to (same url but with -caf on the end) - I still have some issues to work out with the CAF merged sources (they aren't booting for whatever reason - not even TWRP).
It could take me a while to work on this as I still don't and likely never will own this device due to my lack of trust when it comes to LG.
Click to expand...
Click to collapse
sounds like the kgsl drivers. If you want we can work together on this. I want to get CM going too i just need some help. Im and experienced dev but havent jumped in the LG pool before. id look at the google pixel kernel source and grab the kgsl/adreno crap and update that.
i'll clone the source and check it out since i'm finally getting the stock rom downloaded (thanks for the wget tip)
jcadduono said:
I can compile it and flash it. There seems to be an issue with the sources LG has provided regarding display drivers. It seems any attempts at a stock kernel build results in a messed up screen once you hit the lock screen. I assume this has something to do with 2D graphics firmware and kernel framebuffer driver badly interacting. These sources are for v10b firmware, while the device appears to ship with v10d. I don't know if LG made any changes since then that could have caused this issue.
FYI the sources up right now are not my CAF merge, I had to move it to (same url but with -caf on the end) - I still have some issues to work out with the CAF merged sources (they aren't booting for whatever reason - not even TWRP).
It could take me a while to work on this as I still don't and likely never will own this device due to my lack of trust when it comes to LG.
Click to expand...
Click to collapse
which branch/repo is the one that boots but messed up display?
albinoman887 said:
sounds like the kgsl drivers. If you want we can work together on this. I want to get CM going too i just need some help. Im and experienced dev but havent jumped in the LG pool before. id look at the google pixel kernel source and grab the kgsl/adreno crap and update that.
i'll clone the source and check it out since i'm finally getting the stock rom downloaded (thanks for the wget tip)
Click to expand...
Click to collapse
Would absolutely LOVE to see CM on our phones! Not that it'll make things move faster, but I'll throw 100 bucks your way if it's done before Christmas
lightninbug said:
Would absolutely LOVE to see CM on our phones! Not that it'll make things move faster, but I'll throw 100 bucks your way if it's done before Christmas
Click to expand...
Click to collapse
I want Nethunter too
I'll be around to test any of the stuff, usually at night.
The v20 kernel is available on the lg open-source site, at least the h990 one is.
Sent from my LG-H990 using Tapatalk
---------- Post added at 03:36 PM ---------- Previous post was at 03:25 PM ----------
Artcrime said:
The v20 kernel is available on the lg open-source site, at least the h990 one is.
Sent from my LG-H990 using Tapatalk
Click to expand...
Click to collapse
There is v10d version for 918. opensource.lge.com forgive me if this is old news. a|c
albinoman887 said:
sounds like the kgsl drivers. If you want we can work together on this. I want to get CM going too i just need some help. Im and experienced dev but havent jumped in the LG pool before. id look at the google pixel kernel source and grab the kgsl/adreno crap and update that.
i'll clone the source and check it out since i'm finally getting the stock rom downloaded (thanks for the wget tip)
Click to expand...
Click to collapse
slayerh4x said:
I want Nethunter too
I'll be around to test any of the stuff, usually at night.
Click to expand...
Click to collapse
albinoman887 said:
two things. Did you figure out how to compile boot.img or are you flashing the zimage? also hit me up on hangouts I've been wanting to dive into this device just looking for someone else to colaberate with.
EDIT: sent email in PM
Click to expand...
Click to collapse
Sent from my LG-H990 using Tapatalk
I updated all the branches earlier today...should work fine now, so apparently was a source code issue that needed v10d update, not sure though no one's volunteered for testing (I don't do requests/testing over the forum, only on IRC)
Is a kernel the main thing stopping us from a CM rom?
what toolchain should we be using? got a link to a compiled one? i'm getting build errors I know are related to the toolchain but i've been out of the game for awhile. last i knew we needed gcc-4.9?
jcadduono said:
I updated all the branches earlier today...should work fine now, so apparently was a source code issue that needed v10d update, not sure though no one's volunteered for testing (I don't do requests/testing over the forum, only on IRC)
Click to expand...
Click to collapse
I'm there.
albinoman887 said:
what toolchain should we be using? got a link to a compiled one? i'm getting build errors I know are related to the toolchain but i've been out of the game for awhile. last i knew we needed gcc-4.9?
Click to expand...
Click to collapse
gcc-linaro-5.3.1-2016.05-x86_64_aarch64-linux-gnu.tar.xz .Be sure to change the PATH in menuconfig.sh
@jcadduono , thank you. You are truly an inspiration
Wondering if anyone can help me learn how to do this right...
So I was able to compile the kernel, but I didn't get an Image.gz (which im sure is fine). I did get an Image.lz4, Image.lz4-dtb, and Image (no extension). I figure only the .lz4* files are needed. I added all 3 to the lazyflasher, and ran make. The resulting zip flashed, but sent me straight to Bootloader. I then tried to fix by flashing the stock kernel, but this still did not boot. ReFlashed my ROM and it's booting now.
I used this toolchain gcc-linaro-5.3.1-2016.05-x86_64_aarch64-linux-gnu
Any guidance? My guess is it's flashing at the wrong point?
Here is the ZIP. DO NOT FLASH. This is only for someone who knows what they are looking at to tell me what is wrong with it. No modifications were done. Source was forked from OP, and compiled with default menuconfig, then build.sh h918

Categories

Resources