Compiling kernel? Nothing will boot - Note 7 Questions & Answers

Alright, so, I'm trying to compile a custom kernel with all the rooting restrictions disabled, but I can't get anything to boot.
I've used Samsung's source (N930FXXU1APGI) and TWRP's stock-6.0 branch.
When building with no modifications:
TWRP stock-6.0 boots, but panics shortly after: Kernel panic - not syncing: Watchdog detected hard LOCKUP on cpu 1
Samsung's doesn't boot (stuck at bootloader splash)
Both using the same ramdisk (with verify disabled) that I'm running with the stock kernel.
Anyone got any suggestions?
Compilers tested:
Ubuntu 16.04's arm64 toolchain (gcc version 5.4.0 20160609 (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.1))
gcc-linaro-4.9-2016.02-x86_64_aarch64
Google's 4.9 (gcc version 4.9.x 20150123 (prerelease) (GCC))

Related

Tracking Kernel Panics

These are using the following build and kernel:
Build: generic/full_msm/msm/msm:2.2.1/FRX04/eng.bryan.20110121.213411:eng/release-keys
Hardware: msm
Bootloader: unknown
Radio: unknown
Kernel: Linux version 2.6.27.46-01253-gd53ddf6-dirty ([email protected]) (gcc version 4.4.0 (GCC) )
KERNEL PANIC - FRX04 - MO... ON THE 3RD OF FEB 2011 http://pastebin.com/TvJ4mCAG
KERNEL PANIC - FRX04 - WE... ON THE 3RD OF FEB 2011 http://pastebin.com/ccKsETYk
KERNEL PANIC - FRX04 - WE... ON THE 3RD OF FEB 2011 --- http://pastebin.com/UfLvnbdD

{HELP} Building custom 5.1.1 kernel for flo

Hello everyone. I am spinning up on a project that requires a custom rom for the flo based on 5.1.1_r28, and a custom kernel as well. The rom is built and working, but currently uses the prebuilt flo kernel. When I boot the prebuilt kernel, I can check the kernel version, 7597781.
Linux version 3.4.0-g7597781 ([email protected]) (gcc version 4.6.x-google 20120106 (prerelease) (GCC) ) #1 SMP PREEMPT Thu Mar 12 01:10:18 UTC 2015
This corresponds to the last commit hash, so after checking out the msm kernel source, I created a branch based on that hash.
You can find my kernel source here - https://github.com/FutureHax/flo-kernel/tree/7597781, and the actual zImage file attached to the post.
After the kernel is installed however, I am unable to boot. The device doesnt even make it to the splash screen, just loops over the initial google logo before rebooting to repeat. This also means that since nothing is started, I cant get any logs from adb to see whats wrong. The kernel is just completely failing.
The resulting boot.img file sizes are slightly off as well.
Not working
Custom built kernel boot.img size = sending 'boot' (7356 KB)...
Working
Prebuilt kernel boot.img size = sending 'boot' (7358 KB)...
I was able to get my last_kmsg as well after the panic.
http://pastebin.com/YfDzNbGS
Hello, have you fixed it?
r2DoesInc said:
I was able to get my last_kmsg as well after the panic. http://pastebin.com/YfDzNbGS
Click to expand...
Click to collapse
I see a null pointer just before the ramdisk is supposed to be unpacked...
Code:
[ 0.447845] Unable to handle kernel NULL pointer dereference at virtual address 00000001
[ 0.448059] pgd = c0004000
[ 0.448181] [00000001] *pgd=00000000
Try to pack your kernel with the original/prebuilt ramdisk and see what happens.
I did in fact resolve it. I dont actually know what that issue was, but it went away to be replaced with a real error
Unable to handle kernel paging request at virtual address 32797474
Click to expand...
Click to collapse
I was then pointed to a few commits by a friend of mine and they resolved the issue!
https://review.cyanogenmod.org/#/q/...ect:CyanogenMod/android_kernel_motorola_ghost

