[HELP][DEVICE-TREE] Can I use A Kernel To Make a Device Tree ?? - General Questions and Answers

I was trying to build a device tree for my tablet cause I found no rom for it and I stumbled upon the kernel for its processor "OFFICAL OPEN SOURCE" and I thought Is there a way to use it to help me make the Device tree ??

Related

How do I add a device to the aosp system tree?

I'm trying to build a custom rom using custom device Kernel and Vendor directories of my device that have been ported to android 4.0.4
and was wondering how to get aosp to recognise them.
When I run build/envsetup.sh it loads my device and the lunch command recognised it. ( iv added my device dirs everywhere I can think of in the system folder.)
when I go to build it says my device must be defined and I'm unsure of how to do this. this is my first time trying to build a from from source and any help will be greatly appreciated.
Could someone in detail explain how to add my device properly?
The name of my device is ancora_tmo
Sent from my Galaxy Exhibit running Jocala's CM9
IRX120 said:
I'm trying to build a custom rom using custom device Kernel and Vendor directories of my device that have been ported to android 4.0.4
and was wondering how to get aosp to recognise them.
When I run build/envsetup.sh it loads my device and the lunch command recognised it. ( iv added my device dirs everywhere I can think of in the system folder.)
when I go to build it says my device must be defined and I'm unsure of how to do this. this is my first time trying to build a from from source and any help will be greatly appreciated.
Could someone in detail explain how to add my device properly?
The name of my device is ancora_tmo
Sent from my Galaxy Exhibit running Jocala's CM9
Click to expand...
Click to collapse
Maybe you can trie to use this
Put you device tree in the [RED](working[/RED] directory)/device/samsung/ancora_tmo
[RED]. Build/envsetup.sh [/RED]
Then
[RED]lunch full_ancora_tmo-userdebug[/RED]
Then proceed with the build

[FAQ/HOWTO] An introduction to how-to-build a kernel for MT6589

