Related
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 me 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.
Standard kexec call unfortunatelly does not work on Nexus 4. It freezes somewhere, and it is very difficult to find out where - probably some of the drivers are not shut down/re-initialized properly, it is a commong thing among Android devices, which is why kexec-hardboot was made.
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 I 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/Tasssadar/7833796, 4.4 AOSP kernel repo
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 - I used patch from TF201 and modified it a bit (basically just changed few SoC specific constants). People at #ubuntu-arm helped me out with that, thanks.
For hammerhead, I've improved the patch a bit - only the host needs to be patched now and I've added support for DTB.
Merged, thanks again for the awesome work @Tasssadar!
Good deal.My day is getting better.
@show-p1984 would love to see this in bricked kernel too! ?
@neobuddy89 did you see this?
Sent from Nexus 5 on Slimkat
thanks for the hard work.. thats awesome.
AndroidSlave said:
@neobuddy89 did you see this?
Sent from Nexus 5 on Slimkat
Click to expand...
Click to collapse
Yeah, I saw this.
neobuddy89 said:
Yeah, I saw this.
Click to expand...
Click to collapse
I asked that 6 months ago
Sent from my Nexus 5 using Tapatalk
awesome work bro...
much needed..
AndroidSlave said:
I asked that 6 months ago
Sent from my Nexus 5 using Tapatalk
Click to expand...
Click to collapse
Yeah, I know and I saw that days back..
Enough of OT. :fingers-crossed:
Help with applying the patch
Okay so I have my aosp kernel made. I have my working directory too. Can you just guide me on how do I apply this partch to it?
Is it possible to add that patch from a on the fly flashable zip ?
@Anoopnk since the patch is for the kernel(zImage) its not possible to patch it like that. Or you have to compile the kernel or you need to ask your kernel dev friendly or he can include it in his kernel.
Hello, first I'd like to apologize for dredging up an old thread. Second, I am attempting to build a CM13+kali+kexec compatible kernel, with extra wifi drivers as the base kernel doesnt support my wifi card. Based on that goal, I have a multi-part question for the OP, or anyone else with the know-how to assist me in my quest.
1)Is there a source available for your kernel_kexec_hammerhead_cm13-01-2c39db662.zip listed on the multirom page for nexus 5? I'm attempting to build a new kernel, for kali+CM13+multirom, and your android_kernel_google_msm git only has branches going up to CM12. It would be far easier for me to start with a 'clean' CM13+kexec source then trying to patch myself as per question #2
2) I've attempted to patch a plain old hammerhead_defconfig from CM13 git, however I believe I am doing so wrong. I have managed to compile kexec-tools and aquired the hammerhead 3.4.x patch. Now am I supposed to patch my produced zImage-dtb AFTER build, running the patch from the kexec-tools folder and against the zImage-dtb? Is it something like 'KEXEC.patch -p1 < zimage-dtb'
Any clarification on the use of the kexec-tools patch, or simply a link to github source of a 'clean' CM13 kernel with the kexec patch already applied, would be incredibly helpfull on my journey down the rabbit hole
~EDIT~
Ok so I've managed to figure out the patch and feel like a dumbass. For anyone else looking to get into kernel dev, and wanting to use the kexec patch, heres the basics:
1- run patch within your kernel source directory
2-ensure that the config settings in OP are set (I had to add them to my source by hand as they werent there)
3-when zipping up your kernel, add the sbin and lib/kexec-tools folders from the kexec-tools source build, and be sure your updater-script / updater-binary is set to move these folders into /sbin and /lib respectively.
4-Flash and enjoy Kexec! (check with multirom manager)
Hi everyone,
recently I have built and flashed on my sgh-t999 (galaxy S3 US tmobile version) CM11 Nightly. For my pro0ject however I need to modify two libraries of the Radio Interface Layer (RIL), libril.so and libreference-ril.so. I tried to modify the ones in the forlder /hardware/ril/ and build everything again with no results. Any change that I made to those files (such as ril.cpp in the folder libril) would not affect the functionality of the phone.
Finally yesterday I understood that when I build those libraries for the target cm-d2tmo-eng, those files that I have modified are not considered at all! When the libraries are built indeed, the system automatically takes the libril.so and libreference.so present in the vendor folder!
The problem is that those libraries in the vendor folder and already compiled and I cannot modify them. The question is:
Is there any way that I compile those libraries from the source code that I have modified?
Thanks,
brok85
Given that there is a unified D2LTE Build on CM, can you elaborate on what changes you wish to make to these libraries ?
To answer your question, You can do one of two things.
Grab the CM Source Code from the Device Tree of D2LTE. Make your relevant changes and check in the changes if they boot ok on your device. That way those changes will be included in future builds of CM and other Roms that use it.
If you do not wish to do so, then you will have to compile those libraries using C++ Compiler on a *NIX box and replace them in the Vendor folder.
Perseus71 said:
Given that there is a unified D2LTE Build on CM, can you elaborate on what changes you wish to make to these libraries ?
Click to expand...
Click to collapse
Well, as fisrt I just wanted to insert some log to be able to follow the code execution from the logcat or do something similar.
Perseus71 said:
To answer your question, You can do one of two things.
Grab the CM Source Code from the Device Tree of D2LTE. Make your relevant changes and check in the changes if they boot ok on your device. That way those changes will be included in future builds of CM and other Roms that use it.
Click to expand...
Click to collapse
Sorry but I am kind of new on this things. I have already downloaded the source code from the device tree and made my modifications in the files ril.cpp contained in [path-to-android-source]/hardware/ril/libril/ril.cpp. What I did was commenting the whole code within the function RIL_onUnsolicitedResponse() and listenCallback() such that in theory, the phone is not able to display incoming calls for example. However after flashing the re-built android I am still able to receve calls. How can I "check in the changes if they boot ok on my device"?
Perseus71 said:
If you do not wish to do so, then you will have to compile those libraries using C++ Compiler on a *NIX box and replace them in the Vendor folder.
Click to expand...
Click to collapse
I tried to remove the libril.so in the vendor folder and compile again using
# . build/envsetup.sh
# lunch (and select d2tmo)
# mmm [path-to-android-source]/hardware/ril/libril".
The problem is that when I indicate the target after lunch, the compiler looks for the vendor libraries and stop the build. What I am doing wrong?
Sounds like Compiler Dependacy path is set different from the code base. I will look further before commenting.
For when your changes are for the benefit of the community of users, you check in the changed code back to the Device Tree with detailed comments within the code and while checking in.
Perseus71 said:
Given that there is a unified D2LTE Build on CM, can you elaborate on what changes you wish to make to these libraries ?
To answer your question, You can do one of two things.
Grab the CM Source Code from the Device Tree of D2LTE. Make your relevant changes and check in the changes if they boot ok on your device. That way those changes will be included in future builds of CM and other Roms that use it.
If you do not wish to do so, then you will have to compile those libraries using C++ Compiler on a *NIX box and replace them in the Vendor folder.
Click to expand...
Click to collapse
Perseus71 said:
Sounds like Compiler Dependacy path is set different from the code base. I will look further before commenting.
For when your changes are for the benefit of the community of users, you check in the changed code back to the Device Tree with detailed comments within the code and while checking in.
Click to expand...
Click to collapse
Actually this is what I get after deleting
libril.so in vendor/samsung/d2tmo/proprietary/lib/
and after executing mmm /hardware/ril/libril :
No private recovery resources for TARGET_DEVICE d2tmo
make: *** No rule to make target `vendor/samsung/d2tmo/proprietary/lib/libril.so', needed by `/home/brok85/Documents/android/system/out/target/product/d2tmo/system/lib/libril.so'. Stop.
make: Leaving directory `/home/brok85/Documents/android/system'
If u want to build from source, delete the line that copies in vendor-blobs.mk
If u want to copy the blob instead of building it from source, keep the line
It'll be better if u provide us the device and vendor trees links
blackbeard said:
If u want to build from source, delete the line that copies in vendor-blobs.mk
If u want to copy the blob instead of building it from source, keep the line
It'll be better if u provide us the device and vendor trees links
Click to expand...
Click to collapse
I am not sure to understand what should I provide Sorry, as I said I'm kind of new here...
Also, I can not find vendor-blobs.mk...Where it should be?
brok85 said:
I am not sure to understand what should I provide Sorry, as I said I'm kind of new here...
Also, I can not find vendor-blobs.mk...Where it should be?
Click to expand...
Click to collapse
You said you built a cm11 for ur device. So for that you needed the device and the vendor trees. Give the link of those, if they are on the git
And vendor-blobs.mk would be present in the vendor folder under your device folder
blackbeard said:
You said you built a cm11 for ur device. So for that you needed the device and the vendor trees. Give the link of those, if they are on the git
Click to expand...
Click to collapse
Well I have followed the guide in the following page
http://wiki.cyanogenmod.org/w/Build_for_d2tmo
The link from where I have obtained the repository is
$ repo init -u git://github.com/CyanogenMod/android.git -b cm-11.0
and then
$ breakfast d2tmo
blackbeard said:
And vendor-blobs.mk would be present in the vendor folder under your device folder
Click to expand...
Click to collapse
Actually now I think I was able to compile the library following your instructions. Unfortunatly, when I have built and flashed everything in the galaxy S3, I was not able to use the network. Probably some compatibility issue?
When I compiled libril.so, I have obtained it from the folder /hardware/ril/libril which should contain google source code, maybe not compatibale with my device...is it right?
thanks a lot for the help guys
brok85 said:
Actually now I think I was able to compile the library following your instructions. Unfortunatly, when I have built and flashed everything in the galaxy S3, I was not able to use the network. Probably some compatibility issue?
When I compiled libril.so, I have obtained it from the folder /hardware/ril/libril which should contain google source code, maybe not compatibale with my device...is it right?
Click to expand...
Click to collapse
You know, silly question. But just so we can rule out. Did you at any point compiled the CM11 code as is and flashed to the phone ? How did Network behave ? Was everything ok ?
Galaxy S3 is a very open platform with standard hardware and chipsets. So the Default google code should work out of box with it. If you have network issues, then just for kicks you can flash a custom Kernel on top of your compiled CM 11. See how that goes.
Perseus71 said:
You know, silly question. But just so we can rule out. Did you at any point compiled the CM11 code as is and flashed to the phone ? How did Network behave ? Was everything ok ?
Click to expand...
Click to collapse
No silly question at all
I have compiled CM11 as it is and worked perfectly. I could use the network.
Perseus71 said:
Galaxy S3 is a very open platform with standard hardware and chipsets. So the Default google code should work out of box with it. If you have network issues, then just for kicks you can flash a custom Kernel on top of your compiled CM 11. See how that goes.
Click to expand...
Click to collapse
The procedure I have followed is the following one:
1) Delete the llibril.so and libreference-ril.so from the vendor library. These are the pre-compiled vendor libraries that I need to modify.
2) commented the lines from the vendor-blobs.mk that were including those two precompiled libraries.
3) go to android/system/ and run "mmm /hardware/ril/libril" and "mmm /hardware/ril/reference-ril" to obtain the modified libril.so and libreference-ril.so respectively.
4) copied the new libraries just obtained in the vendor folder where the pre-compiled libraries were
5) re-include the lines commented in point 2).
6) run brunch d2tmo
7) flash the .zip obtained
Any mistake?
Perseus71 said:
You know, silly question. But just so we can rule out. Did you at any point compiled the CM11 code as is and flashed to the phone ? How did Network behave ? Was everything ok ?
Click to expand...
Click to collapse
No silly question at all. Yes I have built everything out of the box and worked perfectly. I could use the network.
Perseus71 said:
Galaxy S3 is a very open platform with standard hardware and chipsets. So the Default google code should work out of box with it. If you have network issues, then just for kicks you can flash a custom Kernel on top of your compiled CM 11. See how that goes.
Click to expand...
Click to collapse
I followed the following procedure to include my modified libraries:
1) Eliminate precompiled vendor libraries: libril.so and libreference-ril.so from the vendor folder
2) comment lines in the vendor-blobs.mk that included those two precompiled libraries
3) from /android/system/ executed command "mmm /hardware/ril/librail" and "mmm /hardware/ril/reference-ril" to obtain the modified libril.so and libreference-ril.so
4) copied the new libraries in the vendor folder in the same places were the precompiled libraries were positioned
5) re-include the two lines that were commented in point 2)
6) build everything again with brunch d2tmo
7) flash the .zip obtained
Any mistake?
Unless I am having a brain fart that process seems about right. I wonder if your RIL changes are related to the network
What kind of issues do you see ?
Perseus71 said:
Unless I am having a brain fart that process seems about right. I wonder if your RIL changes are related to the network
What kind of issues do you see ?
Click to expand...
Click to collapse
It cannot even find the network operators. It says that it is impossible to connect and to try later...
mine is the Tmobile version of S3. May this influence?
That would depend on the changes you made. But otherwise not really. The underlying Device tree is unified for all US S3 devices.
Dear @Alberto96 @volk204 @fire855 and @hero355.
Is it possible to port android 7.0 into our Wave's?
Android 6.0 is great.. But I know, that you can make 1 more step.
Can you..?
Hello,
it's possible to compile N for the wave... But I don't really see the use in it...
Wave's ram is too low....using android 7 with it will be so slow
Honestly best ROM made for wave till now is ICS....it is fast and uses less ram
Best Regards
yes
yesterday , galaxy s1 has released cm 14
so lt will be posible
---------- Post added at 09:31 AM ---------- Previous post was at 09:25 AM ----------
ghostbiceps said:
Dear @Alberto96 @volk204 @fire855 and @hero355.
Is it possible to port android 7.0 into our Wave's?
Android 6.0 is great.. But I know, that you can make 1 more step.
Can you..?
Click to expand...
Click to collapse
yes
yesterday , galaxy s1 has released cm 14
so lt will be possible
Very possible. @fire555 you can apply commits from kernel N of S1 to Wave and port CM14 of S1 to Wave?
You can tell me version of gcc to build kernel for wave? Thanl you
i´m patched commits to boot android 7.0 for wave from ss s1 via source kernel of @Coldwindofnowhere
check here https://github.com/thinhx2/android_kernel_samsung_aries @fire855 tell me version gcc to build kernel for wave. thank
thinhx2 said:
i´m patched commits to boot android 7.0 for wave from ss s1 via source kernel of @Coldwindofnowhere
check here https://github.com/thinhx2/android_kernel_samsung_aries @fire855 tell me version gcc to build kernel for wave. thank
Click to expand...
Click to collapse
Using GCC 4.7 should be fine. Maybe newer too.
fire855 said:
Using GCC 4.7 should be fine. Maybe newer too.
Click to expand...
Click to collapse
You can send me link of gcc 4.7?
@fire855
thinhx2 said:
@fire855
Click to expand...
Click to collapse
Because you're not building inline (eg the kernel with the ROM), you need to remove the leading "source/" from the paths in usr/wave_initramfs.list
BTW, I'm assuming you're building AOSP, otherwise you should be building the kernel with the ROM.
xc-racer99 said:
Because you're not building inline (eg the kernel with the ROM), you need to remove the leading "source/" from the paths in usr/wave_initramfs.list
BTW, I'm assuming you're building AOSP, otherwise you should be building the kernel with the ROM.
Click to expand...
Click to collapse
I try make zImage bug dont complete,i had change nam folder aries to source but have bug same first build. I dont see file initramfs_data.cpio in urs
thinhx2 said:
I try make zImage bug dont complete,i had change nam folder aries to source but have bug same first build. I dont see file initramfs_data.cpio in urs
Click to expand...
Click to collapse
I think you misunderstood me. You need to edit the file in KERNEL_SOURCE/usr/wave_initramfs.list (where KERNEL_SOURCE is the folder you downloaded the kernel source to), removing "source/" from any of the lines in that file that have it.
However, because you seem to be trying to just build the zImage, you need a prebuilt ramdisk.cpio and ramdisk-recovery.cpio as the ramdisks are built into the kernel (however the i9000 and series have switched them over to their own partitions on 7.0, see https://github.com/xc-racer99/andro...mmit/503a411a16c3671b5da9775450de582cc8c2ce85 and follow-up commits https://github.com/xc-racer99/andro...mmit/345ca93aa0877a9f1f382cfb284c752290b02c91 https://github.com/xc-racer99/andro...mmit/a5a2d012566390ac363e6950e8b7d73417a3b4a1 in the kernel, changes are need to your equivalent of aries-common)
xc-racer99 said:
I think you misunderstood me. You need to edit the file in KERNEL_SOURCE/usr/wave_initramfs.list (where KERNEL_SOURCE is the folder you downloaded the kernel source to), removing "source/" from any of the lines in that file that have it.
However, because you seem to be trying to just build the zImage, you need a prebuilt ramdisk.cpio and ramdisk-recovery.cpio as the ramdisks are built into the kernel (however the i9000 and series have switched them over to their own partitions on 7.0, see https://github.com/xc-racer99/andro...mmit/503a411a16c3671b5da9775450de582cc8c2ce85 and follow-up commits https://github.com/xc-racer99/andro...mmit/345ca93aa0877a9f1f382cfb284c752290b02c91 https://github.com/xc-racer99/andro...mmit/a5a2d012566390ac363e6950e8b7d73417a3b4a1 in the kernel, changes are need to your equivalent of aries-common)
Click to expand...
Click to collapse
I need add line of ramdisk from here https://github.com/xc-racer99/andro...82cc8c2ce85/drivers/mtd/onenand/samsung_gsm.h
To https://github.com/fire855/android_...ndroid-6.0/drivers/mtd/onenand/samsung_wave.h ? I think partitions of both device ís different. But thank you so much, i will try
thinhx2 said:
I need add line of ramdisk from here https://github.com/xc-racer99/andro...82cc8c2ce85/drivers/mtd/onenand/samsung_gsm.h
To https://github.com/fire855/android_...ndroid-6.0/drivers/mtd/onenand/samsung_wave.h ? I think partitions of both device ís different. But thank you so much, i will try
Click to expand...
Click to collapse
Well, it really depends on which partition format you want to use:
1) Continue using the "traditional" partition layout where the ramdisks are integrated into the kernel. This is probably recommended.
or
2) Switch to having the ramdisk and ramdisk-recovery each on their own partition. The i9000 has gone to this system in 7.0 - advantages are that things like SuperSU and Magisk can then easily modify the ramdisk without having to rebuild the kernel. This requires the changes in both device/samsung and the kernel and is more difficult.
However, I'm still unclear as to what ROM you're building. You shouldn't be trying to build just the kernel unless you're building pure AOSP.
xc-racer99 said:
Well, it really depends on which partition format you want to use:
1) Continue using the "traditional" partition layout where the ramdisks are integrated into the kernel. This is probably recommended.
or
2) Switch to having the ramdisk and ramdisk-recovery each on their own partition. The i9000 has gone to this system in 7.0 - advantages are that things like SuperSU and Magisk can then easily modify the ramdisk without having to rebuild the kernel. This requires the changes in both device/samsung and the kernel and is more difficult.
However, I'm still unclear as to what ROM you're building. You shouldn't be trying to build just the kernel unless you're building pure AOSP.
Click to expand...
Click to collapse
I no build rom,because wave can run rom of s1 normal with kernel of wave. I think no need build rom. I only merge new commits of kernel 7.0 s1 to wave. I patched comeplet but i have problem. I will try tonight
Hi all !
After many years of "xda looting", i'm trying to contribute a little.
I'm a begginer, just learned 3 days ago how to use github ! So be cool guys, not a dev here.
Now i successfully compiled a Kernel, with addition of KCAL for now, but...
I got the Image.gz-dtb and i don't succeed in repacking it in a boot.img, if someone want to try, be my guest. (It's untested obviously, but compilation was without errors/warnings (we are close to stock for now.).
I tried mkboot, anykernel2, lazyflasher.... Always flash error, and i don't have time for the next few days, so if we could put a team together...
Here is the link to my compiled files (arch/arm64/boot) except dto folder. //Update to my Dev folder
Theorically you just have to rename, put it in a stock boot.img, "fastboot boot newboot.img" and test if Kcal is working with ex kernel manager, then more to come (governors, maybe OC, etc.)
Poke @d1ngh, you could help here after your work on twrp ?
Cheers guys, we could have our first custom kernel soon !
----------------------------------------
Source : [url]https://github.com/WiwiWillou/Xiaomi_Kernel_OpenSource.git[/URL]
Defconfig used = defconfig daisy-perf_defconfig (with the kcal=Y addition not commited for now) // branch daisy-o-oss
Thank you very much! That´s what I waited for. Unfortunately 7zip says error: unknown compression method... Perhaps you can repack? Thx.
That is all we need ! A custom kernel thant can handle GSI !
Voodoojonny said:
Thank you very much! That´s what I waited for. Unfortunately 7zip says error: unknown compression method... Perhaps you can repack? Thx.
Click to expand...
Click to collapse
I've updated the link, you should see the uncompressed file in folder !
Or direct link : https://drive.google.com/file/d/1TvihsIa_XbtC66yaWRZ1EPY5UR6LLD5g/view?usp=drivesdk
Thanks
WiwiPouPou said:
Hi all !
After many years of "xda looting", i'm trying to contribute a little.
I'm a begginer, just learned 3 days ago how to use github ! So be cool guys, not a dev here.
Now i successfully compiled a Kernel, with addition of KCAL for now, but...
I got the Image.gz-dtb and i don't succeed in repacking it in a boot.img, if someone want to try, be my guest. (It's untested obviously, but compilation was without errors/warnings (we are close to stock for now.).
I tried mkboot, anykernel2, lazyflasher.... Always flash error, and i don't have time for the next few days, so if we could put a team together...
Here is the link to my compiled files (arch/arm64/boot) except dto folder. //Update to my Dev folder
Theorically you just have to rename, put it in a stock boot.img, "fastboot boot newboot.img" and test if Kcal is working with ex kernel manager, then more to come (governors, maybe OC, etc.)
Poke @d1ngh, you could help here after your work on twrp ?
Cheers guys, we could have our first custom kernel soon !
----------------------------------------
Source : [url]https://github.com/WiwiWillou/Xiaomi_Kernel_OpenSource.git[/URL]
Defconfig used = defconfig daisy-perf_defconfig (with the kcal=Y addition not commited for now) // branch daisy-o-oss
Click to expand...
Click to collapse
Try it with android image kitchen (you first have to get the original bootimage from vendor/factory image, unpack it, exchange your kernel and repack it). recompiled official sources (with UBERTC) and it worked fine like that.
wertus33333 said:
Try it with android image kitchen (you first have to get the original bootimage from vendor/factory image, unpack it, exchange your kernel and repack it). recompiled official sources (with UBERTC) and it worked fine like that.
Click to expand...
Click to collapse
I've tried, maybe my image is bad, strange (I originally tried my stock source too, Google 4.9 toolchain, no luck). Can you test with the one in the link please ?
I will have access to my PC only next week...
Thanks a lot for your feedback !
wertus33333 said:
Try it with android image kitchen (you first have to get the original bootimage from vendor/factory image, unpack it, exchange your kernel and repack it). recompiled official sources (with UBERTC) and it worked fine like that.
Click to expand...
Click to collapse
Could you please share your build script ? Did you use an alternate defconfig ?
Learning here
EDIT : Which UberTC did you use ?
WiwiPouPou said:
Could you please share your build script ? Did you use an alternate defconfig ?
Learning here
EDIT : Which UberTC did you use ?
Click to expand...
Click to collapse
I used the original source code with some small changes (which are now included in official source) to make it compile.
Don't mind about the toolchain for the moment, gcc4.9 is most stable.
I don't have time trying this out atm, busy compiling los 15.1 but if you share exactly how you did it, (terminal log in pastebin and most importantly the exact errors, "doesn't work" doesn't help ) me or someone else might be able to help you (and you don't have to ask next time you get the error.
If you want you can start adjusting the lineage kernel, so i could build with los kernel which could save time towards working custom roms.
I successfully repack. But phone don't boot. (9.11 ROM)
Hello , can you help me with conpiling kernel source code? I tryed a lot of time but same issues , that could find same files.
I successfully repack image of kernel that you publish, but phone don't boot , they reboot in stock kernel(if i write fastboot boot boot.img) and I trying flashing image. They dont boot.
I vary want to create collection of custom kernel's on my device. And of course becouse i vary interested in this sphere, but new this.
Can you describe how you fix issues, or your compiling go without issues.
With best regards. Please help.
artyom5613 said:
Hello , can you help me with conpiling kernel source code? I tryed a lot of time but same issues , that could find same files.
I successfully repack image of kernel that you publish, but phone don't boot , they reboot in stock kernel(if i write fastboot boot boot.img) and I trying flashing image. They dont boot.
I vary want to create collection of custom kernel's on my device. And of course becouse i vary interested in this sphere, but new this.
Can you describe how you fix issues, or your compiling go without issues.
With best regards. Please help.
Click to expand...
Click to collapse
On which roms did you test your kernel?
Voodoojonny said:
On which roms did you test your kernel?
Click to expand...
Click to collapse
8.1 stock. 9.11
I compile stock kernel , repack him , ans this work fine. Now i need help to add kcal support. Author, can you help?
artyom5613 said:
I compile stock kernel , repack him , ans this work fine. Now i need help to add kcal support. Author, can you help?
Click to expand...
Click to collapse
I will, I'm very far from my PC for a few weeks again, I've used some commits :
https://github.com/rama982/android_kernel_xiaomi_msm8953/search?q=kcal&type=Commits
Source for pie is not pushed ?
WiwiPouPou said:
I will, I'm very far from my PC for a few weeks again, I've used some commits :
https://github.com/rama982/android_kernel_xiaomi_msm8953/search?q=kcal&type=Commits
Source for pie is not pushed ?
Click to expand...
Click to collapse
Thanks! O try to add kcal with this commits.
Yea, source for pie is not pushed. Xiaomi cant fix 8.1 kernel... Stock compiled kernel issue: wifi don't work...
WiwiPouPou said:
I will, I'm very far from my PC for a few weeks again, I've used some commits :
https://github.com/rama982/android_kernel_xiaomi_msm8953/search?q=kcal&type=Commits
Source for pie is not pushed ?
Click to expand...
Click to collapse
Can you tell me what version of kernel you use whyle compile kernel? I tryed on new 9.11, but phone dont boot.
Maybe when you compile version be 9.10 or ealier.
becouse ramdisk and kernel image can conflict
I hope this can support settings for "display temperature" so that we dont need app for calibrating warmth or coolness of display
Current state:
Kernel builded.
Kcal included.
Wifi don't work , searching fix
artyom5613 said:
Current state:
Kernel builded.
Kcal included.
Wifi don't work , searching fix
Click to expand...
Click to collapse
Kcal is working ?
Strange for WiFi, module not compiled ?
WARNING:
This is not a post targeted to end users. It is a development reference. If you expect any installable download or even added features out of this thread, please close your browser. Thank you.
What is Umbrella?
Umbrella is a project that aims to make the kernel sources that HMD released for Nokia 8 Sirocco (A1N) compatible with the Nokia 8 (NB1). The idea behind this is to replace the outdated 8.0 kernel sources that HMD released for NB1 with more up to date ones that are used in the 9.0 builds for Nokia 8 Sirocco.
Why do this, you might ask. Well, the answer is simple: The devices are so similar that HMD / FIH already have their kernel sources in a shared source tree. You can validate that yourself, by downloading the kernel config from a stock NB1 kernel (under /proc/config.gz), unpacking it, and searching for the commended entry "CONFIG_FIH_A1N". What umbrella does is take the sources that were released for A1N, readd all device specific files for NB1 (they were pruned) from it's original kernel soure, and integrate the stock kernel config (also called defconf) from NB1.
Doing this also lead to some other small quality of life improvements that are not directly relevant to an end user.
Umbrella contains the latest changes from linux-stable (v4.4.179 at the time of writing, compared to the stock v4.4.153), and Qualcomms Codeaurora upstream
The WiFi driver from Qualcomm is compiled directly into the kernel, instead of being loaded as a module. This allows you to flash umbrella based kernels to every build version while keeping everything else working correctly. The stock kernels use signature enforcement, which means that the wifi module that is loaded from the system partition has to be signed against the kernel, which is not the case for every custom kernel or even the kernels that were built for a different security patch.
Unlike the officially released kernel sources, umbrella does not have stupid typos in it's device trees that cause the phone to display white bars on all of your screen etc.
Umbrella disables the block that FIH put in place to prevent users from rebooting into EDL mode from within android (using adb reboot edl).
Umbrella also includes a patch that causes the device to not reset it's entire memory when the kernel crashes, therefore retaining the last kernel output log, which can be used for debugging
You can compile the kernel with compilers newer than GCC 4.9 (not clang though), without having it immideately crash at boot.
It includes a tool that automatically sets up a crosscompiling environment for the kernel.
What Umbrella is not
Umbrella is not a project to add significant new features, or the ability to tweak things beyond what the stock kernel already offers (which is technically not that bad). It aims to be a reference kernel, a base for (potentially) other kernels that are based on it and add those features. I know that that is kind of a broad goal, considering I am the only one who seems to do actual development for this phone, but who knows. Having a lower entry level might help in case someone is curious and wants to get into kernel hacking. And I would certainly be happy if I wasn't the only one developing for this device.
If you want Umbrella to contain features like:
Overclocking
More governors / schedulers / whatever
Color / Sound / whatever control
Wakelock blocking
etc. etc. etc.
then please Alt-F4 your browser right now. Ok, don't do that but at least please don't request it because it will make you get ignored, nothing else.
Why the name Umbrella?
While I developed the initial prototype I watched through 3 Resident Evil movies, and this is kinda a zombie project, so I think the name fits quite well.
Why are you posting this?
I am posting this because I am hoping that it will be useful for anyone that would like to get into kernel development and tweaking without the hassle that comes with setting up the kernel sources that are released by HMD.
But, one disclaimer: I am not a kernel developer. I am a curious CS student suffering from a bad mix of too much time and stupid ideas that solve stupid problems. I am trying my best to produce something useful and be of help, but please don't expect wonders from me, thanks.
Links?
Source: https://github.com/resident-nokia/umbrella
Download: None, this is a development reference.
Looks promising
Sent from my NB1 using XDA Labs
Nice. this will likely be useful in the future
Updated the umbrella source to the latest 4.4.180 kernel, and May 07 CAF tag (LA.UM.7.4.r1-05100-8x98.0). Also readded some NB1 specific code where it was missing (discovered by doing a diff against the 5140 kernel source that Nokia recently released).
Just in case anyone actually cares about it
THMSP said:
Updated the umbrella source to the latest 4.4.180 kernel, and May 07 CAF tag (LA.UM.7.4.r1-05100-8x98.0). Also readded some NB1 specific code where it was missing (discovered by doing a diff against the 5140 kernel source that Nokia recently released).
Just in case anyone actually cares about it
Click to expand...
Click to collapse
I do. Who knows, in a year's time I might have enough knowledge to build a custom Rom for this phone
Kernel sources which is used on pie has been released officially. Finally, we have an "original" kernel and we've got closed one more step to custom roms.
https://www.nokia.com/phones/en_int/opensource/
techno_man000 said:
Kernel sources which is used on pie has been released officially. Finally, we have an "original" kernel and we've got closed one more step to custom roms.
https://www.nokia.com/phones/en_int/opensource/
Click to expand...
Click to collapse
@THMSP it would be interesting to let us know how different is your kernel mod from the newly released official pie kernel for Nokia 8
MDV106 said:
@THMSP it would be interesting to let us know how different is your kernel mod from the newly released official pie kernel for Nokia 8
Click to expand...
Click to collapse
As I described here: https://forum.xda-developers.com/nokia-8/development/official-source-code-releases-nokia-8-t3930324, they are identical. The only difference are the device tree files (which still contain typos that break the display), and of course all modifications I made to the sirocco kernel source that Umbrella is based on (wifi driver, EDL mode reactivation, upstreaming, etc.)
THMSP said:
As I described here: https://forum.xda-developers.com/nokia-8/development/official-source-code-releases-nokia-8-t3930324, they are identical. The only difference are the device tree files (which still contain typos that break the display), and of course all modifications I made to the sirocco kernel source that Umbrella is based on (wifi driver, EDL mode reactivation, upstreaming, etc.)
Click to expand...
Click to collapse
So, are these new codes broken like 4.84?
techno_man000 said:
So, are these new codes broken like 4.84?
Click to expand...
Click to collapse
I wouldn't call Nokia sources broken, but I would call them incomplete, outdated and impractical to work with. And that hasn't changed.
Iam currently building device tree for nokia 8..
Unable to figure out how to edit init folder specifically for nokia8
[email protected] said:
Iam currently building device tree for nokia 8..
Unable to figure out how to edit init folder specifically for nokia8
Click to expand...
Click to collapse
Please do so! We can't let this phone die so early!
which defconfig file should choose?
lk
[email protected] said:
which defconfig file should choose?
Click to expand...
Click to collapse
nb1_defconfig is for Nokia 8
Can somebody help me? I have built Lineage OS 16.0 for the Nokia 8 with the Umbrella Kernel. However I am facing issues with getting it into work. Firstly TWRP fails to flash it with error 7. I am including the recovery.log file in case anyone wants more detail. I then proceeded to extract the payload.bin file, and flashed boot.img and system.img seperately. However that didnt work either as my phone got stuck at the Bootloader unlocked warning screen. If anyone is interesteed I can upload the .zip outputed by the build
Device Tree: https://github.com/GPUCode/android_device_nokia_nb1
Recovery.log: https://hastebin.com/akohutiwed.sql
Thanks in advanced
emufan4568 said:
Can somebody help me? I have built Lineage OS 16.0 for the Nokia 8 with the Umbrella Kernel. However I am facing issues with getting it into work. Firstly TWRP fails to flash it with error 7. I am including the recovery.log file in case anyone wants more detail. I then proceeded to extract the payload.bin file, and flashed boot.img and system.img seperately. However that didnt work either as my phone got stuck at the Bootloader unlocked warning screen. If anyone is interesteed I can upload the .zip outputed by the build
Device Tree: https://github.com/GPUCode/android_device_nokia_nb1
Recovery.log: https://hastebin.com/akohutiwed.sql
Thanks in advanced
Click to expand...
Click to collapse
hey, did you wipe userdata before flashing this? I think you need to do that, like when switching to using GSIs.
also, have you checked this https://github.com/resident-nokia/twrp? Specifically the fstab file for NB1.
oaid said:
hey, did you wipe userdata before flashing this? I think you need to do that, like when switching to using GSIs.
Click to expand...
Click to collapse
Thanks for the suggestion. I have flashed GSIs before but never had any problems. Also I cannot find any userdata partition in TWRP. I asked in the Lineage OS discord and I was told that probably that TWRP image is broken. I am confused
emufan4568 said:
Thanks for the suggestion. I have flashed GSIs before but never had any problems. Also I cannot find any userdata partition in TWRP. I asked in the Lineage OS discord and I was told that probably that TWRP image is broken. I am confused
Click to expand...
Click to collapse
that's the data partition, if I'm not mistaken ?*
which twrp image are you using? Maybe try Dorian's latest?
oaid said:
that's the data partition, if I'm not mistaken ?*
which twrp image are you using? Maybe try Dorian's latest?
Click to expand...
Click to collapse
Yes I am using the latest TWRP. Before flashing I erased the data partition but still the error persisted