[Patch] Incremental patch for updating from 2.6.35.7 to .14 - Galaxy Note GT-N7000 Android Development

As the title says this patch is for updating the Samsung sources from version 2.6.35.7 to 2.6.35.14. Might be useful for some kernel developers. I was stuck at bootloop after updating the initramfs.cpio with the updated modules, but this has nothing to do with the patch itself. If wanted I can also upload the original incremental patches.
I hope this gets integrated in some kernels soon (I heard others expermented with this as well), as it will fix the Android OS bug.
Regards,
Diewi

Diewi said:
As the title says this patch is for updating the Samsung sources from version 2.6.35.7 to 2.6.35.14. Might be useful for some kernel developers. I was stuck at bootloop after updating the initramfs.cpio with the updated modules, but this has nothing to do with the patch itself. If wanted I can also upload the original incremental patches.
I hope this gets integrated in some kernels soon (I heard others expermented with this as well), as it will fix the Android OS bug.
Regards,
Diewi
Click to expand...
Click to collapse
Hey man,
Thanks, I need this
You can teach me howto make patches for kernels?
How to patch up the kernel for example? You are just legend
Netchip

Hey netchip,
of course I can
First you need to run this command for every incremental patch:
BZIP compressed:
Code:
bzip2 -dc patch-2.6.35.X-Y.bz2 | patch -p1
uncompressed:
Code:
patch -p1 < patch-2.6.35.X-Y.patch
The X stands for the minor version you already have, Y for the one you want to patch to - usually Y = X + 1 for "official" patches.
After every application of a incremental patch you need to check weather a "hunk" failed. Normally, this happens if you get a warning about parts of the patch already being applied. You will recognize the failed parts by their ending: .rej. You'll need to check those files against the to-be-patched source file and maybe do some changes to it.
After you gone through all patches, unpack the unmodified kernel again and compare both directories with the following command:
Code:
diff -uNrB GT-N7000_Kernel_orig GT-N7000_Kernel > SGN_2.6.35.X-Z.patch
Then you'll get a patch that includes all the single ones.
BTW, I'm assuming you're in a UNIX environment.
(@all)
In order to apply the patch you can simply take the commands listed in the beginning of the post. The patch uploaded in the OP (.7-.14) is uncompressed.
I'll just attach the incremental patchset for completeness (bzip compressed patches)

Diewi said:
Hey netchip,
of course I can
First you need to run this command for every incremental patch:
BZIP compressed:
Code:
bzip2 -dc patch-2.6.35.X-Y.bz2 | patch -p1
uncompressed:
Code:
patch -p1 < patch-2.6.35.X-Y.patch
The X stands for the minor version you already have, Y for the one you want to patch to - usually Y = X + 1 for "official" patches.
After every application of a incremental patch you need to check weather a "hunk" failed. Normally, this happens if you get a warning about parts of the patch already being applied. You will recognize the failed parts by their ending: .rej. You'll need to check those files against the to-be-patched source file and maybe do some changes to it.
After you gone through all patches, unpack the unmodified kernel again and compare both directories with the following command:
Code:
diff -uNrB GT-N7000_Kernel_orig GT-N7000_Kernel > SGN_2.6.35.X-Z.patch
Then you'll get a patch that includes all the single ones.
BTW, I'm assuming you're in a UNIX environment.
(@all)
In order to apply the patch you can simply take the commands listed in the beginning of the post. The patch uploaded in the OP (.7-.14) in uncompressed.
I'll just attach the incremental patchset for completeness (bzip compressed patches)
Click to expand...
Click to collapse
Thanks for your answer
Where can I get normally the incremental patches?
Kernel.org?
Also, if you are interested in building a kernel with me, send me a PM, and I will answer
Sent from my GT-I9100

Yes, usually at kernel.org. But lately they are only hosting the latest incremental patch for the longterm support kernels (2.6.32 and 2.6.33). Also the latest incremental patches (up to 4 minor versions in the past) for the latest kernel.
These particular patches I found using google that directed to some outdated mirrors. I just needed to adapt the version numbers of the patch and search for this string.

While waiting for my Note, I just have downloaded kernel sources and my linux box is cross compiling the sources with the recommended toolchain (4.4.0) as I write this post
I just noticed that the process reports quite a few warnings...
When I have my Note, I will try a few things like undervolt (already located the bit of relevant code for this) and will add "interactive" CPU governor which is far better than the default "on demand" for interactivity.
If everything goes well, I will add this upgrade too
Edit:
right. Done. Waiting for the phone to test this first almost stock kernel
Code:
LD arch/arm/boot/compressed/vmlinux
OBJCOPY arch/arm/boot/zImage
Kernel: arch/arm/boot/zImage is ready

Diewi said:
As the title says this patch is for updating the Samsung sources from version 2.6.35.7 to 2.6.35.14.
Click to expand...
Click to collapse
Have you tested the Patch? Which toolchain did you use for compiling the Note Kernel?
I have tried it the other way around: Take vanilla 2.6.35.14 sources and include the Samsung patches from 2.6.35.7. I found out, that Samsung uses a lot of Backports in his code. Also I had some problems with wrong applied fuzzy patches.
Meanwhile it works. Android OS is much lower with a 2.6.35.14 Kernel. But the battery lifetime is not much longer than before.
I had also some problems with the Runtime Powermanagement of USB Devices. I'm note sure if it was a problem of the patches or my compiler options. I have to test a little bit in the next days.

RiverSource said:
Have you tested the Patch? Which toolchain did you use for compiling the Note Kernel?
I have tried it the other way around: Take vanilla 2.6.35.14 sources and include the Samsung patches from 2.6.35.7. I found out, that Samsung uses a lot of Backports in his code. Also I had some problems with wrong applied fuzzy patches.
Meanwhile it works. Android OS is much lower with a 2.6.35.14 Kernel. But the battery lifetime is not much longer than before.
I had also some problems with the Runtime Powermanagement of USB Devices. I'm note sure if it was a problem of the patches or my compiler options. I have to test a little bit in the next days.
Click to expand...
Click to collapse
Dunno if it's making a huge difference, but your GCC is 4.5.4 whereas the recommended is 4.4.0
Code:
> cat Readme_Kernel.txt
################################################################################
1. How to Build
- get Toolchain
From android git server , codesourcery and etc ..
- arm-eabi-4.4.0

No, the Toolchain makes no big difference. I hoped the newer Linaro one optimzes better, but at least with CF Bench there was no big difference between 4.4.0, 4.4.3 or 4.5.4 (the results where slightly better than with stock kernel, 13300 points in stead of 13000 with stock).

RiverSource said:
Have you tested the Patch? Which toolchain did you use for compiling the Note Kernel?
I have tried it the other way around: Take vanilla 2.6.35.14 sources and include the Samsung patches from 2.6.35.7. I found out, that Samsung uses a lot of Backports in his code. Also I had some problems with wrong applied fuzzy patches.
Meanwhile it works. Android OS is much lower with a 2.6.35.14 Kernel. But the battery lifetime is not much longer than before.
I had also some problems with the Runtime Powermanagement of USB Devices. I'm note sure if it was a problem of the patches or my compiler options. I have to test a little bit in the next days.
Click to expand...
Click to collapse
How did you have included samsung drivers in a vanilla kernel?
I know now how to patch up, but how works your way?

No, I didn't test the patch very well. I just compiled the kernel with the patches and added CF's initramfs.cpio (packed) to the zImage file. It did boot up, but wlan didn't work, as the modules in the initramfs were not compiled for this build. The "about" page showed the minor version ".14".
I used codesurgery version 2010.09.51 for this test.
@netchip:
I found a good guide how to extract the samsung specific patches in this thread (bottom of OP):
http://forum.xda-developers.com/showthread.php?t=784270
Maybe we see a 3.1 kernel soon

Diewi said:
No, I didn't test the patch very well. I just compiled the kernel with the patches and added CF's initramfs.cpio (packed) to the zImage file. It did boot up, but wlan didn't work, as the modules in the initramfs were not compiled for this build. The "about" page showed the minor version ".14".
I used codesurgery version 2010.09.51 for this test.
@netchip:
I found a good guide how to extract the samsung specific patches in this thread (bottom of OP):
http://forum.xda-developers.com/showthread.php?t=784270
Maybe we see a 3.1 kernel soon
Click to expand...
Click to collapse
You have a dump of vanilla 2.6.35.7?
Compare these, and you have the drivers, hmm I go try.

Or you could use the patched Samsung kernel (2.6.35.14) and compare this to the vanilla kernel. I'm absolutely not sure if this would bring any benefits, but I think that way the patches backported by Samsung would get filtered out.
Sent from my GT-N7000 using XDA App

Diewi said:
Or you could use the patched Samsung kernel (2.6.35.14) and compare this to the vanilla kernel. I'm absolutely not sure if this would bring any benefits, but I think that way the patches backported by Samsung would get filtered out.
Sent from my GT-N7000 using XDA App
Click to expand...
Click to collapse
That's also a good idea!

Thanks.
The patched vanilla kernel (.14) can be found here:
http://ftp.ua.postgresql.org/pub/linux/kernel/v2.6/longterm/v2.6.35/
The 2.6.35.7 vanilla kernel can be found directly on the ftp server of kernel.org

Diewi said:
Hey netchip,
of course I can
First you need to run this command for every incremental patch:
BZIP compressed:
Code:
bzip2 -dc patch-2.6.35.X-Y.bz2 | patch -p1
uncompressed:
Code:
patch -p1 < patch-2.6.35.X-Y.patch
The X stands for the minor version you already have, Y for the one you want to patch to - usually Y = X + 1 for "official" patches.
After every application of a incremental patch you need to check weather a "hunk" failed. Normally, this happens if you get a warning about parts of the patch already being applied. You will recognize the failed parts by their ending: .rej. You'll need to check those files against the to-be-patched source file and maybe do some changes to it.
After you gone through all patches, unpack the unmodified kernel again and compare both directories with the following command:
Code:
diff -uNrB GT-N7000_Kernel_orig GT-N7000_Kernel > SGN_2.6.35.X-Z.patch
Then you'll get a patch that includes all the single ones.
BTW, I'm assuming you're in a UNIX environment.
(@all)
In order to apply the patch you can simply take the commands listed in the beginning of the post. The patch uploaded in the OP (.7-.14) is uncompressed.
I'll just attach the incremental patchset for completeness (bzip compressed patches)
Click to expand...
Click to collapse
thanks!!
i'm build galaxy s2 kernel
i hope patch 2.6.35.7 to 2.6.35.14
no problem at use Incr_PatchSet_2.6.35.7-14.zip file?
and SGN_2.6.35.7-14.patch.zip better than Incr_PatchSet_2.6.35.7-14.zip?
(sorry my bad english)