Development [Kernel] eva kernel for OnePlus 9/9 Pro/9RT & Realme GT Master Edition [Android 13]

{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
eva kernel is a custom kernel based on OnePlus 9/9 Pro and Oplus android-13 sources with some under the hood optimisations and improvements. This kernel aims to provide a flash-and-use experience and is not intended to be tuned or modified by the user. There are a few key features to this kernel that improves the overall experience which includes several compiler optimisations, minimal debug code and production level stability.
This custom kernel only supports Android 13 based custom roms that use the OxygenOS 13 firmware. OxygenOS/ColorOS/RealmeUI android versions 11/12/13 are unsupported as of now (maybe supported in future if I find testers).
Features of the kernel includes:
Bleeding Edge Toolchains: The Eva Kernel is built using two custom toolchains: eva GCC and Neutron Clang. Both the toolchains are bleeding edge with new compiler optimisations and features being merged into them.
MGLRU Backport: MGLRU is a memory management algorithm that's used to improve the performance of systems with limited memory. The Eva Kernel has MGLRU backported, allowing it to take advantage of this feature and improve performance on devices with less RAM. MGLRU allows the kernel to use memory more efficiently and avoid swapping to disk, resulting in better performance and faster response times.
Full GCC LTO and clang thin LTO: GCC LTO (Link-Time Optimization) and clang thin LTO are compiler optimizations that can improve code generation and reduce the size of the resulting binary. By building the kernel with both of these optimizations, the Eva Kernel achieves better performance and a smaller size. LTO works by analyzing the code at compile time and performing optimization at the link stage. This results in more efficient code generation and better performance.
Graphite Optimizations (GCC variant only): Graphite Optimizations is a set of optimizations that improve the performance of code by allowing the compiler to better understand the relationships between different parts of the code. The Eva Kernel includes this feature for those who are fans of it (GCC variant only). Graphite Optimizations work by analyzing the code and identifying patterns and relationships between different parts of the code. The compiler can then use this information to generate more efficient code.
Fully Upstreamed to Latest Linux Upstream Source: The kernel is fully upstreamed to the latest linux upstream source. This means that it's up to date with the latest security patches and features, and should be compatible with the latest version of Android. Upstreaming means that the kernel is based on the latest stable release of the Linux kernel and includes all the latest security patches and bug fixes.
Fully Up to Date with Android Security Bulletin: The kernel is fully up to date with the latest Android Security Bulletin, ensuring that your device is as secure as possible. The Android Security Bulletin is a monthly release that includes security updates for the Android operating system. The Eva Kernel is updated to include all the latest security patches and fixes.
Battery Optimisations: The kernel employs power efficient workqueues that enable the kernel to run specific workqueues in a power efficient manner in order to reduce power consumption and increase battery life. Power hungry drivers are those that consume a lot of power, such as the WiFi driver, and audio driver.
Tracing free: The Eva Kernel has removed the CONFIG_TRACING kernel configuration option, resulting in a slight performance improvement. CONFIG_TRACING is a kernel configuration option that enables kernel tracing, which can be useful for debugging purposes. However, it can also have a slight impact on performance.
Built on CI: The kernel is built on a Continuous Integration (CI) system, which ensures that it's built consistently and reliably. CI is a process that automatically builds, tests, and deploys code changes. By building the kernel on a CI system, the Eva Kernel is built in a controlled and automated environment, which reduces the risk of human error and ensures that each build is consistent and reliable. This also makes it easier to maintain and update the kernel over time.
GCC PGO (GCC Variant only): The Eva Kernel is built with GCC PGO (Profile Guided Optimization), which is a compiler optimization technique that uses profiling information to improve code generation. GCC PGO works by collecting profiling information about the kernel during a test run and then using that information to optimize the code during the next build. This can result in better performance and a smaller binary size.
No Modules: The support for modules has been dropped from the kernel to improve security. This can potentially avoid malicious modules being loaded into the kernel.
And many more to come with subsequent updates!
eva kernel has 2 variants available for user choice:
Clang Version: This variant is built using the bleeding LLVM toolchain (Neutron clang).
GCC Version: This variant is built using the baremetal GNU C Compiler (GCC) (or eva GCC).
What is the difference between these?
It is just a compiler difference. It boils down to the optimisations applied via the compiler to the C that would yield a real-life difference. I provide both the clang and gcc version to give users a choice. At the end of the day, it depends on your own usage, and the kernel shall provide you the best user experience out of the box with both clang and GCC.
How do I install this kernel?
Firstly, backup your boot, vendor_boot and dtbo partitions. The kernel only modifies these partitions and in case if the kernel fails to boot (which it won't), you can just restore the 3 partitions or flash full ota of your custom rom to get back to previous working state.
To flash the kernel:
You can use TWRP or any other custom recovery and flash it just as any other flashable zip.
This kernel also supports flashing using custom kernel managers like FKM etc.
Downloads
Grab the Kernel from my GitHub Releases!
Note: Only download the zip according to your device codename:
OnePlus 9/9 Pro: eva-lemonade-xxx
OnePlus 9RT: eva-martini-xxx
Realme GT Master: eva-lunaa-xxx
Beta Testing
If you are interested in testing my kernel, join my Telegram Channel (and discussion through the channel) which posts automated builds.
Source Code: GitHub
Like my work?
Buy me a beer!
Sponsor me on my GitHub!
Special Thanks to @Sherif Rahim @SugaCRX @rk134 for testing out the kernel!
Changelogs
21 April 2023
Latest upstream (5.4.241)
Latest Android Security bulletin merged (ASB-2023-04-05_11-5.4)
Samsung RMNET extension for better network throughput
Fixed double tap to wake on OnePlus 9
Fixed userspace irq balance crashes
Buffer allocation optimisations
Clang builds are now built with Polly Optimisations
18 May 2023
Latest upstream (5.4.243)
Latest Android Security bulletin merged (ASB-2023-05-05_11-5.4)
Latest QSSI14 CLO upstream (LA.UM.9.14.r1-21600-LAHAINA.QSSI14.0)
Latest exFAT driver updates
Improved fingerprint sensor drivers
Support for ROMs using OSS HWC
Upgraded GCC to 14.x
Kernel is now optimized for performance using -O3
Improve drains caused due to IPA (Mobile Network)
22 May 2023
Fixed usb issues
Fixed battery drain due to USB wakelock stuck
Bess Karamel Vaai
wao best kranul
Awesome karamel
flashed on latest nameless, haptics are ded will attach logs after testing it more
. thx for this great kernel. and you have my deepest support
KingMonkeyDLuffy said:
flashed on latest nameless, haptics are ded will attach logs after testing it more
. thx for this great kernel. and you have my deepest support
Click to expand...
Click to collapse
That's strange. It must be some nameless side change.
m_vaisakh said:
That's strange. It must be some nameless side change.
Click to expand...
Click to collapse
Yes, haptics don't work unfortunately. I flashed the clang version on Nameless Rom.
Mar-cel said:
Yes, haptics don't work unfortunately. I flashed the clang version on Nameless Rom.
View attachment 5881169
Click to expand...
Click to collapse
I've discussed it with Chandu and he said he'll update the ROM to support the haptics.
Pero kernel dev.
m_vaisakh said:
he'll update
Click to expand...
Click to collapse
any fixes before update? miss vibration so much
rawello said:
any fixes before update? miss vibration so much
Click to expand...
Click to collapse
Well, the problem is, if I fix it for nameless, it'll break for every other rom. So you'll have to wait until chandu pushes a new update for nameless.
Or if you can force the device to be permissive selinux it may work (I do not recommend doing that).
m_vaisakh said:
устройство будет разрешенным selinux, это может сработать (я не думаю, что это нужно делать).
Click to expand...
Click to collapse
let's try)
m_vaisakh said:
permissive selinux
Click to expand...
Click to collapse
so, its work, thanks! wait Chandu nameless update
Mar-cel said:
Yes, haptics don't work unfortunately. I flashed the clang version on Nameless Rom.
View attachment 5881169
Click to expand...
Click to collapse
Only haptics are broken? I test for Nameless, I'll flash the kernel if haptics are the only issue.
I'm unable to join the telegram group for some reason
Has anyone else tried this kernel on the latest Nameless? I've seen here that haptics are broken but that doesn't bother me. Is anything else broken? Should I use GCC or Clang version?
itsnebulalol said:
doesn't bother
Click to expand...
Click to collapse
bear in mind, any vibration(notification vibration, haptic, alarm vibration) does not work
Ryano89 said:
Only haptics are broken? I test for Nameless, I'll flash the kernel if haptics are the only issue.
Click to expand...
Click to collapse
I couldn't find anything else
Mar-cel said:
I couldn't find anything else
Click to expand...
Click to collapse
Thanks. I flashed the gcc version on lemonade through EXKM and was stuck in fastboot on Nameless. Easily got booted with my backup. I'll try Clang version later

Development [Kernel] eva kernel for OnePlus 9/9 Pro/9RT & Realme GT Master Edition [Android 13]

{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
eva kernel is a custom kernel based on OnePlus 9/9 Pro and Oplus android-13 sources with some under the hood optimisations and improvements. This kernel aims to provide a flash-and-use experience and is not intended to be tuned or modified by the user. There are a few key features to this kernel that improves the overall experience which includes several compiler optimisations, minimal debug code and production level stability.
This custom kernel only supports Android 13 based custom roms that use the OxygenOS 13 firmware. OxygenOS/ColorOS/RealmeUI android versions 11/12/13 are unsupported as of now (maybe supported in future if I find testers).
Features of the kernel includes:
Bleeding Edge Toolchains: The Eva Kernel is built using two custom toolchains: eva GCC and Neutron Clang. Both the toolchains are bleeding edge with new compiler optimisations and features being merged into them.
MGLRU Backport: MGLRU is a memory management algorithm that's used to improve the performance of systems with limited memory. The Eva Kernel has MGLRU backported, allowing it to take advantage of this feature and improve performance on devices with less RAM. MGLRU allows the kernel to use memory more efficiently and avoid swapping to disk, resulting in better performance and faster response times.
Full GCC LTO and clang thin LTO: GCC LTO (Link-Time Optimization) and clang thin LTO are compiler optimizations that can improve code generation and reduce the size of the resulting binary. By building the kernel with both of these optimizations, the Eva Kernel achieves better performance and a smaller size. LTO works by analyzing the code at compile time and performing optimization at the link stage. This results in more efficient code generation and better performance.
Graphite Optimizations (GCC variant only): Graphite Optimizations is a set of optimizations that improve the performance of code by allowing the compiler to better understand the relationships between different parts of the code. The Eva Kernel includes this feature for those who are fans of it (GCC variant only). Graphite Optimizations work by analyzing the code and identifying patterns and relationships between different parts of the code. The compiler can then use this information to generate more efficient code.
Fully Upstreamed to Latest Linux Upstream Source: The kernel is fully upstreamed to the latest linux upstream source. This means that it's up to date with the latest security patches and features, and should be compatible with the latest version of Android. Upstreaming means that the kernel is based on the latest stable release of the Linux kernel and includes all the latest security patches and bug fixes.
Fully Up to Date with Android Security Bulletin: The kernel is fully up to date with the latest Android Security Bulletin, ensuring that your device is as secure as possible. The Android Security Bulletin is a monthly release that includes security updates for the Android operating system. The Eva Kernel is updated to include all the latest security patches and fixes.
Battery Optimisations: The kernel employs power efficient workqueues that enable the kernel to run specific workqueues in a power efficient manner in order to reduce power consumption and increase battery life. Power hungry drivers are those that consume a lot of power, such as the WiFi driver, and audio driver.
Tracing free: The Eva Kernel has removed the CONFIG_TRACING kernel configuration option, resulting in a slight performance improvement. CONFIG_TRACING is a kernel configuration option that enables kernel tracing, which can be useful for debugging purposes. However, it can also have a slight impact on performance.
Built on CI: The kernel is built on a Continuous Integration (CI) system, which ensures that it's built consistently and reliably. CI is a process that automatically builds, tests, and deploys code changes. By building the kernel on a CI system, the Eva Kernel is built in a controlled and automated environment, which reduces the risk of human error and ensures that each build is consistent and reliable. This also makes it easier to maintain and update the kernel over time.
GCC PGO (GCC Variant only): The Eva Kernel is built with GCC PGO (Profile Guided Optimization), which is a compiler optimization technique that uses profiling information to improve code generation. GCC PGO works by collecting profiling information about the kernel during a test run and then using that information to optimize the code during the next build. This can result in better performance and a smaller binary size.
No Modules: The support for modules has been dropped from the kernel to improve security. This can potentially avoid malicious modules being loaded into the kernel.
And many more to come with subsequent updates!
eva kernel has 2 variants available for user choice:
Clang Version: This variant is built using the bleeding LLVM toolchain (Neutron clang).
GCC Version: This variant is built using the baremetal GNU C Compiler (GCC) (or eva GCC).
What is the difference between these?
It is just a compiler difference. It boils down to the optimisations applied via the compiler to the C that would yield a real-life difference. I provide both the clang and gcc version to give users a choice. At the end of the day, it depends on your own usage, and the kernel shall provide you the best user experience out of the box with both clang and GCC.
How do I install this kernel?
Firstly, backup your boot, vendor_boot and dtbo partitions. The kernel only modifies these partitions and in case if the kernel fails to boot (which it won't), you can just restore the 3 partitions or flash full ota of your custom rom to get back to previous working state.
To flash the kernel:
You can use TWRP or any other custom recovery and flash it just as any other flashable zip.
This kernel also supports flashing using custom kernel managers like FKM etc.
Downloads
Grab the Kernel from my GitHub Releases!
Note: Only download the zip according to your device codename:
OnePlus 9/9 Pro: eva-lemonade-xxx
OnePlus 9RT: eva-martini-xxx
Realme GT Master: eva-lunaa-xxx
Beta Testing
If you are interested in testing my kernel, join my Telegram Channel (and discussion through the channel) which posts automated builds.
Source Code: GitHub
Like my work?
Buy me a beer!
Sponsor me on my GitHub!
Special Thanks to @Sherif Rahim @SugaCRX @rk134 for testing out the kernel!
Changelogs
21 April 2023
Latest upstream (5.4.241)
Latest Android Security bulletin merged (ASB-2023-04-05_11-5.4)
Samsung RMNET extension for better network throughput
Fixed double tap to wake on OnePlus 9
Fixed userspace irq balance crashes
Buffer allocation optimisations
Clang builds are now built with Polly Optimisations
18 May 2023
Latest upstream (5.4.243)
Latest Android Security bulletin merged (ASB-2023-05-05_11-5.4)
Latest QSSI14 CLO upstream (LA.UM.9.14.r1-21600-LAHAINA.QSSI14.0)
Latest exFAT driver updates
Improved fingerprint sensor drivers
Support for ROMs using OSS HWC
Upgraded GCC to 14.x
Kernel is now optimized for performance using -O3
Improve drains caused due to IPA (Mobile Network)
22 May 2023
Fixed usb issues
Fixed battery drain due to USB wakelock stuck
Bess Karamel Vaai
wao best kranul
Awesome karamel
flashed on latest nameless, haptics are ded will attach logs after testing it more
. thx for this great kernel. and you have my deepest support
KingMonkeyDLuffy said:
flashed on latest nameless, haptics are ded will attach logs after testing it more
. thx for this great kernel. and you have my deepest support
Click to expand...
Click to collapse
That's strange. It must be some nameless side change.
m_vaisakh said:
That's strange. It must be some nameless side change.
Click to expand...
Click to collapse
Yes, haptics don't work unfortunately. I flashed the clang version on Nameless Rom.
Mar-cel said:
Yes, haptics don't work unfortunately. I flashed the clang version on Nameless Rom.
View attachment 5881169
Click to expand...
Click to collapse
I've discussed it with Chandu and he said he'll update the ROM to support the haptics.
Pero kernel dev.
m_vaisakh said:
he'll update
Click to expand...
Click to collapse
any fixes before update? miss vibration so much
rawello said:
any fixes before update? miss vibration so much
Click to expand...
Click to collapse
Well, the problem is, if I fix it for nameless, it'll break for every other rom. So you'll have to wait until chandu pushes a new update for nameless.
Or if you can force the device to be permissive selinux it may work (I do not recommend doing that).
m_vaisakh said:
устройство будет разрешенным selinux, это может сработать (я не думаю, что это нужно делать).
Click to expand...
Click to collapse
let's try)
m_vaisakh said:
permissive selinux
Click to expand...
Click to collapse
so, its work, thanks! wait Chandu nameless update
Mar-cel said:
Yes, haptics don't work unfortunately. I flashed the clang version on Nameless Rom.
View attachment 5881169
Click to expand...
Click to collapse
Only haptics are broken? I test for Nameless, I'll flash the kernel if haptics are the only issue.
I'm unable to join the telegram group for some reason
Has anyone else tried this kernel on the latest Nameless? I've seen here that haptics are broken but that doesn't bother me. Is anything else broken? Should I use GCC or Clang version?
itsnebulalol said:
doesn't bother
Click to expand...
Click to collapse
bear in mind, any vibration(notification vibration, haptic, alarm vibration) does not work
Ryano89 said:
Only haptics are broken? I test for Nameless, I'll flash the kernel if haptics are the only issue.
Click to expand...
Click to collapse
I couldn't find anything else
Mar-cel said:
I couldn't find anything else
Click to expand...
Click to collapse
Thanks. I flashed the gcc version on lemonade through EXKM and was stuck in fastboot on Nameless. Easily got booted with my backup. I'll try Clang version later

Development [Kernel] eva kernel for OnePlus 9/9 Pro/9RT & Realme GT Master Edition [Android 13]

{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
eva kernel is a custom kernel based on OnePlus 9/9 Pro and Oplus android-13 sources with some under the hood optimisations and improvements. This kernel aims to provide a flash-and-use experience and is not intended to be tuned or modified by the user. There are a few key features to this kernel that improves the overall experience which includes several compiler optimisations, minimal debug code and production level stability.
This custom kernel only supports Android 13 based custom roms that use the OxygenOS 13 firmware. OxygenOS/ColorOS/RealmeUI android versions 11/12/13 are unsupported as of now (maybe supported in future if I find testers).
Features of the kernel includes:
Bleeding Edge Toolchains: The Eva Kernel is built using two custom toolchains: eva GCC and Neutron Clang. Both the toolchains are bleeding edge with new compiler optimisations and features being merged into them.
MGLRU Backport: MGLRU is a memory management algorithm that's used to improve the performance of systems with limited memory. The Eva Kernel has MGLRU backported, allowing it to take advantage of this feature and improve performance on devices with less RAM. MGLRU allows the kernel to use memory more efficiently and avoid swapping to disk, resulting in better performance and faster response times.
Full GCC LTO and clang thin LTO: GCC LTO (Link-Time Optimization) and clang thin LTO are compiler optimizations that can improve code generation and reduce the size of the resulting binary. By building the kernel with both of these optimizations, the Eva Kernel achieves better performance and a smaller size. LTO works by analyzing the code at compile time and performing optimization at the link stage. This results in more efficient code generation and better performance.
Graphite Optimizations (GCC variant only): Graphite Optimizations is a set of optimizations that improve the performance of code by allowing the compiler to better understand the relationships between different parts of the code. The Eva Kernel includes this feature for those who are fans of it (GCC variant only). Graphite Optimizations work by analyzing the code and identifying patterns and relationships between different parts of the code. The compiler can then use this information to generate more efficient code.
Fully Upstreamed to Latest Linux Upstream Source: The kernel is fully upstreamed to the latest linux upstream source. This means that it's up to date with the latest security patches and features, and should be compatible with the latest version of Android. Upstreaming means that the kernel is based on the latest stable release of the Linux kernel and includes all the latest security patches and bug fixes.
Fully Up to Date with Android Security Bulletin: The kernel is fully up to date with the latest Android Security Bulletin, ensuring that your device is as secure as possible. The Android Security Bulletin is a monthly release that includes security updates for the Android operating system. The Eva Kernel is updated to include all the latest security patches and fixes.
Battery Optimisations: The kernel employs power efficient workqueues that enable the kernel to run specific workqueues in a power efficient manner in order to reduce power consumption and increase battery life. Power hungry drivers are those that consume a lot of power, such as the WiFi driver, and audio driver.
Tracing free: The Eva Kernel has removed the CONFIG_TRACING kernel configuration option, resulting in a slight performance improvement. CONFIG_TRACING is a kernel configuration option that enables kernel tracing, which can be useful for debugging purposes. However, it can also have a slight impact on performance.
Built on CI: The kernel is built on a Continuous Integration (CI) system, which ensures that it's built consistently and reliably. CI is a process that automatically builds, tests, and deploys code changes. By building the kernel on a CI system, the Eva Kernel is built in a controlled and automated environment, which reduces the risk of human error and ensures that each build is consistent and reliable. This also makes it easier to maintain and update the kernel over time.
GCC PGO (GCC Variant only): The Eva Kernel is built with GCC PGO (Profile Guided Optimization), which is a compiler optimization technique that uses profiling information to improve code generation. GCC PGO works by collecting profiling information about the kernel during a test run and then using that information to optimize the code during the next build. This can result in better performance and a smaller binary size.
No Modules: The support for modules has been dropped from the kernel to improve security. This can potentially avoid malicious modules being loaded into the kernel.
And many more to come with subsequent updates!
eva kernel has 2 variants available for user choice:
Clang Version: This variant is built using the bleeding LLVM toolchain (Neutron clang).
GCC Version: This variant is built using the baremetal GNU C Compiler (GCC) (or eva GCC).
What is the difference between these?
It is just a compiler difference. It boils down to the optimisations applied via the compiler to the C that would yield a real-life difference. I provide both the clang and gcc version to give users a choice. At the end of the day, it depends on your own usage, and the kernel shall provide you the best user experience out of the box with both clang and GCC.
How do I install this kernel?
Firstly, backup your boot, vendor_boot and dtbo partitions. The kernel only modifies these partitions and in case if the kernel fails to boot (which it won't), you can just restore the 3 partitions or flash full ota of your custom rom to get back to previous working state.
To flash the kernel:
You can use TWRP or any other custom recovery and flash it just as any other flashable zip.
This kernel also supports flashing using custom kernel managers like FKM etc.
Downloads
Grab the Kernel from my GitHub Releases!
Note: Only download the zip according to your device codename:
OnePlus 9/9 Pro: eva-lemonade-xxx
OnePlus 9RT: eva-martini-xxx
Realme GT Master: eva-lunaa-xxx
Beta Testing
If you are interested in testing my kernel, join my Telegram Channel (and discussion through the channel) which posts automated builds.
Source Code: GitHub
Like my work?
Buy me a beer!
Sponsor me on my GitHub!
Special Thanks to @Sherif Rahim @SugaCRX @rk134 for testing out the kernel!
Changelogs
21 April 2023
Latest upstream (5.4.241)
Latest Android Security bulletin merged (ASB-2023-04-05_11-5.4)
Samsung RMNET extension for better network throughput
Fixed double tap to wake on OnePlus 9
Fixed userspace irq balance crashes
Buffer allocation optimisations
Clang builds are now built with Polly Optimisations
18 May 2023
Latest upstream (5.4.243)
Latest Android Security bulletin merged (ASB-2023-05-05_11-5.4)
Latest QSSI14 CLO upstream (LA.UM.9.14.r1-21600-LAHAINA.QSSI14.0)
Latest exFAT driver updates
Improved fingerprint sensor drivers
Support for ROMs using OSS HWC
Upgraded GCC to 14.x
Kernel is now optimized for performance using -O3
Improve drains caused due to IPA (Mobile Network)
22 May 2023
Fixed usb issues
Fixed battery drain due to USB wakelock stuck
Bess Karamel Vaai
wao best kranul
Awesome karamel
flashed on latest nameless, haptics are ded will attach logs after testing it more
. thx for this great kernel. and you have my deepest support
KingMonkeyDLuffy said:
flashed on latest nameless, haptics are ded will attach logs after testing it more
. thx for this great kernel. and you have my deepest support
Click to expand...
Click to collapse
That's strange. It must be some nameless side change.
m_vaisakh said:
That's strange. It must be some nameless side change.
Click to expand...
Click to collapse
Yes, haptics don't work unfortunately. I flashed the clang version on Nameless Rom.
Mar-cel said:
Yes, haptics don't work unfortunately. I flashed the clang version on Nameless Rom.
View attachment 5881169
Click to expand...
Click to collapse
I've discussed it with Chandu and he said he'll update the ROM to support the haptics.
Pero kernel dev.
m_vaisakh said:
he'll update
Click to expand...
Click to collapse
any fixes before update? miss vibration so much
rawello said:
any fixes before update? miss vibration so much
Click to expand...
Click to collapse
Well, the problem is, if I fix it for nameless, it'll break for every other rom. So you'll have to wait until chandu pushes a new update for nameless.
Or if you can force the device to be permissive selinux it may work (I do not recommend doing that).
m_vaisakh said:
устройство будет разрешенным selinux, это может сработать (я не думаю, что это нужно делать).
Click to expand...
Click to collapse
let's try)
m_vaisakh said:
permissive selinux
Click to expand...
Click to collapse
so, its work, thanks! wait Chandu nameless update
Mar-cel said:
Yes, haptics don't work unfortunately. I flashed the clang version on Nameless Rom.
View attachment 5881169
Click to expand...
Click to collapse
Only haptics are broken? I test for Nameless, I'll flash the kernel if haptics are the only issue.
I'm unable to join the telegram group for some reason
Has anyone else tried this kernel on the latest Nameless? I've seen here that haptics are broken but that doesn't bother me. Is anything else broken? Should I use GCC or Clang version?
itsnebulalol said:
doesn't bother
Click to expand...
Click to collapse
bear in mind, any vibration(notification vibration, haptic, alarm vibration) does not work
Ryano89 said:
Only haptics are broken? I test for Nameless, I'll flash the kernel if haptics are the only issue.
Click to expand...
Click to collapse
I couldn't find anything else
Mar-cel said:
I couldn't find anything else
Click to expand...
Click to collapse
Thanks. I flashed the gcc version on lemonade through EXKM and was stuck in fastboot on Nameless. Easily got booted with my backup. I'll try Clang version later

Categories

Resources