[Dev] Kexec support for Gen8 kernel - Gen8 Android Development

Hi,
You will found here the kernel source tree archos-gpl-gen8-kernel with kexec support.
Tested on A101IT.

Awesome, will have to look into this as I've been trying to get kexecboot up and running. I want to be able to boot Ubuntu with a different kernel than Android, and so far it hasn't worked.
Edit: How are you compiling this kernel? I copied linux.config to .config and ran:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j9
and it errors on
drivers/usb/storage/archos_hdd.c: At top level:
drivers/usb/storage/archos_hdd.c:30:27: fatal error: ../../scsi/sd.h: No such file or directory
EDIT again:
Change the <>'s to ""'s in the line in archos_hdd.c:
#include <../../scsi/sd.h>
Also apply this patch http://mailman.alsa-project.org/pipermail/alsa-devel/2009-May/016949.html
Then it should compile on the arm-linux-gnueabi-gcc compiler that Ubuntu ships using the above command. I have tested this on my A43 and it works perfectly, I booted Debian and ran the kexecboot bootloader (compiled from source on the device), it booted a 2.6.37+ kernel. You need the kexec-tools package installed for Debian.

CalcProgrammer1 said:
Edit: How are you compiling this kernel? I copied linux.config to .config and ran:
Click to expand...
Click to collapse
Compiled in archos buildroot env
CalcProgrammer1 said:
Then it should compile on the arm-linux-gnueabi-gcc compiler that Ubuntu ships using the above command. I have tested this on my A43 and it works perfectly, I booted Debian and ran the kexecboot bootloader (compiled from source on the device), it booted a 2.6.37+ kernel. You need the kexec-tools package installed for Debian.
Click to expand...
Click to collapse
Good to hear.
Between a mirror of kernel source code is available on gitorious
And for those who would to test, you can download zImage and initramfs.cpio.gz
Edit:
After flashing these files, and boot in sde you will have the recovery menu plus a Kexec boot item where upload a zImage and initramfs.cpio.gz corresponding to system you want to execute

sorry to re-vamp an old thread. but i'm trying to compile 2.6.37 kernels from buildroot environments and failing. very frustrating since all of the scripts download 10 million different things and are out of date.. so now i'm testing other kernels trying to find repo's that actually build.
i compiled the kernel from your repository successfully. built the modules as well. i extracted the default openaos initramfs, repacked adding in the 2.6.29 modules from the kernel build. flashed the new zImage and initramfs.cpio.gz via SDE. when i turn on the 70it it's a black screen then eventually reboots after about 5 seconds. i can't download the ones you've posted because the links are more than likely down now. any other kernels you would recommend?
alephzain said:
Compiled in archos buildroot env
Good to hear.
Between a mirror of kernel source code is available on gitorious
And for those who would to test, you can download zImage and initramfs.cpio.gz
Edit:
After flashing these files, and boot in sde you will have the recovery menu plus a Kexec boot item where upload a zImage and initramfs.cpio.gz corresponding to system you want to execute
Click to expand...
Click to collapse

I have a small guide here for building kboot http://dev.openaos.org/wiki/LubuntuGen8#Buildingkboot,
It should also work for original sources. I just cloned his repo, and made one small adjustment for booting straight into chroots with openaos boot menu.
divx118
allenelson said:
sorry to re-vamp an old thread. but i'm trying to compile 2.6.37 kernels from buildroot environments and failing. very frustrating since all of the scripts download 10 million different things and are out of date.. so now i'm testing other kernels trying to find repo's that actually build.
i compiled the kernel from your repository successfully. built the modules as well. i extracted the default openaos initramfs, repacked adding in the 2.6.29 modules from the kernel build. flashed the new zImage and initramfs.cpio.gz via SDE. when i turn on the 70it it's a black screen then eventually reboots after about 5 seconds. i can't download the ones you've posted because the links are more than likely down now. any other kernels you would recommend?
Click to expand...
Click to collapse

Related