As you are trying to apply the patch to a s2-kernel, I would advise you to use the original incremental patchset. You only need to go through the *.rej files and check weather the source needs a modification (see http://linuxhaven.de/dlhp/HOWTO/DE-Kernel-HOWTO-5.html). The all-in-one patch is made by a diff of the original and the patched Galaxy Note kernel, so you might miss something.

Diewi said:
As you are trying to apply the patch to a s2-kernel, I would advise you to use the original incremental patchset. You only need to go through the *.rej files and check weather the source needs a modification (see http://linuxhaven.de/dlhp/HOWTO/DE-Kernel-HOWTO-5.html). The all-in-one patch is made by a diff of the original and the patched Galaxy Note kernel, so you might miss something.
Click to expand...
Click to collapse
successful upgrade to 2.6.35.14
thanks

Dude... Will this work on Galaxy y ?? or this is device specific ????

Nachiket.Namjoshi said:
Dude... Will this work on Galaxy y ?? or this is device specific ????
Click to expand...
Click to collapse
No.
Sent from my GT-N7000 using Tapatalk 2

Related

[PATCH] Kexec-hardboot patch

In this post, I would like to explain what kexec-hardboot patch is.
@kernel developers: I would like to ask you to merge this patch to your kernels, because it is essential part of MultiROM - it allows to boot any kernel without changing the boot partition. I realize that it is no small request, but the patch is not big, touches relatively stable parts of kernel and should not cause any problems. Thank you.
What is kexec?
It is syscall of Linux kernel, which allows you to boot another Linux kernel without restarting the device - "Linux boots itself". The functionality is equivalent to fastboot -c *cmdline* boot zImage initrd.img, but without PC and fastboot. It is fairly known thing, so more info at wikipedia and man kexec.
What is the difference between normal and hardboot exec?
Kexec-hardboot patch adds a real device restart to that process, so that all the drivers can be properly reinitialized. It stores new kernel to RAM, reboots the device as usual, and kernel from boot partition immediately jumps to the one which was stored to RAM before reboot.
Unlike grouper's kexec-hardboot patch, this one only requires the host kernel to be patched. This is one of the improvements Tasssadar made, and I think it is pretty significant.
To sumarize the process:
kexec --load-hardboot.... is called and kernel it loaded into RAM.
kexec -e is called. Special info is written to memory (to area which is not overwritten on reboot) and the device is rebooted.
After reboot, very early in the boot process, kernel checks if that special info is present in RAM and if so, it loads new kernel from RAM and jumps to it.
Kexecd' kernel starts and boots.
For more info, read the original thread.
Patches:
Kernel patch: https://gist.github.com/PatrikKT/50faf32e8931d51c0c9a,
This is the kernel patch. Only the host kernel needs to be patched.
Related CONFIG options:
CONFIG_KEXEC=y
CONFIG_KEXEC_HARDBOOT=y
CONFIG_PROC_DEVICETREE=y
CONFIG_ATAGS_PROC=n # This one is turned on automatically, but it is not needed, so you can disable it.
All these options must be enabled.​
Userspace kexec binary: https://github.com/Tasssadar/kexec-tools
I had to change some things in kexec userspace binary because of some kernel bugs, complete description is in that repository. You can get statically built binary at https://github.com/Tasssadar/multirom/blob/master/install_zip/prebuilt-installer/multirom/kexec​
Usage:
Once you have the kernel patches and kexec userspace binary in place, just run following command to boot into new kernel:
Code:
kexec --load-hardboot zImage --initrd=initrd.img --mem-min=0x20000000 --command-line="$(cat /proc/cmdline)" --dtb
kexec -e
Note the command line parameter - cmdline from bootloader is not added automatically, you have to put it there by yourself.
Authors:
This patch was made by Mike Kasick for Samsung Epic 4G. Since that, it was ported to several devices, one of them is Asus Transformer TF201 - he used patch from TF201 and modified it a bit (basically just changed few SoC specific constants). People at #ubuntu-arm helped him out with that, thanks.
For hammerhead, he has improved the patch a bit - only the host needs to be patched now and he has added support for DTB.
This thread was used as a template Credits to @Tasssadar for his Nexus 5 patch
Awesome people helping with our G2's development. Thank YOU!
patrik.KT said:
I would like to ask you to merge this patch to your kernels, because it is essential part of MultiROM - it allows to boot any kernel without changing the boot partition.
Click to expand...
Click to collapse
What benefit would there be to non-MultiROM users? (Just curious.)
blastagator said:
What benefit would there be to non-MultiROM users? (Just curious.)
Click to expand...
Click to collapse
Any. Just any.
Actually I can't think of anything. It's only to bring the device to a full reboot to load a new kernel.
Odoslané z môjho HTC Desire 601
blastagator said:
What benefit would there be to non-MultiROM users? (Just curious.)
Click to expand...
Click to collapse
Not for common user, in epic4g kexec used by kernel devs to test a new kernel build without replace the existing kernel.
They just load a temporary kernel to test. Then that kernel will gone after a reboot.
Hope to see new kernels that support MultiRom! Great work man!
Would this allow a multiboot with AOSP and Stock roms?
AbdulrahmanAmir said:
it doesnt work while i have stock and the secondary is aosp (dU-dirty.unicorn) when i boot the secondary it works sound only but no display just black screen plzz help
Click to expand...
Click to collapse
The patch is not necessary at the moment, because of the locked bootloader. It's just for devs to be prepared with their kernel when we can unlock the bootloader, so that multirom will work as it should.
Odoslané z môjho HTC Desire 601
Thanks for your great thread. But there is no instruction about how we can add that patch to kernel source. Could you write more details about implanting this patch?
No response??
mohamaadhosein said:
No response??
Click to expand...
Click to collapse
Download the patch file from first post and place it in the kernel root directory. Then you should use this command to check if there are any conflicts: git apply --check <path_to>.patch
If there are no errors, use this to apply: git apply <path_to>.patch
Sorry for the late response but I checked xda when I wasn't home and I forgot to reply when I got home
Odoslané z môjho HTC Desire 601
Hey, some changes need to be made to the patch.
On line 353, change the number from 22 to 21. Also, it has some errors when modifying head.S, which I had to fix manually..
But guys, my kernel is building with the latest multirom. This **** is going to maybe work soon!
I'll keep you all posted.
Thank you man
Guys, I think I've done it. Kexec hardboot patched kernel for 5.1.1 and thus multirom compliant, which I am preparing to build with twrp. this is very exciting.
When will it be ready?
Are you kidding me? No ETAs. I literally haven't even announce it yet and somebody asks for an ETA.... It will be ready once I test everything to boot well on my device.
patrik.KT said:
Download the patch file from first post and place it in the kernel root directory. Then you should use this command to check if there are any conflicts: git apply --check <path_to>.patch
If there are no errors, use this to apply: git apply <path_to>.patch
Sorry for the late response but I checked xda when I wasn't home and I forgot to reply when I got home
Odoslané z môjho HTC Desire 601
Click to expand...
Click to collapse
It says the patch is corrupted on the line 375

[MODS DELETE THIS THREAD] exNoShadez-eas

Mod edit: Thread closed on owner's request!
exNoShadez-EAS Kernel
FEATURES
- Current LTS release -> Linux-3.18.114
- Energy Aware Scheduling
- Schedutil (default Cpu Governor)
- RCU infrastructure backport (with expert mode enabled)
- Cpu-Boost / Input Boosting (enabled by default)
- BINFMT_MISC support (NOT mounted on boot).
- Kernel Hardening/Protection (CopperheadOS/Grsec/Pax Marlin kernel hardening features)
- leds-qpnp: Notification LED control - V1.1c (Boeffla) - Adapted for Marlin
- Binder_rt = My own re-implementation of AOSP Binder that uses rt_mutexes; supporting priority inheritance
- Improved scheduling/determinism for high priority threads/tasks
- Backported Scheduling, Locking and Workqueue subsystem code from Newer Linux kernels.
- Audio Driver enhancements / backports (from Wahoo/Pixel 2)
- Sound/Audio driver Tweaks (bug fixes, scheduling improvements)
- forced Interrupt threading enabled
- Wifi Mac Address Randomization
- WireGuard VPN kernel module support (more info soon)
- KCal Advanced Colour control
- Improved ASLR (in kernel)
- USB Fast Charge
- Wake Gestures
- GCC 6/7+ Fixes
- Built with GCC-8.x-dev
- and more
Contains code from everywhere: Code Aurora, Flar2/Marlin, CopperheadOS, AOSP, Project-EAS, Freak7/Kirisakura, Linaro, Pixel 2 kernel sources, mainline linux and elsewhere. Modifications and backports by me, as well.
BACKGROUND
I wanted a kernel for My Pixel that had 'all of the things', it didn't exist... So I'm working on my own kernel. I try to balance Security/hardening, experimental features with high Performance and battery life. <- not an easy task! ... Some of the security features do come with overhead, but if you use apps that are CPU heavy / processing and/or require low latency - they will perform well (at the cost of chewing some battery life, of course).... Battery life and SOT are very reasonable though.
WARNING / VERY IMPORTANT: This kernel isn't compatible with installing TWRP ~> meaning; you must use the fastboot version of TWRP (used in RAM) , flash the kernel and NOT install TWRP to your system (the kernel is too big for TWRP to co-exist).... This may sound inconvenient, but there are a number of valid reasons to avoid reducing a kernel's size in order to support TWRP installation, in the boot partition.
***Fun facts on this subject below => in the 2nd post: PLEASE READ: to understand my motivation***
TWRP REMOVAL
*To remove TWRP from your system; You need the stock boot.img from your running/current firmware (which is inside of the factory image zips) or use the Nov Stock boot.img provided here. Then it's as simple as flashing the boot.img to wipe TWRP;
fastboot flash boot_a /path/to/boot.img
fastboot flash boot_b /path/to/boot.img
Stock 8.1 July 2018 Boot.img => https://github.com/nine7nine/Apps/raw/master/SailfishStockJulyBoot.img
Now you can proceed with using the TWRP fastboot boot.img to flash my kernel, magisk/supersu or whatever else....
Fastboot twrp boot image => https://dl.twrp.me/sailfish/twrp-3.2.2-0-sailfish.img
WARNING: This shouldn't need to be said, but we did have someone who did this, so I'm adding a sticky/warning here; do NOT EVER re-lock your bootloader after flashing any kind of custom software, kernels, etc to your device - *it will brick your phone*. Meaning you are screwed would need an RMA / replacement device ... everyone in the XDA community should know better, but still; worth mentioning....
IMPORTANT:
Before asking questions; Please read through the thread (starting with the last few pages) - I shouldn't need to be repeatedly answering the same questions over and over again. It's good practice to get into the habit of reading through threads before asking questions in any thread on XDA, as more often then not; you're question has probably been answered. Thanks!
EXNS-EAS KERNEL DOWNLOAD:
JULY 2018 OREO 8.1 RELEASE exNoShades-eas Kernel Flashable zip
https://github.com/nine7nine/Apps/raw/master/exNoShadez_eas_v2.8.2_f94351f.zip
It is stable, high performance and very responsive...
Important: You will need root; I don't support non-rooted devices && some features require it. I recommend using Magisk; https://forum.xda-developers.com/apps/magisk/beta-magisk-v13-0-0980cb6-t3618589 ...
NOTE: Make sure to flash the latest Magisk beta *before* flashing the kernel zip. ...
More Background / Important Notes:
Binder_RT:
My own port and re-implementation of the Binder Kernel Driver; a slightly modified version of The AOSP binder.
Binder_RT uses rt_mutexes as opposed to mutexes for locking in Binder, ion, ashmem, etc... rt_mutexes support priority inheritance and should improve determinism in Binder, speed up IPC, Ion and Ashmem => Allowing applications that require low-latency, tight deadlines, low jitter and deterministic behaviour to perform better ~ This re-implementation is proving to be the great for those types of applications. The goal here is to help ensure that the Kernel and Binder's high priority && time critical threads and tasks are properly prioritized... Example; audio buffers arriving on time / no buffer underruns... *Further development work is planned to research, experiment with and improve Binder_RT.
rt_mutex documentation, for those interested;
https://github.com/nine7nine/Marlin_exns-eas/blob/EXNS_EAS/Documentation/locking/rt-mutex.txt
https://github.com/nine7nine/Marlin_exns-eas/blob/EXNS_EAS/Documentation/locking/rt-mutex-design.txt
CPU-Boost / Input Boosting:
Touch inputs boost CPU frequencies (thus improves performance and responsiveness).
# Cpu-boot / Input boost settings
write /sys/module/cpu_boost/parameters/input_boost_enabled 1
write /sys/module/cpu_boost/parameters/input_boost_freq "0:1363200 1:0 2:1900800 3:0"
write /sys/module/cpu_boost/parameters/input_boost_ms 100
IO/ CPU Governors:
This kernel doesn't include a thousand io/cpu governors. IO-wise; CFQ is the default, but we've got a few in there. chose your poison, but know that the majority of my testing is centered around cfq and deadline. CPU Governor-wise the common Linux CPU governors are there; along with Sched and Schedutil....
Stick with Schedutil - on idle, it draws very little power and in most 'peak performance situations, it should do very well..... I'm getting great battery life, sot and performance.
Managing Kernel Settings:
Get EX Kernel Manager - my original code on github was forked from EX kernel, before rebasing it - but EXKM will give you access to 99% of my kernel's settings.
My 8.1 Kernel Sources: https://github.com/nine7nine/Marlin_exns-eas
Donations via PayPal very much appreciated. I do put a significant amount of energy and time into researching, development, testing / QA and also providing support/help to end-users... It's definitely not mandatory to donate; but If you appreciate the effort, see value or benefits from using my kernel on your device and can afford to; Use the "Donate to me" button or the below link... It makes a big difference. thanks!
https://www.paypal.me/jrdnjhnstn
Why TWRP Installations are NOT supported:
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
(and why I'm not using it!)
Most custom/android kernel devs are using the above configuration in kernel compilation, which is arguably very BAD... I understand that boot partitions are small and the desire to install TWRP to them, thus there is a need to reduce the kernel's size....and yes, this will achieve that - However;
1. SUSE, RedHat, etc (Enterprise linux) disable CONFIG_CC_OPTIMIZE_FOR_SIZE -> it's original use case has proven to be invalid. Even Google (in their own documentation) advise against using this; https://source.android.com/devices/tech/perf/boot-times ....
2. It suppresses useful compiler warnings....
3. As SOCs have become more powerful, google has come to the same conclusion that Enterprise Linux did back in 2012.
4. by turning off CONFIG_CC_OPTIMIZE_FOR_SIZE, we achieve better performance, boot time and better cache utilization.
Clark Williams / Redhat Bugzilla said:
* Cause: CONFIG_CC_OPTIMIZE_FOR_SIZE set with assumption that smaller code would yield hot cache lines and good performance
* Consequence: this config caused gcc to generate jump-to-jump code which causes cache line bouncing, hurting performance
* Fix: turn off CONFIG_CC_OPTIMIZE_FOR_SIZE
* Result:slightly larger kernel but better cache utilization
Click to expand...
Click to collapse
(The Above is quoted from Clark Williams, A Senior Software Architect @ RedHat -> https://bugzilla.redhat.com/show_bug.cgi?id=796297)
I know of no other way to significantly reduce kernel size. Disabling some debugging, unneeded features, etc helps - but not enough.... I am focusing on optimization, using newer builds of GCC/Linaro, performance enhancements, fixing compilation errors, etc, etc -> these things are more important than trying to support TWRP installation. Therefore; I do NOT support installing TWRP....
I like it so far, very good kernel.
Awesome! Always nice to have choices
I've seen you post around that you made x change to your own kernel, glad you finally made it public!
Does it have all of franco's wakelocks blocked by default?
グリッチ said:
Awesome! Always nice to have choices
I've seen you post around that you made x change to your own kernel, glad you finally made it public!
Does it have all of franco's wakelocks blocked by default?
Click to expand...
Click to collapse
hey, it includes franco's wakelocks stuff. I don't think all are blocked, I actually don't touch them in my init rc. ... but some are blocked by default, for sure. can be set by user...
yeah, I've got my kernel to a point now, where it is somewhat unique && is drawing in most of the best features from every custom kernel for the pixel (my opinion). very stable too, thus far. so makes sense to make it public.
it's got the RCU (read copy update) infrastructure from linux-4.9... a ton of core, sched, Walt, etc from linux-4.4+ (specifically, from EAS-Project / msm8998 OP5 - which was painful to backport. wish we didn't have a 3.18 kernel. lol) afaik, it's the only Marlin kernel with Dynamic Stune Boost and aside from CopperheadOS; the only marlin kernel with a subset of the PAX/grsec kernel security enhancements and the Mac randomization... also has all of the audio enhancements from the kernel ur running ?
siheals said:
I like it so far, very good kernel.
Click to expand...
Click to collapse
Hey! thanks for testing it out. let me know how things go, your impressions, etc.
I'll be updating this kernel constantly, so if u end up liking it; you can expect that it will always include security patches, linux LTS incremental patches, etc...
it's my daily driver, so i keep on top of it.
Superb! Thanks for clarifying.
I will give it a run when November update releases cuz I'm lazy >.< but am excited and looking forward to it ^_^
グリッチ said:
Superb! Thanks for clarifying.
I will give it a run when November update releases cuz I'm lazy >.< but am excited and looking forward to it ^_^
Click to expand...
Click to collapse
no probz. As soon as the november updates arrive, i will be adding whatever patches are needed... so expect that to be there...
i also pull from Code Aurora msm-3.18 for 8996, so my kernel gets updates to drivers, core, etc that google hasn't picked up yet.
Just Testing 3.18.79 + latest Code Aurura updates for today ....AND;
re-enabling a hardening feature that I thought was draining battery life (Likely not, was probably another removed patch - that isn't in the current release.)
I'll update the link later on and - on my github; where I link to for downloads; there will be older releases labeled - ie:
exNoShadez_eas.zip (current release / link) will become -> exNoShadez_eas_3.18.78_oct.zip,
when it is replaced by 3.18.79 + other updates / patchwork.... The current release will always be -> exNoShadez_eas.zip
UPDATE:
While I haven't updated exNoShadez_eas.zip link/version, * I have posted a zip with the above changes - I'll be testing it for a while before updating the link because it's hard to gauge battery life without a lot of testing / time spent.... So I would say, if anyone is eager - they can test it, but wait at least 12-24hours from testing the current available release - so you can actually make some sort of real-usage comparision.
link: https://github.com/nine7nine/Apps/raw/master/exNoShadez_eas_3.18.79_harden.zip
Glad to see you have posted this man. Setting up a pixel for my friend and as i was browsing the forums noticed you have a lot of good kernel work. Was literally about to PM you a few days ago for your kernel and then happened to see this post today. Can't wait to try it out!
Warrimonk said:
Glad to see you have posted this man. Setting up a pixel for my friend and as i was browsing the forums noticed you have a lot of good kernel work. Was literally about to PM you a few days ago for your kernel and then happened to see this post today. Can't wait to try it out!
Click to expand...
Click to collapse
All good, man.
It only makes sense that I would share my kernel, when I felt it was ready for that - just keep in mind, that for now - I have marked it as Beta / Testing, as it's pretty new (although, aside from the EAS code / Dynamic Stune Boost - the rest has been thoroughly vetted)....
So yeah, give it a run, let me know how things go! thanks
Unsure if I am doing something wrong or not, but when I try to flash your kernel I get an error stating : "New Image larger than boot partition. Aborting...."
EX Kernel flashed fine. Using TWRP 3.1.1-1
Warrimonk said:
Unsure if I am doing something wrong or not, but when I try to flash your kernel I get an error stating : "New Image larger than boot partition. Aborting...."
EX Kernel flashed fine. Using TWRP RC1.
Click to expand...
Click to collapse
Why aren't you using the newest stable version of TWRP?
RC1 = release candidate 1
afaik, latest release is 3.1.1-1 stable for the pixel.... https://dl.twrp.me/sailfish/
Using an old version might be your issue. Update, then try.
nine7nine said:
Why aren't you using the newest stable version of TWRP?
RC1 = release candidate 1
afaik, latest release is 3.1.1-1 stable for the pixel.... https://dl.twrp.me/sailfish/
Using an old version might be your issue. Update, then try.
Click to expand...
Click to collapse
Apparently I am using TWRP3.1.1-1 . The thread was called RC1 So I mistakenly assumes that was still the current version.
Warrimonk said:
Apparently I am using TWRP3.1.1-1 . The thread was called RC1 So I mistakenly assumes that was still the current version.
Click to expand...
Click to collapse
Can confirm this, I'm on 3.1.1-1 too and got this issue.
I'm running 8.0.0 (OPR3.170623.008, Oct 2017) build.
Keasby said:
Can confirm this, I'm on 3.1.1-1 too and got this issue.
I'm running 8.0.0 (OPR3.170623.008, Oct 2017) build.
Click to expand...
Click to collapse
kk. I'll look into this - I (obviously) do not have this problem..... What firmware images do you use?
I'm on Rogers/Canada, maybe the boot partition is a different size on some firmwares (?)....
I can also look at shrinking the boot.img, which could fix it. My boot.img is slightly bigger than the shipped boot.img and I do have an idea on how to shrink it a bit, you'll have to wait until later on for me to look at it though / not home right now.
nine7nine said:
kk. I'll look into this - I (obviously) do not have this problem..... What firmware images do you use?
I'm on Rogers/Canada, maybe the boot partition is a different size on some firmwares (?)....
I can also look at shrinking the boot.img, which could fix it. My boot.img is slightly bigger than the shipped boot.img and I do have an idea on how to shrink it a bit, you'll have to wait until later on for me to look at it though / not home right now.
Click to expand...
Click to collapse
32MB is the boot image max size AFAIK.
nine7nine said:
kk. I'll look into this - I (obviously) do not have this problem..... What firmware images do you use?
I'm on Rogers/Canada, maybe the boot partition is a different size on some firmwares (?)....
I can also look at shrinking the boot.img, which could fix it. My boot.img is slightly bigger than the shipped boot.img and I do have an idea on how to shrink it a bit, you'll have to wait until later on for me to look at it though / not home right now.
Click to expand...
Click to collapse
Maybe it's caused by the image size. Other custom Kernels are sized bout 13mb.
I'm running the Google Stock Build OPR3.170623.008, October 2017.
Hope you can fix it - TIA!
nine7nine said:
kk. I'll look into this - I (obviously) do not have this problem..... What firmware images do you use?
I'm on Rogers/Canada, maybe the boot partition is a different size on some firmwares (?)....
I can also look at shrinking the boot.img, which could fix it. My boot.img is slightly bigger than the shipped boot.img and I do have an idea on how to shrink it a bit, you'll have to wait until later on for me to look at it though / not home right now.
Click to expand...
Click to collapse
Personally I tried on these 2 firmwares:
sailfish-ota-opr3.170623.008
sailfish-ota-opr6.170623.012
The phone was originally a Project Fi device.. if that matters. Dev which firmware and TWRP are you using?
Warrimonk said:
Personally I tried on these 2 firmwares:
sailfish-ota->>>>opr3.170623.008<<<<<
sailfish-ota-opr6.170623.012
The phone was originally a Project Fi device.. if that matters. Dev which firmware and TWRP are you using?
Click to expand...
Click to collapse
I'm using the latest twrp-3.1.1-1 (but and idk if this makes a difference or not), I only use the twrp fastboot img (Ihave ZERO reason to actually install TWRP on my system).... and also, Others have installed and are using my kernel - so it must be a difference in firmwares / boot partition size (or image size)
Keasby said:
Maybe it's caused by the image size. Other custom Kernels are sized bout 13mb.
I'm running the Google Stock Build >>>>>OPR3.170623.008<<<<<, October 2017.
Click to expand...
Click to collapse
So yeah, I'm using a different build **OPR1.170623.027**, Oct 2017, Fi/Canada.... you both are having problems on >>>>>OPR3.170623.008<<<<< ~> Something is different in that build... If you like (and happen to have that image kicking around, you could send me the boot.img and I'll compare it to mine? later on)
I'm thinking it's not the kernel size, although - I do plan on making the kernel smaller on production builds, by reducing a lot of debugging that really isn't needed on a production build (I already have a defconfig for doing so);

[MATA] [CAF] [UNIFIED] [EAS] [4.4.166] [CLANG 8.0] Neutrino Kernel (hercules)

Neutrino Kernel began as an effort to keep the stock LineageOS 15.1 kernel up-to-date with the latest linux-stable releases and has since evolved into an intensive crash course in maintaining my own custom kernel. Although some of you would accuse me of modesty, I think it's important to acknowledge that I am a "kernel developer" in the same way that Amy Schumer is a "comedian". That is to say, my work is highly derivative and built on the backs of individuals who are far more talented than I am. My role here is to have a vision, establish a design philosophy, and use the resources at my disposal to bring that vision to fruition.
Those of you who've perused my staging repo will know that I'm very particular about cleanliness. All changes and additions are vetted based on viability and purpose. Neutrino is based on kernel.lnx.4.4.r35-rel, pure CAF source for Android 9.0 tracking and upstreamed to the latest linux-stable release. I have manually rebased Essential's stock kernel source on top of CAF using relevant OEM commits from PPR1.181005.034. All major features and patchsets are assembled on independent staging branches of this codebase base and merged into the release repository.
I do not commit changes that I cannot justify or explain, and I do not go on indiscriminate cherry-picking sprees. There are a handful of developers that I highly respect, and who's projects have served as inspiration for my own. My intention is to incorporate the best of what they've brought to the table in a way that most effectively achieves and enhances this project's design goals.
I like to think that Neutrino is relatively subdued in terms of "features", with a stronger focus on optimizations over fluff. That being said, there have been quite a few additions which I feel have merit in terms of increased performance and/or efficiency provided the former does not compromise the later:
Revamped EAS implementation for Pie
sultanxda's CPU/GPU Boost Drivers
Dynamic SchedTune Boosting
Maple I/O Scheduler
Broader subsystem support for Power Efficient Workqueues
KCAL Color Control
Backlight Dimmer
Fsync Toggle (enabled by default)
GPU Underclock @ 180 MHz
CPU (partial) Overclock, Silver Cores @ 2035 MHz
Boeffla Wakelock Blocker v1.1.0
Wireguard Support
VDSO Support
Treewide memory allocation/overflow patches from mainline
OOM Reaper and various memory management enhancements to improve LMK
Treewide compiler warnings corrected
Built with self-compiled Clang 8.0.3 and GCC 8.2.0 toolchains, with a local initialization sanitizer and polly optimization flags
INSTALLATION:
**Neutrino now utilizes AnyKernel2 zip format for universal compatibility**
As a result, you can now flash this kernel on just about anything including Oreo/Pie custom and stock ROMs. The only requirement is that your firmware is current and up-to-date with PPR1.180905.036 at a minimum. Flashing on older firmware will result in broken input detection and a non-functional touchscreen.
That being said, this is an EAS kernel and is best suited for use on EAS-compatible ROMs. Just because it can be flashed on stock does not mean that you should do so. Installation on ROMs which do not natively support EAS (such as stock) will likely result in sub-optimal battery performance and I will not entertain any complaints stemming from the use of Neutrino on ROMs which are incompatible with EAS. Stock support is a perk and an experiment on my part, please do not make me regret giving you the ability to flash on stock, I will drop public support for it if this disclaimer is routinely ignored. If you choose not to heed my recommendations, you are doing so at your own discretion.
For ease of use, I would recommend using an app with built-in zip flashing functionality such as EX Kernel Manager or FK Kernel Manager. Of course, I cannot expect all of you to utilize a paid app for installation and as such, conventional installation via TWRP is certainly possible as well.
Neutrino will preserve existing Magisk installation during kernel update, meaning if you already have Magisk installed on your device you need not worry about reflashing Magisk when updating your kernel. If you do not already have Magisk installed and desire root access then Magisk zip must be flashed following kernel zip via TWRP.
DOWNLOADS:
Current releases can be downloaded here.
Archival builds (boot images) for lineage-15.1 can be found here.
SOURCE & SPECS:
Neutrino Kernel Source
Neutrino Staging Repo
Changelog
Linux Kernel Version: 4.4.166
CAF Release: LA.UM.7.4.r1-03900-8x98.0
Neutrino Kernel Version: hercules
Clang Version: neutrino clang 8.0.0-r348460
Build Date: 20181206
@return.of.octobot Awesome! Thanks for bringing us upstream updates! So if I've understood it correctly if I do flash the root version and want to take an ota update, I'll have to revert to stock kernel for the lineage os version I was on or flash the non root version that you've provided us with before updating?
You're as awesome as you are humble. Thank you for this. Life is getting easier and easier for common users thanks to contributions like this. Awesome.
Arju said:
@return.of.octobot Awesome! Thanks for bringing us upstream updates! So if I've understood it correctly if I do flash the root version and want to take an ota update, I'll have to revert to stock kernel for the lineage os version I was on or flash the non root version that you've provided us with before updating?
Click to expand...
Click to collapse
When I had magisk installed and was running lineage... The OTA program didn't care about signatures...
Since it's not a Delta... It's not patching anything... Just overwriting what is currently there... So it SHOULDN'T matter...
Sent from my PH-1 using XDA Labs
rignfool said:
When I had magisk installed and was running lineage... The OTA program didn't care about signatures...
Since it's not a Delta... It's not patching anything... Just overwriting what is currently there... So it SHOULDN'T matter...
Sent from my PH-1 using XDA Labs
Click to expand...
Click to collapse
Hey, great to see you here. I remember you from the Nexus 6 forums. Thanks for the answer
Arju said:
Hey, great to see you here. I remember you from the Nexus 6 forums. Thanks for the answer
Click to expand...
Click to collapse
Yeah... I couldn't help myself... When I found out buying this phone was a direct thank-you to Andy Rubin...
Sent from my PH-1 using XDA Labs
Arju said:
@return.of.octobot Awesome! Thanks for bringing us upstream updates! So if I've understood it correctly if I do flash the root version and want to take an ota update, I'll have to revert to stock kernel for the lineage os version I was on or flash the non root version that you've provided us with before updating?
Click to expand...
Click to collapse
rignfool said:
When I had magisk installed and was running lineage... The OTA program didn't care about signatures...
Since it's not a Delta... It's not patching anything... Just overwriting what is currently there... So it SHOULDN'T matter...
Sent from my PH-1 using XDA Labs
Click to expand...
Click to collapse
He is right, I was recommending that the unrooted image be flashed prior to OTA but you could also certainly restore the boot.img that was originally included in invisiblek's build for maximum peace of mind. I would tend to agree that it doesn't actually matter as the OTA should be installing a completely new image on the opposite slot so I'm not sure what difference it would make, I was just leaning my instructions towards the safe side, perhaps I'll try and clean them up.
only for lineage can it work on aosp rom?
Sent from my PH-1 using Tapatalk
kakabobo said:
only for lineage can it work on aosp rom?
Click to expand...
Click to collapse
Yeah, it's literally built from Lineage source with upstream Linux kernel merged in. I wouldn't recommended flashing this on AOSP any more than I would recommended flashing the stock Lineage kernel on an AOSP build. Even if it booted I imagine there's a good chance it would break things to the point of being unusable. That being said, I haven't tried it so I'm only speculating. If you do, make sure you've got a copy of your ROMs stock boot.img to recover with. But seriously, I wouldn't.
return.of.octobot said:
Will be uploading 4.4.118 images within the next day or two, currently experimenting with merging the latest CAF tags into upstream source. Jury's still out on whether or not that's going to prove successful but I will be releasing standard linux-stable builds regardless.
Click to expand...
Click to collapse
Without further ado, 4.4.118 images are available for download here.
Same deal as before, built from unadulterated upstream linux-stable source. Stock and Pre-Patched Magisk variants available.
I did manage to get a CAF-based version of this kernel building and booting, however it broke my touchscreen and is clearly not ready for public consumption. So, until further notice we're going to stick with the 'if it ain't broke..' philosophy, although you may or may not see me releasing some experimental builds in the future.
For now, enjoy 4.4.118
***OP updated for 4.4.118 release, revised comprehensive installation instructions***
return.of.octobot said:
***OP updated for 4.4.118 release, revised comprehensive installation instructions***
Click to expand...
Click to collapse
That's for the build today right?
shooterlgk said:
That's for the build today right?
Click to expand...
Click to collapse
In theory these images should work on any LineageOS install, regardless of build date, but yes it's compatible with both the 02/26 and 02/28 releases from invisiblek. I've updated the screenshot in OP which shows this kernel installed on the latest Lineage OTA.
return.of.octobot said:
***OP updated for 4.4.118 release, revised comprehensive installation instructions***
Click to expand...
Click to collapse
flashed your kernel with magisk support on todays (28th) lineageos build. Magisk is not passing safteynet.
edit: followed your instruction to patch the boot img using magisk and now it passes safteynet. had to use the non patched on from here.
Arju said:
flashed your kernel with magisk support on todays (28th) lineageos build. Magisk is not passing safteynet.
edit: followed your instruction to patch the boot img using magisk and now it passes safteynet. had to use the non patched on from here.
Click to expand...
Click to collapse
Good to know, I'll have to make note of your findings in the OP. I would've never figured that out myself as I've got xposed installed and to the best of my knowledge my SafetyNet checks will always fail because if it. I've really just been offering the prepatched images because I thought it would be helpful to allow some to bypass the step of patching manually. However, I'll have to consider whether it might be a better idea to just provide the clean image with instructions on how to patch it.
return.of.octobot said:
Good to know, I'll have to make note of your findings in the OP. I would've never figured that out myself as I've got xposed installed and to the best of my knowledge my SafetyNet checks will always fail because if it. I've really just been offering the prepatched images because I thought it would be helpful to allow some to bypass the step of patching manually. However, I'll have to consider whether it might be a better idea to just provide the clean image with instructions on how to patch it.
Click to expand...
Click to collapse
So this is what I did.
1. Flashed lineage os. Set it up.
2. Flashed your kernel (non magisk version) using fastboot and booted back into rom. (Not sure if this is necessary as I later on flash the patches version by magisk manager).
3. Install magisk manager. Have the non magisk version of your boot image on my phone. Patch it with magisk manager.
4. Transfered the patched boot image to computer.
5. Flashed the patches boot image using the computer (fastboot). Reboot into system.
6. Safetynet check passes.
Arju said:
So this is what I did.
1. Flashed lineage os. Set it up.
2. Flashed your kernel (non magisk version) using fastboot and booted back into rom. (Not sure if this is necessary as I later on flash the patches version by magisk manager).
3. Install magisk manager. Have the non magisk version of your boot image on my phone. Patch it with magisk manager.
4. Transfered the patched boot image to computer.
5. Flashed the patches boot image using the computer (fastboot). Reboot into system.
6. Safetynet check passes.
Click to expand...
Click to collapse
Thanks for sharing. I essentially went through the same process to patch these images myself after they were built, perhaps there is some kind of security measure in place where the boot.img needs to be installed to the same device it was patched on? I find it strange that it would successfully root the device, but not pass SafetyNet. I'll think on that and figure out if it makes more sense to just release unpatched builds in the future.
return.of.octobot said:
Yeah, it's literally built from Lineage source with upstream Linux kernel merged in. I wouldn't recommended flashing this on AOSP any more than I would recommended flashing the stock Lineage kernel on an AOSP build. Even if it booted I imagine there's a good chance it would break things to the point of being unusable. That being said, I haven't tried it so I'm only speculating. If you do, make sure you've got a copy of your ROMs stock boot.img to recover with. But seriously, I wouldn't.
Click to expand...
Click to collapse
I flashed it on AOSIP without issue. Not sure if it's considered the same as AOSP.....
return.of.octobot said:
Thanks for sharing. I essentially went through the same process to patch these images myself after they were built, perhaps there is some kind of security measure in place where the boot.img needs to be installed to the same device it was patched on? I find it strange that it would successfully root the device, but not pass SafetyNet. I'll think on that and figure out if it makes more sense to just release unpatched builds in the future.
Click to expand...
Click to collapse
I wouldn't realy mind and I think it would make it easier for you too. If the patching is unique per phone then it makes sense that we patch it ourselves. But we need upstreamed updated kernels!!! so don't stop doing those!!
Arju said:
I wouldn't realy mind and I think it would make it easier for you too. If the patching is unique per phone then it makes sense that we patch it ourselves. But we need upstreamed updated kernels!!! so don't stop doing those!!
Click to expand...
Click to collapse
Yeah of course, no sooner had I uploaded 118 than 119 was pushed. I'm not sure if I'll be able to get one out for each release before the next one comes out, but I'm going to be keeping these updated a frequently as I can. Anyway, I was only speculating about device-specific images, but I'm going to try and flash an image that was patched by my buddy and see if I can reproduce any issues. Regardless, I'll likely stick to uploading unpatched images in the future.

[KERNEL][UNOFFICIAL][TB-X605F] kernel for Lenovo Smart Tab M10 (wifi)

Code:
#include <std_disclaimer.h>
/*
*
* We are not responsible for bricked devices, dead SD cards,
* thermonuclear war, or you getting fired because the alarm app failed. Please
* do some research if you have any concerns about features included in this kernel
* before flashing it! YOU are choosing to make these modifications, and if
* you point the finger at us for messing up your device, we will laugh at you.
*
*/
Warnings: this kernel has been tested on the TB-X605F (SDA450) only. It will not work for the:
TB-X605F (M10) released with the SDA429 chipset
TB-X605L (M10 LTE). This kernel is currently for the wifi variant only.
TB-X505F/L (M10 HD) or any of the other M10 variants that use the SDA429 chipset.
TB-X605FC (M10 FHD). See the opensource released by Lenovo. Note that the X605FC kernel is 4.9.112.
Introduction
On 4 June 2020, Lenovo released the kernel source for the TB-X605F/L.
Prior to that, this kernel was developed by porting the kernel source for the the P10 (TB-X705F) released by Lenovo in January 2019.
Current version is: 3.18.120 merged with CAFCAF LA.UM.5.5.r1-05300-8x96.0.
The update zip will load some modules. So backup the "System Image", "Vendor Image" and boot partitions with TWRP before loading this kernel.
For kernel developers
Lenovo have released the opensource for the TB-X705F (Smart Tab 10 wifi) dated 31 January 2019 at s000018_20180913_row. This kernel is based on that kernel source (3.18.71). The default config (YM_X605F_defconfig) is almost identical to the kernel config of the M10. Some of the main differences with the P10 source are:
removed the MM8013 chipset config. The P10 uses the MM8013 for battery stats etc. There is no MM8013 on the M10.
upgraded drivers for the primary autofocus camera.
set CONFIG_MODULE_SIG_FORCE to "n" - so kernel will load stock modules from any version. Thanks to @yener90 for the suggestion.
While Lenovo releases the (compiled) stock M10 kernel at 3.18.120, the P10 kernel opensource is 3.18.71. Great job Lenovo!
The source will build signed system modules, if you want them. If you want the wifi driver it's pronto_wlan.ko, compile with CONFIG_PRONTO_WLAN=m.
Features
This kernel compiles and runs. It seems to be stable.
Working:
- wifi
- bluetooth
- power charging (USB and dock)
- camera
- FM radio
- touchscreen (including DT2W)
- audio
- OTG
Known bugs
you tell me
Installation
I assume you have unlocked bootloader, TWRP and Magisk. If not, follow these instructions.
The update zip is packaged using AnyKernel3 by @osm0sis .
if you are still on stock ROM & kernel, backup "System Image", "Vendor Image" and boot partitions in TWRP. You only have to do this once, not everytime you load a new version of this kernel.
download update_X605F_kernel.zip and copy it to your sdcard/OTG
boot to TWRP and use "update" to update the zip file
check that the update was successful, then reboot
confirm the kernel is loaded. It should start with "3.18.120-X605F-YM":
Code:
X605F:/ $ uname -r
3.18.120-X605F-YM-xxx
To return to stock kernel, just restore the stock boot, system and vendor backups you made in TWRP. If that doesn't work, then you'll have to reload system ROM using LMSA.
Changelog
Code:
11/03/2020 - 3.18.120-X605F-YM-g02f9b3e-00023-gcef72f9
- fixed camera - it's now recognised and autofocus works
- cleared out some dead code that's not needed for M10 (hangover from P10 source)
05/03/2020 - 3.18.120-X605F-YM-g02f9b3e-00018-g818259c3
- rebased kernel to 3.18.120
- merge CAF LA.UM.5.5.r1-05300-8x96.0
- added DT2W
- fixed "adb reboot". The rebase fixed it.
- added a defconfig for LineageOS
- included signed modules in zip file (including wlan)
20/01/2020 - 3.18.71-X605F-kernel-g0a9bdb1
- disabled signed module enforcement
- removed system and vendor modules from update zip
17/01/2020 - initial commit
Download
current release: update_X605F_kernel.zip
XDA:DevDB Information
M10 kernel, Kernel for the Lenovo Thinkpad Tablet
Contributors
Yahoo Mike
Source Code: https://github.com/Yahoo-Mike/android_kernel_lenovo_X605F
branch: msm-3.18.120 is source for this release (default branch)
branch: official-3.18.120 is official source released by Lenovo on 4 June 2020.
branch: msm-3.18.71 is the initial port from P10 kernel source
Kernel Special Features:
Version Information
Status: Testing
Created 2020-01-16
Last Updated 2020-06-05
Yahoo Mike said:
Lenovo releases the stock M10 kernel at 3.18.120. However, the P10 kernel source is 3.18.71. This means that system modules and the wifi driver need to be re-compiled, signed and distributed with this kernel. This means that the /system and /vendor partitions need to be touched, not just the boot image.
Click to expand...
Click to collapse
Just disable the modules, the kernel wont build it anymore. It's also not urgently required.
yener90 said:
Just disable the modules, the kernel wont build it anymore. It's also not urgently required.
Click to expand...
Click to collapse
Thanks for the neat suggestion.
I disabled signed module enforcement (CONFIG_MODULE_SIG_FORCE) so we can use stock modules. That means no need to update system or vendor partitions.
I left in *_SIG_ALL in the defconfig, so you can compile and sign modules if you really want to. But I haven't included any modules in the new update zip. If you've used the old version of the update zip, then restore stock boot, system and vendor images before using this new update zip.
I've released a new version. Main changes are:
rebased kernel to 3.18.120
merge CAF LA.UM.5.5.r1-05300-8x96.0
added DT2W
fixed "adb reboot". The rebase fixed it.
added a defconfig for LineageOS
included signed modules in zip file (including wlan)
I've updated the OP.
I've added a new (default) branch called msm-3.18.120 in the github repo: Yahoo-Mike/android_kernel_lenovo_x605f.
The camera auto-focus is still not working. I haven't looked at it. Lenovo have not released the source code. It looks like the P10 uses different cameras. The main camera is a hynix hi556 variant called: hi556_m10. I'll have a look at this soon. One of the ASUS Zenfone Max Pro (M1) variants uses the hi556. That might have a usable driver. There's also a new video driver for the hi556 (CONFIG_VIDEO_HI556) released by intel for the linux kernel.
If anyone wants me to rebase to 3.18.140, just ask.
Latest version fixes camera issues. Camera (Hynix hi556) is now recognised and autofocus works.
I copied the Hynix (eeprom OTP) code from the Lenovo Tab4 kernel source. The code in the P10 kernel source never worked - probably because the P10 was never released with Hynix hi556. The P10 uses OmniVision ov8856 (8MP) and GalaxyCore gc5025 (5MP). Whereas the M10 uses Hynix hi556 (5MP) and Superpix sp2519 (2MP).
This kernel is stable. I can't find anything wrong with it. I've tested it using stock ROM with no issues. So I guess it's safe to load up with the stock ROM (Android Pie)...at your own risk. Just be sure to backup the system & vendor images, plus the boot image in TWRP. You'll need these when an OTA comes along, anyway. The updater-script in the OTA will refuse to apply, because it won't recognise this kernel.
So until someone finds some issues with this kernel, I guess it's time to polish up some LineageOS code...
Two exciting announcements:
prima drivers added to staging
I've added prima drivers to the kernel github repository. It's used by the lineageos_X605F_defconfig to build the wlan.ko module (CONFIG_WLAN_PRONTO).
Lenovo released official kernel source yesterday
The official kernel source for the X605F and X605L has just appeared on Lenovo's support site.
I'll have a closer look over the next few weeks, but here's some preliminary observations:
it is released at msm 3.18.120. This is the stock kernel version. (Lenovo released 3.18.71 for the P10.)
there is only one download for both X605F and X605L. This might be good news.
the autofocus camera drivers for the Hynix appear to be included. I'll take a closer look.
kernel compiles without any changes. I haven't loaded it yet to test it.
edit: I've added the official source to the Yahoo-Mike/android_kernel_lenovo_X605F repo in the official-3.18.120 branch.
The opensource drop for the X605F from last week includes code for the kernel at msm-3.18.120. Surprisingly, it includes a defconfig for the P10. This confirms that the M10 (X605F/L) and P10 (X705F/L) are very similar.
I'm going to test Lenovo's kernel source on my TB-X605F this weekend. Is there anybody with a TB-X705F/L and the skills to build and test this code on their P10 ? PM me and we can coordinate.
The only differences I can see are:
Code:
m10_msmcortex_defconfig | p10_msmcortex_defconfig | Kconfig definition
----------------------- | ----------------------- | ------------------
| CONFIG_BATTERY_BQ27x00=y | drivers/power
CONFIG_CAMERA_TAB5_M10=y | | drivers/media/platform/msm/camera_v2
| CONFIG_CAMERA_TAB5_P10=y | drivers/media/platform/msm/camera_v2
| CONFIG_FOUR_PA=y | sound/soc/codecs & sound/soc/msm
| CONFIG_SENSORS_HALL=y | drivers/input
CONFIG_TP_MP_DIFF=y | | arch/arm64
The TP_MP_DIFF setting is used to load different firmware for the touchscreen drivers: one set for the M10s; another for the P10s.
Deleted
happyponcho42 said:
Great find! I've successfully built the kernel and was also pleasantly surprised I could use the browsable menuconfig (like the setup for my Linux Desktop) after using the P10 defconfig i.e.
Code:
make -j24 ARCH=arm64 CROSS_COMPILE=aarch64-linux-android- O=out p10_msmcortex_defconfig && make -j24 ARCH=arm64 CROSS_COMPILE=aarch64-linux-android- O=out menuconfig
I've disabled requiring signing of loadable kernel modules, as well as generated some modules for USB-to-Serial chipsets I use (pl2303.ko, ftdi, etc.) for projects.
Now to test the Image.gz-dtb: I have not had much luck unpacking boot-TB-X705F_S210120_191029_ROW.img and repacking with my tools. I just end up on a blank screen on the P10.
Do you have a recommended set of tools that have worked with your M10?
Click to expand...
Click to collapse
Glad to hear it compiled for P10.
I use AnyKernel3 to inject the kernel for me. It can also load kernel modules, if you build any.
I use these properties in the AK3 mod script. Modify it to suit your purposes:
Code:
# begin properties
properties() { '
kernel.string=X605F kernel built by Yahoo Mike @ xda-developers
do.devicecheck=1
do.modules=1
do.cleanup=1
do.cleanuponabort=0
device.name1=X605F
supported.versions=9
supported.patchlevels=- 2020-06
'; } # end properties
Then in my script I copy the kernel to AK3 root directory and modules to ./modules/system/lib/modules directory (or vendor equivalent) & zip it all up.
Code:
# zip it all up, ready for installing in TWRP
# this zip will replace kernel, plus any modules you included (if any)
# don't forget to TWRP-backup boot, system and vendor images
# also good idea to copy /system/lib/modules/* and /vendor/lib/modules/pronto/*
cd ~/tools/AK3
zip -r9 update_X605F_kernel.zip * -x .git README.md *placeholder
adb push update_X605F_kernel.zip /external_sd/
Optionally, you can also create a "version" file with something like this (before zipping):
Code:
MY_KERNEL_IMG="$(pwd)/out/arch/arm64/boot/Image.gz-dtb"
MY_KERNEL_VERSION="$(make kernelversion)"
cd ~/tools/AK3
# create a "version" file
MY_ZIP_DATE=$(date +'%Y-%m-%d %H:%M:%S')
MY_BUILD_DATE=$(stat ${MY_KERNEL_IMG} --format=%y | cut -c1-19)
echo "**************************************************" > $MY_ANYKERNEL_DIR/version
echo "unofficial kernel for Lenovo Smart Tab M10 (TB-X605F)" >> $MY_ANYKERNEL_DIR/version
echo " version: $MY_KERNEL_VERSION" >> $MY_ANYKERNEL_DIR/version
echo "compiled: $MY_BUILD_DATE" >> $MY_ANYKERNEL_DIR/version
echo " zipped: $MY_ZIP_DATE" >> $MY_ANYKERNEL_DIR/version
echo "**************************************************" >> $MY_ANYKERNEL_DIR/version
The Lenovo opensource seems to be working on the TB-X605F. The modules are also building and installing ok.
There is something odd about the device tree, so make sure you use Image, not Image-dtb.gz. When I used the dtb kernel, I kept getting the dreaded "Qualcomm HS-USB Diagnostics 900E" mode.
I'll add a "lineage-17.1" branch to the github repo. It includes an M10_lineageos_defconfig for building the kernel and modules, and wlan.ko source from CAF for Android 10:
Code:
June 01, 2020 LA.UM.8.6.2.r1-07600-89xx.0 msm8953_64 LA.UM.8.6.2.r1-07600-89xx.0.xml 10.00.00
Yahoo Mike said:
There is something odd about the device tree, so make sure you use Image, not Image-dtb.gz. When I used the dtb kernel, I kept getting the dreaded "Qualcomm HS-USB Diagnostics 900E" mode.
Click to expand...
Click to collapse
I can get the dtb kernel to work by replacing the arch/arm/boot/dts/qcom/ directory from Lenovo's opensource with the same directory from the "msm-3.18.120" branch of the repo. It boots fine with the stock ROM and LOS.
The "msm-3.18.120" branch is based on the original P10 opensource from January 2019.
So yes, there is definitely something screwy about the dt blobs from the June 2020 codedrop.
Not sure if this would be a valid kernel or not - On the back it says model is TB-X605F. I
In settings it says hardware is TB-X606F and so is the software.
It's the m10 gen 2 tablet. I believe Mediatek chipset.
dustofdeath said:
Not sure if this would be a valid kernel or not - On the back it says model is TB-X605F. I
In settings it says hardware is TB-X606F and so is the software.
It's the m10 gen 2 tablet..
Click to expand...
Click to collapse
If you have the gen 2, then this is the wrong kernel.
Lenovo has published the TBX606F/X kernel.
dustofdeath said:
I believe Mediatek chipset.
Click to expand...
Click to collapse
The CPU-Z app from the playstore will tell you which SOC you have.
I added pstore/ramoops support on branch msm-3.18.120. I have no idea why Lenovo never configured pstore/ramoops in the first place.
The ramoops device will dump console-ramoops, dmesg-ramoops-0, pmsg-ramoops-0 into /sys/fs/pstore/.
I'll add pstore support to TWRP for the TB-X605F in the next update. I'll use this branch (msm-3.18.120) to build the kernel.
I'm hoping pstore will tell me why GSI images fail to boot when installed over stock Pie.
Hello and thanks to all of you to invest so much time and effort. I'm not the best in this android world so forgive me if I ask something stupid Recently I got a Lenove Tab M10 TB-X605L and well I rooted it (with magisk) to use Linux on it. As I said I don't use android so much and I just got this product as present so when I saw this post I thought If I can put a new Kernel why not compile it with NetHunter Kernel and give it a try. After some effort (I'm not sure if it will work) I made the kernel. My problem is:
1st I rooted my Tablet with Magisk (as the same way you mentioned in another post) after the rooting I download twrp from google play. Till here all is good. Now:
TWRP is working when I boot it. But asks for a Password. I tried some swipe data, cache etc. but still I see that PASSWORD field. I can't pass it. (And when I pass it without Password I can't see the kernel neither yours nor mine)
I don't care what happens to my Tablet as I said I'm not a android user. I would even would try a crazy Idea even if its end with a dead tablet but I would really wanna check if the compiled NetHunter kernel works.
saizzou38 said:
...TWRP is working when I boot it. But asks for a Password. I tried some swipe data, cache etc. but still I see that PASSWORD field. I can't pass it...
Click to expand...
Click to collapse
TWRP will ask for a password if you have a password, PIN or pattern set on your tablet, and/or your data partition is encrypted.
If you have a password or PIN set on your tablet, try entering that. If you had a pattern, try this.
You can unencrypt the data partition by reformatting it and then installing Disable_Dm-Verity_ForceEncrypt.zip (created by Zackptg5). Just be aware that this wipes all your data and breaks OTA updates. (Magisk also needs to be uninstalled before OTAs work.)
saizzou38 said:
...And when I pass it without Password I can't see the kernel neither yours nor mine...
Click to expand...
Click to collapse
Remember: android recovery (twrp) uses the kernel in the recovery partition, not the boot partition.
So, where are you injecting your kernel?
If you are injecting your kernel into TWRP's recovery image, which kernel do you see when you issue this command?
Code:
adb shell uname -r
If you are injecting your kernel into the system ROM's boot.img, then you won't see your kernel in TWRP. You'll see the kernel with which twrp was compiled.
BTW...interesting project. Good luck. Let us know if you get it working.
Hi there,
  I just compiled your kernel source you've uploaded on the Github (official branch) with m10_msmcortex_defconfig. Then, I flashed it to my device with anykernel 3, also included all modules, but the wifi does not work(It cannot be turned on). Before I flash it, my device was running well at the stock firmware, so I wonder what's wrong with my compilation.
  After that, I also tried to compile the lineage branch, with lineageos_tbx605_defconfig. I flashed it to my device running well on AOSP 10(project treble), but the problem was same as the official source.
  Could you please tell me that what's wrong with my compilation or how to compile it to work well? Thanks a lot .
Jun ASAKA
2021/02/03 (CST)
浅香ジュン said:
Hi there,
  I just compiled your kernel source you've uploaded on the Github (official branch) with m10_msmcortex_defconfig. Then, I flashed it to my device with anykernel 3, also included all modules, but the wifi does not work(It cannot be turned on). Before I flash it, my device was running well at the stock firmware, so I wonder what's wrong with my compilation.
  After that, I also tried to compile the lineage branch, with lineageos_tbx605_defconfig. I flashed it to my device running well on AOSP 10(project treble), but the problem was same as the official source.
  Could you please tell me that what's wrong with my compilation or how to compile it to work well? Thanks a lot .
Jun ASAKA
2021/02/03 (CST)
Click to expand...
Click to collapse
It sounds like the wlan_pronto.ko module is not loading. That's why wifi is not working.
It might be easier to build the msm-3.18.120 branch with YM_x605f_deconfig. That should work.
It does not force module signature checks (CONFIG_MODULE_SIG_FORCE=n). So the stock wlan module (/vendor/lib/modules/pronto/wlan_pronto.ko) should load ok.
If that fails, check the kernel log (dmesg) for errors loading the wlan module. Let me know what the errors are.
official source
The stock wifi module won't work with the kernel from the official branch because CONFIG_MODULE_SIG_FORCE=y. You'll have to download the wlan source from CAF and build it with the same signature. That's a lot of work.
I also had some DT and dm-verity issues with the official source.
lineage-17.1
The lineage-17.1 branch includes the CAF wlan module (in drivers/staging/prima) for Android 10.0. I'm not sure why it's not working for you. Check the kernel log for wlan load errors.
The included CAF wlan module (and your GSI system) are Android 10. Your vendor is Android 9.0 or 8.1. Maybe there's a compatibility issue ? I'm guessing. I haven't tried that kernel with a GSI ROM.
Yahoo Mike said:
It sounds like the wlan_pronto.ko module is not loading. That's why wifi is not working.
It might be easier to build the msm-3.18.120 branch with YM_x605f_deconfig. That should work.
It does not force module signature checks (CONFIG_MODULE_SIG_FORCE=n). So the stock wlan module (/vendor/lib/modules/pronto/wlan_pronto.ko) should load ok.
If that fails, check the kernel log (dmesg) for errors loading the wlan module. Let me know what the errors are.
official source
The stock wifi module won't work with the kernel from the official branch because CONFIG_MODULE_SIG_FORCE=y. You'll have to download the wlan source from CAF and build it with the same signature. That's a lot of work.
I also had some DT and dm-verity issues with the official source.
lineage-17.1
The lineage-17.1 branch includes the CAF wlan module (in drivers/staging/prima) for Android 10.0. I'm not sure why it's not working for you. Check the kernel log for wlan load errors.
The included CAF wlan module (and your GSI system) are Android 10. Your vendor is Android 9.0 or 8.1. Maybe there's a compatibility issue ? I'm guessing. I haven't tried that kernel with a GSI ROM.
Click to expand...
Click to collapse
It's working! thanks a lot!

[KERNEL] kernel-plus for Nokia 6 (PLE)

kernel-plus for Nokia 6
This project is made to enhance user experiences using the Linux kernel on the Nokia 6 phone.
What this kernel have:
Additional CPU governors (alucard, nightmare, darkness, bioshock, blu_active), with "darkness" as the default governor for stability and battery life
SafetyNet compatibility
Enforcing SELinux (can be easily changed by modifying the flashable ZIP)
exFAT and NTFS read/write drivers (userspace programs will be necessary to access those functionalities) << THE FIRST ANDROID KERNEL TO HAVE NTFS KERNEL DRIVER
Latest patches from kernel.org for its respective release version (in this case 3.18.y)
Latest commits from CAF for its respective release version (in this case msm-3.18)
/proc/config.gz support for you kernel builders out there
What this kernel will have in the future:
EAS support with schedutil (currently work-in-progress)
Double tap to wake support (planned)
Overclocking support (planned)
Different kernel release upstream branch (planned)
>Is it safe to use the kernel? Have you done any tests?
Yes. I personally am using it with pirrat25's LineageOS 15.1 custom ROM (Oreo 8.1) on my Nokia 6 and it just works. I don't really know yet about long term usability so let me know in the thread!
>So, it has never been tested on stock ROM?
No, it has been tested to be not working (on Pie). YMMV, though. So go and try it! (Don't forget to give feedback in the thread if you do, thanks!)
>Will you add more features to the kernel? It's so barren!
Yes. That feature roadmap list is definitely not final. I will try and get as many features as I can to the kernel, so please stay tuned! Also, YOU can also contribute and add new features to the kernel. Just fork the source code on GitHub and make a pull request when you think you've got enough work on it.
XDA:DevDB Information
kernel-plus, Kernel for the Nokia 6
Contributors
xaedoplay.modder.xda, Linux Foundation, AOSP, Qualcomm, and HMD/FIH kernel engineers
Source Code: https://github.com/rmnscnce/android_kernel_PLE/tree/plus-3.18.y
Kernel Special Features:
Version Information
Status: Stable
Current Stable Version: 3.18.140-plus_v1.5
Stable Release Date: 2020-10-18
Created 2020-10-18
Last Updated 2020-10-28
Here you can download the prebuilt kernel images
Format: Flashable ZIP Archive
Latest version link: Direct download || Release page
Version archives (direct download links):
3.18.140-plus_v1.5
Changes:
- Merged tag LA.UM.6.5.r1-11500-8x96.0 from CAF
Code:
msm : adsprpc: maintain local copy of rpra offloaded to DSP
Make file credentials available to the seqfile interfaces
ext4: only look at the bg_flags field if it is valid
ext4: don't update checksum of new initialized bitmaps
ext4: verify the depth of extent tree in ext4_find_extent()
ext4: add more inode number paranoia checks
diag: Prevent out-of-bound access while processing userspace data
diag: Prevent out of bound access while getting build mask
diag: Check command size against the minimum before parsing
msm: adsprpc: maintain local copy of rpra offloaded to DSP
msm: ais: Remove dead code from Camera drivers
asoc: Ratelimit error logs to avoid excessive logging
soc: qcom: smem: validate fields of shared structures
msm: sensor: actuator: fix out of bound read for bivcm region params
FROMGIT: binder: create node flag to request sender's security context
ext4: avoid running out of journal credits when appending to an inline file
jbd2: don't mark block as modified if the handle is out of credits
jbd2: speedup jbd2_journal_dirty_metadata()
ext4: add corruption check in ext4_xattr_set_entry()
ext4: always verify the magic number in xattr blocks
- Compiled all drivers directly into the kernel image to prevent cases of incompatible .ko files (Pie not being able to use Wi-Fi)
3.18.140-plus_v1.4
Changes:
- Reverted integration of several drivers (readded /system/vendor/lib/modules files compilation)
- Added exFAT support in the kernel (submodule github:arter97/exfat-linux::branch=old)
- Added NTFS support in the kernel (Paragon NTFS3 GPL R/W driver)
- Fixed mistake in cmdline patcher
3.18.140-plus_v1.3
Changes:
- Streamlined the package by including all (necessary) drivers in the kernel image (eliminated /system/vendor/lib/modules dependency)
- Signed the flashable ZIP
3.18.140-plus_v1.2.1
Changes:
- Switched default CPU governor back to 'darkness'
- Removed 'lionfish' because of reboots when the battery is 35% or lower
3.18.140-plus_v1.2(DO NOT USE)
Changes:
- Removed "bloat" CPU governor 'conservativex' (it never worked)
- Changed default CPU governor to 'lionfish'
- Now using stock ramdisk
3.18.140-plus_v1.1
Changes:
- Applied SELinux compatibility kernel patch
- Modified kernel command line to boot on SELinux enforcing
3.18.140-plus
Changes:
- Initial release
Big thanks for GitHub for hosting my project repo and builds
Installation Guide
How to install the kernel?
Simple answer: "Just flash it using TWRP"
---
Well, it's that easy. Just flash the file you have downloaded using TWRP, and reboot the phone. Nothing fancy, just flash and it's all set.
Additional note: For some (unknown) reason Magisk would not survive the kernel flash procedure. You will need to flash Magisk installer zip after flashing the kernel to use it.
-----
How to change the kernel to boot into permissive SELinux mode?
While for security (and SafetyNet) it is not recommended to set the kernel to boot into permissive SELinux mode, you can easily modify the kernel flash script to do so (you can even disable SELinux altogether, but it is STRICTLY NOT RECOMMENDED)
To modify the kernel flash script, you must edit the "anykernel.sh" file.
From this
Code:
patch_cmdline androidboot.selinux=permissive androidboot.selinux=enforcing
-
To this:
Code:
patch_cmdline androidboot.selinux=permissive androidboot.selinux=permissive
or to this - if you want to disable SELinux altogether:
Code:
patch_cmdline androidboot.selinux=permissive androidboot.selinux=disabled
After it is done, you can repack the ZIP (I don't recommend applying compression to the ZIP) and flash it on TWRP
hello, I tried this but it doesnt work on stockrom base on Pie.
I also made a kernel based on nokia source V6* weeks ago with the kernel ver 3.18.120 from nokia, with pre enabled permissive mode and enabled some on menuconfig and governors and it seems to work everything, did it for personal purpose.
I also tried to upstream it, but I'm stuck got lots of error cuz I directly jump to the last version of kernel which is 3.18.140. did tried adding also EAS to the kernel, but there is alot of file to be added and fixing the error and symlinks manually so I didnt continue there since im doing it on my Celeron laptop.
anyway this one wont flash on TWRP, gets error using anykernel3 zip, something error like " update error:1" I dont remember exactly the whole text.
same thing for fastboot. I replaced the kernel from stockboot.img from this one and get Remote failed: dtb not found. (tried 3x) I know the compiled sources are dtb file but it doest get read,
which is the same procedure when I compiled my kernel which works.
thank you for making a time doing it for the N6 users. hopefully it will work soon.
JinbrianZ said:
hello, I tried this but it doesnt work on stockrom base on Pie.
I also made a kernel based on nokia source V6* weeks ago with the kernel ver 3.18.120 from nokia, with pre enabled permissive mode and enabled some on menuconfig and governors and it seems to work everything, did it for personal purpose.
I also tried to upstream it, but I'm stuck got lots of error cuz I directly jump to the last version of kernel which is 3.18.140. did tried adding also EAS to the kernel, but there is alot of file to be added and fixing the error and symlinks manually so I didnt continue there since im doing it on my Celeron laptop.
anyway this one wont flash on TWRP, gets error using anykernel3 zip, something error like " update error:1" I dont remember exactly the whole text.
same thing for fastboot. I replaced the kernel from stockboot.img from this one and get Remote failed: dtb not found. (tried 3x) I know the compiled sources are dtb file but it doest get read,
which is the same procedure when I compiled my kernel which works.
thank you for making a time doing it for the N6 users. hopefully it will work soon.
Click to expand...
Click to collapse
Thanks for the reply!
>anyway this one wont flash on TWRP, gets error using anykernel3 zip, something error like " update error:1" I dont remember exactly the whole text.
Can you please take note of the error message? It would be impossible for me to fix if you don't give me the details
>I replaced the kernel from stockboot.img from this one and get Remote failed: dtb not found. (tried 3x) I know the compiled sources are dtb file but it doest get read
This looks really strange. Is it possible that dtb layout from Oreo differs to the one on Pie? If it is, then I'll need to patch more and create a specific custom Makefile option to make it possible to compile more than one dtb image per source.
I will update the OP to let people know that this doesn't work (yet) on the stock Pie ROM
Cheers!
xaedoplay.modder.xda said:
Thanks for the reply!
>anyway this one wont flash on TWRP, gets error using anykernel3 zip, something error like " update error:1" I dont remember exactly the whole text.
Can you please take note of the error message? It would be impossible for me to fix if you don't give me the details
>I replaced the kernel from stockboot.img from this one and get Remote failed: dtb not found. (tried 3x) I know the compiled sources are dtb file but it doest get read
This looks really strange. Is it possible that dtb layout from Oreo differs to the one on Pie? If it is, then I'll need to patch more and create a specific custom Makefile option to make it possible to compile more than one dtb image per source.
I will update the OP to let people know that this doesn't work (yet) on the stock Pie ROM
Cheers!
Click to expand...
Click to collapse
> I will check it later.
or maybe because of TWRP, I use the bootable version which 3.2.3-0, but I can flash any zip on it. except for the anykernel zip that gets same error, which is also I did before for my compiled kernel.
and only gets to work when fastbooting the .img
Also when I compiled the kernel sources based on pie V6 from nokia, I got a dtb file size of about 18mb. where the stockboot image is 21mb. the one you compiled is in smaller size which maybe there is something missing files to get to work on pie I think?
JinbrianZ said:
> I will check it later.
or maybe because of TWRP, I use the bootable version which 3.2.3-0, but I can flash any zip on it. except for the anykernel zip that gets same error, which is also I did before for my compiled kernel.
and only gets to work when fastbooting the .img
Also when I compiled the kernel sources based on pie V6 from nokia, I got a dtb file size of about 18mb. where the stockboot image is 21mb. the one you compiled is in smaller size which maybe there is something missing files to get to work on pie I think?
Click to expand...
Click to collapse
Thanks for the reply!
>or maybe because of TWRP, I use the bootable version which 3.2.3-0, but I can flash any zip on it
Maybe try to use the official TWRP? It has full support and stuff, but I couldn't manage to flash the custom ROM there so to each their own
>he one you compiled is in smaller size which maybe there is something missing files to get to work on pie I think?
Yeah, maybe that's the culprit. Is it because I don't integrate all modules inside the kernel image? I will try and compile all the modules inside the kernel. The final ZIP size is 25MB though so it is actually bigger in total compared to the stock boot image.
Like I said, I will fix this issue once I got the real problem, so that all Nokia 6 user can enjoy using custom kernel images :fingers-crossed:
Finally a custom kernel for our phone! looks like i really need to unlock the bootloader now. Thanks for your effort from making this one!
btw sorry if it's OOT but is the LOS 15.1 ROM stable enough for daily driver use?
MYR-12.v2 said:
Finally a custom kernel for our phone! looks like i really need to unlock the bootloader now. Thanks for your effort from making this one!
btw sorry if it's OOT but is the LOS 15.1 ROM stable enough for daily driver use?
Click to expand...
Click to collapse
Thank you for the reply!
>is the LOS 15.1 ROM stable enough for daily driver use?
Yes – only if you wouldn't mind not being able to use the fingerprint scanner (and the button backlights). Other than that it's good! As an added bonus, the built in camera firmware is on par with the GCam port for this phone, without the shutter lag
I installed latest plus kernel on stock pie. it works now on my device. but wifi doesnt work.
if u set CONFIG_PRONTO_WLAN=m into CONFIG_PRONTO_WLAN=y on PLE_defconfig wifi will work. hope this error is due to this, kind of a sign error i hope so. I experienced this same error when i tried to build los.
cbkottege said:
I installed latest plus kernel on stock pie. it flashed well but didn't boot into system,it rebooted into bootloader.
Click to expand...
Click to collapse
Thank you for the reply!
So, it cannot boot on Pie, right? I will work for Pie ROMs on a separate branch, then!
I really thought there weren't going to be any changes in userspace compatibility between Oreo and Pie. Turned out I am wrong
xaedoplay.modder.xda said:
Thank you for the reply!
So, it cannot boot on Pie, right? I will work for Pie ROMs on a separate branch, then!
I really thought there weren't going to be any changes in userspace compatibility between Oreo and Pie. Turned out I am wrong
Click to expand...
Click to collapse
sorry man, can u check my previous reply again. i edited it. now its working.
I wiped cache and flashed magisk again then it worked..
but wifi doesnt work
cbkottege said:
sorry man, can u check my previous reply again. i edited it. now its working.
I wiped cache and flashed magisk again then it worked..
but wifi doesnt work
Click to expand...
Click to collapse
Thank you for your reply!
I checked the previous reply:
cbkottege said:
I installed latest plus kernel on stock pie. it works now on my device. but wifi doesnt work.
if u set CONFIG_PRONTO_WLAN=m into CONFIG_PRONTO_WLAN=y on PLE_defconfig wifi will work. hope this error is due to this, kind of a sign error i hope so. I experienced this same error when i tried to build los.
Click to expand...
Click to collapse
> if u set CONFIG_PRONTO_WLAN=m into CONFIG_PRONTO_WLAN=y on PLE_defconfig wifi will work
Okay, so I guess I had to merge drivers into the kernel again, huh? Will do! (Expect new version later today with even more updates)
>I experienced this same error when i tried to build los
You built LOS? What version? I would like to have it if it's working and is LineageOS 16 or later!
xaedoplay.modder.xda said:
Thank you for your reply!
I checked the previous reply:
> if u set CONFIG_PRONTO_WLAN=m into CONFIG_PRONTO_WLAN=y on PLE_defconfig wifi will work
Okay, so I guess I had to merge drivers into the kernel again, huh? Will do! (Expect new version later today with even more updates)
>I experienced this same error when i tried to build los
You built LOS? What version? I would like to have it if it's working and is LineageOS 16 or later!
Click to expand...
Click to collapse
Thanks for ur efforts on kernel plus! keep this going on. we will hope later updates
I tried to build los 16 but i failed. I built los 15.1 using pirats tree. tried to fix fingerprint,hotspot and backlight bugs . Only i managed to fix hotspot bug also i managed to set Selinux to enforced on los 15.1 userdebug build without any major issue.
cbkottege said:
Thanks for ur efforts on kernel plus! keep this going on. we will hope later updates
I tried to build los 16 but i failed. I built los 15.1 using pirats tree. tried to fix fingerprint,hotspot and backlight bugs . Only i managed to fix hotspot bug also i managed to set Selinux to enforced on los 15.1 userdebug build without any major issue.
Click to expand...
Click to collapse
Thank you for your reply!
>Thanks for ur efforts on kernel plus! keep this going on. we will hope later updates
Stay tuned! I'm ~65% done on the next update!
>I tried to build los 16 but i failed
Aw, that's quite unfortunate :\ Maybe you could try building 17.1 tree made available by someone on GitHub?
>tried to fix fingerprint,hotspot and backlight bugs . Only i managed to fix hotspot bug also i managed to set Selinux to enforced on los 15.1 userdebug build without any major issue
There's a hotspot bug? I don't experience anything strange on it here. Anyways could you please share the fixed build (on the respective pirrat's thread)? Any fixes' a goal!
xaedoplay.modder.xda said:
Thank you for your reply!
>Thanks for ur efforts on kernel plus! keep this going on. we will hope later updates
Stay tuned! I'm ~65% done on the next update!
>I tried to build los 16 but i failed
Aw, that's quite unfortunate :\ Maybe you could try building 17.1 tree made available by someone on GitHub?
>tried to fix fingerprint,hotspot and backlight bugs . Only i managed to fix hotspot bug also i managed to set Selinux to enforced on los 15.1 userdebug build without any major issue
There's a hotspot bug? I don't experience anything strange on it here. Anyways could you please share the fixed build (on the respective pirrat's thread)? Any fixes' a goal!
Click to expand...
Click to collapse
>I did it for my personal use. about hotspot bug when we switch between hotspot and wifi system got restart after a while.
>I tried that los 17 tree posted by samu , it also not working. I'm new for these stuff. i think we have to add some symlinks manually to upstream the tree. But i dont know much about it. :crying:
> I'll post my work on that thread soon. I have to find the working zip file now. There are lots of zips on my pc and are not organised well
I want to know does pirrats los 15.1 having any battery issue quick discharge in idle or any kind of a unusual battery usage???
In my build im having a unusual battery usage cant even find what is the cause for it. i thought it was due to tree . let me know if u have a quick battery drain in idle on urs.
cbkottege said:
>I did it for my personal use. about hotspot bug when we switch between hotspot and wifi system got restart after a while.
>I tried that los 17 tree posted by samu , it also not working. I'm new for these stuff. i think we have to add some symlinks manually to upstream the tree. But i dont know much about it. :crying:
> I'll post my work on that thread soon. I have to find the working zip file now. There are lots of zips on my pc and are not organised well
I want to know does pirrats los 15.1 having any battery issue quick discharge in idle or any kind of a unusual battery usage???
In my build im having a unusual battery usage cant even find what is the cause for it. i thought it was due to tree . let me know if u have a quick battery drain in idle on urs.
Click to expand...
Click to collapse
Thanks for your reply!
>>I tried that los 17 tree posted by samu , it also not working. I'm new for these stuff. i think we have to add some symlinks manually to upstream the tree. But i dont know much about it. :crying:
I really want to help on this but sadly I don't have much storage spaces left on my workstation so kernel it is! Maybe if I finally got my hands on more storage? I hope so!
>I want to know does pirrats los 15.1 having any battery issue quick discharge in idle or any kind of a unusual battery usage???
Maybe? I don't know, I started the kernel development almost immediately after I got my hands on 15.1. For what I know, the battery drains but I think that's because of my battery breaking down (thinking about having ~2500mAh left intact) (this kernel is really good at maintaining idle battery life through HW controlled deep sleep though, thanks to "darkness" governor)
xaedoplay.modder.xda said:
Thanks for your reply!
>>I tried that los 17 tree posted by samu , it also not working. I'm new for these stuff. i think we have to add some symlinks manually to upstream the tree. But i dont know much about it. :crying:
I really want to help on this but sadly I don't have much storage spaces left on my workstation so kernel it is! Maybe if I finally got my hands on more storage? I hope so!
>I want to know does pirrats los 15.1 having any battery issue quick discharge in idle or any kind of a unusual battery usage???
Maybe? I don't know, I started the kernel development almost immediately after I got my hands on 15.1. For what I know, the battery drains but I think that's because of my battery breaking down (thinking about having ~2500mAh left intact) (this kernel is really good at maintaining idle battery life through HW controlled deep sleep though, thanks to "darkness" governor)
Click to expand...
Click to collapse
Can u join me on telegram ""t.me/cbkings"" . :fingers-crossed: maybe we can talk little about development just in case .
Thanks for making a custom kernel, i tried it with Lineage OS 15.1, but everytime when i deploy it with TWRP 3.4.0, it soft-bricks my android installation. (or even TWRP itself also, but i am not sure)
Also im using TA-1033.
Edit: Changed TWRP to 3.3.1 and installed Magisk before applying, now it boots, but GUI is messed up.
cbkottege said:
I installed latest plus kernel on stock pie. it works now on my device. but wifi doesnt work.
if u set CONFIG_PRONTO_WLAN=m into CONFIG_PRONTO_WLAN=y on PLE_defconfig wifi will work. hope this error is due to this, kind of a sign error i hope so. I experienced this same error when i tried to build los.
Click to expand...
Click to collapse
Hey! Just wanted to inform you that the new kernel release (plus_v1.5) got all the drivers built into the kernel image. Hopefully now the Wi-Fi will work on stock Pie ROM.
Please give an update if you're trying it out!
Wapitiii said:
Thanks for making a custom kernel, i tried it with Lineage OS 15.1, but everytime when i deploy it with TWRP 3.4.0, it soft-bricks my android installation. (or even TWRP itself also, but i am not sure)
Also im using TA-1033.
Edit: Changed TWRP to 3.3.1 and installed Magisk before applying, now it boots, but GUI is messed up.
Click to expand...
Click to collapse
Thanks for the reply!
>but GUI is messed up
Have you tampered the GPU drivers? You can try to wipe the GPU cache (also the /cache partition and runtime (dalvik) cache) to fix issues with broken UI elements

Categories

Resources