[KERNEL] SmurfKernel 2.0.78 [GPU OC / UC] [OOS / CUSTOM UNIFIED][4.9.191]

pappschlumpf

Senior Member
Apr 5, 2011
5,444
9,036
263
Augsburg

OnePlus 6 / Oneplus 6T


Youtube review of Kernel and Avengers theme by @hypergamer1231


Concept

Flash and be happy out of the box!
The kernel provides 4 Spectrum profiles and 3 Franco Kernel Manager profiles (Pie only) for most usecases. Balanced (default) / Battery / Performance / Gaming. For choosing another profile as Balanced please install Spectrum from the Google PlayStore.
If you want to modify the profiles just run a kernelmanager like EX Kernelmanager and change what you want.

First completely unified kernel for the OnePlus 6/6T OOS and Custom ROMs
One unified zImage!!!

To preconfigure the kernel uses a config file made by well known Senior member @xXx
These are the tunables you could modify:

Defaults in [ ]
Profiles battery, balanced, [performance], gaming
SELinux [permissive] / enforced
CPU minimum frequency [300], 403, 480, 576
GPU minimum frequency 180, [257], 342
GPU Input boost off 257 [342]
GPU maximum frequency up to 842 MHz (comes with 710 stock frequenccy set!)
Flickerfree display mod by @Devries (ImageBreaker kernel OP6T), default is off
Governor setting [pixel_smurfutil] or smurfutil_flex

The SmurfKernel configuration file is placed in /sdcard/SmurfKernel: If you want to use the kernel with it's default configuration just flash it!!! For custom changes please edit the SmurfKernelConfigurationEditor by @tanish2k09. The settings are applied saving the config. Your actual configuration is written to smurf.kernel.bootlog.

It's recommended to use my kernel paired with

xXx NoLimits thread

Telegram channel

Features

Unified kernel for OOS and custom ROMs
GPU OC up to 842 MHz
GPU UC to 180 MHz
CPU minimum 300 MHz
GPU Input boost (off / 257 / 342 MHz)
Input stune boost extender
Devfreq boost
Devfreq boost DDR
Devfreq boost GPU
High / Medium / Low boost presets
Klapse Livedisplay 5.0 by @tanish2k09
Wireguard
Linux 4.9.191
OOS Pie
Avengers Theme support (Oreo only)
Spectrum and FK profiles support
Lineage / Havoc / OmniROM supported



Information about Klapse Livedisplay

Governor
pixel_smurfutil
smurfutil_flex

Pixel_smurfutil is a mix between Pixel 3 schedutil, helix_schedutil and electrotuil. Next frequency selection is load based and in suspend all cores are forced to a lower frequency max level. Three big cores are forced to operate at minimum frequency (825 MHz). One big core could clock up to general maximum, 1300 MHz). In normal operation load based frequency selection is used.

IO-scheduler
noop
deadline
cfq
fiops
sio
zen
maple
anxiety

CPU / GPU
adreno idler
adreno boost
simple GPU algorithm
touch and input boost
dynamic stune boost
dynamic multi level stune boost
GPU input boost
Input boost stune extender

Misc
dynamic fsync
844 MHz GPU maximum clock
advanced tcp congestion algorithms
power efficient workqueues switchable
soundcontrol
Boeffla wakelock control

Gestures
DT2W
sweep2sleep and wake
vibration control

Installation

Unified kernel, just flash. OOS/Custom ROMs!
Reboot to TWRP and flash if you're already on SmurfKernel
You can flash the kernel using TWRP
If you need to flash Magisk, flash it before flashing the kernel.
Coming from stock kernel, or any other kernel it is recommended to flash magisk, kernel.
If you encounter a ramdisk update error please reflash TWRP, magisk, reboot TWRP and flash magisk, kernel.

Download

MEGA folder
GoogleDrive folder
SmurfKernelConfigurationEditor by @tanish2k09.
GoogleDrive testbuild folder

Bootanimations
Flash as Magisk module
Bootanimation 1
View attachment 4780427

All credits for these awesome bootanimations go to @JJay666, Pas and @Duncan1982

Contributors
Pappschlumpf

Source
https://github.com/pappschlumpf/op6/tree/9.0

Version Information
Status: Stable
Current Stable Version: V2.0.63
Stable Release Date: 2019-07-02

