[Q] Where to get good info on features in user ROMs and kernels? - Samsung Galaxy Nexus

I've been running my CDMA GN unlocked and rooted for a couple weeks now, and I think I'm ready to jump into the world of non-stock ROMs and kernels. Of course, there's quite a few of them, and there's a ton of stuff in their descriptions that might not make a lot of sense. For instance, here's a sampling of various lines from "franco.kernel" that might as well be a foreign language to me:
Compiled with the optimized Mjolnir compiler with special cflags
.config tweaks to improve multitasking, responsiveness, battery etc
dirty_writeback values tweaked
Cgroup: speed up access to cgroupfs mounted entries in /proc/mounts
block: strict rq_affinity
TUN and CIFS modules added to /system/modules
3.2-rc7 RCUtree backport from imoseyon
I/O-less dirty throttling - backport from 3.2
Hotplug cpu1 is implemented somewhere else
Click to expand...
Click to collapse
So...first things first: do I need to understand any of this if I'm a user and not a dev, and if so where do I find it? If not, what are some good metrics to help me determine what ROM is closest to what I want? How will I know whether I need a kernel with a ROM or whether it could break something? Note that I'm not really asking for suggestions on specific ROMs or kernels here, since that's pretty much completely subjective. I'm just looking for resources on how and/or where to best educate myself without coming off as bothersome and clueless to the devs if or when I start asking questions.

You typically don't need to understand anything that you can't understand without looking it up. For you only need to read the things that are in plain english not computer speak. In the rom threads you really only need to find a rom that has features you like. None of the kernels out should break anything, and you should be fine just reading the things in Franco's thread such as "improved colors blah blah" if you do want to know something though feel free to PM me and I will try and help
Sent from my Galaxy Nexus using xda premium

Related

[DEV] How to completely remove Power HAL library

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.

[Q] Implementing OC/UV in a kernel source

As I cannot find any related guide while google-ing, I want to post this question on here for the purpose of learning and probably helping other people.
I've been stalking githubs for a while now and pming recognized developers with barely any helpful responses.
I currently took over a kernel for sgs2 but i want to start from scratch for sgs3
from what i seen in githubs is the /arch/arm/mach-msm/apuclock8960.c need modifying and so does cpufreq.c
[Q1] How to overclock a kernel
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
what coding is needed to enable this ?
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 ?
I would be very thankful if any developer could teach me (probably others too) and I will contribute back for sure.

[DEV][KERNEL] Enhanced Transformer TF300T Kernel [WIP]

