I'm curently using LineageOS 17, but I want to build a custom kernel to get some drivers done, so got the source at https://github.com/exynos8895/android_kernel_samsung_universal8895/ added `ARCH=arm64`, `CROSS_COMPILE=aarch64-linux-android-`, `CC=clang`.
So it builds, it generates this image, `unpack` replace the `zImage` then `repack`. It doesn't work, it doesn't even update the `/proc/last_kmsg`.
Also to ensure it was not my tooling that was broken, I used the same clang version as the lineageos one, clang-r353983c1 and tried to swap kernels between different boot.img(the lineage one and the rzkernel) it did work, so what in hell is happening? There is any trick? Signing it with some magic?
zImage below,
https://mega.nz/file/astFzIgQ#EDdd5fyEcOhfEJOgmRoDtv8DRwarMPcgqWKVxol-Q5E
Related
https://github.com/StarKissed/starkissed-kernel-ekgc100
This repository will include the kernel source from the "Update 1" version of the kernel.
The compile instructions included with the source do not cover making any modifications to the kernel and the previous thread seems to mirror those instructions, so this one will be dedicated to creating custom kernels.
The buildKernel.sh script is fairly straight forward to demonstrate the process, but the config files have a few eccentricities when building the wifi. When loading the config during the build, there are prompts for the bcmdhd parameters that are not referenced anywhere, as the system image does not include any bcmdhd firmware files.
The repository includes a generic ramdisk, as none is provided. Odin flashes the boot.img as a compiled file, so the ramdisk cannot be merged during install like most phones do to maintain the current version. A key note to this is that modules are built into the boot.img ramdisk, which is confusing not coming from any device that does not require Odin.
Edit: The last comment on ramdisk flashing during the install may soon be resolved. There are compatible tools to pack a ramdisk made for the recovery platforms, allowing those items to be included in a zip with the kernel. All that is needed is a custom recovery and that is in the works.
Multirom allows the use of the external sd card to have several rom's "installed" and swap between them via a menu at bootup (similar to the grub menu under linux). It uses a custom version of twrp which also allows normal backup and restore of the rom's in question. @petrov.0 @Unjustified Dev and anyone else qualified.....would you consider reviewing this as a possible future project? With the ability of the idol3 to use large 128gb sd cards it would make a great tool for rom testing.
https://github.com/Tasssadar/multirom/wiki/Porting-MultiROM
It would appear we have the necessary prerequisites:
Prerequisites
Android 4.1+ tree
TWRP ported to your device.
Kernel sources
@famewolf Now that my device is on the way I want to go ahead and answer this question. It's possible although we face a challenge as the kexec tools that tasssadar uses lack support for arm64. Me and Steel01 on xda will be working on getting upstream tools working for arm64 in Android. It requires we backport upstream kernel patches as well. If we can succeed, I see no reason why we couldn't get kexec hardboot working. The issue we face with the idol 3 is that there's no stock kernel made for all variants that works and has source available. So that means you'll have to have a custom ROM as primary and stock as secondary since the primary ROM needs kexec hardboot to chainload the secondary ROMs kernel.
Exciting!
Unjustified Dev said:
@famewolf Now that my device is on the way I want to go ahead and answer this question. It's possible although we face a challenge as the kexec tools that tasssadar uses lack support for arm64. Me and Steel01 on xda will be working on getting upstream tools working for arm64 in Android. It requires we backport upstream kernel patches as well. If we can succeed, I see no reason why we couldn't get kexec hardboot working. The issue we face with the idol 3 is that there's no stock kernel made for all variants that works and has source available. So that means you'll have to have a custom ROM as primary and stock as secondary since the primary ROM needs kexec hardboot to chainload the secondary ROMs kernel.
Click to expand...
Click to collapse
Exactly which Kernels are you and @petrov.0 using?
Hello,
Recently I downloaded the LineageOS 14.1 source code. I made some changes using IntelliJ but I find it a little cumbersome to test the source I wrote due to the following reasons:
1. I must always build the rom (building time around 20-25 minutes).
2. I have to reboot into recovery to flash the new rom
Is there any easier way to partially build the modified source and flash the changes to the device without rebooting?
I'm currently trying to build latest AEX with most recent device/vendor/kernel trees (based on CarbonROM's), and I'm encountering issues with NFC.
With Sjll's device/vendor tree and Sjll's kernel tree NFC worked fine. However, using the same trees with cryptomilk's kernel tree NFC never worked.
When using CarbonROM's device/vendor trees as a base, NFC works with CarbonROM itself (using CarbonROM/cryptomilk's kernel tree), but not usable on other ROMs (the trees need to be modified when building other ROMs such as AEX, but regardless of using Sjll's or CarbonROM/cryptomilk's kernel tree, NFC won't work there).
I see things like these in the logcat indicating something critical happened (see attachments, note that the original file contained some special characters which might not be able to be copy-pasted when I made the excerpts).
Not sure how to get NFC working on AEX using CarbonROM's trees (other features appear to be working correctly), as I'm considering using it as a base for future builds, since it doesn't appear to have the issue of the phone overheating, freezing and rebooting during startup stage (or when the device's not getting proper signal), and can boot without issues most of the times.
EDIT: I saw CarbonROM's tree specified a pn553 for the ro.vendor.nfc.ko parameter (this parameter is not present on Sjll's device tree). However, the logcat indicated the presence of a PN54X NFC chips, as some NFC-related logs begin with PN54X. Not sure if these drivers are universal, but from what I googled so far PN54x and PN55x are indeed different NFC chips.
EDIT: Not sure if this might be related, but apparently the common-treble tree (which other device trees depended on) referenced things from /device/generic/common, which included /device/generic/common/nfc/libnfc-nci.conf. The /device/generic trees (common and architecture-specific ones) were removed by AEX in their manifest, and I need to revert the removal in a local manifest in order to build successfully.
so yeah, i trying to build lineage os 20 to boot on both xperia 1 and 5, but right now it didn't boot. based on testers
here's the proof
xperia 5 :
https://github.com/lolipuru/device_sony_bahamut
https://github.com/lolipuru/vendor_sony_bahamut
xperia 1 :
https://github.com/lolipuru/device_sony_griffin
https://github.com/lolipuru/vendor_sony_griffin
kumano common tree :
https://github.com/lolipuru/device_sony_sm8150-common
https://github.com/lolipuru/vendor_sony_sm8150-common
kernel :
https://github.com/lolipuru/kernel_sony_sm8150
these tree is very different than currently tree, due to no longer rely on stock vendor. and camera already fix to works with newer android
first time i tried it give me black screen , with hwcomposer 2.4 not running. but with rebased tree it didn't boot at all (and both tree are rebased on same pdx206, which i currently own.)
without pstore or console ramoops it's hard to know the real issues
should i open donation to buy device (xperia 1 or 5 is fine, since it share same hardware) to fix the issues? (i already have tester, but seem like i need ramoops or console ramoops log for point out the real issues)
actually i didn't want to open for donation, until ferdian (who maintain xperia 1 twrp), told me to try)
I build kernel for griffin with both your kernel source and Sjll's kernel source.
I found a strange(?) thing: If I build kernel without "techpack/audio", everything works well expect audio (Yep, drop audio kernel so audio dead), but If I build kernel with "techpack/audio", then I got bootloop, surfaceflinger and hwcomposer dead.
This is TOO Strange.....I tested on my Xperia 1 (802SO), not only your kernel source but also Sjll's kernel source have this issue.
And another strange thing is that the kernel source is working well for bahamut (Xperia 5) :\
Okay, I just find that two strange things.So I guess here are something strange with Sony's Open Archive
Do you need dmesg or something else? I got griffin but I have no idea with this issue.
RealNoobKanger said:
I build kernel for griffin with both your kernel source and Sjll's kernel source.
I found a strange(?) thing: If I build kernel without "techpack/audio", everything works well expect audio (Yep, drop audio kernel so audio dead), but If I build kernel with "techpack/audio", then I got bootloop, surfaceflinger and hwcomposer dead.
This is TOO Strange.....I tested on my Xperia 1 (802SO), not only your kernel source but also Sjll's kernel source have this issue.
And another strange thing is that the kernel source is working well for bahamut (Xperia 5) :\
Okay, I just find that two strange things.So I guess here are something strange with Sony's Open Archive
Do you need dmesg or something else? I got griffin but I have no idea with this issue.
Click to expand...
Click to collapse
Sjll source have main issues,
first, it's mostly modify kernel with stock dtb (due to rom built "without" vendor at all, so it still using stock vendor)
second, even you manage to fix it. but most of blobs are pretty outdated now (espepcially camera blobs, you still need to do a manually patch)
i tried with full source build, yea. it booted but blacked screen due to hwc 2.4 isn't running at all. (when i was address all missing blobs, it doesn't boot)
* kernel is pretty fine, it can boot to twrp but i didn't want to use it (due to nature of a/b twrp, so it broke many things if you use with sjll source.) so i tell ferdian to do an installer script
i already have a chat with creamdraft and bbn about this, seem like that issues isn't easy to deal with