Credits
@SultanXDA for his outstanding work
@DespairFactor for his great base
@nathanchance for this great reference
@flar2
@tbalden
@ZeroInfinity for great pwrutilx governor
Joe Maples for electroutil
Team Helix for the great helix_schedutil governor
@difr for SimpleSpectrum
@frap129 for original Spectrum
@Tkkg1994 for always being so helpful
@DroidShift79 for the outstanding logo picture!
and all other great kernel devs on xda



XDA:DevDB Information
[KERNEL][GPU OC/UC][OOS / CUSTOM UNIFIED] SmurfKernel 2.0.78, Kernel for the OnePlus 6

Contributors
pappschlumpf
Source Code: https://github.com/pappschlumpf/op6/tree/9.0

Kernel Special Features:

Version Information
Status: Stable
Current Stable Version: 2.0.78
Stable Release Date: 2019-09-20

Created 2019-01-17
Last Updated 2019-09-20
 
Last edited:

pappschlumpf

Senior Member
Apr 5, 2011
5,444
9,036
263
Augsburg
History:

Most recent version 1.6.4
Upstream 4.9.125

Version 1.6.3
Fixed and enabled wake boosts
Various defconfig changes

Version 1.6.2
Simple LMK

Version 1.6.1
Added LED control

Version 1.6.0
Minimum frequency silver cluster 403 MHz insteadd of 300 MHz
Upstream Linux 4.9.124
Profiles updated

Version 1.5.9a
Profiles updated
Custom version clang only!!!
Custom version fixed (i hope :D )

Version 1.5.9
Upstream Linux 4.9.123

Version 1.5.8a
Added mounts for userspace lmk to ramdisk files

Version 1.5.8
Removed kernel LMK and switched to userspace LMK
Power efficient workqueue enabled by default
Added GCC 8.2 and Linaro 7.3.1 versions

Version 1.5.7
Upstream to Linux 4.9.121
Disabled ZRAM

Version 1.5.6a
Spectrum profiles reworked for smoother operation

Version 1.5.6
OOS 5.1.11
Upstreamed to Linux 4.9.120
32 bit VDSO

Version 1.5.5
Fixed GPU running on 710 MHz mostly
Skipping ramdisk update on Havoc (is already patched)

Version 1.5.4
Unified installer, just flash, it decides for you if OOS or custom ROM is on your phone!
Added devfreq boost

Version 1.5.3
Changed filename convention, instead of lineage, version is named custom now
Introducing cluster boost (boosting only the cluster where a new task is started on)
Fixed boot problems on custom ROMs (thx @darkobas)

Version 1.5.2
Upstreamed to Linux 4.9.119
Added USB fast charge

version 1.5.1
Upstreamed

Version 1.5.0
Added frandom number generator
fixed lineage/havoc/omni version

Version 1.4.9a
Installer reverted to older stage

Version 1.4.9
Update to Linux 4.9.115
Lineage version removed until it is fixed again. Please use 1.4.8 for Lineage

Version 1.4.8
Update to Linux 4.9.114
Lineage / Havoc version

Version 1.4.7
Updated sdm845 source

Version 1.4.6
Introducing zip name based governor selection, check installation instructions

v1.4.6
Introducing smurfutil_flex governor
Default governor schedutil_flex / Spectrum is using it to now
Updated techpack to 5.19

v1.4.4
Merged 5.1.9
Upstream Linux 4.9.113

v1.4.2c
Updated all Spectrum profiles

v1.4.2
Updated Balanced and Battery profiles

v1.4.1
Fix some quirks left after updating governors

v1.4.0
Added Spectrum profiles support (Balanced / Battery / Performance / Gaming) Governor is smurfutil on all profiles
Spectrum on Google Play
Avengers theme support diabled by default

v1.3.9
Final free Avengers theme driver
Update to Linux 4.9.112

v1.3.8 Avengers
Avengers Theme enable module by pappschlumpf included
@artistik90 thx for checking value on original Avengers Edition device.
OP6 Avenger Edition owners should use this version to not break their display settings.

v1.3.8
dynamic stune boost updated, cpu_input_boost updated,
added a script function to remove francos framdisk edits and script, important for user coming from franco kernel (if this user type exists :D )

v1.3.7
Merged SD 845 source

v1.3.6
Added capacity clamping

v1.3.5
CPU input boost instead of CPU boost