Hi guys,
I was working on this since some time and here it is
Please read FAQ first
FAQ :
Can I compile a MT6589 kernel for every phone ?
As you know, a MT6589 kernel won't fit in every MT6589 smartphone because of specific configs/files in the kernel source tree.
So, if you compile my kernel which is expected to work on a Faea F2S don't expect it to work on a Acer Liquid E3 for example.
Conclusion : You have to get the kernel source for your phone​
How can I check my kernel source ?
Of course, this is not enough to see "source code for ZTE N986", you have to check if it's full or not and if it works.
Most people don't know what is working kernel source. You just have to read the GPL guidelines that every manufacturer have to complain with :
“ The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. ”
The part which has not to be included is the toolchain but there should reference to it (which toolchain to use)
For MT6589 kernel, the toolchains arm-eabi-4.6 and arm-linux-androideabi-4.6 should be used. (mtk used arm-linux-androideabi-4.6 for kernel but it should be arm-eabi-4.6)
So now you know which toolchain to grab and then for kernel source you have to check this minimal structure :
bionic
kernel
mediatek
build
config
custom
kernel
platform​README​
If I have kernel source, can I build it for my device ?
Erm... Sometimes the structure is here but the kernel source is messy... Why ?
Because you were not provided the matching source of the kernel used on your smartphone and the reasons are multiple (I won't give details).
So, the idea is to run a first build. If you get errors, then check the step above about toolchain and structure.
The next step for fixing errors is to play with source. Good luck for that.​
What are the benefits of a custom kernel for MT6589 ?
First big benefit is to introduce kitkat compatibility because there was an issue on android binder driver in mtk kernel source.
Next benefit is to be able to remove some stuff from mtk which is useless on user side and waste ressources (a lot of debug for example).
Others benefits will be in optimizations or new features (see frandom for example)​
HOWTO :
Build from my repo (specific devices supported) - It's not for compiling your kernel source but to understand how kernel build works​I explain how to build from my repo first because it can help you to understand how you should build kernel source
Prerequisites : A build environment (actually Ubuntu Saucy x64 with build-essentials, ccache, repo, java, perl v5.14+ and openssl) and I won't explain how to get one as there is multiple howto on the net.
For repo, the idea is to create a bin directory in your $HOME (usually /home/accountname/), copy repo binary inside it and then add this bin to $PATH var.
BE CAREFULL TO WHAT YOU DO WITH $PATH VAR ! I always see people doing :
Code:
export PATH=/home/foo/bin
this is erasing $PATH var, just check before and after with echo $PATH
So the idea is to introduce your path AFTER the actual $PATH var
This is easy...
Code:
export PATH=[COLOR="red"]$PATH:[/COLOR]/home/foo/bin
And of course, $PATH is reset once you close terminal and I won't explain how to set $PATH automatically.
Once you got this, everything should be working and it will be easy
Code:
mkdir workdir
cd workdir
repo init -u https://github.com/Dr-Shadow/android_kernel_mt6589_manifest.git -b master
repo sync
Then you should get this in your workdir :
kernel
manifest
mtk-tools
out
ramdisk
scripts
toolchain​Just do :
Code:
cd kernel
./certificates.sh
./build.sh
./certificates.sh is needed only once (it's for signing flashable zip and it will setup some keys for it, just reply to questions and don't add passphrase)
And of course, the build.sh contains most things you need to know on steps for building kernel (which commands to use) and you need to know how it works ​Build from your own kernel source​
I'm building the doc... I have to remind which vars need to be overriden
Reserved
Reserved #2
Thanks for making this thread brother it will help us to learn... Subscribed
Looking forward to the how-to to build with your own kernel source.
Dr-Shadow said:
Hi guys,
I was working on this since some time and here it is
Click to expand...
Click to collapse
Thank you Dr-Shadow! This is very cool. I'm going to try it out!
Great
It's always nice to see further development on MTK Based Devices.
Regards
I'll chip in and say thanks too. Finally getting around to trying to compile Alcatel's OneTouch Hero (aka TCL Y910) provided sources.
I might be in as well with A820, but I'm relatively new to Android and have only done porting of 4.1 and 4.2 so far.
Haven't built anything although I have some knowledge about the source code and SDK, which I've only used for reference purposes and the tools from it.
Will try to compile the stock kernel this weekend, but I'm not quite sure if something else is needed, even if the kernel source seems complete to me.
I'm a quick learner and have a lot of programming experience in other technologies, even thought I'm more of a front-end developer these days.

can anyone offer help to a newbie plz.

I know that this source is not Lineage but I would think the basic principles for building for an supported device under Lineage would also be applicable to any other source repository.
All of the guides I have found only tell you how to build for a supported device and not any help for an unsupported one. I figured out how to sync a suitable device tree and kernel etc but since the rom source repository does not support my device I can't go any further. I can't get it to build from my sync'd local sources it keeps trying to pull stuff from the original source repository so builds fail at the start.
I have setup a local manifest for this project that sync's the device tree and a kernel and the proprietary blobs and this sync completes without error. next I ran - source build/envsetup.sh and then brunch hlte (not a supported device I know) but that throws up this error -
build/core/product_config.mk:248: * Can not locate config makefile for product "gzosp_hlte". Stop.
Device hlte not found. Attempting to retrieve device repository from GZOSP-Devices Github (http://github.com/GZOSP-Devices).
Repository for hlte not found in the GZOSP-Devices Github repository list.
If this is in error, you may need to manually add it to your .repo/local_manifests/gzosp_manifest.xml
build/core/product_config.mk:248: * Can not locate config makefile for product "gzosp_hlte". Stop.
So I think that the error basically means that github.com/GZOSP-Devices does not have the hlte device listed so can anyone tell me how to make the build point to my local repository after I have sync'd so that it at least starts to build ?
I am a newbie to rom building and have much to learn but I would really appreciate any help you guys could give.
Thanks in advance for any an all help offered.

[HELP] Porting Treble to a Relatively Old Device

Before I start, here's what I have and what I don't have:
What I have:
BLU R1 PLUS
BLU R1 PLUS Kernel Source
A possible port device (An Intex Infie 3, to use the vendor from)
Experience with the linux command line
What I DO NOT have:
A kernel source for the Intex Infie 3
Now for the explaination:
I found several ARM64 devices and vendors, however the kernel source for my device is ARMv7 (even though the SoC is ARMv8).
I soon learnt that trying to build an ARM64 kernel would be a waste of time, so I decided to go searching for the needle in a haystack (which of course was another device, with android Oreo and an ARM kernel+vendor) I eventually found this Intex Infie device which I noticed did not have any arm64-related prop lines and ONLY had the zygote32 in boot.img
However I then discovered that even if the vendor would work, Marshmallow drivers in the stock kernel for the BLU R1 Plus will cause issues to boot any GSI because of the many changes between android versions AND I need "Binderised HALs"
I intend to use my cache partition as the vendor partition (which of course, I'll have to add early mount to the DTB in the kernel for)
I struggle with kernel editing and compiling as this is my first shot at developing for an unknown or unpopular device.
What I'm asking for:
I'm not asking for it to be done for me, but rather a hand that can point me in the right direction that would at least allow me to boot a GSI.​

Toolchain and kbuild config help

Hello I have been trying to extract the kernel from Tucana android 10 source. I would like to know if anyone has a working config to be able to build up the kernel.
I have a config but it does not extract everything, well I don't think it does and would like to know what toolchain is best for Xiaomi devices. Been using Google's AOSP toolchain from pre-builts and I can build the kernel. It becomes 16mb for Image.gz-dtb I flash it using fastboot boot Image.gz-dtb and phone boots to splash screen but does not go any further. Is it normal?
This thread has the config and information https://forum.xda-developers.com/t/my-experience-building-the-tucana-kernel.4240985/
I think this is the solution
How To Use
Xiaomi Mobile Phone Kernel OpenSource. Contribute to MiCode/Xiaomi_Kernel_OpenSource development by creating an account on GitHub.
github.com
Taken from above source link.
need this in order to get the device files for the xiaomi mobile of your choice in the android revision branch of your choice.
Dont think I can use AOSP untill i use this to first get the kernel files built and then able to use the same files with AOSP.
Download Qualcomm Android Enablement Project​
Acutally, this step is optional. But this project integrates many tools such as cross compiler which are required for building our kernel. Of course you can use your own tools to compile kernel, but it may be a tough work to configure.
You can download the whole QAEP on Codeaurora
Can indeed confirm that you need the project from Codeaurora instead of AOSP. it has the platform SM6150. over 100+GB download though.
Make sure when after choosing the release branch with your device and about to sync. only use a max of 3 processors. no more then 3. Codeaurora has a bandwidth limiter. so the more you have the longer it will take.
Tested the theory myself.
Downloaded first time, took 9 hours with max -jN then restricted the -jN to -j3, process for over 100GB took only an hour.

Categories

Resources