Hello folks, I'll make this first post temporary, and let everyone know that this Kernel hasn't been developed or tested yet, I just bought my TF300T a couple days ago. I am starting this thread because I initially want some requests/ideas for a new kernel. I am mostly working on this for my own personal use, but at the same time I love to share with the community, so all of my source code and all releases will be posted up on XDA and github.
I want to base this work off of my previous kernels that I developed for the Acer A100/A200/A500 devices. The reason is that I want to include the options for several different OverClock steps, several optional 3rd party Governors, Zram support, AutoGroup Scheduling for Android, Extra / Optional I/O Schedulers, Cleancache + Zcache support, if necessary mmc_cap_erase delete (brick prevention; may not be necessary with this device??).
Here is an example link to my acer kernel: http://forum.xda-developers.com/showthread.php?t=1818924
I plan to port a lot of the features over to this device, but it will take some time to get things right and stable. I am looking for ideas, volunteers, or even partners (team members) to help with this project so that we can bring TF300 users the most stable and feature rich kernel possible. Also this kernel source may be ported to work with other Asus Transformer devices or clones, but since I personally own the TF300T, it will be the only "supported" kernel unless others wish to join the team and help with porting the kernel to work with other devices.
So people, let me know any ideas you have for a new kernel, and any features you'd like to see added. I want to get community input PRIOR to development instead of developing a test build and getting tons of requests for things that may be useful but incompatible with the work already done. Hopefully this makes sense to everyone, and I really look forward to working with a new community and bringing EVERYONE a feature rich kernel that works with stock roms as well as CM/AOKP etc..
undervolting would be cool
Spark1223 said:
undervolting would be cool
Click to expand...
Click to collapse
Definitely, undervolting is of high priority in this project.
Basically any bonus feature I added to my acer kernels in the thread I mentioned above, will be considered for this kernel and added unless there is a major conflict somewhere. I intend the kernel to boot for all users with as close to stock settings as possible, but users may use init scripts or apps such as CPU Master to change default boot settings / profiles / governors. That way it keeps one kernel for everyone, and gives people who aren't extreme OC'ers benefits of the kernel, as well as those who want extreme performance and extreme control tons of features.
As you said in the other thread a combination of clemsyn and unters would be great. Also have a look what _that has done with the tf700 kernel (compatible with tf300) by adding cifs, iso, Fsync and row scheduler support.
Underclocking would be great as well. Clemsyn's elite battery saver kernel on the nexus 7 was fantastic but didn't support 4.2.1 once everyone upgraded.
Also not sure if you are aware but you can mess with the asus cpu scripts inside system/etc to set different clock speeds and limits like I do in my kernel installer for CROMI.
Welcome aboard!
Are you planning to keep develop unters kernel or start one of your own?anyway id like to see pegasusq governor and deadline i/o
sbdags said:
As you said in the other thread a combination of clemsyn and unters would be great. Also have a look what _that has done with the tf700 kernel (compatible with tf300) by adding cifs, iso, Fsync and row scheduler support.
Underclocking would be great as well. Clemsyn's elite battery saver kernel on the nexus 7 was fantastic but didn't support 4.2.1 once everyone upgraded.
Also not sure if you are aware but you can mess with the asus cpu scripts inside system/etc to set different clock speeds and limits like I do in my kernel installer for CROMI.
Welcome aboard!
Click to expand...
Click to collapse
I've been doing a bit of researching on the device before jumping into the coding, so every little bit of insight helps, I know the tf700 and tf300 share the same kernel sources for the most part, but are the devices backward compatible kernels completely? Just from what I have read on a few threads, there are some issues with some hardware and the tf700 kernels with the tf300.. I'm not familiar with the row scheduler yet, is it an I/O scheduler or is it a kernel task scheduler such as BFS/CFS/Autogroup? I had intended to include the Autogroup scheduler for this device, as it has been well tested on my other devices, and improves overall stability, speed, responsiveness (and yes those benchmark scores will raise a very noticeable amount haha). Autogroup was originally for linux, and use the TTY task grouping, which isn't compatible with android, in my Acer kernels I patched it so that it used UID task grouping, and like I mentioned, everyone was very pleased with it (although most people don't completely understand the concepts)
About setting clock speeds in init scripts, thats completely common, and usually its the strategy that most apps take too, they just automate script writing/editing process. I actually want to go in the kernel's sources and edit the cpu freq tables for the highest stable overclock combination possible, yet keep a default clock for the kernel that is known to work and not cause problems. Then of course users can use the init.d scripts as you mentioned to set cpu frequencies at boot, or per event cpu freq as they please.
Governors are an important thing seems to be left out in the tf300t community from what I have seen. I personally want to try to get the preferrered governors I am experienced with working with this device such as, Smartass(v2), Savagedzen, Intellidemand, Wheatley, Lulzactive, Lionheart, and all the stock standard GPL governors.
For I/O Schedulers I'd like to add: BFQ, CFQ, SIO, DEADLINE, and V(R) (based on stability and performance on other devices I have developed with, I'd expect the default I/O scheduler to be V(R), however its hard ot say at this point as no testing has been done yet).
For underclocking, you mean undervolting? If so then: We'll most likely have to just see what the device likes with trial and error on a few test runs, although this shouldn't be hard to achieve. If you mean underclocking, I'm not sure I exactly understand what you'd be trying to accomplish as this feature is already achievable with stock kernels???
I really appreciate all the hard work that you have put into this community, as well as the other devs, and appreciate all the great welcomes!! Thanks!! Keep up the good work and I look forward to working with you guys!
Artic89 said:
Are you planning to keep develop unters kernel or start one of your own?anyway id like to see pegasusq governor and deadline i/o
Click to expand...
Click to collapse
My plan is to take the stock kernel sources and implement the features that I speak of. Also I will probably be referencing other kernel devs sources throughout this process, but my current intention is to base my kernel from stock, and put most of the work I put in myself and if there is anything that the other devs add that I haven't added I will patch those in as well. Generally it is much easier to work with a stock kernel and manually implement features, than to take someone elses work and try to guess at things they have done. If sources are all on git servers, then it will make referencing a whole lot easier, but if sources to most kernels are just zipped/tarred up then it makes comparing things a PITA.
As for the Pegasusq governor, that shouldn't be a problem, as long as it plays well with our processor/board. I am all about as many governors as possible Just sometimes so many options makes debugging harder when people are experiencing stability issues. I will keep anything mentioned here open for implementation, and we'll justs have to see what works and what doesn't.
I appreciate all the great pointers and ideas guys. Like I said I look forward to working with you all. For now its bed time in KY. Night guys!
Can't wait to see how this kernel progresses.... On thing that would be incredible is, my note 2 has a app called st tweaks that you can change cpu/gpu voltage and speed with a lot more options. To have something like that on the TF300 would be great. Most of us run our gpu oced to 650 or 700mhz....
Sent from my SCH-I605 using Tapatalk 2
Yes undervolting. Typod underclocking
sounds interesting
Sent from my magic machine and written by my trained pet monkey with a sprinkle of fairy dust
Great to see new development to our beloved devices!
+1 Very curious to how this pans out! Seems promising :good:
Welcome Sir
Will you also develop 4.2 kernels or will you stick to 4.1 only?
Please add gpu overclock to 700mhz and the possibilty to manage gpu frequencies
This sounds very interesting!!! What I would like you to do is name one for CyanogenMod 10.1 (android 4.2) since I am using that ROM right now.
Sent from my TF300T using Tapatalk HD
My main requests would be GPU OC and i/o improvements.
Just to add to the discussion I'm curious as to why people use other governors on jellybean other than interactive. I am all for choice and customization but you kinda remove something important from jellybean when you don't use the interactive governor in jellybean.
Sorry if this sounds rude I'm just genuinely curious :laugh:
To add to the suggestions things I would thoroughly like to see are 1) cm10.1 support 2) Row scheduler support 3) interactive governor patches.
Notes regarding the third suggestion: Google updated the interactive governor when 4.2 was released to make things significantly smoother and more battery friendly. Though things must be tuned on a per device basis but if people use this kernel enough there should be a decent amount of people to test things and tune it it in just right for this tablet.
Welcome on board, can't wait to see the results.
i would like to see data2sd support for uhs-1 support.
Zadeis said:
Just to add to the discussion I'm curious as to why people use other governors on jellybean other than interactive. I am all for choice and customization but you kinda remove something important from jellybean when you don't use the interactive governor in jellybean.
Sorry if this sounds rude I'm just genuinely curious :laugh:
To add to the suggestions things I would thoroughly like to see are 1) cm10.1 support 2) Row scheduler support 3) interactive governor patches.
Notes regarding the third suggestion: Google updated the interactive governor when 4.2 was released to make things significantly smoother and more battery friendly. Though things must be tuned on a per device basis but if people use this kernel enough there should be a decent amount of people to test things and tune it it in just right for this tablet.
Click to expand...
Click to collapse
Pegasusq is made for quad core devices... Runs great on my note 2
Sent from my SCH-I605 using Tapatalk 2
OK, my wish list:
- CPU freq management
- GPU freq management (preferably live)
- Color management (incl Trinity & OMAP Gamma management)
- Governor management (incl governor settings)
- i/o management (I WANT row scheduler)
And an app to control this. Preferably your own app. Make that App a paid App. (I'd buy it it in a heartbeat).
Have fun!
---------- Post added at 08:44 PM ---------- Previous post was at 08:34 PM ----------
Oh and support both 4.1 and 4.2 ...
Lots of good suggestions and ideas I have read so far. I'm surprised at all of the replies on here so quickly, thats great!
The things I see brought up on here the most that people are wanting are GPU userland control and the ROW scheduler. I mentioned previously that I wasn't familiar with ROW scheduler, but after doing a bit of research, it makes sense as the mainline linux patch wasn't submitted until August. Glad to see that ROW scheduler is just another Block/IO Scheduler too, that makes my plan of implementing my own flavor of Autogroup for Android still valid and possible.
I have seen a few people mention about Interactive Governor and Jelly Bean, I think there is a bit of confusion about Jelly Bean relying on Interactive to work properly. I think this confusion came from the Nexus 7 and Jelly Bean development, as the N7 had the interactive governor rewritten for better OS integration with JB, however JB doesnt exactly depend on it, and you can always base/rewrite new governors off of the Interactive that JB supported kernel source(s) have used.
Most likely the interactive governor will remain the default governor with my kernel, yet the 'option' will be available for several other cpu governors also. This should help people who don't like to rely on cpu profiles, and vice versa.
The main things right now I see people want are:
*1.8+ ghz CPU OC
*650/700 + GPU OC
*Userland GPU control (may be easier said than implemented)
*Userland CPU/GPU Voltage Control
*Added CPU Governors (including backporting N7 interactive governor for better scaling performance with Jellybean)
*Added Block I/O Scheduler Support (i.e. ROW, Deadline, VR, NOOP, BFQ, etc)
*CIFS/Samba FS Support
*NTFS R/W support (high speed) - I need to research the NTFS support provided with stock roms and 3rd party roms. NTFS-3G (fuse) would be the best option if it doesn't break compatiblilty with the stock rom's VOLD
*Backwards compatibility throughout roms including stock roms, CM10, CM10.1, aokp, etc (4.0, 4.1.x, 4.2 base)
Some things I haven't seen many or any people mention that I personally would be interested in including support for (which may or may not be included in stock kernel source / configs):
*ZRAM
*CleanCache + Zcache
I've mentioned a lot about Autogroup scheduler in the previous posts, I'm sure that most people probably don't fully understand what it is for and what the other options are. If you have ever had a device with a custom kernel that supported BFS (brain f*ck scheduler) then you know of the performance increase overall with BFS. As far as I know the Acer Tabs that I integrated Autogroup into the kernel was the first android tablet to fully support Autogroup on Android, as the original Autogroup mainline patch was developed for GNU Linux distributions that use per-tty task scheduling, android doesn't use this, instead I patched Autogroup kernel source to use UID task scheduling (per user/root) instead, and the results were quiet astonishing versus the standard CFS (completely fair scheduler). Autogroup is very well known for outperforming BFS also, and BFS had been used with android devices previously to get around the sluggishness from CFS, since Autogroup didn't work properly out of the box with Android. To help sum things up, here is a link explaining more about how Autogroup helps process/task scheduling at the kernel level: http://www.phoronix.com/scan.php?item=linux_2637_video&num=2&page=article
Right now I'm still in the research phase of this project, and learning more about the actual hardware inside the device, and what methods our stock roms / custom roms use to interact with the hardware. I'm planning on getting my sources for my new kernel started sometime tomorrow, but as much as people get their hopes up for things like this, I will say that I'm not going to rush into throwing out releases or putting things together in a hurry. I'm all for a quality kernel here, and with that said - it will take some time to get everything in line. Please don't ask for ETAs or if I have any beta/test versions. As soon as I have a test kernel zimage available it will be posted and available on my github.
I appreciate everyone's collaboration and cooperation greatly! Many good things to come guys!
Hands down if you can make this happen I will give you 10 bucks.

[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

Kernels for G7

Hello guys,
I am writing this to convey to you my wish for an updated Kernel Standalone. I recently started playing with the ramdisk, edit and creating my own kernel profiles. But I need more.
Of the current kernels out there, the one that caught my attention the most was the xd-kernel, I don't know if it will be because its forum topic is very striking and such ... But it was the first. I have been investigating, and I have realized that the version that I use (1.7) does not bring the CAF files. I didn't know what the CAF files were, until I came across a folder containing 3 sd845.dbt files in zip 2.0.2 of the xd-kernel.
That's when I realized that those files are direct kernel updates for our SOC.
I quickly realized that although I believed that the 1.7 kernel was better because it could raise the gpu frequencies above 710mhz, it was an outdated kernel and without direct SOC support as such.
The TNO kernel has not been tested yet by me, its forum post is very simple and it did not catch my attention ... but today I checked that it has CAF files and that it was published in December.
I have doubts about this kernel ... can gpu be overclocked?
Does it bring recent optimizations such as improvements to the CPU_governor?
Improvements to the Schedutil?
Drivers improvements?
In short ... What this kernel brings, that the xd-kernel does not have (not counting the CAF files).
And finally I wanted to ask for help ...
As I see that no one has the intention at the moment to update those kernels, or to create a new one ...
I would like someone to tell me where to start, for me to create my own kernel for this soc, tips to improve the soc (like the issue of Wakelocks, Oc, implement CAF files ...).
I do not intend to create a kernel that everyone should install. I have never programmed and they seemed to me like gods doing things to a kernel, like putting spectrum and things like that. But there is always a first time for everything, and this time it was my turn to begin to understand how a kernel worked, how spectrum is implemented and what settings are related to governors and I / O schedulers. But I need more, I need to compile a kernel that I say: Damn, if this kernel looks like a kernel from the "pixel3" forum, very complete and well-founded.
Hopefully someone will listen to me and teach me where to start, considering that I have not done this in my life. But reading and reading I have ended up here trying to be better. I think that if I have the necessary means (documentation and links on how to create a proper kernel) I could create something good that will work for all of us much better, but I am satisfied that it works well for me (as I said I cannot pretend that everyone uses my job).
Well guys, sorry for my english, thanks for reading and a hug to everyone (with mask hahaha).
Some questions what you should ask yourself are:
You want to create kernel for stock system? Or for some certain rom? To Android 9 or 10? What improvements do you want to bring?
I know you want to made it for yourself, but you can share your work to other people if you want.
ShadoV90 said:
Some questions what you should ask yourself are:
You want to create kernel for stock system? Or for some certain rom? To Android 9 or 10? What improvements do you want to bring?
I know you want to made it for yourself, but you can share your work to other people if you want.
Click to expand...
Click to collapse
Thanks for the reply
I would like to create it for the Stock Rom as the Evolution X team is doing a great job on AOSP.
I would mainly focus on Pie, I think it has more support currently, twrp ..., and then it can be ported to 10.
Improvements:
-Unlock CPU / DDR / GPU frequencies
-Import current CAF files for sd845
-SlimBus OC
-Wireguard
-Spectrum / Franco Kernel implementation
-Latest Schedutil governor uptades
-add good governors and I/O schedulers
-add support for misc features like zram compress formats, latest linux security patches...
And can be imported other features from kernels with same SOC devices like pixel or oneplus6.
I would have no problem sharing work with someone, I would rather have someone correct me for what I do wrong, than have a noob direct the project alone. I know there are many here that I am proposing, they do it in 5 seconds, but I don't have much idea and I need time and reading.
Hugs bro.
When I flashed the TNO kernel it gave me issues. My status bar would flicker non stop. Performance increase wasn't noticable and there is no overclocking the GPU. Most importantly, it didn't give me the options of different governors like the XD Kernel, and I/o schedulers.....having Zen and Maple with the XD is great. The one thing the TNO Kernel did have that the XD kernel lacks is Wireguard support, but I never got into that anyway. I would like to see another Kernel that gives us some of the options available to the V30 users, with RCTD disabled already. Beast Kernel, Konverged Kernel....others have so many options!
Yeedatoy said:
When I flashed the TNO kernel it gave me issues. My status bar would flicker non stop. Performance increase wasn't noticable and there is no overclocking the GPU. Most importantly, it didn't give me the options of different governors like the XD Kernel, and I/o schedulers.....having Zen and Maple with the XD is great. The one thing the TNO Kernel did have that the XD kernel lacks is Wireguard support, but I never got into that anyway. I would like to see another Kernel that gives us some of the options available to the V30 users, with RCTD disabled already. Beast Kernel, Konverged Kernel....others have so many options!
Click to expand...
Click to collapse
Wow thank you for the reply!!
Ill see these kernels, but my doubt is the compatibility with our device, is the same SOC, ok, but we have different screen for example. What do u think about this?
If it really works, it would be a great idea to port a v30 kernel. Looking at xda, I realize that the xd kernel looks a lot like one called SmurfKernel or something like that, from the OP6 device,
I would even say it is a port.
I found that kernel is not the same, is SD835... f*ck
Ill search on v35 forum
Update: Have 5 or 6 threads in v35 development :'( and saw 7 pages on v30 forum, what a forum lol.
Hey buddy! Long time no talk! I hardbricked the G7 so I took 2 broken moto G6's and made one working one into a 64bit beast running Android 11. Ive been really busy but finally found the time to revive the G7 with QFIL. Starting from scratch, I flashed the TNO kernel, which wiped out Magisk, but after a reflash it actually runs really smoothly. The XD kernel has too many errors to count. It's built completely wrong. If you monitor your gpu, you'll see the worst of its flaws. The TNO kernel runs really well, and although it doesn't have all the bells and whistles other kernels have, it works correctly. I must have had too many modifications already yheyr'=[

Categories

Resources