v1.3.4
Added updatef energy_dcfc governor

v1.3.3
Added updated versions of alucardsched and darknesssched

v1.3.2
Keeps your Magisk now.

v1.3.1
Updated cpu_input_boost

v1.3.0
Added ZRAM
Governors updated

v1.1.0
Added smurfutil governor
 
Last edited:

pappschlumpf

Senior Member
Apr 5, 2011
5,444
9,036
263
Augsburg
What's the difference between the usual schedutil and helix_schedutil?
The difference between all 4 governors is the way how next frequency is selected. Electroutil and pwrutilx are ramping flatter if the device is suspended. Electroutil is cutting max frequency if device is suspended. Check governor settings, you could adjust it. Helix is ramping frequencies different based on load scenario. Lower load, flatter ramp. More battery friendly in my opinion.
For future versions i'll mix a new governor that combines these concepts.

Gesendet von meinem BKL-L04 mit Tapatalk
 
Last edited:

NateDev

Senior Member
Aug 18, 2016
703
149
0
Mississauga
The difference between all 4 governors is the way how next frequency is selected. Electroutil and pwrutilx are ramping flatter if the device is suspended. Electroutil is cutting max frequency if device is suspended. Check governor settings, you could adjust it. Helix is ramping frequencies different based on load scenario. Lower load, flatter ramp. More battery friendly in my opinion.
For future versions i'll mix a new governor that combines these concepts.

Gesendet von meinem BKL-L04 mit Tapatalk
Ok, I really need good battery life so I'll go ahead and choose Helix. Thanks :)
 

hurray

Senior Member
Oct 25, 2010
624
266
83
@pappschlumpf: Thank you for your kernel! I am trying it since about 12 hours. :D But I have two questions:
1. How can I adjust the "vibration control"? I can't find anything related to "vibration" in Kernel Adiutor
2. I found a setting in Kernel Adiutor under "Misc" which is named "Software CRC control". What does this setting? I can't get the feature behind the setting from the description itself in Kernel Adiutor. Is it a new feature or something that is only deactivated in your kernel?
 

pappschlumpf

Senior Member
Apr 5, 2011
5,444
9,036
263
Augsburg
@pappschlumpf: Thank you for your kernel! I am trying it since about 12 hours. :D But I have two questions:
1. How can I adjust the "vibration control"? I can't find anything related to "vibration" in Kernel Adiutor
2. I found a setting in Kernel Adiutor under "Misc" which is named "Software CRC control". What does this setting? I can't get the feature behind the setting from the description itself in Kernel Adiutor. Is it a new feature or something that is only deactivated in your kernel?
With Adiutor you dan't have all options. EX Kernel Manager recommended. The plan is to include Synapse support, like i have in in my Note 8 kernel. But that needs some time. There're many options in the OP6 kernel that the Note 8 kernel isn't supporting.
CRC Control disables the crc check for internal memory access. Faster, but well memory errors wouldn't be detected.
It's not a new feature, most kernels for the OP6 support it.
 

hurray

Senior Member
Oct 25, 2010
624
266
83
With Adiutor you dan't have all options. EX Kernel Manager recommended. The plan is to include Synapse support, like i have in in my Note 8 kernel. But that needs some time. There're many options in the OP6 kernel that the Note 8 kernel isn't supporting.
CRC Control disables the crc check for internal memory access. Faster, but well memory errors wouldn't be detected.
It's not a new feature, most kernels for the OP6 support it.
Thank you for your fast answer. So I will have a look at the Ex kernel manager. :)

The CRC control is a feature which I didn't see in the other kernels I tried. Maybe they are there but not controllable. That's something I can't see.

To make it clear for me: I see the CRC control as disabled (this is the untouched status directly after flashing the kernel). Is this correct or should be the CRC control activated by default?
 

pappschlumpf

Senior Member
Apr 5, 2011
5,444
9,036
263
Augsburg
Thank you for your fast answer. So I will have a look at the Ex kernel manager. :)

The CRC control is a feature which I didn't see in the other kernels I tried. Maybe they are there but not controllable. That's something I can't see.

To make it clear for me: I see the CRC control as disabled (this is the untouched status directly after flashing the kernel). Is this correct or should be the CRC control activated by default?
Yes, faster option, disabled is default. If your memory is working as expected crc is not needed. On an old device with defect mem you may need it :D