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

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!

Related

[Patch] Incremental patch for updating from 2.6.35.7 to .14

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

[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

Kali NetHunter for Galaxy A5 (SM-A500FU)

Kali NetHunter for Galaxy A5 (SM-A500XX)​What is Kali NetHunter?​If you don't know what NetHunter is read this: https://www.kali.org/kali-linux-nethunter/
Q: Why don't I flash the original nethunter version by keeping my current kernel?
A: To get Nethunter fully work you need a kernel that supports its features, such as put a wireless adapter in monitor mode or perform a HID Keyboard attack
Special Patches included in this kernel:
mac80211 injection patch, to put wireless adapters in monitor mode; note that built-in wireless chipset doesn't support monitor mode and you have to use external wireless adapter (see supported wireless cards here)
HID patch, to perform HID keyboard attacks
CD-ROM patch, to emulate CD-ROMs in DriveDroid
Warning!!!:
This version works only with A500XX variants, but it's tested ONLY on A500FU.
DO NOT FLASH IN ANY A510 VARIANT
Disclaimer:
Code:
I'm not responsable for bricked devices :( , dead phone chargers,
nuclear explosions or global warming.
Flash it at YOUR OWN RISK.
Required Downloads:
For CM
Download the CM13 ROM for Galaxy A5 ported by @TheWhisp here, or Resurrection Remix by mygalaxya here:
Optional: Download Google Apps from here: http://opengapps.org/
Download TWRP recovery for Galaxy A5 ported by me here, or CTR Recovery ported by me here
Download my Nethunter ROM here: https://www.androidfilehost.com/?w=files&flid=66902
NIGHTLIES: https://build.nethunter.com/nightly/ the kernel-nethunter-a5ulte-marshmallow-* ones
For TouchWiz
Download TWRP recovery for Galaxy A5 ported by me here, or CTR Recovery ported by me here
Kali Nethunter ported by me here: https://www.androidfilehost.com/?w=files&flid=94570
NIGHTLIES: https://build.nethunter.com/nightly/ the kernel-nethunter-a5ulte-touchwiz-marshmallow-* ones
How to Install (CM/RR):
Note: When you flash my zips, don't check "zip signature verification" box in TWRP recovery
1) Install TWRP with odin
2) Enter in TWRP recovery
3) Flash CM13 ROM, you can find instructions here: .
4) Optional: flash Google Apps
5) Flash NetHunter
7) Reboot
8) Open Nethunter app and go to menu<chroot manager<install chroot and download the full chroot, for devices which have more storage available, or minimal chroot, for devices which have less space available (if you've downloaded 700+MB version skip this step, chroot full is included )
9) Close NetHunter app and reopen it to complete the installation
10) Enjoy
How to Install (TouchWiz):
1) Flash TouchWiz (aka Stock ROM) with odin (you can find it on sammobile)
2) Flash TWRP or CTR with odin
3) Boot into TWRP/CTR and wipe cache and dalvik
4) Flash NetHunter
5) Reboot
6) Enjoy
Important: I called NetHunter "ROM", but it isn't a ROM, so, you don't have to wipe system partition.
Note: report only bugs related to NetHunter and not to CM13 or Resurrection Remix
Kernel Source Code:
Click here
Now you can build it by youself on official HetHunter source page HERE
For Any questions contact me at: [email protected]
NOTE: I'll release 3 kinds of updates
[KF]: I release them when there are updates regarding chroot full (they include full chroot, all nethunter apps, and my kernel)
[AU]: I release them when there are updates regarding all NetHunter apps (they include all updated NetHunter apps, and my kernel, but they don't include full chroot)
[KO]: I release them when there are only updates regarding the kernel (they include my kernel only, so NetHunter apps and chroot full are not included)
You can find all updates on main download page (here)
CHANGELOG:
Update v1.1 [KF] (01/07/2016):
NetHunter Update:
_Added chroot full to flashable zip.
_Added rolling version of kali to chroot
_Updated Apps
Kernel update: None
Update v1.2 [KO] (04/07/2016)
NetHunter Update: None
Kernel Update: Added Support for USB Bluetooth Dongles
Update v1.3 [KO] (15/07/2016)
NetHunter Update: none
Kernel Update:
_Add DVB Support
_Add some modules as built-in
_Some Minor improvements
XDA:DevDB Information
Kali NetHunter for Samsung Galaxy A5 (SM-A500XX), ROM for the Samsung Galaxy A Series
Contributors
DeadSquirrel01
Credits:
@TheWhisp for CM13 Kernel Sources @jcadduono, binkybear and offensive security for NetHunter source code
ROM OS Version: 6.0.x Marshmallow
ROM Kernel: Linux 3.10.x
ROM Firmware Required: CM13 unofficial by TheWhisp: http://forum.xda-developers.com/sam...m-cyanogenmod-13-0-samsung-galaxy-a5-t3249704, CM12 by @mygalaxya or resurrection remix by @mygalaxya for CM/RR version and TouchWiz (for TouchWiz version
Based On: CyanogenMod 13 kernel (for cm/rr version) and on TouchWiz kernel (for touchwiz version)
Version Information
Status: Stable for CM/RR and Beta for TouchWiz
Current Stable Version: 1.3 for CM/RR and 1.0 for TouchWiz
Created 2016-06-10
Last Updated 2016-07-15
Sounds cool,i test it directly and report later,thanx.
-CALIBAN666- said:
Sounds cool,i test it directly and report later,thanx.
Click to expand...
Click to collapse
Thanks man, I hope you enjoy NetHunter on your galaxy A5
@mygalaxya
Genetik57 said:
@mygalaxya
Click to expand...
Click to collapse
Why?
DeadSquirrel01 said:
Why?
Click to expand...
Click to collapse
Dude, on A500FU it's says device not supported? Why?
azZA_09 said:
Dude, on A500FU it's says device not supported? Why?
Click to expand...
Click to collapse
explain me better
DeadSquirrel01 said:
explain me better
Click to expand...
Click to collapse
So, I installed on my friend's A5 RR Rom, then I tried to flash your kernel. Suddenly, in the middle of the procces, i saw "error:device not recognised. Aborting...".
azZA_09 said:
So, I installed on my friend's A5 RR Rom, then I tried to flash your kernel. Suddenly, in the middle of the procces, i saw "error:device not recognised. Aborting...".
Click to expand...
Click to collapse
Man, IT'S FOR CM 13 ROM, not for resrrection remix, so, I've only a question:
have you read the instructions before isntalling it?
DeadSquirrel01 said:
Man, IT'S FOR CM 13 ROM, not for resrrection remix, so, I've only a question:
have you read the instructions before isntalling it?
Click to expand...
Click to collapse
Are you sure your device was the A500FU variant?
Lol, i read it,but on lg asop kernels work on any cm based rom and yes it was FU
DeadSquirrel01 said:
Man, IT'S FOR CM 13 ROM, not for resrrection remix, so, I've only a question:
have you read the instructions before isntalling it?
Click to expand...
Click to collapse
azZA_09 said:
Lol, i read it,but on lg asop kernels work on any cm based rom and yes it was FU
Click to expand...
Click to collapse
Nope cm and aosp are different. Try flashing the cm 13 rom
If you get the same error, post me the twrp log
Very nice, thanks dude. I'll report bugs if I found some. Until now everything works well.
As I proceeded: Flash TWRP > Backup > Factory Reset > Installed CM 13 > Flash NetHunter & kernel modules > Reboot > install chroot > Update on Terminal > Upgrade on terminal.
DaveSoEasy said:
Very nice, thanks dude. I'll report bugs if I found some. Until now everything works well.
As I proceeded: Flash TWRP > Backup > Factory Reset > Installed CM 13 > Flash NetHunter & kernel modules > Reboot > install chroot > Update on Terminal > Upgrade on terminal.
Click to expand...
Click to collapse
thanks man
As you can read,NO!
-CALIBAN666- said:
As you can read,NO!
Click to expand...
Click to collapse
And... as caliban said no, sorry
You're supposed to include any kernel modules in the NetHunter installer under the devicename/modules directory and it is installed by NetHunter installer.
When this was merged into the NetHunter master branch, I added the proper devicename conditions that were missing as well, which should solve your unrecognized device errors.
If you don't mind, please open another pull request adding the missing modules to the repo to prevent user confusion.
Thanks.
Update: I've stripped them myself and added them to the repository. You should strip (debug symbols only) from your modules before distributing them. (so they aren't 55 MB, but rather 4 MB)
You can do this by adding to your kernel build script:
Code:
find * -name "*.ko" -exec ${CROSS_COMPILE}strip -g "{}" \;
jcadduono said:
You're supposed to include any kernel modules in the NetHunter installer under the devicename/modules directory and it is installed by NetHunter installer.
When this was merged into the NetHunter master branch, I added the proper devicename conditions that were missing as well, which should solve your unrecognized device errors.
If you don't mind, please open another pull request adding the missing modules to the repo to prevent user confusion.
Thanks.
Update: I've stripped them myself and added them to the repository. You should strip (debug symbols only) from your modules before distributing them. (so they aren't 55 MB, but rather 4 MB)
You can do this by adding to your kernel build script:
Code:
find * -name "*.ko" -exec ${CROSS_COMPILE}strip -g "{}" \;
Click to expand...
Click to collapse
Hi, thanks for you reply, now I'll try to recompile kernel on NetHunter (i don't know if it will work), because it's night and i don't want to turn on my pc
jcadduono said:
You're supposed to include any kernel modules in the NetHunter installer under the devicename/modules directory and it is installed by NetHunter installer.
When this was merged into the NetHunter master branch, I added the proper devicename conditions that were missing as well, which should solve your unrecognized device errors.
If you don't mind, please open another pull request adding the missing modules to the repo to prevent user confusion.
Thanks.
Update: I've stripped them myself and added them to the repository. You should strip (debug symbols only) from your modules before distributing them. (so they aren't 55 MB, but rather 4 MB)
You can do this by adding to your kernel build script:
Code:
find * -name "*.ko" -exec ${CROSS_COMPILE}strip -g "{}" \;
Click to expand...
Click to collapse
Hi, I've updated kernel, to support usb bluetooth adapters, can u push it on nethunter source page? Here's the link https://www.androidfilehost.com/?fid=24591020540823473. There are also new kernel modules. You can find them here: https://github.com/DeadSquirrel01/nethuter_a5ulte_modules
DeadSquirrel01 said:
Hi, I've updated kernel, to support usb bluetooth adapters, can u push it on nethunter source page? Here's the link https://www.androidfilehost.com/?fid=24591020540823473. There are also new kernel modules. You can find them here: https://github.com/DeadSquirrel01/nethuter_a5ulte_modules
Click to expand...
Click to collapse
this is your job if you've decided to maintain a device as official.
you have the kali-nethunter github repository on your PC?
if not, use
Code:
git clone --depth 10 https://github.com/DeadSquirrel01/kali-nethunter.git
cd kali-nethunter
(depth 10 will take up significantly less hard drive space)
you then need to add the offensive security nethunter repository as a remote, to do this:
Code:
git remote add ofsc https://github.com/offensive-security/kali-nethunter.git -t master
you can then fetch updates from ofsc using the command:
Code:
git fetch ofsc
if you want to make your repository the same as ours (in the case that your commits are already merged and you don't need to save anything):
Code:
git reset --hard ofsc/master
-or-
if you have current commits you want to move from older history to on top of our latest history, you can rebase them using:
Code:
git rebase ofsc/master
(you may need to fix conflicts!)
once everything looks good, you can use:
Code:
git diff HEAD
this will show differences between the current files in the repository with your changes, and the latest commit of the repository.
follow that up with:
Code:
git commit
then once you've made a reasonable title/message, save it, and you can push to your repository and send another pull request!
Code:
git push origin master
don't forget to strip your kernel modules as I have stated in my last post!

[WIP] PostmarketOS for motorola moto g5s

/wiki/Motorola_Moto_G5s(motorola-montana)
The kernel used is from motorola's repository, since working usb networking is a must have, I'm not so sure if I can rely on lineageos kernel(I'm not sure if it is a matter of a kernel or of the vendor/device tree I decided to play it safe) , so I decided to start from scratch.
Right now on the roadmap:
1. Clean up the messy commits and start from a new branch.
2. Get merged into postmarketos official repository. (I can do so right now, but I rather go back and re-do the commits, remove the unnecessary changes).
3. Fix DPI settings, default ones are optimized for Desktop.
4. Find out the right pixelformat to use with osk-sdl those will translate into charging/battery-sdl and Filesystem Encryption.
5. Get wifi, gps ,accelerometer, bluetooth audio working. (Wifi and accelerometer doesn't work for 100%, )
test gps/get it working, get accelerometer working ,fix DPI.
6. Lastly mainlining kernel, which is required to get the WIP postmarketos modem driver and 3D Acceleration working.
Optional:
1. Porting MultiROM and patching a kernel to support kexec-hardboot patch on our device.
Once I will get my internet back I will work on @up things and provide:
1. Instructions on getting this linux distribution compiled.
2. Fastboot bootable kernel and sdcard image. I would prefer for you to boot a kernel and using sdcard over a flashable zip image for now, disappointment guaranteed.
WIFI networking most likely doesn't work since I haven't created device/firmware-montorola-montana package with wifi firmware.
If you want to contribute hit me up, I have a very slow connection and possibly have it for couple of days, so I might not be able to do any work for some time.
I don't have enough posts to make a DEVDB nor a development thread, so take it as [Q&A] thread that will hopefully get me to the minimal number of posts I require.
I also can't post outside links apparently the repositories I here present are relative to postmarketos wiki, github, gitlab or codeaurora git.
Repositories:
Kernel:
/kubast2/kernel-msm
Wlan kernel module and firmware:
/MotorolaMobilityLLC/vendor-qcom-opensource-wlan-prima
/quic/la/platform/vendor/qcom-opensource/wlan/prima/tree/
For configs I use a twrp image of stock oreo, I will need to use some config files from that backup image in place of the wlan driver provided configs.
Device and proprietary repositories by the montana development team will be useful for reference of existing blobs and configuration files, while other device ports from postmarketos repository will be useful for reference on when they need to be placed within the rootfs of postmarketos:
/montanadevelopment
/postmarketOS/pmaports
Stock kernel is 32-bit, which is why USB tethering works on LOS14.1, which is 32-bit. Take a look at their trees:
github.com/kayesk
USB tethering fixed in ARM64.
JarlPenguin said:
USB tethering fixed in ARM64.
Click to expand...
Click to collapse
Alright thanks, I don't have notifications for xda-developers, I will build on the basis of your kernel and push the change.
I see your kernel is already on a mainlining effort front.
kubast2-farelka said:
Alright thanks, I don't have notifications for xda-developers, I will build on the basis of your kernel and push the change.
I see your kernel is already on a mainlining effort front.
Click to expand...
Click to collapse
Actually it was fixed in init scripts. Are you still working on this project?

[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