[Q] [SOLVED] How to Modify/Recompile/Rebuild a Kernel

Hi everyone.
I'd really like to know the steps to modify, recompile and finally build a kernel zip to flash on our O1.
For instance, I'm downloading the ThunderG Kernel from mik_os here: https://github.com/mik9/ThunderG-Kernel
But I really dont know how to procede.
The programming language seems to be C++, but...
Which compiler should I use to compile it?
The source code is 100+ Mb sized, how can I build the kernel in a simple zip to let me flash it through custom recovery?
I'm really new to all this, I've little experience in C/C++/Java programming, and I'd really like to know how to procede.
An example of initial use I'm interested in, is summing up various fixes from different kernel's and make a unique kernel to flash on my phone.
For the real example:
This: http://forum.xda-developers.com/showthread.php?t=929941
plus this: http://forum.xda-developers.com/showpost.php?p=11166426&postcount=47 (waiting for source from the author)
I'd be really glad to see a newbie (not completely ^^) step-by-step guide doing everything from Windows platform.
I already read other topics on this argument, but none of them had a real guide that could be useful to anyone.
I want to thank you in advance
I'm interested too!
To start with change ur pc os to ubuntu 10.10
ccdreadcc said:
To start with change ur pc os to ubuntu 10.10
Click to expand...
Click to collapse
Couldn't Compiling and building a source code be done from any platform?
As far as I know it should (though I'm not an expert ^^).
I'd like to know if this can be done from Windows, as I'm not planning to change os at the moment
You can always use a Live CD of Ubuntu 10.10.
badeaioan said:
You can always use a Live CD of Ubuntu 10.10.
Click to expand...
Click to collapse
That's not the problem, I already installed Ubuntu other times, but I did a complete format these days and I'm not planning to install it anymore for now.
I still believe that I dont need it to compile a C/C++ source
I'd like to know the steps so I can say it surely.
If Linux is absolutely needed, I just want to know
I thing, that it can be possible compile on other system (cygwin + compilers, library, ...) but you will must download huge dependent software/library/source code. It probably will have same size as whole system :-/
Ok you convinced me, let's say I want to do it on ubuntu, could someone make a guide for everyone?
that would be great!
Sent from my LG-P500 using XDA App
I use gcc for compiling stuff. How to turn the compiled stuff into a package (for flashing) however, is what I don't know
What I would also like to know is how to incorporate a kernel into a ROM. That would shed some light. Thanks to whoever answers this!
The ThunderG package includes a lot of things, do I have to compile the "kernel" folder only to build a kernel for flash?
I really don't know how to procede... ^^
I'm installing Ubuntu 10.10 right now trough wubi..
Sippolo said:
Couldn't Compiling and building a source code be done from any platform?
Click to expand...
Click to collapse
No, especially the kernel source code makes heavily use of filename case sensitivity.
In linux abcd.e and abcD.e are different files- in windows they are not.
Extract a linux Kernel in windows and you will see what I mean.
So even if you got the cross compilers and libs together you will not be able to compile the kernel.
Cygwin is a way- but you could also run XUbuntu with VirtualBox which easier.
The best and fastest is a native linux system.
Sippolo said:
The ThunderG package includes a lot of things, do I have to compile the "kernel" folder only to build a kernel for flash?
Click to expand...
Click to collapse
Get the android ndk, extract it and append the folder with "arm-eabi-gcc" to your system path (export PATH=$PATH:"$NDKPATH/toolchains/arm-eabi-4.4.0/prebuilt/linux-x86/bin").
Extract Thunderg_Kernel.tar.gz, go to the directory and run "make thunderg-perf_defconfig" that will create a .config for the kernel. Or grab your O1 config from /proc/config.gz (per adb, ftp server app, copy with file manager to sd card...) and move it to $kerneldir/.config.
Have a look at "make menuconfig" and then try "make zImage".
Maybe you must install a few dependencies with synaptic (when you are using ubuntu).
kpbotbot said:
I use gcc for compiling stuff. How to turn the compiled stuff into a package (for flashing) however, is what I don't know
What I would also like to know is how to incorporate a kernel into a ROM. That would shed some light. Thanks to whoever answers this!
Click to expand...
Click to collapse
Load mik_os' touchscreen fixed kernel and extract the zip file.
Delete the cert* and manifest* files under META-INF.
Change the zImage under Kernel maybe the kernel modules (system/lib/modules) too.
ZIP it all together again (directory structure must be the same as in mik_os' zip).
To sign read this: http://www.robmcghee.com/android/creating-an-android-update-zip-package/
or this: http://www.londatiga.net/it/how-to-sign-apk-zip-files/
hello, first of all to compile a kernel you need to config this kernel (enabling the drivers you are intersted in, kernel tweaks... and so on)
to do that (on linux) go to your kernel directory and run this command
make menuconfig
this would run the gui config for the kernel where you can configure the kernel.
anyway every board or device has it's own configureations os the kernel can handel the hw on this device you can start gussing what are the right configurations for the P500 which is not an option at all hehehe
or you can use the predefind config included in the Thunderg kernel
to use that config go to the kernel folder and run this command
make thunderg-perf_defconfig
this command will configure the kernel with the predefind configuration
after that you need to compile the kernel using a cross platform compiler, the machine you are working on is x86 but P500 mobile have an ARM cpu so you can't just compile the kernel for your machine and run it on the mobile to do that find a cross compiler on the net (i use the CodeSourcery) then compile your kernel using this command
make CROSS_COMPILE={path to the corss compiler bin}
after finishing the compile process (first time it would take a while) you will find a file called "zImage" which is the kernel for the ARM cpu under the directory arch/arm/boot inside your kernel directory
then to flash that image to your device you need to create your own ROM and sign it then flash it using the coustom recovery.
hopt that this info is useful and sorry for any wrong information
Thanks everyone
I found out that android ndk solution was much easier and straightforward.
Now I've my zImage ready in "ThunderG-Source/arch/arm/boot/" directory (not in the kernel directory as waleedq stated?).
Now I cant understand the meaning of "signing" my kernel to a custom ROM, I'm using the custom recovery from http://forum.xda-developers.com/showthread.php?t=844483
I've read the two articles above about signing an application .apk to your rom and generate an update package.
But here I dont have an apk but a zImage which I really dont know how to use ^^
Isn't there a way to directly create the kernel update zip file and flash it with custom recovery?
P.S. Surfing on the web I found this link, might be useful to someone: part1: http://lazydroid.com/2010/06/how-to-compile-kernel-part-1/ part2: http://lazydroid.com/2010/06/how-to-compile-kernel-part-2/ It just explains what you have already explained though
Sippolo said:
Thanks everyone
I found out that android ndk solution was much easier and straightforward.
Now I've my zImage ready in "ThunderG-Source/arch/arm/boot/" directory (not in the kernel directory as waleedq stated?).
Click to expand...
Click to collapse
Your "kernel" directory has the name "ThunderG-Source"
It is all ok- waleedg didn't mean the "kernel/kernel" directory
Sippolo said:
Isn't there a way to directly create the kernel update zip file and flash it with custom recovery?
Click to expand...
Click to collapse
Read my post more thoroughly (I have edited it)
Yeah I did understand what you wrote in that reply, just was wondering what is "signing" actually, but I found out when doing it
Now I've my signed kernel update to flash
I used the SignApk jar program to do it, it's fast and I've everything already done and ready for future signing (certificate and key must not be remade each time as far as I see, I just need to sign each new zip with the already present certificate/key).
Thank you everyone, now I'm finally done with this request, it's solved
Side Question to waleedq: will you publish the code of your workaround for axis inversion? I'm curious which source file handle these things, should be /drivers/input/touchscreen/mcs6000_ts.c, am I wrong?
Sippolo said:
Yeah I did understand what you wrote in that reply, just was wondering what is "signing" actually, but I found out when doing it
Now I've my signed kernel update to flash
I used the SignApk jar program to do it, it's fast and I've everything already done and ready for future signing (certificate and key must not be remade each time as far as I see, I just need to sign each new zip with the already present certificate/key).
Thank you everyone, now I'm finally done with this request, it's solved
Side Question to waleedq: will you publish the code of your workaround for axis inversion? I'm curious which source file handle these things, should be /drivers/input/touchscreen/mcs6000_ts.c, am I wrong?
Click to expand...
Click to collapse
yes i am publishing the code , today if i got some spare time
and about the mcs6000_ts.c yes this is the driver that handel our screen
here is the workaround source code
https://github.com/waleedq/ThunderG-Kernel/blob/thunderg_oc/drivers/input/touchscreen/mcs6000_ts.c
i just forked nik_os kernel and added my workaround code to it so now all the features are implemented
waleedq said:
here is the workaround source code
https://github.com/waleedq/ThunderG-Kernel/blob/thunderg_oc/drivers/input/touchscreen/mcs6000_ts.c
i just forked nik_os kernel and added my workaround code to it so now all the features are implemented
Click to expand...
Click to collapse
That's perfect, thank you
you are welcome my friend hope that someone will make it better than this stage

[Q] Compile bcm4329 as built-in?

I was following some guide to compile pershoot's kernel, and I compiled everything as built-in and disabled module support. After I installed the new kernel, the wifi can not be turned on. Any suggestions? (I'd really love to have a all-in-one kernel without "modprobe" things)
Thanks in advance.
You may want to check out Clemsyn's kernels. He typically builds his as all in ones.
Thanks. I've tried all Clemsyn's latest kernels (with Calkulin's ROM, if that matters) and none will boot (stucked at the viewsonic birds logo). I am not sure if that is related to OC... but I still need a kernel that has nls-gb2312/utf8 support.
Interestingly, I unzipped Clemsyn's kernel zip and found his /system/ also has bcm4329.ko as a module. Is it true that wifi driver must be compiled as module to work?
I saw my adb logs that Wifiservices is complaining about driver not available. I assume this must be a failure of "modprobe". How can I manually enable the wifi? Is there some equivalent command like "ifup wifi"?
It seems android wifi.c is making a hardwired assumption that wlan0 driver is compiled as kernel module. To support all-built-in kernel, I must recompile android as well. Could someone point a link to HOWTO-style guide for compiling android 2.2 from scratch? Preferably Calkune's ROM.
Thanks!

once CONFIG_VT=y, the kernel will use initramfs(should be off)

I am not booting android, I am tring to boot a debian armhf (a linux distrubution) in mmcblk1p2(not chroot)
Without CONFIG_VT=y,I can't use X(I wonder how android work without tty)
Befote I set it to y,the rootfs will be mounted,and will not use initramfs(I have set nointrd and off initramfs supported in kernel,only give a empty initramfs to abootimg)
this file kern72588354.txt is the kern.log in /var/log ,whose kernel without CONFIG_VT
the other file is the /proc/last_kmsg ,whose kernel with CONFIG_VT
In fact,I use UUID to define the rootfs,it seems,mounted,but initramfs is also loaded,then it won't use the /sbin/init in rootfs,and it will use the init in initramfs(because initramfs is loaded first)
This post had better move to developer part,but i can post there
Shooteru
hizukiayaka said:
I am not booting android, I am tring to boot a debian in mmcbl1p2(not chroot)
Without CONFIG_VT=y,I can't use X(I wonder how android work without tty)
Befote I set it to y,the rootfs will be mounted,and will not use initramfs(I have set nointrd and off initramfs supported in kernel,only give a empty initramfs to abootimg)
this file kern72588354.txt is the kern.log in /var/log ,whose kernel wothout CONFIG_VT
the other file is the /proc/last_kmsg ,whose kernel with CONFIG_VT
In fact,I use UUID to define the rootfs,it seems,mounted,but initramfs is also loaded,then it won't use the /sbin/init in rootfs,and it will use the init in initramfs(because initramfs is loaded first)
This post had better move to developer part,but i can post there
Shooteru
Click to expand...
Click to collapse
What is this?
Sent from my PG86100 using Tapatalk 2
ssojyeti2 said:
What is this?
Sent from my PG86100 using Tapatalk 2
Click to expand...
Click to collapse
I don't know, but this dude sounds like a real developer
yousefak said:
I don't know, but this dude sounds like a real developer
Click to expand...
Click to collapse
He's asking a question pertaining to booting debian (a Linux distro) on his phone. I'm afraid I can't be of any help other than to clarify that though.
Sent from my EVO 3D S using xda premium
I'm not sure if I'm understanding your question correctly, but it's giving you an error about your header there. Have you tried just packing the ramdisk and init files with the zImage?
packing the ramdisk and init files with the zImage?
what is it?
Do you mean that I should use a initramfs(but not android one,a normal linux one made by initramfs-tools)?
In that case,I think I have tried once before,the same result.
I wonder why kernel will load the initramfs in the boot partition,does the bootloader let kernel do that?
I even flash the bootimg to boot partition,no use.
It's possible the bootloader is doing something to it. If you are using 'fastboot boot boot.img' it's usually expecting a specially packed zImage & ramdisk, but I'm not sure if it's the hboot or kernel that expects it.
See: http://android-dls.com/wiki/index.php?title=HOWTO:_Unpack%2C_Edit%2C_and_Re-Pack_Boot_Images
I have little experience working with kernels though, so hopefully someone more knowledgeable with them will be able to help more.
I knew it,that is why I use abootimg to make a android img,but maybe there is no error in kernel,only in bootloader.
But I wonder why once set CONFIG_VT=y,then it will happen.
Maybe I should know how android show gui without tty
Maybe I should modify lk_bootloader fisrt(only fbcon part need),let fastboot boot it,then let lk_bootloader boot my kernel.lol,am I all right.

Asus Zenwatch 2 (Sparrow) - How to get rebuilt kernel work (need framebuffer console)

Hello XDA developers,
First of all my motivation to write here is to create a commandline GNU/Linux-like UI (and maybe add desktop GUI later) on the Asus Zenwatch 2, so I could see the kernel messages at bootup and use Midnight Commander without starting the entire main system (for example, get a text-mode shell and stop after every devices got initialized, firmwares got loaded, but before loading any Surfaceflinger and Dalvik stuff). I did similar thing on an Android tablet before by writing my own keyboard and touchscreen handlers based on Yaft. But that didn't help with boot-time kernel messages and the built-in framebuffer console in the kernel is probably much better. It's not enabled in the stock kernel, so I tried to recompile the Sparrow kernel from source (I didn't modify the default configs yet). After some tweaks to the kernel-source (which doesn't compile without them) I could build the Momentum-kernel and the stock Sparrow-kernel too using the provided .config files (e.g: make sparrow_defconfig). I used Android NDK's r13b gcc on Lubuntu 18.04, because an earlier attempt with NDK r18b wanted to use clang and compilation stopped early with errors.
My problem is that despite the kernel finally got compiled it doesn't seem to start at all. (I had similar experience with the Android-kernel in the past, but more success with Raspberry PI)...
I used mkbootimg to repack the generated zImage-dtb and the previously decompressed initrd into a boot.img, and ran fastboot boot on it, but booting simply stucked at fastboot screen, the animated ASUS logo never came in.
Can anyone point me into the right direction how I could troubleshoot further why the kernel doesn't work?
(I assume the 4.9 gcc isn't the issue here, though I got a zImage with slightly different filesize. I've read somewhere the earlier 14.04 Ubuntu and 4.8 gcc is advised for Sparrow kernel compilation but do these versions matter here? Should I replace the modules too on the system partition with their newly built versions, as the zImage changed?)
I know others managed to build a working kernel, for example TWRP has its own custom kernel and it works fine on the Sparrow watch... Is there any step I might have missed? Is there a debug-tool or logging which helps me to find out why the kernel doesn't boot? Something to troubleshoot the kernel-loading and booting? (A simulator for example? Or how do the experts do it in practice?)
I hope I declared every aspects to get some help. If for some reason I don't succeed I might try to make more linux-like AsteroidOS or PostmarketOS to get my complete Linux console on the smartwatch. The thing is that these don't support all hardware on the watch, that's why I'm trying with Android in the first place.
I guess if I'll be able to compile and then run the stock original kernel somehow the rest will be easy. (To enable framebuffer-console, set governors, remove unnecessary drivers, etc.)
Thanks in advance for the help, XDA gurus...

Question Instructions for compiling android 10 based twrp 3.5.2. Want to collaborate?

Hi everyone
I've been working on getting twrp to boot on our borneo device for a week or so, borrowed I the device tree made by mistersmee for the g9 power since the two devices are almost completely the same
https://github.com/TeamWin/android_device_motorola_cebu
heres where I'm at:
https://github.com/touchpro/twrp_device_motorola_borneo
The only thing I cant seem to get working is the touchscreen. I realize others have tried before me already and had the same non working touchscreen, I believe the majority of us have an Ilitek touchscreen while others have focaltech or nova. I got the driver framework up and recognizing it exists from dmesg output but cant seem to get any actual touch input to register. You can look at my changes to android 11 twrp in the github above by selecting branch twrp-android-11 and using a diff program. I use meld in ubuntu.
if you want to build for yourself and help out: (i'd use ubuntu 20.04, i tried 20.10 first but one of the packages is too new and doesnt like the toolchain)
follow the instructions here to set up your build environment
mkdir twrp (you can name this whatever you want)
cd twrp
repo init --depth=1 -u git://github.com/minimal-manifest-twrp/platform_manifest_twrp_omni.git -b twrp-10.0
repo sync
add the device tree above to twrp/device/motorola/borneo
also add this to device in twrp/device/qcom/twrp-common
make your changes inside device/motorola/borneo then
. build/envsetup.sh
export LC_ALL=C
lunch omni_borneo-eng
mka -jx clobber && mka -jx recoveryimage (-jx is number of cores you have, i have quad core i7 with hyperthreading so i use -j8. personal preference really)
your completed build will be in twrp/out/target/product/borneo as recovery.img
reboot to fastboot (adb reboot bootloader) and type
fastboot boot recovery.img
see if your changes worked! look forward to seeing what you guys can do
mine for later
Have not had the time to toss together a build environment for this, since I'd have set up the entire OS and beyond for that task, since my only Linux is Garuda in a much too small VM that is nowhere near right for that., been only hacking my way through it with Android Image Kitchen in Windows and some other utilities to get touch support in my 3.5.2.10-0 cebu source image.
It works perfectly if booted into TWRP just takes about 30-seconds before touch enables itself fully, but not when flashed (fastboot or applied internally via DD, or using a modified TWRP zip via Magisk that has had my ramdisk swapped into it).
When flashed, touch simply will not function, so something is obviously not being carried over properly so when being loaded from the recovery partition it seems, despite it being the exact same ramdisk (I extracted the recovery img, pulled out my ramdisk, popped it back into a whole new image, booted it and it had touch, so I know it's supposed to have the data there but likely needs a full from the ground up build of TWRP to behave on flashed installs.
@whoshotjr2006, had any more luck with your building of it? I can test or anything you may need in your own efforts, but just have no time for the actual building of it to tinker.
Oh, and thought you should know this works if you were wanting to go RW for System, but you'll have to use Linux due to falling prey to Error 73 https://forum.xda-developers.com/t/script-android-10-universal-mount-system-r-w-read-write.4247311/. I put mine back because it didn't seem to behave quite right there, but could be useful in your own tinkering.
OK, got it where it is fully flashable and bootable with touch for mine. Used Android Image Kitchen, unpacked TWRP image that boots with touch working, copied out the kernel and ramdisk from split_img folder, extracted stock recovery, replaced those 2 items with properly renamed versions and then repacked it with --original argument, and then it boots and flashes properly. Just a quick hack on it, but functional for those that need it.
This should be easy to combine in your /vendor/lib/modules from your own, as well as /vendor/firmware as long as you're rooted to pull it, into your TWRP ramdisk before putting it into the stock recovery this way. So you can get fully functioning touch for any display type in use.
whoshotjr2006 said:
Hi everyone
I've been working on getting twrp to boot on our borneo device for a week or so, borrowed I the device tree made by mistersmee for the g9 power since the two devices are almost completely the same
https://github.com/TeamWin/android_device_motorola_cebu
heres where I'm at:
https://github.com/touchpro/twrp_device_motorola_borneo
The only thing I cant seem to get working is the touchscreen. I realize others have tried before me already and had the same non working touchscreen, I believe the majority of us have an Ilitek touchscreen while others have focaltech or nova. I got the driver framework up and recognizing it exists from dmesg output but cant seem to get any actual touch input to register. You can look at my changes to android 11 twrp in the github above by selecting branch twrp-android-11 and using a diff program. I use meld in ubuntu.
if you want to build for yourself and help out: (i'd use ubuntu 20.04, i tried 20.10 first but one of the packages is too new and doesnt like the toolchain)
follow the instructions here to set up your build environment
mkdir twrp (you can name this whatever you want)
cd twrp
repo init --depth=1 -u git://github.com/minimal-manifest-twrp/platform_manifest_twrp_omni.git -b twrp-10.0
repo sync
add the device tree above to twrp/device/motorola/borneo
also add this to device in twrp/device/qcom/twrp-common
make your changes inside device/motorola/borneo then
. build/envsetup.sh
export LC_ALL=C
lunch omni_borneo-eng
mka -jx clobber && mka -jx recoveryimage (-jx is number of cores you have, i have quad core i7 with hyperthreading so i use -j8. personal preference really)
your completed build will be in twrp/out/target/product/borneo as recovery.img
reboot to fastboot (adb reboot bootloader) and type
fastboot boot recovery.img
see if your changes worked! look forward to seeing what you guys can do
Click to expand...
Click to collapse
finally having time to try to build an environment. Making a generic VM and will post it when done and easy to use, but running into some issues in my getting it to a point to test its success even. The steps you provided, missed a needed command "sudo ln -s /usr/bin/python3 /usr/bin/python" if using the 20.04 Ubuntu. But then how do you "add the device tree" as you put it? I'm normally a repacker to get things working, versus building things. I'm sure downloading the zip of the code and loading it into those folders is bound to break something as it always does when it comes to using links and ramdisks.
Perhaps you can provide more clear instructions of what you mean by that and I could finally gladly be able to contribute to this as more than a hackish throw-together process, since the description you provided "add the device tree" yields no meaningful results for any process for that to be pieced together from other builders.
git clone -b main https://github.com/touchpro/twrp_device_motorola_borneo.git
or you can just download the zip from my github, the only time it breaks symlinks so far that i know of is when you download a kernel in a zip file instead of git cloning it
take the twrp_device_motorola_borneo files and put them in /device/motorola/borneo and you should be good to go
whoshotjr2006 said:
repo init --depth=1 -u git://github.com/minimal-manifest-twrp/platform_manifest_twrp_omni.git -b twrp-10.0
Click to expand...
Click to collapse
That won't work, as it doesn't seem to have a twrp-10.0 as it looks to be depreciated, https://github.com/minimal-manifest-twrp/platform_manifest_twrp_omni/tree/twrp-10.0-deprecated. How'd you get yours, or did you mean 9.0?
repo init --depth=1 -u git://github.com/minimal-manifest-twrp/platform_manifest_twrp_omni.git -b twrp-10.0-deprecated
Twrp has always been built in an omnirom build environment but with a11 they switched to being built in an aosp environment. Twrp-10.0-deprecated they recently renamed to add the deprecated tag on but thats the one for android 10 that I initially used
Got my build environment set up and can upload the image in a bit if anyone wants it. @whoshotjr2006
using your steps it builds, but even having modified the firmware and modules to include the changes I put into mine to have it have touch support, it still will not. But the hacked android image kitchen one works just fine, which makes absolutely no sense when there are no errors, only warnings reported, but even those all look to be minor type casting of variables that I've noticed.
remind me again where you found that twrp that youve used android image kitchen on? was it from moto g9 power or another device? if you can let me know ill look through device trees and see what they have that we dont
seems like maybe its not insmod'ing the .ko file for your touchscreen, or it is and your touchscreen needs a firmware check/update at load. you'll have to remind me again which touchscreen you have (sorry its been a minute i've been busy) and we can look through other's device trees at the firmware loading portion
whoshotjr2006 said:
remind me again where you found that twrp that youve used android image kitchen on? was it from moto g9 power or another device? if you can let me know ill look through device trees and see what they have that we dont
seems like maybe its not insmod'ing the .ko file for your touchscreen, or it is and your touchscreen needs a firmware check/update at load. you'll have to remind me again which touchscreen you have (sorry its been a minute i've been busy) and we can look through other's device trees at the firmware loading portion
Click to expand...
Click to collapse
Source I used in AIK was cebu's 3.5.2.10-0 from https://twrp.me/motorola/motorolamotog9power.html. used AIK to unpack it.
To get touch using my quick hack, I just dropped in my matching .bin's from /vendor/firmware plus my ilitek_fw.bin to go with their novatech*.bin's and NT36xxx_MP_Setting_Criteria_601E.csv in place of their NT36xxx_MP_Setting_Criteria_6026.csv (deleted theirs).
Then also popped in my /vendor/lib/modules (minus audio ones).
At that point in tinkering it boots with touch. But fails to keep touch on booting into recovery.
Then I stumbled upon some obscure guidance about something in the kernel in recovery not initializing the touch on some devices and potentially being able to hex edit it after manually extracting the kernel using a hex editor. And then unpacked my booting version again, saw the kernel already separated out and pulled that and my ramdisk from split_image folder. cleaned up. unpacked the stock recovery. replaced with appropriately named kernel and ramdisk files and used the repack --original. Flashed it and it booted with perfect touch, just takes about 30-seconds on start before it's responsive. I have mine encrypted still so must input a passcode and just tap on the log button a few times till I know it's working then input my code and off it goes working normally.
Should not have anything too crazy different. I think the only thing I did was delete the etc file from the cebu, replacing it with an etc folder with a recovery.fstab and twrp.fstab I had scavenged from @svoc 's 3.4.0.0 (https://forum.xda-developers.com/t/working-twrp-but-very-unofficial-but-very-useful.4313665/ of which touch did not work for me, but it booted perfectly enough to extract my firmware and lib modules initially to put into my 3.5.2.10-0). Since every time I'd use Android Image kitchen to extract the cebu image it complained about things in /etc, and that was the only difference I could find between 3.5.2.10-0 and the 3.4.0.0. That is the only potential thing I did that could be of unknown consequence.
whoshotjr2006 said:
(sorry its been a minute i've been busy)
Click to expand...
Click to collapse
And never be sorry, you're helping out here, we understand, just like if you're waiting on a response back, that you're as understanding too
Compiled, touch working when booting it. Only change I made was to add my files as I outlined before, but into the firmware and lib folders respectively, but also edited the load_ts_firmware.sh to ensure nova and chiptone are no longer commented out. Flashed and has touch fully working as well. So it should be an easy build if I can get it working.
Edit: And touch does not take 30+ seconds per the 3.4.0.0 @svoc version I believe because it's not re-flashing the display code. So that could be why some perm lose touch, and I just got VERY lucky with mine to not.
Yes you are right all I did was put the touch screen driver in the twrp and send it to you that is why it takes less then 30 secs to do no need to recomile it each time just add your files in it and rezip it

Categories

Resources