[DEV] How to completely remove Power HAL library - Samsung Galaxy Nexus

https://android.googlesource.com/device/samsung/tuna/+/095e19a54d217474e14fcdf769a0369ef3f4d30c
Reverse engineer this ?
Don't know if this will work but as far as I know it's not required by Jelly Bean?
Is this a good Idea ?

I am currently testing it. See my CM10 thread for the latest nightly to try this. This should fix all overclocking issues hopefully

Source code:
http://review.cyanogenmod.com/#/c/23076/

very good
Very very very good work guy .....

Why do you want to remove the HAL? As soon as it was fixed we didn't have more problems setting the clocks during screen on/off, so I don't see a reason to remove it and in the end it should cause more problems that its worth.
Steve's comment makes me worried:
Why not just make the code a little smarter and detect this stuff automatically?
Soon we will be using boostpulse in many more places in the framework to improve interactivity in ways that can't be done from the kernel alone.
Click to expand...
Click to collapse
Using boostpulse in the framework is NOT smart at all. I think this stuff should be done in the kernel level only. Other devices have other types of code to boost the frequency when it receives a touch event (all kernel level) instead of merging it to the userspace framework.

Related

[kernel] jawz101 kernel_20120907- mrg666-based (many changes from all over)

I uploaded a kernel I've wanted to start working on for several months- been kinda slow figuring out git & compiling
download is on my GitHub page here
I've just added several small commits building on mrg666's kernel (if I should start a new thread I will but right now I don't know where I'll take it- if anywhere. Part of it was just to see if I could do it.
It's got a few commits from drewwalton's hydrokernel, super kernel dev Francisco Franco's P500 kernel... maybe more to come as I look around hunting for other little things. I'm not a developer so I'm really not prepared to do debug 50 file commits.
compiled with latest Linaro toolchain.
Thanks to all of the people everyone thanks- especially mrg666 for answering so many of my trivial questions.
I've been running it for a couple of days with no reboots or anything. If anyone wants to get in on the action there are some dev teams like those who build the Italian Nexus Kernel. It'd be cool to go some direction like that- everyone throwing great things at it.
Installed last night, seems to be maybe possibly a little zippier.
Sent from my LG-VM670 using Tapatalk 2
Yeah. I have a few new changes I did last night from someone who seemed to be hitting some good stuff.
The changelog is here, btw: https://github.com/jawz101/android_kernel_thunderc/commits/VM670-IHO
backported a lot of code from 3.x kernels regarding cpuidle, scheduler tweaks and even updates to the Android low mem killer. I'll post a zip to it a little later on today. I put it on my phone only last night before going to bed. As an IT guy I can tell you that people don't notice 'faster' as much as they notice 'slower'. Me included.
All I know is it compiled so I pushed it to my phone and it didn't blow up :highfive:.
[edit] went ahead and uploaded 20120714 build to the downloads page.
cherry picked several things from https://bitbucket.org/cresqo/2.6.35.10-p500/changesets
commit history for the lazy:
---20120714---
backport CPUIDLE from 3.2
kernel/autogroup: updated to be inline with Linux-3.0.y branch
test: backport from 3.4.4 changes in lmk
sched, autogroup: Fix potential access to freed memory
sched: Fix signed unsigned comparison in check_preempt_tick()
mm from ics_choclate CAF
CPUIDLE from 3.0 Kernel
USB: f_mass_storage: Disable write cache support
vmscan: prevent background aging of anon page in no swap system
Backported lowmemorykiller from 3.0rc6
net/ipv4: Eliminate kstrdup memory leak - fserve
pids: fix a race in pid generation that causes pids to be reused immediately -fs
---first build---
changed build signature
fs: Use this_cpu_inc_return in buffer.c
portd calibrate from 2.6.39 - by zachariasmaladroit
kmalloc: Finer grained memory allocation blocks for the ARM11 systems
vmalloc: remove redundant unlikely()
vmalloc: remove confusing comment on vwrite()
fs: Use this_cpu_inc_return in buffer.c
fs: mark_inode_dirty barrier fix
fs: simple fsync race fix
Freezer: Fix a race during freezing of TASK_STOPPED tasks
ADD: CPUIDLE code from 36.1 (by Imoseyon)
arch/arm/kernel/return_address: remove excess warning
arch/arm/mm/alignment: fix warning in alignment fixup [Jamie Iles]
ARM: Factor out common code from cpu_proc_fin()
cgroup: speed up access to cgroupfs mounted entries in /proc/mounts
iosched: tweak deadline for flash usage
PM: Lock PM device list mutex in show_dev_hash()
PM: Prototype the pm_generic_ operations
PM / Runtime: Use alloc_workqueue() for creating the PM workqueue
PM / Suspend: Fix ordering of calls in suspend error paths
PM: Use proper ccflag flag in kernel/power/Makefile
power_supply: Introduce maximum current property
power_supply: Ignore -ENODATA errors when generating uevents
portd calibrate from 2.6.39 - by zachariasmaladroit
PM: wakelocks: Don't report wake up wakelock if suspend aborted
PM: wakelocks: Display wakelocks preventing suspend by default
mm: find_get_pages_contig fixlet
mm: add vzalloc() and vzalloc_node() helpers
mm: unify module_alloc code for vmalloc
mm: vmap area cache
mm: remove unused get_vm_area_node
mm: convert sprintf_symbol to %pS
jbd2: fix fsync() tid wraparound bug
vfs: lower pressure for better stability
psc: limit duration of psy_changed wakelocks (battery friendly)
binder: backport from 3.0r6
board-thunderc: increase max AXI clock
mm: vm_swappiness set to zero
lge_gpio_h2w: minor bugfix
lge_ats_input: LG Optimus One (and variants) do NOT have QWERTY keyboards. What
Let's optimize some build flags
enable ccache compiles
disable several DEBUG settings in the config
... you'll have to check the github page for the long version from now on though.
Maybe. If I'm not mistaken drewwalton did the reverse by just adding a commit that swaps some key mappings to get his hydrokernel working on the optimus v. I'll try a bit later but I can't promise simply because I'm not great at this.
Sent from my LG-VM670 using Tapatalk 2
Is this for ics or gb ?
Sent from my LG-VM670 using Tapatalk 2
Xx_silenzer_xX said:
Is this for ics or gb ?
Sent from my LG-VM670 using Tapatalk 2
Click to expand...
Click to collapse
Gb
Sent from my Triumph using xda premium
Just an update. Now that I've taken the leap and done some work I'm mainly doing some reading about things.
Also checking out other repos out there to see what others are doing. One that is intriguing right now is the candied kernel. Check out my watched repos on my git account. It's a p500 kernel based on the official cyanogenmod kernel for that phone.
Well if you can somehow improve the (assumingly) abysmal 2D acceleration I'll be on board. And by that I mean its really insanely choppy to scroll without having 16bpp transparency.
Any input on what you're experiencing? Is it games? Are they using opengl? This is where I'd fall short not knowing where to go with that
Sent from my LG-VM670 using Tapatalk 2
jawz101 said:
Any input on what you're experiencing? Is it games? Are they using opengl? This is where I'd fall short not knowing where to go with that
Sent from my LG-VM670 using Tapatalk 2
Click to expand...
Click to collapse
Oh its just typical of the CM7 ROMs. I nitpick yes, but if your wizardry is that good why not ask for it?
Oh I'm no wizard. mrg666 does a lot more than I do. I just add one-liner changes I get from other people's ROM's for other phones.
I have no attention span and just hit discard if a commit has conflicts with the existing code. I still look for anything related to performance, battery life... or just sounds smart.
I wish I understood the hardware enough to know where get and how to incorporate newer drivers. I can't really see a few years of linux kernel development since 2.6 would make 3.x kernels have a noticeable difference in function unless there was some glaring flaw in how certain things are handled.
The only room for improvement I could see to be noticeable would be to find newer drivers for key components and get them in the kernel. If LG used 4 year old drivers and there are ones available 6 months ago there could potentially be some big benefits in video, cpu and networking support.
Since this guy's p500 kernel is an actual cyanogenmod supported kernel there's surely some stuff to be found there
It's cool. Thanks for the reply.
I remember you wanting to get started on this...
good work.
Can't believe I never seen this!
Nice work.
Sent from my LG-VM670 using Tapatalk 2
Curiousn00b said:
Can't believe I never seen this!
Nice work.
Sent from my LG-VM670 using Tapatalk 2
Click to expand...
Click to collapse
Thanks guys. I've been flying under the radar. Probably because I'm not posting on androidcentral.
Uploaded a couple new builds just now. Mainly changing to o3 compiler optimizations instead of o2 and disabling compiling to optimize for size.
It made the zImage come out at 3.5MB instead of 3.0MB but who cares? I mean, I'd rather have whatever other optimizations there could be versus half a MB of kernel size. I'm also trying to fall in line with Linaro's recommendations.
Anyway, they're up here https://github.com/jawz101/android_kernel_thunderc/downloads
The commit I'm most suspicious about is the 'new battery driver one' because I just slapped it in there.
remember to backup, clear cache & dalvik cache before each kernel update.
That candied kernel is crazy full of stuff - I wish we had cyanogenmod support like they got.
things look pretty good on those last to updates. I threw in a few more commits yesterday that I haven't pushed up remotely that I'm still testing on my phone. mainly adjusting some more gcc build flags & pulling in some cpufreq update from Code Aurora. My phone seemed laggy last night after that cpufreq update so I'm still holding off throwing it out there to see if it was just a coincidence from other things I had open at the time or what.
someone mentioned I hadn't been adjusting the build date in the about section in settings. I'll start doing that again in the next release. I wish it was dynamic every time I compile because I don't like that you have to add a new date each time but oh well.
btw, if anyone wants to get in on the action I'd be glad to help with getting you up and running on toying around with kernel stuff. I'm still a newb but I think the whole idea of kernel work is more interesting and beneficial than custom ROMs.
Right now I'm using Xubuntu 12.04 64 bit dual booting my windows box via Wubi, SmartGit to do the cherry pickin', latest Linaro toolchain for compilation and a cheat sheet of commands to run the compiles.
I also enabled something called ccache on my kernel to speed up build times quite a bit. I really don't know why many kernel devs out there don't use it unless they think it could introduce some reliability issues in compilation but I haven't noticed any issues.
I spent a lot of time evaluating git management programs initially to find something I liked & ended up settling on SmartGit but still use some of the other gui's for a different look or certain functionalities.
jawz101 said:
Thanks guys. I've been flying under the radar. Probably because I'm not posting on androidcentral.
Uploaded a couple new builds just now. Mainly changing to o3 compiler optimizations instead of o2 and disabling compiling to optimize for size.
It made the zImage come out at 3.5MB instead of 3.0MB but who cares? I mean, I'd rather have whatever other optimizations there could be versus half a MB of kernel size. I'm also trying to fall in line with Linaro's recommendations.
Anyway, they're up here https://github.com/jawz101/android_kernel_thunderc/downloads
The commit I'm most suspicious about is the 'new battery driver one' because I just slapped it in there.
Click to expand...
Click to collapse
thanks man!... ill definitely check it out... and id love a copy of your command cheat sheet...
clodfelterac said:
thanks man!... ill definitely check it out... and id love a copy of your command cheat sheet...
Click to expand...
Click to collapse
the cheat sheet is just the commands to run the make of the kernel once I've make changes. I'd say getting everything else ready for compiling the kernel was the slowest step for me. If you have any questions for that let me know. I'd try hunting around on the interweb 1st and if it's a bunch of questions make another thread and we can break down the questions as you have them.
been using the 0808 since you posted and i have to say its very zippy... i keep cpu spy to track usage... nice work... looking forward to future updates... thanks...

Teach me to Android

マスター!どのようにコーディングを教え!
So since i couldent find any guides that actualy helped me to do with C, Linux,Android, android kernels , kernel modifying CODING IN C or anything like such... i then decided ill make a thread
Almost all devs i know are strapped for time or just dont have a XS anymore if not that they just ignore me :crying:
So this was originaly posted by our Well known RaymanFX and it seems his questions are exactly what i want to ask
[Q1] How to overclock a kernel
which files are needed -> kernel source
what files need to be edited ?
is the cpufreq driver related ?
how to determine which frequencies need higher voltage and how high exactly ?
[Q2] Undervolting
which files are needed -> kernel source ..
what files need to be edited
is the cpufreq driver related
how to determine which frequencies can use lowered voltage and how to calculate them ?
#ifdef not RaymanFX's Questions
[Q3] how to overlock your GPU
which files are neeeded
what files need to be edited
what determines your GPU voltages/clocks
how to determine what your hardware can handle
[Q4] how to add features like fastcharge
What files i need
what files need to be edited
where are great places to learn about sutch things
[Q5 Addapting
adding features from other kernels may work but if they dont then how will i addapt them to work (wide horizon to cover but lets use display drivers for an example)
if not adding features, lets say Porting 4.4 from Sony Xperia ZU (which is a nightmare for devs (or so says one of the many gods of developing we know as letama) couldent we just use most of the coding for the drivers which was officialy release by sony?
(in short, could we use drivers from our (SXS(L)4.1.2 to port 4.4 from ZU)
If we were to use drivers from official firmware to use on a unofficial firmware, what would we have to do for them to actualy work with the firmware that we are porting
#endif
- i know some tiny bits of this already from playing around with ForzaFerrarileo and DooMLorD's Kernel Source (only enough to fix the smallest of problems)
Envious_Data said:
マスター!どのようにコーディングを教え!
So since i couldent find any guides that actualy helped me to do with C, Linux,Android, android kernels , kernel modifying CODING IN C or anything like such... i then decided ill make a thread
Almost all devs i know are strapped for time or just dont have a XS anymore if not that they just ignore me :crying:
So this was originaly posted by our Well known RaymanFX and it seems his questions are exactly what i want to ask
[Q1] How to overclock a kernel
which files are needed -> kernel source
what files need to be edited ?
is the cpufreq driver related ?
how to determine which frequencies need higher voltage and how high exactly ?
[Q2] Undervolting
which files are needed -> kernel source ..
what files need to be edited
is the cpufreq driver related
how to determine which frequencies can use lowered voltage and how to calculate them ?
#ifdef not RaymanFX's Questions
[Q3] how to overlock your GPU
which files are neeeded
what files need to be edited
what determines your GPU voltages/clocks
how to determine what your hardware can handle
[Q4] how to add features like fastcharge
What files i need
what files need to be edited
where are great places to learn about sutch things
[Q5 Addapting
adding features from other kernels may work but if they dont then how will i addapt them to work (wide horizon to cover but lets use display drivers for an example)
if not adding features, lets say Porting 4.4 from Sony Xperia ZU (which is a nightmare for devs (or so says one of the many gods of developing we know as letama) couldent we just use most of the coding for the drivers which was officialy release by sony?
(in short, could we use drivers from our (SXS(L)4.1.2 to port 4.4 from ZU)
If we were to use drivers from official firmware to use on a unofficial firmware, what would we have to do for them to actualy work with the firmware that we are porting
#endif
- i know some tiny bits of this already from playing around with ForzaFerrarileo and DooMLorD's Kernel Source (only enough to fix the smallest of problems)
Click to expand...
Click to collapse
Cannot answer all of your questions but i'll try to answer as many as i currently know
Every device is specific but some parts are same..For example i'll take Xperia S as an example..
Q1..
For overclocking you need. acpuclock-8x60.c for xperia S. You will find it under kernel/arch/arm/mach-msm/
You will find a few lines defined under the structure struct clkctl_acpu_speed
so lets say you wish to add frequency 1782000...
based on the pattern add:{ {1, 1}, 1782000, ACPU_SCPLL, 0, 0, 1, 0x21, L2(22), 1325000, 0x03006000},(you will recognize the pattern from the lines in the file itself.
that is just an example of changes to one line. There are many more to edit. A good place to start would be to study someone else's OC kernel's features. You can study his/her github source to see the changes added for overclocking.
is the cpufreq driver related??: Didnt understand your question. technically you can add OC to any device. Only point is if the board gets heated up badly, it will shut down. Not burn itself to death. So there is a limit to how much u can overclock a processor..Try increasing step by step and then test. If board gets heated up to the point of shutdown, you will know ur processor's limit.
higher frequencies would require a higher voltage if performance is concerned. One suggestion here is to to give a 25 V increase per line of freq you add. What you might be asking is undervolting. What if your cpu is running at a higher freq and if u give it less voltage.right? In such scenarios your phone will be at a medium state. Where it is giving a minor compromise in performance to save battery. Giving high voltage with high freq will give you the best performance but at the cost of your battery.
Q2] three files(xperia s)
avs.h,board_semc_fuji.c
vreg-fuji_nozomi.c all under mach-msm folder
which freq and use less voltage...any freq can use less voltage. you give it less voltage and cpu wont perform as well as it would if you give it more voltage. udervolting is added so that you can have a minor compromise in performance to save ur battery. Eg: you are OCing your device at 1.8 Ghz. now you give it 1.3 V...It is running very very fast with a lot of battery drain. Now you undervolt it. you give it 0.8 V..Processor doesn't run as fast as 1.8 GHZ should run but still faster than normal but your battery is preserved.
Q3] I have forgotten totally,sorry. But i had studied Doomlord's kernel sources to find out about GPU. It would be a good place for you to start as well
Q4 and Q5] I have vague knowledge about these so wont be able to help you much. By porting do you mean porting some kernel modules from a different device to your kernel??
ty, i cant realy work off of a notepad for ever
ill look into playing with things more
i know what to do for porting lets say 4.4 from the default device but not how
Sent from my LT26i using XDA Premium 4 mobile app
Envious_Data said:
ty, i cant realy work off of a notepad for ever
ill look into playing with things more
i know what to do for porting lets say 4.4 from the default device but not how
Sent from my LT26i using XDA Premium 4 mobile app
Click to expand...
Click to collapse
haha..true..Try installing virtualbox and install ubuntu...you'll learn way faster how a linux kernel based OS just like android works...
Dark Wraith said:
haha..true..Try installing virtualbox and install ubuntu...you'll learn way faster how a linux kernel based OS just like android works...
Click to expand...
Click to collapse
i allready have ubuntu
not virtualbox
i have been playing with kernels and compiling, i am able to get around some issues
same goes with my aosp 4.4 build, it boots but crashes when certain graphic modes are needed (aka openGL based games)
takes on avarage about 32hours to compile on a normal day (if im lucky 17hours)
Sent from my LT26i using XDA Premium 4 mobile app
Envious_Data said:
i allready have ubuntu
not virtualbox
i have been playing with kernels and compiling, i am able to get around some issues
same goes with my aosp 4.4 build, it boots but crashes when certain graphic modes are needed (aka openGL based games)
takes on avarage about 32hours to compile on a normal day (if im lucky 17hours)
Sent from my LT26i using XDA Premium 4 mobile app
Click to expand...
Click to collapse
hehe...takes me 2days and crashes half the time.....(on a 512 mb ram stupid laptop)
Dark Wraith said:
hehe...takes me 2days and crashes half the time.....(on a 512 mb ram stupid laptop)
Click to expand...
Click to collapse
i got 4gb but my harddrive slows down and then it just starts messsing up
got a bug where mount ntfs starts generating errors and causes its self to use 99% of my cpu
so compiling can take estimated upto a week
also a laptop
Sent from my Xperia S using XDA Premium 4 mobile app

[KERNEL][I9295][AOSP/CM11/CM12][TW-4.4]KT-SGS4 port for Active Intl

Credits go to @ktoonsez for his kernel sources and KT apps (KTweaker and KTmonitor) :good:
Disclaimer: me no responsible if you use this!
So what is this? KT-SGS4 AOSP-4.4 S4 kernel ported to S4 Active (Intl). What has changed is of course jactive related stuff:
jactive board definitions and kernel config
camera sources and handler functions
some display settings
assorted stuff, can't really remember all the imporant bits
pre 1.0.0 AOSP4.4
Also, i tried to make a unified kernel, i.e. all differences between original and jactive are controlled with code ifdefs. But this haven't been tested as i don't have S4
So what works? So far i have found only one bug, when making or receiving calls i can't hear what the other side is saying and vice versa, i.e. no audio. Call sounds fixed.
Also overclocking the CPU seems to be broken, at least KTmonitor shows CPU to go only up to 1890 even though the clock is set over that value. So that's one thing to work on. I'll try to debug someday next week.
Compiled with linaro-4.7-12.10 toolchain.
This should work on CM11 and AOSP based roms. Personally i have it running on SlimKat (dualboot) and CM11. Just flash the CWM zip. It contains KTweaker and KTmonitor apps, courtesy of ktoonsez. Thanks mate.
Latest version 04.14.2014
Personal experiences:
benchmarks are slower than with CM11 kernel, dunno if it matters...
still it's smooth in everyday use
KTweaker has lots of stuff to tweak, only if i had time...
AOSP4.4/CM11
This one works with CM11 and AOSP v 1.0.0 and later. Don't use with earlier AOSP since this needs newer blobs.
KT-SGS4-KK4.4-AOSP-eur-02.11.2015
Built with Linaro 4.9 2014.09
Beta release
AOSP5.0/CM12
As there is no AOSP5.0 for jactive yet, just use CM12 .
KT-SGS4-LP5.0-AOSP-eur-02.15.2015:
fixed bootloop for now at least
supports ext4/f2fs partitions
KT-SGS4-LP5.0-AOSP-eur-02.11.2015
Built with Linaro 4.9 2014.09
Beta release
TouchWiz
This one works with KK TW roms (well i have tried only WizCyan...). Seems stable with default clocks and even with some OC. But every phone is different in regards OC, so YMMV. KTweaker and KTmonitor included. Do note that Display settings might not work as we don't have Amoled.
Changes ver 01.12.2015
Fixed unresponsive screen bug
Compiled with Linaro 4.9-2014.09
Changes ver 01.03.2015
overclocking works better now
increased touchscreen min limit freq, hopefully removes problem with unresponsiveness
built with Linaro 4.7.12.10
Changes ver 12.15.2014 (BETA)
first version of KT TW kernel for jactive
added KEXEC_HARDBOOT support, works with MultiROM
General notes
Do keep in mind that if you don't set oc settings in boot, you need to use KTweaker app and reset the cpu min and max sliders for the settings to take effect. Even though the app asks if you want to apply the settings, it doesn't update the actual min and max values.
Download here: https://drive.google.com/folderview?id=0BzJzDM42pkRvd1ZtMDZOR1M1OFE&usp=sharing
Github here: https://github.com/spegelius/KT-SGS4
god !!!!!! .... spegelius did it again you beast ... keep up the good work :good::good:
mythi said:
god !!!!!! .... spegelius did it again you beast ... keep up the good work :good::good:
Click to expand...
Click to collapse
Heh, thanks. Sadly there seems to be a bug with call audio, so for test use only at this point. I went through the kernel code and all i can think of to do is to try audio stuff from CM11 kernel, to see if that's the problem. Still, audio works perfectly everywhere else so really hard to say what's wrong...
spegelius said:
Heh, thanks. Sadly there seems to be a bug with call audio, so for test use only at this point. I went through the kernel code and all i can think of to do is to try audio stuff from CM11 kernel, to see if that's the problem. Still, audio works perfectly everywhere else so really hard to say what's wrong...
Click to expand...
Click to collapse
Whats even harder is taking a logcat and ksmg while in a call
mythi said:
Whats even harder is taking a logcat and ksmg while in a call
Click to expand...
Click to collapse
True, but luckily i have two phones and sims (other one is my work phone) so it's easier to debug.
Some progress: it turns out that for some reason es325 codec can't connect to slimbus sink and thus no audio. slimbus has some kt additions, need to debug more. Also i think it would be good to try to build the kernel with some other toolchain than linaro...
spegelius said:
True, but luckily i have two phones and sims (other one is my work phone) so it's easier to debug.
Some progress: it turns out that for some reason es325 codec can't connect to slimbus sink and thus no audio. slimbus has some kt additions, need to debug more. Also i think it would be good to try to build the kernel with some other toolchain than linaro...
Click to expand...
Click to collapse
Hmmm... does it build modules with kernel ?? Ya changing the compiler to maybe the google ndk gcc may fix up some issues but I think u will have alot of pain in debugging files since not all elements that linaro supports are supported by other .... I maybe wrong but ...xxxx
Good job man :good: :highfive:
mythi said:
Hmmm... does it build modules with kernel ?? Ya changing the compiler to maybe the google ndk gcc may fix up some issues but I think u will have alot of pain in debugging files since not all elements that linaro supports are supported by other .... I maybe wrong but ...xxxx
Click to expand...
Click to collapse
Yes, modules are compiled and part of the cwm package. I haven't checked that all required modules are present, but i don't think that's the problem. Gonna be setting up a proper kernel dev env, found a good howto for Eclipse here: http://simonkagstrom.livejournal.com/33093.html. Regular editors just aren't cutting it anymore
ktoonsez said:
Good job man :good: :highfive:
Click to expand...
Click to collapse
Thanks . Luckily i had some experience with LeJay's cm10.2 kernel and cm11 kernel so i knew roughly what parts differ between jf an jactive. Just a matter of diffing those parts (meld is my tool of choice for that kind of work).
This kernel s awesome. It's speeded up my phone. I want to use this regularly has anyone found a way for the phone call sound??
Sent from my GT-I9295 using xda app-developers app
lijoc said:
This kernel s awesome. It's speeded up my phone. I want to use this regularly has anyone found a way for the phone call sound??
Sent from my GT-I9295 using xda app-developers app
Click to expand...
Click to collapse
Not yet. Been debugging and the problem is somewhere in kernel's slimbus communication, it seems es325 codec cannot get audience firmware loaded properly or something...
spegelius said:
Not yet. Been debugging and the problem is somewhere in kernel's slimbus communication, it seems es325 codec cannot get audience firmware loaded properly or something...
Click to expand...
Click to collapse
Ah, found he bug; && should be || when checking if CONFIG_JACTIVE_ATT or CONFIG_JACTIVE_EUR... es325 wasn't configured properly. Now call sounds work. I'll upload a new build after i do some testing first.
Waiting for the upload
Sent from my GT-I9295 using xda app-developers app
Uploading, KT-SGS4-KK4.4-AOSP-jactive_eur-04.19.2014.zip should be online soon.
It's working now. The volume is too low is there a way to increase it?
Sent from my GT-I9295 using xda app-developers app
lijoc said:
It's working now. The volume is too low is there a way to increase it?
Sent from my GT-I9295 using xda app-developers app
Click to expand...
Click to collapse
Hmm doesn't the volume button work? Also what rom are you running?
Volume button works and is on maximum. I am using carbon rom
Sent from my GT-I9295 using xda app-developers app
I am running your AOSP 4.3.1 ROM http://forum.xda-developers.com/showthread.php?t=2621883
I flashed this kernel in recovery, wiped cache and dalvik, but it will not boot. I get the "Samsung Galaxy S4 Active I-9295" splash screen, then it hangs, and hangs, and hangs.
I had to restore back to the version 8 nandroid of that thread. ADB would give me nothing so early in the boot sequence.
Pkt_Lnt said:
I am running your AOSP 4.3.1 ROM http://forum.xda-developers.com/showthread.php?t=2621883
I flashed this kernel in recovery, wiped cache and dalvik, but it will not boot. I get the "Samsung Galaxy S4 Active I-9295" splash screen, then it hangs, and hangs, and hangs.
I had to restore back to the version 8 nandroid of that thread. ADB would give me nothing so early in the boot sequence.
Click to expand...
Click to collapse
Did you read the topic? this kernel is for 4.4
Indeed, it's for AOSP 4.4.x. You propable need to reflash the whole rom to get back original boot.img and kernel modules.
As for the phone sound being too low, dunno. If it was working ok with the original Carbon kernel, that points the problem being in the new kernel. But to my limited understanding, the volumes come from settings outside the kernel... personally i'm running CM11 with this kernel and volumes are ok.
The volume in carbon rom also is the same. I tried the sound mods but it changes all the volumes of system other than the incall volume.
Sent from my GT-I9295 using xda app-developers app

[KERNEL][BETA/TEST][CM12][1/12/15] E980 Kernel+ V0.8.1

E980 Kernel+​
***I am not responsible for you bricking your device or causing any other unwanted outcomes to your device. Be careful and smart. If you don't know what you're doing you probably shouldn't be flashing this.***
This is the E980 Kernel+​The end goal here is to have a kernel with more features and potentially much better battery life. I can only guarantee it will work on E980, not sure if it will work on other devices. I also do not know what ROMs it will work on. That is up to you to share. Rule of thumb is, if it's CyanogenMod, it'll work.
Suported Devices:
E980
E988
***If you are interested in building your ROM with my kernel, you have my permission to do so. However, if you could just let me know, that'd be nice. Also a credit would be appreciated but is not necessary either.***
DOWNLOAD​[11/12/14]: E980Kernel+V0.7.3.4: http://goo.gl/yMqgrP
[11/12/14]: E980Kernel+V0.7.3.3: http://goo.gl/eUfbQY
[10/11/14] E980Kernel+V0.6: http://goo.gl/XvQg7Z
[9/29/14] E980Kernel+V0.5: http://goo.gl/tJ9JGs
[9/23/14] E980Kernel+V0.4: http://goo.gl/cxphLB
[9/15/14] E980Kernel+V0.3.1: http://goo.gl/vtmnRR
Original Kernel: https://drive.google.com/file/d/0BxhkPfIzMhriQ0pqdGN0TnFDb2c/edit?usp=sharing
CHANGES​[11/12/14] V0.7.3.4:
Removed Undervolting
Removed GPU Tweaks
No more (or at least a lot less) random reboots
[11/12/14] V0.7.3.3:
Added Intelli-Plug V3.8
Added Intelli-Thermal
Added Undervolting
Tweaked GPU a little (more to come later)
Updated Intellidemand to V5
***If you are experiencing reboots upon setting CPU governors, set the voltage higher on your CPU thru Trickster or similar Kernel Settings App!***
[10/11/14] V0.6:
Compiled with Linaro (Should notice some minor performance improvements)
Other minor changes
[9/29/14] V0.5:
Added I/O Schedulers:
SIO, VR, Zen
Fixed Faux
Updated Faux Drivers to V3
[9/23/14] V0.4:
Removed Governors:
SmartassV2, Hyper (Only in config, they are still in source)
Added Faux Sound Controls (Thanks to Faux123 for his work)
Updated to CM11 Nightly 9/23/14 boot.img
[9/15/14] V0.3.1:
Added Governors
Dancedance, Intellidemand, SmartassV2, Hyper. (Hyper seems to be buggy, same with SmartassV2)
Added TCP Congestion Control
Westwood, Highspeed, Hybla, Htcp, Vegas, Veno, Scalable, Lp, Yeah, Illinois.
Flashing Instructions:​Make sure you use Mack's TWRP or Gummy CWM.
Flash a supported ROM
Flash E980 Kernel+
Wipe Cache & Dalvik
I highly suggest you are rooted and busybox'd.
Note: If flashing fails and you are on a CM11 ROM, you may want to try flashing original kernel or earlier version before reflashing your ROM or clean installing.
To-Do List:
-Faux Sound - Done.
-Governors/IO schedulers - Done.
-More TCP congestion controllers - Done.
-Replacement for Qualcomm's MP-Decision (Intelli-Plug) - Done.
-Support for actual GPU underclocking (Maybe save battery since it always runs at top freq when it doesn't have to.) - In the works.
-Support for undervolting - Removed for now.
-Lower clock speeds than 384 MHz
-Higher clock speeds than 1728 MHz
-Intelli-Thermal - Done.
-Fast Charge - Soon.
-Battery Life eXtender - Soon.
-Knock On/DT2W (May not add due to battery drain issue that comes with)
-Keyboard USB support
-Linaro Performance Toolchain - Done.
-Support for F240 - In the works.
-Anything else?
***Make note I do not know if I can implement all of these but I will try my best***
Source: https://github.com/Snepsts/kernel_e980
Toolchain: https://github.com/Snepsts/linaro4.7gcc
HOW TO BUILD​
At this point if anybody wants to try out the kernel before I make releases, you are free to compile it yourself. I would like to ask that you do not share compilations just because I like to track how many people download and use the kernel through my goo.gl links and the afh download counter. I don't like it when people rehost my kernel since it gives me misguided numbers on how many people are following my work. It's just personal though, I'm not going to stop you. I just like it because it gives me an idea of how many people are using my work and kind of makes me want to keep working on it since I know how many people still use it.
Anyways, I'll leave instructions to compile right here:
This is assuming you're using a Linux distro (VM or not, has to be 64-bit) Pretty much everybody recommends Ubuntu, and that's fine, but if you want my suggestion Mint runs like a dream. Anyways to building!
You'll need to get the required packages. I forget these off the top of my head, but they're something like this:
Code:
sudo apt-get install -y build-essential kernel-package libncurses5-dev bzip2 abootimg
There might be more, idk. This should get you through the build. Let me know if there's anything else.
Next we'll make a directory and grab the sources.
Go to your main directory to store the android folder in (for tidiness sake), if you have a preference you can do this differently. If you're not sure what you're doing here, just go from where you are (should be your main dir):
Code:
mkdir android
cd ~/android
git clone https://github.com/Snepsts/kernel_e980.git
This might take a while... when it's done you should have a folder called "kernel_e980" in your android directory.
While we're downloading, go get the latest M build or the latest nightly of CyanogenMod: https://download.cyanogenmod.org/?device=e980
This will be useful later.
Now we go grab a toolchain. My favorite is this one: http://www.mediafire.com/?x7lgbeprpg8gn choose the cortex A-15 one. Untar it and move the folder wherever you like. I suggest the android folder to follow the rest of the guide.
Code:
cd ~/Downloads
tar -xvf arm-cortex_a15-linux-gnueabihf-linaro_4.7.4-2014.06-build_2014_09_13.tar.xz
Now move this folder through the GUI (Graphical User Interface), much easier than more commands imo.
Now rename the folder toolchain, just because it's easier.
Now we're ready to build. The username is whatever your Linux username is.
Code:
cd ~/android/kernel_e980
export ARCH=arm
export CROSS_COMPILE=/home/username/android/toolchain/bin/arm-cortex_A15-linux-gnueabihf-
make cyanogenmod_e980_defconfig
All ready to go
One last thing, before you make it, if you are a little more advanced and need to toggle something or do anything else, use:
Code:
make menuconfig
You probably don't need that.
The # means the amount of cores in your computer's processor +1. For example, my Linux virtual machine has 4 cores allocated to it, so I assign it -j5. Now to make the kernel:
Code:
make -j#
And watch the words flyyyyy.
If anything fails, double check you didn't mess up. Also, the current Github build is never guaranteed to succeed.
Once the build is completed, you should see something like:
zImage is created!
Or something. Now go to your Downloads and get the boot.img out of the CyanogenMod build whatever way you wish to.
We'll leave it in the Downloads folder for the sake of the guide:
Code:
cd ~/Downloads
abootimg -x boot.img
Now you should have a zImage, intrid.img, and a bootimg.cfg. Ignore the zImage, move the intrid.img and bootimg.cfg to the ~/android/kernel_e980/arch/arm/boot folder.
Now we finish the kernel:
Code:
cd ~/android/kernel_e980/arch/arm/boot
abootimg --create boot.img -f bootimg.cfg -k zImage -r intrid.img
Done! Your kernel will be the boot.img file.
Replace a current kernel.zip's boot.img with this one, you can use any of the E980Kernel+ .zip folders for this. Just remove the boot.img in that one then put yours in it. I always upload my kernel to Gdrive and then download it to my phone to flash. But whatever you wanna do from here is fine.
And now you have the latest version of E980Kernel+ Unofficial. Yay you!
Click to expand...
Click to collapse
XDA:DevDB Information
E980 Kernel+, Kernel for the LG Optimus G Pro
Contributors
Snepsts
Source Code: https://github.com/Snepsts/kernel_e980
Kernel Special Features: Faux Sound, CPU Governors, TCP Congestion Controllers, I/O Schedulers, Intelli-Plug/Intelli-Thermal
Version Information
Status: Beta
Current Stable Version: V0.7.3.4
Stable Release Date: 2014-11-12
Current Beta Version: V0.8.1 TEST
Beta Release Date: 2015-1-12
Created 2014-10-19
Last Updated 2015-1-12
About E980 Kernel+
In this post we will go over some of the things in this kernel and shed some light on what they do... Let me know if you have any information to contribute or anything else
Intelli-Plug
Intelli-Plug is developed and updated by Faux123.
Intelli-Plug is a hot plug replacement for Qualcomm's proprietary MP-Decision. MP-Decision essentially decides the final factor on clock speeds, when cores go offline, how long they go offline, and they generally manage your CPU. There is a lot of discussion over whether or not Qualcomm's solution to hot plugging is efficient or not. Intelli-Plug is an open-source and updated version of MP-Decision in which anybody can contribute to and improve. It uses different methods for arguably better performance and better battery life. The current version used is optimized for MSM-8960 chipsets (like ours). It is updated and even offers convenient profiles to optimize battery life, performance, balance the two, or do a little between each option. Some of the profiles allow an eco-mode like experience. Eco-mode is a depreciated feature of Intelli-Plug that turned a quad-core processor into a dual-core, effectively optimizing the processor to run like a dual-core and save more battery power. In order to toggle the profiles option without paying 5 dollars for the Faux Clock app, you may use a root explorer (like ES File Explorer), go to sys/module/intelli-plug/parameters/nr_run_profile_sel and input a number anywhere between 0-5.
I prefer this option ON and do not currently have a profile preference. In my experience it improves the overall device (performance/battery life) with no noticeable drawbacks.
Intelli-Thermal
Intelli-Thermal is developed and updated by Faux123.
Intelli-Thermal is a thermal replacement to Qualcomm's proprietary thermal solutions. It is open-source and anybody can contribute to it. It has optimized thermal performance and is arguably more efficient than stock thermal settings. In addition to being an open-source and updated module, Intelli-Thermal offers customization such as: personal selection of cores to throttle at a self-determined value, and a similar selection for cores to offline (minus core 0, since it must be online at all times). Intelli-Thermal allows you to set your own rules (do not set the limit too high) and thermal values are in Celsius.
I prefer this option ON, and set Frequency Throttle Limit to 70 C, Core Offline Limit to 65 C, enable all cores for Frequency Throttling Cores, and enable Cores 2 & 3 for Offline Cores. Rarely do I ever experience heat, and if so it is very minimal. The device may lag or get hot depending on your settings, so please be careful or mindful of what you set. This works better on some ROMs than others.
*** Personal Note: These two are of my favorites because they are optimized and make for a better experience with little to no performance drops. This is just my preference, and it can be chosen to follow as a guideline by your discretion. ***
Multi-Core Power Saving
This is a normal kernel feature.
Multi-Core Power Saving is a basic feature that, depending on the profile selection, groups tasks to a certain amount of cores. 0 is off, so the device runs as normal. 1 is on, and will try to group tasks into single cores or multiple cores at lower frequencies to save power, but will not force it. 2 is aggressive, and depending on the user, may find that this causes a little more lag as the phone really hates using any extra CPU juice for anything, processes may be clustered and slowed down from this, but battery life is also the best at 2.
I prefer this option set to 1, as it has no noticeable lag and seems to still optimize the battery a little more. This option varies from user to user.
Faux Sound Control
Faux Sound Control is developed and updated by Faux123.
Faux Sound Control is a custom feature that enables sound manipulation on the kernel level. This feature will allow you to modify the gain (Make sound louder at the potential cost of music quality or lower for ear protection) and other various settings from a kernel level. This is completely user preference and will vary from user to user.
Intelli-Demand CPU Governor
Intelli-Demand CPU Governor is yet another feature developed and updated by Faux123.
Intelli-Demand means Intelligent On Demand. On Demand is a kernel CPU Governor that comes as the stock setting for most phones. But it tends to be a little less than optimized and such results in sub-par battery life. Intelli-Demand is a tweaked version by Faux that will allow for similar performance and better battery life. It is also popular for gaming as when the GPU 3D load gets heavy it will perform like On Demand as not to interfere with game loads.
This is my current preferred CPU Gov as it has never given me problems and works like a charm.
I/O Scheduling
I/O Schedulers are different ways of controlling the input/output stream of information in with the memory of a phone. These generally do not vary too much in performance or battery-life but everybody seems to have a preferred one. I don't have a favorite and switch between noop, row, and zen from time to time again.
My only preferred setting here is setting the read-ahead buffer to 4096, as it increases speed and performance without any real hit to the battery.
TCP Congestion Control
I am not very well versed in TCP protocol or anything in the sort, but this basically controls how your phone interacts with Wifi/Data packets.
My preference (and, from what I've read, the general consensus) points to the Westwood TCP Congestion Controller. Never had any problems with it, too lazy to benchmark them.
I will add more later, and as I add features to the kernel, I will add explanations! Also, I plan on buying the Faux Clock app soon simply to figure out which profile is which (since the information is nowhere to be found) and then I'll return it and report the numbers back here. Also, whenever Cyanogen decides we're ready for CM12 official, the kernel will be ready for CM12 too. Please bear in mind that I hate updating and am not one with the Github (nor do I have time to learn about Github). Cheers! :good:
GOOD JOB:good::good::good:
And a little cpu overclock like 2ghz plzzzz ^^
Is it possible that you can create a kernel for F240?
Name... Hmmm
2SHAYNEZ
MitoTakatori said:
Is it possible that you can create a kernel for F240?
Click to expand...
Click to collapse
Hmmm... You posted the kernel for F240 to be compatible with E980 CM11 ROMs... right? If you can give me source for that I can try and add the same things to it as I am the e980. But I am by no means a dev or anything.
Snepsts said:
Hmmm... You posted the kernel for F240 to be compatible with E980 CM11 ROMs... right? If you can give me source for that I can try and add the same things to it as I am the e980. But I am by no means a dev or anything.
Click to expand...
Click to collapse
Nice. I will check the source then pinpoint it to you. Thanks in advance.
MitoTakatori said:
Nice. I will check the source then pinpoint it to you. Thanks in advance.
Click to expand...
Click to collapse
I hope I am able to deliver a kernel to you. By the way, what is the difference between F240 and E980/E988? I know E988 is international. Is F240 Viet or something? And what are hardware differences?
Snepsts said:
I hope I am able to deliver a kernel to you. By the way, what is the difference between F240 and E980/E988? I know E988 is international. Is F240 Viet or something? And what are hardware differences?
Click to expand...
Click to collapse
That's a good question... But u did build this on vmware? What steps did u take?
Snepsts said:
I hope I am able to deliver a kernel to you. By the way, what is the difference between F240 and E980/E988? I know E988 is international. Is F240 Viet or something? And what are hardware differences?
Click to expand...
Click to collapse
F240 is korean. I really don't know the exact difference between the E98x variants and the F240x. Maybe some kernel thingy.
bountyman334 said:
That's a good question... But u did build this on vmware? What steps did u take?
Click to expand...
Click to collapse
Yes. VMware using Linux Mint 64-bit. My main machine is a Windows 7 with AMD FX-6350 (3.9 GHz) and 8 GB of RAM.
Here, read the guide mukwing gave me in this thread: http://forum.xda-developers.com/optimus-g-pro/general/making-cm11-0-kernel-e980-t2870820
That should be everything you need. Props to him he knows what he's doing!
MitoTakatori said:
F240 is korean. I really don't know the exact difference between the E98x variants and the F240x. Maybe some kernel thingy.
Click to expand...
Click to collapse
I do believe there are some slight hardware differences which is what I read. I'm guessing the kernel you posted tells it to emulate an e980 somehow with the hardware. Maybe do something a little different to behave like e980. I don't really know though, that's just my guess. But yes I'll totally give it a shot if you can give me source.
Name it "Spartan" kernel or "Taco" kernel ?
2SHAYNEZ
shayneflashindaily said:
Name it "Spartan" kernel or "Taco" kernel ?
2SHAYNEZ
Click to expand...
Click to collapse
Is the Taco kernel a reference to the flashaholic thread?
I like Spartan kernel though...
I was thinking of something like the "Ignis" kernel. Ignis is Latin for flame. Or maybe "Phoenix" kernel.
Knock on/double tap to wake please
Just tried to add some governors. Picked them right off of another kernel... I also copied and pasted the kconfig, makefile, and cpufreq.h files hoping that it would be the same... didn't work. Haha, guess I'll try typing in the config stuff myself and see where that gets me.
Adding features is the most headache things haha.
The commits from other device's kernel always not so compatible with e980 kernel.
Even commits from similar device's kernel like oppo n1 or G Pad 8.3 i still can't sucessfully incorporate them.
Without knowledge of programming, hard to find out what's wrong in the code.......
BTW, i have compiled a TWRP which can mount/read/write to F2FS formatted sdcard. But it lack the ability to format the sdcard to F2FS, need to do it in linux.(i am not sharing it because it still have chance of recovery bootloop)
mukwing said:
Adding features is the most headache things haha.
The commits from other device's kernel always not so compatible with e980 kernel.
Even commits from similar device's kernel like oppo n1 or G Pad 8.3 i still can't sucessfully incorporate them.
Without knowledge of programming, hard to find out what's wrong in the code.......
BTW, i have compiled a TWRP which can mount/read/write to F2FS formatted sdcard. But it lack the ability to format the sdcard to F2FS, need to do it in linux.(i am not sharing it because it still have chance of recovery bootloop)
Click to expand...
Click to collapse
Wow really? Damn I would have thought for sure HTC One kernels would have some similarity (Since we have identical processors).
Guess I'm learning C. I've actually made sense out of some of the programming already, but it's gonna be a ***** to get working. Thanks for the info though.
Good if you know programming language!
Waiting your kernel
But i will stay with stock lg for a while, haha.
Running this with acid and its running great, lost 2% between 11pm-6 in deepsleep:beer:
Sent from my LG-E980 using XDA Free mobile app
Snepsts said:
Is the Taco kernel a reference to the flashaholic thread?
I like Spartan kernel though...
I was thinking of something like the "Ignis" kernel. Ignis is Latin for flame. Or maybe "Phoenix" kernel.
Click to expand...
Click to collapse
Lol love tacos .... How about "La flama Blanca" The white flame lol .. Jk
2SHAYNEZ

[Oct 31] [Machinex][MarkOneHundred][KERNEL][TW][5.0.1][I9505]

Machinex
MarkOneHundred
Sheer will .
This is machinex.
This is machinex. I have been working on this kernel for over a year now, and am finally comfortable with its release to the public. This kernel builds on the great work of those who have made this device the powerhouse that it is. There are elements here that you have experienced on every GS4 kernel to date, as well as other devices.
The goal I had for this project was upstreaming/updating/experimentally upgrading as much as I possibly could. I have done so, and will continue to do so.
This kernel is ONLY for TW-based, 5.0.1 roms for the I9505!!! NO I WILL NOT DEVELOP FOR DEVICES I DO NOT OWN, SAVE YOUR BREATH!
OBLIGATORY DISCLAIMER:
THIS KERNEL COULD VERY WELL DESTROY YOUR PHONE, YOUR LIFE, YOUR MARRIAGE, Etc. YOU INSTALL AT YOUR OWN RISK!! XDA AND I ACCEPT NO LIABILITY FOR YOUR DECISION TO USE THIS KERNEL!!For noobs: assume that installing this kernel will cause your phone to grow arms and punch you in the face.
PLEASE READ AND UNDERSTAND THIS OP BEFORE LEAVING USELESS "IT DOESN'T WORK" COMMENTS!
Issues that aren't answered here will be dealt with on a case-by-case basis.
SEE POST #2 FOR UPDATES, CHANGELOGS, and FIXES
SEE POST #3 FOR BATTERY/PERFORMANCE INFO
SEE POST #4 FOR A SHORT SYNAPSE BRIEFING
LOGS OR IT DIDN'T HAPPEN! Context helps too. What were your Synapse Settings?
KNOWN ISSUES Wifi issue is fixed! After a fresh rom install, all you need to do is reboot and the appropriate files are created in /data enjoy! HOTSPOT IS FIXED!!!! Finally! I AM AWARE OF AND WORKING ON LOCKSCREEN PIN BUGS!!
FEATURES:
- Linux 3.4.113 + a LOT of upstreamed subsystem code.
- Automatic Busybox Installation, Version 1.25.1.
- Cpufreq core backported ENTIRELY from mainline 4.13. All Cores operate independantly. Their governors and tunables can all be different.
- Govorners: Due to a highly upstreamed cpufreq core api, not many custom governors for now except for Interactive, Intelliactive, and the *NEW* Schedutil governor, described in the documentation like so:
The "schedutil" governor aims at better integration with the Linux
kernel scheduler. Load estimation is achieved through the scheduler's
Per-Entity Load Tracking (PELT) mechanism, which also provides
information about the recent load [1]. This governor currently does
load based DVFS only for tasks managed by CFS. RT and DL scheduler tasks
are always run at the highest frequency. Unlike all the other
governors, the code is located under the kernel/sched/ directory.
Sysfs files:
* rate_limit_us:
This contains a value in microseconds. The governor waits for
rate_limit_us time before reevaluating the load again, after it has
evaluated the load once.
For a great, comprehensive blog regarding the specifics of each governor, as well as the settings found below, please check out the link I've referenced in post #3.
- HARDLIMIT and THERMAL: Incorporated Yank555's CPU Limiting solution, Hardlimit. ALL hardlimits, cpu boost limits, and thermal limits are now PER CORE. I have included it directly in the core cpufreq code, and it is the primary controller for THERMAL, INPUT BOOST and user controlled hardlimits. Thermal overrides both user-selected and input-boost limits, and you can monitor the limiting in real time. Also, the thermal driver now accounts for each core's temperature, and saves time/lock-contention by skipping core control if the temps are below the frequency limiting value.
-CPU HARDPLUG: A driver I built that hooks into the main cpu hotplug API and allows you to disable any core you want, configurable for screen on/off.
- Hotplugs: MX Hotplug, personally built from scratch and uses a real-time kthread for its calculation work. Intelliplug 15.8 (Personally Updated), Alucard Hotplug, MSM_sleeper, Lazyplug, Blu Plug, and Bricked hotplug.
Hotplug Notes: I changed the names of certain functions in the Alucard and MSM Sleeper hotplugs, so that their tunables could be streamlined in Synapse. Synapse is cleaner and simpler than ever, but if you use a third party app, Alucard and MSM Sleeper's max cores and max cores during suspend settings will not be tunable. So anyone who uses a third party app with this kernel let me know and I'll devise a workaround. Mpdecision removed entirely. The "mpdecision" in our sysfs is actually bricked hotplug.
-GPU:Machinactive, Interactive, Conservative, Ondemand, Performance and Powersave GPU Governors, GPU touchboost (fixed suspend issue), ability to lock the min/max freqs, and more!
-Updated version of fauxsound (5.4) (flar2, alesaiko, me). I limited the options in the code to the 4 controls that actually work for our device, and you'll notice a significant stability improvement. Slimbus:Golden-ratio-based operation is pristine. Sound quality is hardware-perfected. The version number is largely arbitrary and I increment when I make any significant improvements. NO MORE USERSPACE CALCULATIONS NEEDED!!!
-A gamot of colour, brightness, and panel options that I frankly didn't think would be feasible for our device, but it's working! MDNIE HIJACK selection, KCAL, and Cyanogen's generic PCC colour control are implemented in Synapse. Note that MDNIE/KCAL stuff is a battery thief, and I've not tested PCC colour control enough for power consumption to give you a definitive statement on it. Note: PCC values are from 1000 (safety limit) to 32768 (or a number close to that), meaning your tuning control is as FINELY GRAINED as possible for this device. I can't believe Synapse actually supports its ridiculous number of steps (and well, I might add). Faux's generic "colour control presets' are in there and they actually work! The stock colours much more vivid, and lower brightness settings benefit from them as I have modified top brightness to my liking.
-HBM:Qualcomm High Brightness Mode: unlocked! This can be controlled via a checkbox in Synapse, but you can also use flar2's HBM widget from the play store. I tried it before and HBM would flicker, but i pulled off a VERY hacky way of making it userspace controllable. Be careful! Though it doesn't seem to drain the battery or overheat the device, it's purely experimental and could cause Chuck Norris to come to your house and personally smash your phone. Now SEPARATE from autobrightness! "SCREEN FLICKER FIX" on PAGE 2
- Completely upstreamed and overhauled cpu, power, scheduling...you name it. Updated Powersuspend to the point where I had to rename it, because it is now closely integrated with the core suspend/power api. Introducing: Prometheus. The driver now calls suspend directly when you turn the screen off, unless a) music is playing, b) the phone is plugged in or c) you choose to disable the feature.
-All the TCPIP tweaks etc, updates to random/frandom, android-specific autogrouping, limited but significant LMK/OOM updates.
-BACKPORTED "codel" fair-queueing net-scheduler, for a faster/more consistent networking experience.
-persistent ram, kexec-support, fast-charge, etc. Drop Caches button in Synapse is useful.
-Utilizing Qualcomm's built-in QRNGD (qualcomm random number generator daemon) with randomness optimized in the kernel = entropy for days.
-BOOTLOADER: Officially only 5.0.1 Bootloaders are supported. Unofficially, someone tried it with a KK bootloader and it worked fine for him so what do I know?
-COMPLETE Synapse support. Download, update, AND install Busybox On Rails from the PlayStore before you install the kernel for best compatibility and support. UPDATE: FULL Busybox installation is now included in machinex installer script. If you have any issues, still feel free to install Busybox on Rails. Upon kernel installation, you'll find Synapse installed in your system apps. If you want to get rid of it, just remove it from /system/priv-app with your file manager.
-CPU and GPU VOLTAGE Control: Both in Synapse. I DO NOT SUPPORT ISSUES IF YOU CHANGE VOLTAGE. YOU ARE ON YOUR OWN.
MENTIONS:
To those listed here, I cannot express how grateful I am for your assistence, patience, and kindness towards me as I badgered you throughout my journey. Though saying "thank you" doesn't feel like enough, thank you all. If I missed someone here, please tell me.
Thankyou:
friedrich420
Slim80
Tkkg1994
flar2
osm0sis
alesaiko
HybridMax
Kushan
Alucard24
Ausdim
Ktoonsez
neobuddy89
javelinanddart
Andreilux
theHacker911
UpInTheAir
Pafcholini
Placiano
Dorimanx
faux123 (seriously like the godfather of s4 kernel hax)
jcadduono
FransiscoFranco
Cyanogen
Meticulus
Eliminator74
Matthew-333 (moonshine kernel)
klabit87
apbaxel
yank555
ion-storm
yseras
PDesireAudio
lsswizard
arter97
Grarek
mrg666
showp1984
gsstudios
Lord Boeffla (andip)
Chainfire
TeamTrickster
tommygreenus
Andycar (For being the best bloody coding buddy I could ask for)
The Machinex Testing Team! - AMAZING folks, just amazing.
My Awesome Testers from this thread.
Again, I'm sure there's tons more.
On to the fun part then
INSTALLATION INSTRUCTIONS:More importantly, the uninstallation instructions. The install pretty much takes care of itself.
There are two links below that you must download in order to safely have an install/uninstall solution for this kernel. The one labelled "machinex-MarkOneHundred.zip" is the kernel. UPDATE: Busybox On Rails isn't required anymore. The second zip is crucial for uninstalling, aptly named "machinex-uninstaller-Jan12.zip." When this kernel is installed (and everytime it boots), it will rename mpdecision, thermald, thermal-engine, and power.default.so with an appended "-bak" suffix, because they all interfere with the updated power/cpu code in the kernel. If you switch to a different kernel, I INSIST that you flash the uninstaller (or take a look at the scripts yourself and do the stuff manually). ATTENTION: SLIM80'S KERNEL CLEANING SCRIPT IS NO LONGER NECESSARY WHEN FLASHING THIS KERNEL!!!!!! I HAVE INTEGRATED MY OWN CLEANUP PROCESS IN THE INSTALLER!!!!!!!!!!
TLDR: NO NEED FOR BUSYBOX ON RAILS, flash zip. use uninstaller zip to uninstall.
DOWNLOADS:
!!!JANUARY 12, 2017:UPDATE!! NEW UNINSTALLER for EVERY VERSION!!!!
DO NOT MIRROR THESE ELSEWHERE. DO NOT INCLUDE THEM IN YOUR ROM WITHOUT ASKING MY PERMISSION FIRST. I AM HAPPY TO COLLABORATE, NOT TO BE ON THE RECEIVING END OF BUG REPORTS CAUSED BY THIRD PARTY DOWNLOADERS.
UNINSTALLER-JAN12: https://www.androidfilehost.com/?fid=385035244224412313
md5: 295ac70bbb17ad2e5dc59e4ca1288e79
MarkOneHundred
INSTALLER: https://www.androidfilehost.com/?fid=745849072291685412
md5: 03af9cfc399d3eda3141254291668563
SOURCE: https://www.github.com/robcore/machinex
(be gentle on my ridiculous commit history, my git skills are shoddy at best).
So keep in mind this a development thread, blah blah blah, but if we all have good discussions (let's TRY to keep it on topic), I'm more than happy to have some fellow nerd friends to talk about my passion with. Heck, I want to use this thread as a chance to meet some other developers who wanna work on stuff together, exchange ideas, learn, and teach me how to get better at git.
Enjoy!
XDA:DevDB Information
Machinex, Kernel for the Samsung Galaxy S4
Contributors
robcore
Source Code: https://www.github.com/robcore/machinex
Kernel Special Features:
Version Information
Status: Stable
Current Stable Version: MarkOneHundred
Stable Release Date: 2017-10-31
Created 2016-09-05
Last Updated 2017-10-31
Reserved
UPDATES NOTICE:
Reset your fuelguage (in Synapse) after every install! WIping your cache and dalvik-cache can be helpful for stubborn apps, as well as wiping the cache of any specific app giving you trouble!
-------------------------------------------------------------------------
UPDATES - MarkOneHundred - October 31, 2017
CHANGELOG:
- Updated memory management to roughly linux 4.4.
- Modified Cpufreq in various ways. Per-Cpu frequency touchboost, per-cpu thermal core tracking and limiting, and governors can now be changed if a cpu core is offline. The governor selected will be applied to the core once it comes back online.
- Implemented Omniboost, a generic touchboost interface that can be used for any driver, so long as driver has an external function that the booster can use.
- Built a new hotplug driver from scratch, mx_hotplug. The driver chooses to on/offline cores based on a combination of system load and current number of scheduler requests (and touch of course). What separates this hotplug driver from others is that it uses a real-time kthread in order to give it an "interactive" type calculation.
- Speaking of which, found and fixed the issues with google's most recent interactive governor, and have added it back. Due to it working perfectly now, I forward-ported Intelliactive as well.
- Updated Hardplug to be more efficient.
- Built a little userspace hotplug driver from scratch for those who just need manual core adjustments.
- Tons of other little fixes and updates, to the kernel itself and to Synapse. Please explore around Synapse for some of the updated features.
- Found and fixed any of the user reported bugs i could.
- Continued with the various core updates to 4.14.
- Updated to my own toolchain, 7.1.1 hardfloat, cortex-A15 optimized (it is similiar enough to krait to give us an edge).
- I will update this if i think of anything else.
Sticky: Kernel base is now pretty much somewhere between 3.16-3.18, however I will keep the versioning at 3.4 for certain functions that depend on kernel_version conditionals. Wifi hotspot disconnect issue still persists, but i'd like to think that one day it will be solved...
Can be found in MachineX Rom by the awesome @Andycar found here: https://forum.xda-developers.com/ga...m-machinex-debloated-nogapps-s6-apps-t3573009
See my poorly formatted wiki for older updates:
https://github.com/robcore/machinex/wiki
-----------------------------------------------------------------------
LOGS
In Synapse, under 'LOGS AND PROFILES,' you will find a button that says ALL LOGS. Please press this button IMMEDIATELY after a bug appears that you would like to report, or after a boot if you get a kernel panic (RR).
From now on, without these logs present, I am no longer able to respond to the issues brought up by users.
FIXES
The following fixes involve sqlite and the "Setting Storage" application, also known as Settings Provider, or "com.android.providers.settings package" You will be working with a file named settings.db, and the 'system' table within.
Synapse Cancelled Fix: Get rid of the init.d scripts that are conflicting with UCI service startup. Also check the SuperSU section below...
Sound Fix: Either don't use an audio mod, or don't use Faux Sound Engine. That's all she wrote.
ScreenFlickerFix: Using an SQLITE DB Editor of your choice (from playstore), navigate to the "system" table and change values for "dim_screen" and "intelligent_screen_mode" to 0. *UPDATE* NOW AVAILABLE IN SYNAPSE UNDER THE "EXTRAS TAB"
ChargingTweak: Same as above but change "adaptive_fast_charging" to 0. This is only IF you are having issues which kernel driver-level fast charge. *UPDATE* NOW AVAILABLE IN SYNAPSE UNDER THE "EXTRAS TAB"
MASSIVE THANKYOU to @Andycar for making the above two fixes possible via Synapse!
SuperSU: I'm seeing a lot of permisison errors. Make sure, when using custom roms and kernels, that SuperSU is set to be as permissive as possible so you don't get knox blocked. Here are the crucial settings:
- ENABLE SU during boot
- DISABLE (untick) Mount namespaces separation
- Install SuperSU into /system
- ENABLE Trust System User
- Though I know many have security issues with the idea of allowing apps by default, doing so will make your experience way faster and provide you with less interuptions. At the very least I would set allow by default for Synapse.
These SU settings are kinda par for the course when it comes to android modding.
build.prop: Here is a list of property removals/changes recommended for our device:
REMOVE(lines containing):
ANYTHING with "fps/FPS" in it.
persist.sys.NV_FPSLIMIT
persist.sys.NV_POWERMODE
persist.sys.NV_PROFVER
persist.sys.NV_STEREOCTR
persist.sys.NV_STEREOSEPCHG
persist.sys.NV_STEREOSEP
persist.af.resampler.quality
af.resample
persist.af.resample
ro.telephony.default_network
telephony.lteOnCdmaDevice
dalvik.vm.dexopt-flags
ro.media.enc.jpeg.quality
ro.media.enc.hprof.vid.fps
ro.ril.power_collapse
ro.ril.sensor.sleep.control
pm.sleep_mode
power.saving.mode
persist.cust.tel.eons
persist.sys.dalvik.hyperthreading
boot.fps
shutdown.fps
debug.egl.profiler
hw2d.force
hw3d.force
video.accelerate.hw
debug.mdpcomp.maxlayer
debug.egl.buffercount
debug.enabletr
ro.hwui.renderer.disable_opaque
persist.sys.media.use-awesome (this is default anyway, and is controlled via the nuplayer checkbox in developer settings, so it's unneccesary)
CHANGE:
persist.sys.storage_preload=0 to persist.sys.storage_preload=1
tunnel.decode=false to tunnel.decode=true
af.resampler.quality=4 (or anything else) to af.resampler.quality=255
ro.config.dha_ils_enable=false to ro.config.dha_ils_enable=true
#ro.config.dha_cached_max=4 (remove the #)
#ro.config.dha_empty_max=36 (remove the #)
#ro.config.dha_lmk_scale=0.594 (remove the #)
sys.config.samp_spcm_enable=false to sys.config.samp_spcm_enable=true
sys.config.spcm_preload_enable=false to sys.config.spcm_preload_enable=true
ro.security.mdpp.ux=Disabled to ro.security.mdpp.ux=Enabled
For those having gaming issues, try removing them if you have them or adding them if you don't:
debug.performance.tuning=1
persist.sys.ui.hw=1
This might solve some issues for some folks.
---------------------------------------------------------------------------
INSTALLATION NOTE: Your first boot will probably take longer than usual, because this kernel makes significant (but safe, and auto-backed-up) changes to your core operating system.
This kernel includes drivers that TW has been compatible with since JB (I checked),
but didn't update the kernel drivers for (the best example of this is Autosleep). That said, there are userspace controllers like thermald and mpdecision (a binary linked to kernel code)
that interfere with custom governors, hotplug drivers, etc, so I've made the decision to back them up in the kernel script, and have them disabled while using this kernel.
The UNINSTALLER restores everything to the state it was in before flashing machinex, which is why I so strongly emphasize its use.
PERFORMANCE AND POWER-SAVING
Regarding the age-old performance/battery-life settings questions floating around, I'm gonna go ahead and suggest the following website created by a very dedicated fella who started out with the exact line of questioning, and built a genius guide for users of custom kernels. Heck, it's useful for developers too.
His username here is @gsstudios and he is a recognized developer here on XDA. Deserves it too
http://androidmodguide.blogspot.ca/
and on XDA:
http://forum.xda-developers.com/general/general/ref-to-date-guide-cpu-governors-o-t3048957
I encourage you to rate that thread 5 stars, as it is the most comprehensive guide to kernel tunables you ever did see.
Note that I *probably* don't incorporate feature requests, as I have enough on my plate with bringing up the subsystems to a point where I can call this a stable release thread. Don't like it? YOU try backporting linux 3.9 scheduling code to a Samsung 3.4 base
On that note, if anyone here is savvy regarding kernel, C and (not "or") git development, I welcome coding partners because working with a team means better quality, better time management, and a better chance of incorporating fancy tweaks.
Cheers.
SYNAPSE:
Synapse has a default "warning" that comes up the first time you open it.
{
"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"
}
The initial warning is just a bug in the app because it's just been installed.
It's a design flaw in the app itself.
Synapse bases its stability check on whether the device is rebooted within 2 mins of being turned on.
Synapse does this on first boot for every single kernel that uses it,
because it has no previous internal boot settings to base its decision on,
and also because the app expects saved defaults when none have been established yet.
It is nothing to worry about.
Untick the option in settings called "stability check" going forward.
Breathe.
Does it work?
I'm on imperium kernel on Thor s7 rom, I was wondering if your kernel works with m919, tmo gs4, I was looking forward to trying out your rom.
Thank you
-jeff
Hey Jeff,
The answer is...maybe/probably. I know that's probably not what you want to hear, but let me explain.
My device is actually an i337m (which is why i included it in the thread title), but I've been using the international kernels and roms without *major* issues ever since I've owned it. This is built from international sources, and it is running well on Albe's awesome 9.0 rom, so I imagine it will perform well for the ported/upgraded roms for our phones.
So if you've been using the international roms/kernels without problems, I see no reason why this wouldn't work for you other than the bugs/current issues listed in the op.
Sent from my GT-I9505 using XDA Forums
Can you create kernel for cm 13?
Wysłane z mojego GT-I9505 przy użyciu Tapatalka
Welcome to s4 community Bro.
Congratulations . Downloading. ......
Sounds nice bro, good Job! Try this Kernel later as soon as possible on my GT-I9505 with THOR S7 v1.5!
Sent from my SM-G935F using XDA-Developers mobile app
r2089 said:
Can you create kernel for cm 13?
Wysłane z mojego GT-I9505 przy użyciu Tapatalka
Click to expand...
Click to collapse
Sorry man, but CM is not on my list of priorities.
NAROUTO said:
Welcome to s4 community Bro.
Congratulations . Downloading. ......
Click to expand...
Click to collapse
Thanks! Though I've been around here for a while
xell75 said:
Sounds nice bro, good Job! Try this Kernel later as soon as possible on my GT-I9505 with THOR S7 v1.5!
Sent from my SM-G935F using XDA-Developers mobile app
Click to expand...
Click to collapse
Thanks! I hope you enjoy!
Everyone who uses this, feel free to provide feedback to help me assess what's needed for MarkTwo!
@robcore.
Im gonna try this to imperium rom v15.
So what is the best settings for more battery life ?
Playing clash of clans a few times a day browsing tapatalk and using youtube all day.
I want my device to run cool. Lol
Update:
Got a random reboot from the first initial setup.
==========
Will let it run for a couple of days with the preset default settings.
I will use my old 2600mah for now and later on swap my 7500mah once i get some good battery stats.
droidblitz said:
@robcore.
Im gonna try this to imperium rom v15.
So what is the best settings for more battery life ?
Playing clash of clans a few times a day browsing tapatalk and using youtube all day.
I want my device to run cool. Lol
Update:
Got a random reboot from the first initial setup.
Click to expand...
Click to collapse
Msm sleeper is a pretty sold hotplug for battery. I've noticed power efficient workqueues tend to slow things down/eat battery. Honestly I would try out msm sleeper for battery savings. Just note that games+youtube by design will eat into battery life. I will add some more power conscious governors soon. Also the usual stuff, the power your screen brightness the better, and turning off vibration/haptic will help.
robcore said:
Everyone who uses this, feel free to provide feedback to help me assess what's needed for MarkTwo!
Click to expand...
Click to collapse
I'm using this Kernel now on my GT-I9505 with THOR S7 v1.5 and so far a stable Kernel for me, many settings and alot settings I had never seen before as I like, very good! Just one thing til yet, Trying to set "Hellsactive" as CPU governor causes a freeze and a full reboot. Otherwise Kernel seems stable, using "Stockdemand" CPU Governor now. Keep going your work!
Sent from my SM-G935F using XDA-Developers mobile app
xell75 said:
I'm using this Kernel now on my GT-I9505 with THOR S7 v1.5 and so far a stable Kernel for me, many settings and alot settings I had never seen before as I like, very good! Just one thing til yet, Trying to set "Hellsactive" as CPU governor causes a freeze and a full reboot. Otherwise Kernel seems stable, using "Stockdemand" CPU Governor now. Keep going your work!
Click to expand...
Click to collapse
You know what, the interactive-based governors gave me trouble for the longest time. But I have found the issues in a great patchset, and am working on a fix that should be ready in a couple of hours. Until then EVERYONE STICK TO ONDEMAND-BASED GOVS!!!!
droidblitz said:
@robcore.
Im gonna try this to imperium rom v15.
So what is the best settings for more battery life ?
Playing clash of clans a few times a day browsing tapatalk and using youtube all day.
I want my device to run cool. Lol
Update:
Got a random reboot from the first initial setup.
==========
Will let it run for a couple of days with the preset default settings.
I will use my old 2600mah for now and later on swap my 7500mah once i get some good battery stats.
Click to expand...
Click to collapse
I'm guessing interactive based gov? If so, see my post above, MarkTwo is coming tonight.
robcore said:
You know what, the interactive-based governors gave me trouble for the longest time. But I have found the issues in a great patchset, and am working on a fix that should be ready in a couple of hours. Until then EVERYONE STICK TO ONDEMAND-BASED GOVS!!!!
Click to expand...
Click to collapse
Nice mate that's ok, thanks for the information! I'm looking forward for your new version!
Sent from my SM-G935F using XDA-Developers mobile app
xell75 said:
Nice mate that's ok, thanks for the information! I'm looking forward for your new version!
Click to expand...
Click to collapse
Dude thank YOU. I can't tell you how much I appreciate you and the others for testing this out and helping me iron out the remaining bugs, and being so understanding that "interactive based govs are broken" which is super embarrassing. Lol.
droidblitz said:
@robcore.
Im gonna try this to imperium rom v15.
So what is the best settings for more battery life ?
Playing clash of clans a few times a day browsing tapatalk and using youtube all day.
I want my device to run cool. Lol
Update:
Got a random reboot from the first initial setup.
==========
Will let it run for a couple of days with the preset default settings.
I will use my old 2600mah for now and later on swap my 7500mah once i get some good battery stats.
Click to expand...
Click to collapse
Update: simple gpu gov is snappy at stock settings and sooooo much better for battery consumption.
Also if memory serves me correctly, aren't you a cm kinda guy ; )
robcore said:
I'm guessing interactive based gov? If so, see my post above, MarkTwo is coming tonight.
Click to expand...
Click to collapse
Nope havent touched anything
There was a failed message when i booted the synapse app.
Something link kernel image failed but not sure should have taken a screencapture and the log.
Either way its working now.
robcore said:
Update: simple gpu gov is snappy at stock settings and sooooo much better for battery consumption.
Also if memory serves me correctly, aren't you a cm kinda guy ; )
Click to expand...
Click to collapse
More into like AOSP rom but had to use Tw for camera/video
I just noticed something.
My display colors somewhat changed? I think in a good way. Lol
simple gpu gov in marktwo?
droidblitz said:
Nope havent touched anything
There was a failed message when i booted the synapse app.
Something link kernel image failed but not sure should have taken a screencapture and the log.
Either way its working now.
More into like AOSP rom but had to use Tw for camera/video
I just noticed something.
My display colors somewhat changed? I think in a good way. Lol
simple gpu gov in marktwo?
Click to expand...
Click to collapse
Well it's great to see you here man! Lol with screen colour I made some fixes and changes to sammy's mdnie code. Upon checking the code against their roms, it turns out they've never bothered to fix discrepancies between the values in settings and the driver itself! "Standard" and "dynamic" have been switched this whole time. Also "auto" has been a placebo all along, they have had the backend in place all along but never initialized it in the list of available screen modes. On that note, for even cooler stuff check out the "video_mode" scenario in synapse. It's AWFUL for battery life, but sharpens everything to a crisp. I'm pretty sure kcal helped with color too(?).
As for simple gpu gov, works just fine on MarkOne! Franco's simplification to it made it a freakin' powerhouse while being better for battery somehow.
Building MarkTwo as we speak, then I'll test it and it's out! I'm working on the gov settings in synapse while building too. The tunable settings are ticking me off.

Categories

Resources