Related
hy all
this is an project starter for android 3.4 kernel development for all msm7x30 mogami devices
sources are hosted on
https://github.com/freexperia/android_kernel_semc_msm7x30
br
J
Project Status
- we got initial branch after diffing lost of branches
M7630AABBQMLZA203029A
https://www.codeaurora.org/gitweb/q...it;h=4b2b84c6a0b6d29864e982a7aecc223acfd2eaa1
forked to our git and with mogami patches aplied
https://github.com/freexperia/android_kernel_semc_msm7x30/tree/M7630AABBQMLZA203029A
latest CAF tag for 7630 not usefull for now
https://www.codeaurora.org/xwiki/bin/QAEP/release
"November 16, 2012 M7630AABBQMLZA40701070 - msm7630 - M7630AABBQMLZA40701070.xml - 04.01.02" android 4.1
ETA
depending on problems and developers that will join
from 6 months to NEVER
This is a bold task. Perhaps you could look at the developments of irii-soft (and some others), they have replaced some crap Sony-specific code with generic wrappers. Main obstacle if I remember is memory maps now, there was an issue with partition maps but ATAG can be easily over-ridden via kernel command-line.
Getting it to boot should be trivial, sound and video will be difficult, and RIL may be never working due to lack of sources. Regardless, all the best. When I have more time I plan to help irii with his work on a "generic" 2.x kernel newer than what we have (because 3.x seems outrageous at this point).
Is there a wiki, a forum or something like that lists all the non-standard things that have already been found ? (some base of work to do)
Boudin said:
Is there a wiki, a forum or something like that lists all the non-standard things that have already been found ? (some base of work to do)
Click to expand...
Click to collapse
Easy to do yourself - download official SEMC kernel source and diff it with the same version of the linux baseline kernel. So to port to newer kernel you can isolate or "extract" the specific code that has been added and changed, and merge or "inject" that into a newer kernel. Easier said than done though, there are massive changes even in linux kernel revisions (0.0.x.0) - let alone alone new majors and minors (x.x.0.0).
There wouldn't be a wiki or anything of this research, because documenting it all would take an unrealistic amount of labor. Considering there are only a small handful of developers capable of it, there's no point. Besides, that's what GitHub and commit logs are for.
To FXP team,
I don't know if you know or not or even got this far in the development stage but I just wanted to point out a couple of things which may or may not help you...
So with the 3.4 kernel brings newer WiFi drivers which will give a better connection signal on wpa2 security but you might find that devices won't be able to connect to open security networks and WiFi hotspot will probably be broken. I'm posting this as on my gnex using custom kernel (FrancoFransico) he incorporated the 3.4 WiFi drivers a few times and broken hotspot and not being able to use open security WiFi networks were repeatedly reported problems.
I think it may be something hardware specific which allows these features to work on the 3.4 WiFi drivers specific to the nexus 4? You may have more luck trying the 3.0.xx WiFi drivers and getting those to work fully.
Best of luck to you guys!
Sent from my Galaxy Nexus
I'm pretty sure wifi is way down on the priority list, not to be rude but really - who cares about that now. Priority list would be like this:
(1) Get it to boot
(2) Fix primary/critical hardware-specific code for msm7k and qcom platform (display, audio)
(3) Fix RIL
(4) Fix secondary hardware (sensors, bluetooth, wifi)
One step at a time. Getting wifi will probably be trivial because bcm sources are part of the mainline kernel.
With that said, I'm unsubscribing from this thread now. There is massive work to be done and I can see this thread is just going to be filled with posts that have nothing to do with actual development.
All non-dev related posts, and especially "Thank You" posts, will be deleted without further notice. If I have to delete 5 pages of useless posts again, this thread will be locked.
Thank you!
We have tried for a long time already (as you may already know).
https://github.com/adridu59/semc-msm-3.4/commits/master
https://github.com/adridu59/semc-msm-2.6.35
https://github.com/adridu59/android-msm-2.6.35
https://github.com/ExPeacer/CAF_android-msm-3.0/commits/master
https://github.com/ExPeacer/CAF_android-msm-2.6.32
Have fun with it anyways.
adridu59 said:
We have tried for a long time already (as you may already know).
https://github.com/adridu59/semc-msm-3.4/commits/master
https://github.com/adridu59/semc-msm-2.6.35
https://github.com/adridu59/android-msm-2.6.35
https://github.com/ExPeacer/CAF_android-msm-3.0/commits/master
https://github.com/ExPeacer/CAF_android-msm-2.6.32
Have fun with it anyways.
Click to expand...
Click to collapse
Whats the progress so far on this? Bootable already?
CosmicDan said:
Easy to do yourself - download official SEMC kernel source and diff it with the same version of the linux baseline kernel. So to port to newer kernel you can isolate or "extract" the specific code that has been added and changed, and merge or "inject" that into a newer kernel. Easier said than done though, there are massive changes even in linux kernel revisions (0.0.x.0) - let alone alone new majors and minors (x.x.0.0).
There wouldn't be a wiki or anything of this research, because documenting it all would take an unrealistic amount of labor. Considering there are only a small handful of developers capable of it, there's no point. Besides, that's what GitHub and commit logs are for.
Click to expand...
Click to collapse
I was asked by some user of this forum to give some kernel porting guidelines in this thread, so let me introduce myself first. I'm the developer of 3.0.x kernel for Samsung Galaxy Spica (also several other projects for Spica and Galaxy Apollo/Galaxy 3) and currently also Linux kernel developer at Samsung Poland R&D Center. Porting the kernel for Spica was a difficult task, because of poor quality of original kernel code, which required rewriting from scratch most of it, but it was very educational.
It's not easy to give advice, but I'd say that taking all the differences from clean kernel and applying all of that on top of newer version is what should be avoided. Of course those differences should be collected to see what was changed by the manufacturer, but this should be only used for further analysis, not as a ready code.
Another thing, rather than using the mainline Linux kernel to compare your phone sources with, it should be better to use Android kernel from Google's kernel/common tree (see https://www.codeaurora.org/gitweb/quic/la/?p=kernel/common.git;a=summary for older version archive) bumped to the same minor version using minor patches (found on kernel.org) or, possibly even better way, by pulling appropriate version tag from kernel.org git on top of proper branch of Android kernel tree. This will elminate Google's changes (that would be already available in your new base - android-3.4 branch of kernel/common) from the diff.
For getting the diff, I would personally also use Git. If you create a branch in your working tree which contains Android kernel in the version corresponding to your device kernel (using the way I described in previous paragraph), then copying your device kernel sources onto your working tree (remember to make distclean both trees to remove any compiled/generated files) will allow you to see the differences using git status and git diff. (See http://gitimmersion.com/ if you want to learn more about Git.)
Now it's important to split the changes into logically separate parts, for example core changes in arch/arm/mach-whatever_suitable_for_your_device, adding of particular drivers in drivers/, sound/ and include/, modifications to core kernel code in any other directories. It's essential to check whether all the changes are really required or not and why, because minimalizing the set of changes required to be replayed on top of your new base kernel sources will simplify your work.
After collecting all the changes, it's the time to apply them on top of your new kernel sources. All the changes should be applied one by one, checking how much the component that is being touched has changed since your old kernel and adjusting the changes properly. After applying each change, it should be verified that the kernel at least compiles, although it would be even better if you could get the kernel without any (or almost any) modification to boot to some state, e.g. showing something on the console (any chance to get access to serial console on your device?), and then check if it still boots after applying each next change.
Some links that might be useful:
- Linux cross reference, for comfortable reading of kernel code - http://lxr.linux.no/+trees
- Linux Device Drivers, a book about kernel programming - http://lwn.net/Kernel/LDD3/
- Git Immersion, a great Git tutorial - http://gitimmersion.com/
- Android kernel/common repository with full archive - https://www.codeaurora.org/gitweb/quic/la/?p=kernel/common.git;a=summary
- Linux stable repository, with all version tags - http://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
Hopefully what I wrote will be helpful in your project. Good luck and best regards.
Hey tom3q,
thanks a lot for leaving some useful statements here!
tom3q said:
Another thing, rather than using the mainline Linux kernel to compare your phone sources with, it should be better to use Android kernel from Google's kernel/common tree (see https://www.codeaurora.org/gitweb/quic/la/?p=kernel/common.git;a=summary for older version archive) bumped to the same minor version using minor patches (found on kernel.org) or, possibly even better way, by pulling appropriate version tag from kernel.org git on top of proper branch of Android kernel tree.
Click to expand...
Click to collapse
I digged for some base kernel for a while.
Found a chromium msm kernel 2.6.32.9 at codeaurora (i know this is not Android).
Anyway, the diff against stock was ~30MB... quite too much.
Like i assumed many basic things are missing as well, so too much to start from.
I guess, i'll step through the other projects... might try 2.6.32-rc8 from the msm tree... just for fun of course :angel:
tom3q said:
After applying each change, it should be verified that the kernel at least compiles, although it would be even better if you could get the kernel without any (or almost any) modification to boot to some state, e.g. showing something on the console (any chance to get access to serial console on your device?), and then check if it still boots after applying each next change.
Click to expand...
Click to collapse
Nice point... i like these hardware hacks and asked about testpoints for UART3 on the Pro mainboard a few days ago.
It's mentioned and so far i got it, initialized in stock kernel as well. Unfortunately no-one seems to know anything about these testpoints.
Anyway i don't want to spam this thread, so thanks for your attention
Regards,
scholbert
hy
scuse my ignorance
but
HOW do you compile an kernel ?
and maybe someone can explain what is the difference between bring-up and port
scholbert said:
Hey tom3q,
thanks a lot for leaving some useful statements here!
I digged for some base kernel for a while.
Found a chromium msm kernel 2.6.32.9 at codeaurora (i know this is not Android).
Anyway, the diff against stock was ~30MB... quite too much.
Like i assumed many basic things are missing as well, so too much to start from.
I guess, i'll step through the other projects... might try 2.6.32-rc8 from the msm tree... just for fun of course :angel:
Nice point... i like these hardware hacks and asked about testpoints for UART3 on the Pro mainboard a few days ago.
It's mentioned and so far i got it, initialized in stock kernel as well. Unfortunately no-one seems to know anything about these testpoints.
Anyway i don't want to spam this thread, so thanks for your attention
Regards,
scholbert
Click to expand...
Click to collapse
FXP said:
hy
scuse my ignorance
but
HOW do you compile an kernel ?
and maybe someone can explain what is the difference between bring-up and port
Click to expand...
Click to collapse
I would say that porting is moving and correcting sources from 2.6.32 kernel in our case into 3.x. And bring up is writing particular drivers from scratch?
Sent from my Nexus 7
voyteckst said:
I would say that porting is moving and correcting sources from 2.6.32 kernel in our case into 3.x. And bring up is writing particular drivers from scratch?
Sent from my Nexus 7
Click to expand...
Click to collapse
ok
nice explanation
look on first page
diff is 5mb on proper tag
pushed on github
nice to see so many developers trying to help
FXP said:
diff is 5mb on proper tag
pushed on github
Click to expand...
Click to collapse
Sorry to throw my 3 cents again, but seeing the repository on github, I'd recommend you to use some time to go through Git Immersion. Even if it takes some time, it will simplify your further work, as Git used properly can really make many things easier.
Otherwise, the diff itself looks mostly fine as a starting point, although some of the differences can be probably eliminated.
tom3q said:
Sorry to throw my 3 cents again, but seeing the repository on github, I'd recommend you to use some time to go through Git Immersion. Even if it takes some time, it will simplify your further work, as Git used properly can really make many things easier.
Otherwise, the diff itself looks mostly fine as a starting point, although some of the differences can be probably eliminated.
Click to expand...
Click to collapse
sony added too many changes to be usefull
since there are several api changes on 32->3.x diff is no good
we have to start from clean board-7x30 and populate devices porting drivers 1 by 1
we have to try an device bringup based on sony changes
General informations:
This thread's aim is only to represent a central meeting and discussion point for BCM21553 developers and, in particular, for the open Kernel/ROM sources development for the Samsung Galaxy Pocket GT-S5300 (codenamed Cori).
Information for common users:
As already described in the previous section, if you are not a developer, please restrict your posts to the general discussion thread so that developers can maintain good communication. Every post that is not strictly respecting these rules will be reported to the forum moderators. Thanks for your understanding.
For any other BCM21553 device related question or information, please, use this thread as a reference point, instead:
[DEVS ONLY][BCM21553 series] CyanogenMod 11 for BCM21553 Development Discussion
As someone already might know, I'm streambinder, from MoltenMotherBoard team.
I have already followed some projects for the GT-S5300, but especially kept in contact
with some of the events related to the porting of ROM and Kernel sources for BCM21553 chipset based devices.
In this precise moment, the sources in my possession allow you to be able to compile
a bugfree CWM 5.0.2.8 (based on CyanogenMod 7 code) with a kernel based on the Samsung stock one.
The only - fundamental - problem was due to the fact that unless I hadn't used the prebuilt INIT binary
token in the Samsung stock firmware boot.img, the phone would not work - or, better, boot up.
This means that until the situation - regarding this issue - doesn't change, our access to the porting of custom ROM
would be barred.
Recently, I decided to give Cori another chance and rework my sources, looking at the wonderful work brought
by the BroadcomCM team on CyanogenMod 9 (in particular, thanks to @bieltv.3 and @Alberto96) and @psyke83 on CyanogenMod 11.
They've not only been able to run these two ROMs in a more or less crude way, but this developer has been able to write
the necessary strings to make the INIT binary of some of these BCM21553 devices opensource.
Strong of this informations, I readjusted some of the sources of BroadcomCM's CyangenMod 9, which includes
all the progress carried out by both the team and psyke83, in order to make them work even on Cori,
and am now next to the first test of the CWM 6.X.X.X, based on IceCreamSandwich code.
At the same time, @akhbh is working on the KitKat code based CWM.
I hope I can give more information about any progress as soon as possible.
The General Discussion thread for non-development issues is here:
*.[DISCUSSION] CyanogenMod 11 For Galaxy Pocket GT-S5300 Discussion Thread
Made a first test of CWM based on CyanogenMod 9 code.
It seems it cannot flash it as it weighs so much compared to its partition configuration value: in fact, the maximum boot partition size is set up to 5.0MB, but the compiled boot.img weighs 5.3MB.
Will have to resize its weight in order to make it fill into the partition.
@akhbh, have you had any complication in these terms, with CyanogenMod 11 sources?
@psyke83, what do you suggest to do? Do you think an increasement of boot partition would be a better idea?
streambinder said:
Made a first test of CWM based on CyanogenMod 9 code.
It seems it cannot flash it as it weighs so much compared to its partition configuration value: in fact, the maximum boot partition size is set up to 5.0MB, but the compiled boot.img weighs 5.3MB.
Will have to resize its weight in order to make it fill into the partition.
@akhbh, have you had any complication in these terms, with CyanogenMod 11 sources?
@psyke83, what do you suggest to do? Do you think an increasement of boot partition would be a better idea?
Click to expand...
Click to collapse
No, I didn't faced those complications. My boot.img weighted around 4.5 MB in lzma compression mode. In gzip, it increased to more than 5 mb.
akhbh said:
No, I didn't faced those complications. My boot.img weighted around 4.5 MB in lzma compression mode. In gzip, it increased to more than 5 mb.
Click to expand...
Click to collapse
Perfect.
Which kernel have you based your build on?
streambinder said:
Perfect.
Which kernel have you based your build on?
Click to expand...
Click to collapse
Well, I took the GeTux kernel for cori, had to change the board name though and then compile it. CWM was booting even before changing the board name but there was no reaction from the phone on trying to boot cm9/cm11
And after changing board name, a black screen on trying to boot
Another info: When tried to merge cori source into the bcm21553 common one, it did compile but gave bootloop of GT-S5300 logo on trying to boot as well as when trying to go in CWM.
Bieltv.3 recommended to use cori source instead of the bcm21553 common one so we used cori sources
akhbh said:
Well, I took the GeTux kernel for cori, had to change the board name though and then compile it. CWM was booting even before changing the board name but there was no reaction from the phone on trying to boot cm9/cm11
And after changing board name, a black screen on trying to boot
Another info: When tried to merge cori source into the bcm21553 common one, it did compile but gave bootloop of GT-S5300 logo on trying to boot as well as when trying to go in CWM.
Bieltv.3 recommended to use cori source instead of the bcm21553 common one so we used cori sources
Click to expand...
Click to collapse
I suggest to use our Kernel sources for now, too: it will automatically bypass few errors/issues/bootloops that we cannot now fight with.
The most important thing is to make INIT working from sources (hope it will be working
on my CM9 sources, too) and check that every our configuration is correctly working and
making Cori boot into recovery.
Once we'll make it perfectly working without any kind of issue, will be the right time to try
to make Cori supported with the BC21553-common kernel.
streambinder said:
I suggest to use our Kernel sources for now, too: it will automatically bypass few errors/issues/bootloops that we cannot now fight with.
The most important thing is to make INIT working from sources (hope it will be working
on my CM9 sources, too) and check that every our configuration is correctly working and
making Cori boot into recovery.
Once we'll make it perfectly working without any kind of issue, will be the right time to try
to make Cori supported with the BC21553-common kernel.
Click to expand...
Click to collapse
Okay, I will use your kernel sources and try if something is changed once I reach home. For now, I neither have this device nor a PC, as I'm in another city.
Will be keenly watching your work. Will start after reaching home around the end of September
akhbh said:
Okay, I will use your kernel sources and try if something is changed once I reach home. For now, I neither have this device nor a PC, as I'm in another city.
Will be keenly watching your work. Will start after reaching home around the end of September
Click to expand...
Click to collapse
No problem, mate.
Here you have every source in my possession:
platform_kernel_samsung_cori
platform_device_samsung_cori
Keep in contact with me, as I will need some informations by you.
Anyway I'm now making another build, keeping some not so much important binaries excluded, so that I can make the compiled boot.img fill into our little Cori's boot partition. I know it's a dirty workaround, but if it works, I'll use it untill @psyke83 will suggest me a better way to do.
streambinder said:
No problem, mate.
Here you have every source in my possession:
platform_kernel_samsung_cori | github.com
platform_device_samsung_cori
Keep in contact with me, as I will need some informations by you.
Anyway I'm now making another build, keeping some not so much important binaries excluded, so that I can make the compiled boot.img fill into our little Cori's boot partition. I know it's a dirty workaround, but if it works, I'll use it untill @psyke83 will suggest me a better way to do.
Click to expand...
Click to collapse
have u tried to build cwm v6 from cm9 source ??
cleverior.ipul said:
have u tried to build cwm v6 from cm9 source ??
Click to expand...
Click to collapse
Of course, mate. I'm working on it, right now.
It doesn't seem to boot, strange if the same INIT binary sources are working for @akhbh.
#UPDATE
In order to troubleshoot, I'll give you some info.
For his build I used these sources:
platform_kernel_samsung_cori
platform_device_samsung_cori
android_device_samsung_bcm21553-common
Applied some lines on our bcm21553-bootimg.mk, too, in order to exclude parted and mke2fs and make the compiled boot.img weigh less.
@cleverior.ipul, can you link me your kernel sources, as akhbh said he used your ones for CM11.
@akhbh, which modifies have you applied in order to compile CWM based on CM11 code? Which device tree?
#UPDATE 2
Attached my compiled boot.img.
If anyone of you would extract it (you can easily use this tool: bootimgtools - read how to use it in the README) and make a diff with the CM11 one (just extract the ramdisk of both boot.imgs and - in the terminal - use this command: diff -urN /path/to/cm9/ramdisk /path/to/cm11/ramdisk > diff.patch), would make to me a huge favour.
Let me know.
streambinder said:
Of course, mate. I'm working on it, right now.
It doesn't seem to boot, strange if the same INIT binary sources are working for @akhbh.
#UPDATE
In order to troubleshoot, I'll give you some info.
For his build I used these sources:
platform_kernel_samsung_cori
platform_device_samsung_cori
android_device_samsung_bcm21553-common
Applied some lines on our bcm21553-bootimg.mk, too, in order to exclude parted and mke2fs and make the compiled boot.img weigh less.
@cleverior.ipul, can you link me your kernel sources, as akhbh said he used your ones for CM11.
@akhbh, which modifies have you applied in order to compile CWM based on CM11 code? Which device tree?
#UPDATE 2
Attached my compiled boot.img.
If anyone of you would extract it (you can easily use this tool: bootimgtools - read how to use it in the README) and make a diff with the CM11 one (just extract the ramdisk of both boot.imgs and - in the terminal - use this command: diff -urN /path/to/cm9/ramdisk /path/to/cm11/ramdisk > diff.patch), would make to me a huge favour.
Let me know.
Click to expand...
Click to collapse
I think we didn't had significant changes. Perhaps the same as totoro. But, that resulted in the internal_sd not mounting error in cwm.
Sadly, as said before, I am away from my home city and can't provide the files to you and can't do the boot.img diffs as well
Try to ask psyke83, he might have a solution for that
akhbh said:
I think we didn't had significant changes. Perhaps the same as totoro. But, that resulted in the internal_sd not mounting error in cwm.
Sadly, as said before, I am away from my home city and can't provide the files to you and can't do the boot.img diffs as well
Try to ask psyke83, he might have a solution for that
Click to expand...
Click to collapse
Then, if you didn't make any massive change upon the sources, then I'll only try using your kernel.
Can you give me your kernel sources, mate, please?
streambinder said:
Then, if you didn't make any massive change upon the sources, then I'll only try using your kernel.
Can you give me your kernel sources, mate, please?
Click to expand...
Click to collapse
Currently, I can provide you the boot.img only. For the sources, @cleverior.ipul can provide the kernel sources coz as said earlier, his kernel is used. Well, we were working together to bring cm11 but weren't successful
akhbh said:
Currently, I can provide you the boot.img only. For the sources, @cleverior.ipul can provide the kernel sources.
Click to expand...
Click to collapse
Ok, please send it to me, will compare it with my package.
streambinder said:
Ok, please send it to me, will compare it with my package.
Click to expand...
Click to collapse
Here it is:
http://www.4shared.com/zip/1nKFbOJ2ba/ccccGetux_CM11.html
streambinder said:
Of course, mate. I'm working on it, right now.
It doesn't seem to boot, strange if the same INIT binary sources are working for @akhbh.
#UPDATE
In order to troubleshoot, I'll give you some info.
For his build I used these sources:
platform_kernel_samsung_cori
platform_device_samsung_cori
android_device_samsung_bcm21553-common
Applied some lines on our bcm21553-bootimg.mk, too, in order to exclude parted and mke2fs and make the compiled boot.img weigh less.
@cleverior.ipul, can you link me your kernel sources, as akhbh said he used your ones for CM11.
@akhbh, which modifies have you applied in order to compile CWM based on CM11 code? Which device tree?
#UPDATE 2
Attached my compiled boot.img.
If anyone of you would extract it (you can easily use this tool: bootimgtools - read how to use it in the README) and make a diff with the CM11 one (just extract the ramdisk of both boot.imgs and - in the terminal - use this command: diff -urN /path/to/cm9/ramdisk /path/to/cm11/ramdisk > diff.patch), would make to me a huge favour.
Let me know.
Click to expand...
Click to collapse
here the link source https://github.com/cleverior/android_kernel_samsung_cori
i've changed the board name. If your device can not boot after using the zImage from this source, then rename init.bcm21553.rc to init.gt-s5300.rc.
@streambinder, what is grom? As bieltv.3 said that init built grom for cori is required to fix adb over cwm recovery. If adb gets working, then possibly the black screen while booting cm11 might get fixed
akhbh said:
@streambinder, what is grom? As bieltv.3 said that init built grom for cori is required to fix adb over cwm recovery. If adb gets working, then possibly the black screen while booting cm11 might get fixed
Click to expand...
Click to collapse
Sincerely don't what are you talking about.
Anyway, have to try to understand where's the problem with the not-booting CWM.
Will try with your sources and let you know.
This has reached a point that those who don't depend BT calling may be able to use it as a daily driver. Just be sure to backup first!
The flashing on first boot during setup may cause issues for those with epilepsy. This is due to how to disable the second screen.
Working:
Camera! https://www.celsoazevedo.com/files/android/google-camera/f/GCam5.1.018-Arnova8G2-V1.7Beta2.apk is recommended with Nexus 6 HDR config in advanced settings.
Bluetooth (skips with wifi, and doesn't work in call)
NFC
Wifi -- two users have reported issues on their devices, while it works for others.
GPS
Sensors
Sound
Calls
Fingerprint
Data
WiFi tethering
Second screen disable hack
Not working and issues:
Screen glitches on first boot. Reboot and will be good after (part of hack to disable 2nd screen)
Tap to wake
Flashlight tile: install flashlight tile for kenzo in play store with root to workaround.
Slight animation glitch when switching activities due to second screen hack.
BT issues above, and doesn't work in call.
If you use camera immediately after turning on, it may not work. You must wait about a minute after powering for it to work (it will always work after).
Probably more.
TODO
BT fixes
Tap to wake
flashlight tile
get a proper 2nd screen fix like v20 working without additional issues. v20 dtsi hack doesn't work for us due to dual panel depending on partial update (most likely).
Repos (kernel is lineage-15.1 branch):
Kernel
v10-common
h901
blobs
Changes from AOSCP
Using Ruthless launcher instead of Luna
Two reverts to support substratum themes in addition to CypherOS' color manager.
Use opengapps for gapps, magisk for superuser (may have issues with modules).
Download
Buy me a beer with Bitcoin: 1h9o1Ei9thLd8JKRz3z7PUGhX6dtfnktY
Bugs with workarounds:
Wifi doesn't connect and MAC address is all zeroes (only some users):
This is a misc partition that has MAC address hardcoded to a randomly generated address. This should work permanently on any device with the issue so long as two aren't on the same network. If anyone would like instructions on how to modify with a new MAC address, let me know.
Image https://www.androidfilehost.com/?fid=818222786056033811
Instructions:
Place on /sdcard
Reboot to recovery (for advanced reboot in CypherOS hold reboot button for full menu)
From twrp terminal or adb shell, run: dd if=/sdcard/misc.img of=/dev/block/bootdevice/by-name/misc
Reboot and enjoy fixed wifi
No charging indicator (but still charges):
Boot device plugged into power or USB and the indicator will work the entire power cycle. Working on a fix but not as trivial as I'd hoped.
Bootloop bug:
I recently got hit by the infinite bootloop bug, with the only workaround of disabling the big cluster. Here's a modified TWRP that only uses the little cluster (used Eliminator74's image):
https://www.androidfilehost.com/?fid=818222786056035329
And here's a little cluster only boot image from the titan kernel (our CAF kernel has msm_thermal issues with booting with disabled big cores, needs modifications):
https://www.androidfilehost.com/?fid=674106145207491774
nvm, fixed in current build
Just uploaded a new build. Changes:
Tweaked touch offset
Synced CypherOS to 6.0.0 (fixes navbar on first boot and some others)
Fixed init script to set display res (part of the second screen disable hack)
Updated Ruthless Launcher
two questions: the kernel you mention in repo is the original one or is a Lineage Kernel for LG V10? it for all variants of V10?
thanks
sun_is_shinning said:
two questions: the kernel you mention in repo is the original one or is a Lineage Kernel for LG V10? it for all variants of V10?
thanks
Click to expand...
Click to collapse
That lineage-15.1 branch that is being used is based on the lineage 14.1 g4 kernel. I added a h901 defconfig, three commits needed for v10 (incl 2nd screen hack), fast charging, all commits needed for Oreo (since g4 isn't supported on los 15.1), then merged in CAF.
Regarding the other variants (which are now all unlockable thanks to g4 guys), I added a commit by ehem which added the panel dtsi for other variants, but as of yet only h901 builds have been tested on the kernel. Other variants should work with the correct defconfigs and device repos adapted from their g4 counterparts.
Hope I answered fully.
johngalt1 said:
That lineage-15.1 branch that is being used is based on the lineage 14.1 g4 kernel. I added a h901 defconfig, three commits needed for v10 (incl 2nd screen hack), fast charging, all commits needed for Oreo (since g4 isn't supported on los 15.1), then merged in CAF.
Regarding the other variants (which are now all unlockable thanks to g4 guys), I added a commit by ehem which added the panel dtsi for other variants, but as of yet only h901 builds have been tested on the kernel. Other variants should work with the correct defconfigs and device repos adapted from their g4 counterparts.
Hope I answered fully.
Click to expand...
Click to collapse
Will you add the other version? For H960, H960TR vs.
Kasimpasali1921 said:
Will you add the other version? For H960, H960TR vs.
Click to expand...
Click to collapse
It's planned.
Hey, I just have a question, I'm sorry probably borrowing your thread to ask, but how'd you get the ROM to build using 15.1/14.1? I've been working on a port horrible the h901, but for the life of me I can't get the ROM to build.
Also, when I get a chance I'll check out your ROM, haven't gotten to play with oreo much as of yet.
TheEnekaign said:
Hey, I just have a question, I'm sorry probably borrowing your thread to ask, but how'd you get the ROM to build using 15.1/14.1? I've been working on a port horrible the h901, but for the life of me I can't get the ROM to build.
Also, when I get a chance I'll check out your ROM, haven't gotten to play with oreo much as of yet.
Click to expand...
Click to collapse
Ask any question you want here! I'm not sure specifically what issue you ran into while attempting to build, but the repo links in OP are fully up to date (incl the lineage-15.1 branches).
Unfortunately los 15.1 has the graphical glitches (due to 2nd screen hack) after the second boot as well, so I'll be sticking with cypheros for testing for now.
I'll make a project manifest shortly to further simplify building.
johngalt1 said:
Ask any question you want here! I'm not sure specifically what issue you ran into while attempting to build, but the repo links in OP are fully up to date (incl the lineage-15.1 branches).
Unfortunately los 15.1 has the graphical glitches (due to 2nd screen hack) after the second boot as well, so I'll be sticking with cypheros for testing for now.
I'll make a project manifest shortly to further simplify building.
Click to expand...
Click to collapse
Sweet, I'll have to have a look at those repos. Only ones I could find before were cm 13.1. I was working on a RR 14.1 port, since that's one of my fav roms, but basically the error I got was a brunch error as it couldn't find the needed files (maybe the manifest? It's been about a week since I poked it). It kept looking at the lineage servers and couldn't find the right cm versions. It also couldn't find other things as well, but I'll have to poke it again to remember what exactly.
Thank you though!
(I also just realized that my auto correct called the h901 horrible. It's def not horrible. xD)
TheEnekaign said:
Sweet, I'll have to have a look at those repos. Only ones I could find before were cm 13.1. I was working on a RR 14.1 port, since that's one of my fav roms, but basically the error I got was a brunch error as it couldn't find the needed files (maybe the manifest? It's been about a week since I poked it). It kept looking at the lineage servers and couldn't find the right cm versions. It also couldn't find other things as well, but I'll have to poke it again to remember what exactly.
Thank you though!
(I also just realized that my auto correct called the h901 horrible. It's def not horrible. xD)
Click to expand...
Click to collapse
For building without the manifest, clone the device and vendor repos to their correct folders, check aoscp.dependencies to clone additional repos to their correct folders, then just run . build/envsetup.sh ; breakfast aoscp_h901-userdebug, and then you can make bacon ?
I based the device repos off the g4 repos for aoscp, which are just los 14.1 with Oreo and now v10 changes. The kernel is based on the los 14.1 lge msm8992 kernel with changes necessary for Oreo, CAF merged in, fast charging support, the second screen disable hack, a commit for building properly with a lge display flag, the dtsi for other v10 variants (thanks to ehem), and a defconfig for h901.
Edit: keep in mind RR may have the same display corruption issue with our second screen hack that LOS has for us.
New build uploaded. Changes:
- Fixed touchscreen alignment. Bottom of navbar now works.
- Synced with upstream CypherOS
- Testing navbar theme settings from gerrit.
New build uploaded. Changes:
- Possibly fixed occasional no sim on boot (ty kessaras/steadfasterx)
- Synced with CypherOS
- A few upstream ALSA kernel changes
- Ruthless launcher updated
- Two upstream reverts to fix substratum themes.
There's now also a local_manifest for users who would like to build themselves https://github.com/amillogical/local_manifest
Is this compatible to my lg v10 h962 (from taiwan)?
ViciousDiplomat said:
Is this compatible to my lg v10 h962 (from taiwan)?
Click to expand...
Click to collapse
No, but it can be. Is your device bootloader unlocked? If so, I'll do a build from h815 (g4 equiv) you can test. If not, I can help bootloader unlock it with USU.
I'm not sure how many know, but all v10 variants are now bootloader unlockable with USU. I just haven't had a chance to build for them or post details.
well, will this Kernel of this ROM compatible with H960A variant? and what really changes in this Kernel?
Thank u.
sun_is_shinning said:
well, will this Kernel of this ROM compatible with H960A variant? and what really changes in this Kernel?
Thank u.
Click to expand...
Click to collapse
Yes, it only needs a config for h960 at this point. Ehem imported the panels for all the other variants so we can use a unified kernel between all g4 and v10 variants.
Will done sir i'll buy you a bear on your bitcoin wallet for sure.. Gr8 job
An old user for v10 (p20 pro now) but still love this beast
New build uploaded. This won't fix wifi issues for those that have them. This build needs a dalvik-cache wipe after dirty flash due to memory override changes (last bullet). I've also started using AndroidFileHost for uploads.
Changes:
- Synced with upstream CypherOS (bumped to april security bulletin and a few new features).
- NFC should be fixed. This needs more testing, as I don't have anything to test the functionality but it turns on/off.
- Corrected STM laser permissions (autofocus seems to be like in stock rom now).
- Changed link to modified google camera in OP since the previous version didn't have functional HDR+.
- Dalvik heap and hwui memory overrides updated for our device's 4G ram and high res display.
And thank you @sherif2222222
Code:
#include <std_disclaimer.h>
/*
*
* We are not responsible for bricked devices, dead SD cards,
* thermonuclear war, or you getting fired because the alarm app failed. Please
* do some research if you have any concerns about features included in this kernel
* before flashing it! YOU are choosing to make these modifications, and if
* you point the finger at us for messing up your device, we will laugh at you.
*
*/
Warnings: this kernel has been tested on the TB-X605F (SDA450) only. It will not work for the:
TB-X605F (M10) released with the SDA429 chipset
TB-X605L (M10 LTE). This kernel is currently for the wifi variant only.
TB-X505F/L (M10 HD) or any of the other M10 variants that use the SDA429 chipset.
TB-X605FC (M10 FHD). See the opensource released by Lenovo. Note that the X605FC kernel is 4.9.112.
Introduction
On 4 June 2020, Lenovo released the kernel source for the TB-X605F/L.
Prior to that, this kernel was developed by porting the kernel source for the the P10 (TB-X705F) released by Lenovo in January 2019.
Current version is: 3.18.120 merged with CAFCAF LA.UM.5.5.r1-05300-8x96.0.
The update zip will load some modules. So backup the "System Image", "Vendor Image" and boot partitions with TWRP before loading this kernel.
For kernel developers
Lenovo have released the opensource for the TB-X705F (Smart Tab 10 wifi) dated 31 January 2019 at s000018_20180913_row. This kernel is based on that kernel source (3.18.71). The default config (YM_X605F_defconfig) is almost identical to the kernel config of the M10. Some of the main differences with the P10 source are:
removed the MM8013 chipset config. The P10 uses the MM8013 for battery stats etc. There is no MM8013 on the M10.
upgraded drivers for the primary autofocus camera.
set CONFIG_MODULE_SIG_FORCE to "n" - so kernel will load stock modules from any version. Thanks to @yener90 for the suggestion.
While Lenovo releases the (compiled) stock M10 kernel at 3.18.120, the P10 kernel opensource is 3.18.71. Great job Lenovo!
The source will build signed system modules, if you want them. If you want the wifi driver it's pronto_wlan.ko, compile with CONFIG_PRONTO_WLAN=m.
Features
This kernel compiles and runs. It seems to be stable.
Working:
- wifi
- bluetooth
- power charging (USB and dock)
- camera
- FM radio
- touchscreen (including DT2W)
- audio
- OTG
Known bugs
you tell me
Installation
I assume you have unlocked bootloader, TWRP and Magisk. If not, follow these instructions.
The update zip is packaged using AnyKernel3 by @osm0sis .
if you are still on stock ROM & kernel, backup "System Image", "Vendor Image" and boot partitions in TWRP. You only have to do this once, not everytime you load a new version of this kernel.
download update_X605F_kernel.zip and copy it to your sdcard/OTG
boot to TWRP and use "update" to update the zip file
check that the update was successful, then reboot
confirm the kernel is loaded. It should start with "3.18.120-X605F-YM":
Code:
X605F:/ $ uname -r
3.18.120-X605F-YM-xxx
To return to stock kernel, just restore the stock boot, system and vendor backups you made in TWRP. If that doesn't work, then you'll have to reload system ROM using LMSA.
Changelog
Code:
11/03/2020 - 3.18.120-X605F-YM-g02f9b3e-00023-gcef72f9
- fixed camera - it's now recognised and autofocus works
- cleared out some dead code that's not needed for M10 (hangover from P10 source)
05/03/2020 - 3.18.120-X605F-YM-g02f9b3e-00018-g818259c3
- rebased kernel to 3.18.120
- merge CAF LA.UM.5.5.r1-05300-8x96.0
- added DT2W
- fixed "adb reboot". The rebase fixed it.
- added a defconfig for LineageOS
- included signed modules in zip file (including wlan)
20/01/2020 - 3.18.71-X605F-kernel-g0a9bdb1
- disabled signed module enforcement
- removed system and vendor modules from update zip
17/01/2020 - initial commit
Download
current release: update_X605F_kernel.zip
XDA:DevDB Information
M10 kernel, Kernel for the Lenovo Thinkpad Tablet
Contributors
Yahoo Mike
Source Code: https://github.com/Yahoo-Mike/android_kernel_lenovo_X605F
branch: msm-3.18.120 is source for this release (default branch)
branch: official-3.18.120 is official source released by Lenovo on 4 June 2020.
branch: msm-3.18.71 is the initial port from P10 kernel source
Kernel Special Features:
Version Information
Status: Testing
Created 2020-01-16
Last Updated 2020-06-05
Yahoo Mike said:
Lenovo releases the stock M10 kernel at 3.18.120. However, the P10 kernel source is 3.18.71. This means that system modules and the wifi driver need to be re-compiled, signed and distributed with this kernel. This means that the /system and /vendor partitions need to be touched, not just the boot image.
Click to expand...
Click to collapse
Just disable the modules, the kernel wont build it anymore. It's also not urgently required.
yener90 said:
Just disable the modules, the kernel wont build it anymore. It's also not urgently required.
Click to expand...
Click to collapse
Thanks for the neat suggestion.
I disabled signed module enforcement (CONFIG_MODULE_SIG_FORCE) so we can use stock modules. That means no need to update system or vendor partitions.
I left in *_SIG_ALL in the defconfig, so you can compile and sign modules if you really want to. But I haven't included any modules in the new update zip. If you've used the old version of the update zip, then restore stock boot, system and vendor images before using this new update zip.
I've released a new version. Main changes are:
rebased kernel to 3.18.120
merge CAF LA.UM.5.5.r1-05300-8x96.0
added DT2W
fixed "adb reboot". The rebase fixed it.
added a defconfig for LineageOS
included signed modules in zip file (including wlan)
I've updated the OP.
I've added a new (default) branch called msm-3.18.120 in the github repo: Yahoo-Mike/android_kernel_lenovo_x605f.
The camera auto-focus is still not working. I haven't looked at it. Lenovo have not released the source code. It looks like the P10 uses different cameras. The main camera is a hynix hi556 variant called: hi556_m10. I'll have a look at this soon. One of the ASUS Zenfone Max Pro (M1) variants uses the hi556. That might have a usable driver. There's also a new video driver for the hi556 (CONFIG_VIDEO_HI556) released by intel for the linux kernel.
If anyone wants me to rebase to 3.18.140, just ask.
Latest version fixes camera issues. Camera (Hynix hi556) is now recognised and autofocus works.
I copied the Hynix (eeprom OTP) code from the Lenovo Tab4 kernel source. The code in the P10 kernel source never worked - probably because the P10 was never released with Hynix hi556. The P10 uses OmniVision ov8856 (8MP) and GalaxyCore gc5025 (5MP). Whereas the M10 uses Hynix hi556 (5MP) and Superpix sp2519 (2MP).
This kernel is stable. I can't find anything wrong with it. I've tested it using stock ROM with no issues. So I guess it's safe to load up with the stock ROM (Android Pie)...at your own risk. Just be sure to backup the system & vendor images, plus the boot image in TWRP. You'll need these when an OTA comes along, anyway. The updater-script in the OTA will refuse to apply, because it won't recognise this kernel.
So until someone finds some issues with this kernel, I guess it's time to polish up some LineageOS code...
Two exciting announcements:
prima drivers added to staging
I've added prima drivers to the kernel github repository. It's used by the lineageos_X605F_defconfig to build the wlan.ko module (CONFIG_WLAN_PRONTO).
Lenovo released official kernel source yesterday
The official kernel source for the X605F and X605L has just appeared on Lenovo's support site.
I'll have a closer look over the next few weeks, but here's some preliminary observations:
it is released at msm 3.18.120. This is the stock kernel version. (Lenovo released 3.18.71 for the P10.)
there is only one download for both X605F and X605L. This might be good news.
the autofocus camera drivers for the Hynix appear to be included. I'll take a closer look.
kernel compiles without any changes. I haven't loaded it yet to test it.
edit: I've added the official source to the Yahoo-Mike/android_kernel_lenovo_X605F repo in the official-3.18.120 branch.
The opensource drop for the X605F from last week includes code for the kernel at msm-3.18.120. Surprisingly, it includes a defconfig for the P10. This confirms that the M10 (X605F/L) and P10 (X705F/L) are very similar.
I'm going to test Lenovo's kernel source on my TB-X605F this weekend. Is there anybody with a TB-X705F/L and the skills to build and test this code on their P10 ? PM me and we can coordinate.
The only differences I can see are:
Code:
m10_msmcortex_defconfig | p10_msmcortex_defconfig | Kconfig definition
----------------------- | ----------------------- | ------------------
| CONFIG_BATTERY_BQ27x00=y | drivers/power
CONFIG_CAMERA_TAB5_M10=y | | drivers/media/platform/msm/camera_v2
| CONFIG_CAMERA_TAB5_P10=y | drivers/media/platform/msm/camera_v2
| CONFIG_FOUR_PA=y | sound/soc/codecs & sound/soc/msm
| CONFIG_SENSORS_HALL=y | drivers/input
CONFIG_TP_MP_DIFF=y | | arch/arm64
The TP_MP_DIFF setting is used to load different firmware for the touchscreen drivers: one set for the M10s; another for the P10s.
Deleted
happyponcho42 said:
Great find! I've successfully built the kernel and was also pleasantly surprised I could use the browsable menuconfig (like the setup for my Linux Desktop) after using the P10 defconfig i.e.
Code:
make -j24 ARCH=arm64 CROSS_COMPILE=aarch64-linux-android- O=out p10_msmcortex_defconfig && make -j24 ARCH=arm64 CROSS_COMPILE=aarch64-linux-android- O=out menuconfig
I've disabled requiring signing of loadable kernel modules, as well as generated some modules for USB-to-Serial chipsets I use (pl2303.ko, ftdi, etc.) for projects.
Now to test the Image.gz-dtb: I have not had much luck unpacking boot-TB-X705F_S210120_191029_ROW.img and repacking with my tools. I just end up on a blank screen on the P10.
Do you have a recommended set of tools that have worked with your M10?
Click to expand...
Click to collapse
Glad to hear it compiled for P10.
I use AnyKernel3 to inject the kernel for me. It can also load kernel modules, if you build any.
I use these properties in the AK3 mod script. Modify it to suit your purposes:
Code:
# begin properties
properties() { '
kernel.string=X605F kernel built by Yahoo Mike @ xda-developers
do.devicecheck=1
do.modules=1
do.cleanup=1
do.cleanuponabort=0
device.name1=X605F
supported.versions=9
supported.patchlevels=- 2020-06
'; } # end properties
Then in my script I copy the kernel to AK3 root directory and modules to ./modules/system/lib/modules directory (or vendor equivalent) & zip it all up.
Code:
# zip it all up, ready for installing in TWRP
# this zip will replace kernel, plus any modules you included (if any)
# don't forget to TWRP-backup boot, system and vendor images
# also good idea to copy /system/lib/modules/* and /vendor/lib/modules/pronto/*
cd ~/tools/AK3
zip -r9 update_X605F_kernel.zip * -x .git README.md *placeholder
adb push update_X605F_kernel.zip /external_sd/
Optionally, you can also create a "version" file with something like this (before zipping):
Code:
MY_KERNEL_IMG="$(pwd)/out/arch/arm64/boot/Image.gz-dtb"
MY_KERNEL_VERSION="$(make kernelversion)"
cd ~/tools/AK3
# create a "version" file
MY_ZIP_DATE=$(date +'%Y-%m-%d %H:%M:%S')
MY_BUILD_DATE=$(stat ${MY_KERNEL_IMG} --format=%y | cut -c1-19)
echo "**************************************************" > $MY_ANYKERNEL_DIR/version
echo "unofficial kernel for Lenovo Smart Tab M10 (TB-X605F)" >> $MY_ANYKERNEL_DIR/version
echo " version: $MY_KERNEL_VERSION" >> $MY_ANYKERNEL_DIR/version
echo "compiled: $MY_BUILD_DATE" >> $MY_ANYKERNEL_DIR/version
echo " zipped: $MY_ZIP_DATE" >> $MY_ANYKERNEL_DIR/version
echo "**************************************************" >> $MY_ANYKERNEL_DIR/version
The Lenovo opensource seems to be working on the TB-X605F. The modules are also building and installing ok.
There is something odd about the device tree, so make sure you use Image, not Image-dtb.gz. When I used the dtb kernel, I kept getting the dreaded "Qualcomm HS-USB Diagnostics 900E" mode.
I'll add a "lineage-17.1" branch to the github repo. It includes an M10_lineageos_defconfig for building the kernel and modules, and wlan.ko source from CAF for Android 10:
Code:
June 01, 2020 LA.UM.8.6.2.r1-07600-89xx.0 msm8953_64 LA.UM.8.6.2.r1-07600-89xx.0.xml 10.00.00
Yahoo Mike said:
There is something odd about the device tree, so make sure you use Image, not Image-dtb.gz. When I used the dtb kernel, I kept getting the dreaded "Qualcomm HS-USB Diagnostics 900E" mode.
Click to expand...
Click to collapse
I can get the dtb kernel to work by replacing the arch/arm/boot/dts/qcom/ directory from Lenovo's opensource with the same directory from the "msm-3.18.120" branch of the repo. It boots fine with the stock ROM and LOS.
The "msm-3.18.120" branch is based on the original P10 opensource from January 2019.
So yes, there is definitely something screwy about the dt blobs from the June 2020 codedrop.
Not sure if this would be a valid kernel or not - On the back it says model is TB-X605F. I
In settings it says hardware is TB-X606F and so is the software.
It's the m10 gen 2 tablet. I believe Mediatek chipset.
dustofdeath said:
Not sure if this would be a valid kernel or not - On the back it says model is TB-X605F. I
In settings it says hardware is TB-X606F and so is the software.
It's the m10 gen 2 tablet..
Click to expand...
Click to collapse
If you have the gen 2, then this is the wrong kernel.
Lenovo has published the TBX606F/X kernel.
dustofdeath said:
I believe Mediatek chipset.
Click to expand...
Click to collapse
The CPU-Z app from the playstore will tell you which SOC you have.
I added pstore/ramoops support on branch msm-3.18.120. I have no idea why Lenovo never configured pstore/ramoops in the first place.
The ramoops device will dump console-ramoops, dmesg-ramoops-0, pmsg-ramoops-0 into /sys/fs/pstore/.
I'll add pstore support to TWRP for the TB-X605F in the next update. I'll use this branch (msm-3.18.120) to build the kernel.
I'm hoping pstore will tell me why GSI images fail to boot when installed over stock Pie.
Hello and thanks to all of you to invest so much time and effort. I'm not the best in this android world so forgive me if I ask something stupid Recently I got a Lenove Tab M10 TB-X605L and well I rooted it (with magisk) to use Linux on it. As I said I don't use android so much and I just got this product as present so when I saw this post I thought If I can put a new Kernel why not compile it with NetHunter Kernel and give it a try. After some effort (I'm not sure if it will work) I made the kernel. My problem is:
1st I rooted my Tablet with Magisk (as the same way you mentioned in another post) after the rooting I download twrp from google play. Till here all is good. Now:
TWRP is working when I boot it. But asks for a Password. I tried some swipe data, cache etc. but still I see that PASSWORD field. I can't pass it. (And when I pass it without Password I can't see the kernel neither yours nor mine)
I don't care what happens to my Tablet as I said I'm not a android user. I would even would try a crazy Idea even if its end with a dead tablet but I would really wanna check if the compiled NetHunter kernel works.
saizzou38 said:
...TWRP is working when I boot it. But asks for a Password. I tried some swipe data, cache etc. but still I see that PASSWORD field. I can't pass it...
Click to expand...
Click to collapse
TWRP will ask for a password if you have a password, PIN or pattern set on your tablet, and/or your data partition is encrypted.
If you have a password or PIN set on your tablet, try entering that. If you had a pattern, try this.
You can unencrypt the data partition by reformatting it and then installing Disable_Dm-Verity_ForceEncrypt.zip (created by Zackptg5). Just be aware that this wipes all your data and breaks OTA updates. (Magisk also needs to be uninstalled before OTAs work.)
saizzou38 said:
...And when I pass it without Password I can't see the kernel neither yours nor mine...
Click to expand...
Click to collapse
Remember: android recovery (twrp) uses the kernel in the recovery partition, not the boot partition.
So, where are you injecting your kernel?
If you are injecting your kernel into TWRP's recovery image, which kernel do you see when you issue this command?
Code:
adb shell uname -r
If you are injecting your kernel into the system ROM's boot.img, then you won't see your kernel in TWRP. You'll see the kernel with which twrp was compiled.
BTW...interesting project. Good luck. Let us know if you get it working.
Hi there,
I just compiled your kernel source you've uploaded on the Github (official branch) with m10_msmcortex_defconfig. Then, I flashed it to my device with anykernel 3, also included all modules, but the wifi does not work(It cannot be turned on). Before I flash it, my device was running well at the stock firmware, so I wonder what's wrong with my compilation.
After that, I also tried to compile the lineage branch, with lineageos_tbx605_defconfig. I flashed it to my device running well on AOSP 10(project treble), but the problem was same as the official source.
Could you please tell me that what's wrong with my compilation or how to compile it to work well? Thanks a lot .
Jun ASAKA
2021/02/03 (CST)
浅香ジュン said:
Hi there,
I just compiled your kernel source you've uploaded on the Github (official branch) with m10_msmcortex_defconfig. Then, I flashed it to my device with anykernel 3, also included all modules, but the wifi does not work(It cannot be turned on). Before I flash it, my device was running well at the stock firmware, so I wonder what's wrong with my compilation.
After that, I also tried to compile the lineage branch, with lineageos_tbx605_defconfig. I flashed it to my device running well on AOSP 10(project treble), but the problem was same as the official source.
Could you please tell me that what's wrong with my compilation or how to compile it to work well? Thanks a lot .
Jun ASAKA
2021/02/03 (CST)
Click to expand...
Click to collapse
It sounds like the wlan_pronto.ko module is not loading. That's why wifi is not working.
It might be easier to build the msm-3.18.120 branch with YM_x605f_deconfig. That should work.
It does not force module signature checks (CONFIG_MODULE_SIG_FORCE=n). So the stock wlan module (/vendor/lib/modules/pronto/wlan_pronto.ko) should load ok.
If that fails, check the kernel log (dmesg) for errors loading the wlan module. Let me know what the errors are.
official source
The stock wifi module won't work with the kernel from the official branch because CONFIG_MODULE_SIG_FORCE=y. You'll have to download the wlan source from CAF and build it with the same signature. That's a lot of work.
I also had some DT and dm-verity issues with the official source.
lineage-17.1
The lineage-17.1 branch includes the CAF wlan module (in drivers/staging/prima) for Android 10.0. I'm not sure why it's not working for you. Check the kernel log for wlan load errors.
The included CAF wlan module (and your GSI system) are Android 10. Your vendor is Android 9.0 or 8.1. Maybe there's a compatibility issue ? I'm guessing. I haven't tried that kernel with a GSI ROM.
Yahoo Mike said:
It sounds like the wlan_pronto.ko module is not loading. That's why wifi is not working.
It might be easier to build the msm-3.18.120 branch with YM_x605f_deconfig. That should work.
It does not force module signature checks (CONFIG_MODULE_SIG_FORCE=n). So the stock wlan module (/vendor/lib/modules/pronto/wlan_pronto.ko) should load ok.
If that fails, check the kernel log (dmesg) for errors loading the wlan module. Let me know what the errors are.
official source
The stock wifi module won't work with the kernel from the official branch because CONFIG_MODULE_SIG_FORCE=y. You'll have to download the wlan source from CAF and build it with the same signature. That's a lot of work.
I also had some DT and dm-verity issues with the official source.
lineage-17.1
The lineage-17.1 branch includes the CAF wlan module (in drivers/staging/prima) for Android 10.0. I'm not sure why it's not working for you. Check the kernel log for wlan load errors.
The included CAF wlan module (and your GSI system) are Android 10. Your vendor is Android 9.0 or 8.1. Maybe there's a compatibility issue ? I'm guessing. I haven't tried that kernel with a GSI ROM.
Click to expand...
Click to collapse
It's working! thanks a lot!
kernel-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