Hi all,
Following advices from the site I successfully compiled a custom kernel from sources, rebuilt boot.img and the ramdisk and flashed it on my S3: it works.
Now I want incrementally upgrade the Linux part using git and the sources at kernel.org, let say to patch the kernel on the disk with the linux online versions 3.0.50, 3.0.51 and so on up to the latest 3.0.100. Never used git before unfortunately
Can someone please point me to an example of the correct command-line to do that? From then on I'll sort the rest by myself, I promise, that would save me a lot of time and unnecessary troubles. Thank you very much.
PU
Look up "git-cherry-pick".
reS28raM said:
Hi all,
Following advices from the site I successfully compiled a custom kernel from sources, rebuilt boot.img and the ramdisk and flashed it on my S3: it works.
Now I want incrementally upgrade the Linux part using git and the sources at kernel.org, let say to patch the kernel on the disk with the linux online versions 3.0.50, 3.0.51 and so on up to the latest 3.0.100. Never used git before unfortunately
Can someone please point me to an example of the correct command-line to do that? From then on I'll sort the rest by myself, I promise, that would save me a lot of time and unnecessary troubles. Thank you very much.
PU
Click to expand...
Click to collapse
Look up "git merge". Also you have to add the tree from kernel.org.
Mine looks like such.
git merge linux/linux-3.4.y
CNexus said:
Look up "git-cherry-pick".
Click to expand...
Click to collapse
Hi mate, I am using your tools to build the images, thanks for that. I'll do
PwnCakes193 said:
Look up "git merge". Also you have to add the tree from kernel.org.
Mine looks like such.
git merge linux/linux-3.4.y
Click to expand...
Click to collapse
Thanks, I'll investigate both of your suggestions! Today it'll be a busy day.
reS28raM said:
Hi mate, I am using your tools to build the images, thanks for that. I'll do that
Thanks, I'll investigate both of your suggestions! Today it'll be a busy day.
Click to expand...
Click to collapse
No problem
You'll probably go with the suggestion after mine, git-cherry-pick is more to add one or a couple commits, rather than a whole mass of commits
Git-merge is for adding larger chunks of commits/merging branches, etc
Related
Hello everyone, I am new to compiling and building roms.. I have learned and read many compiling guides for basic knowledge..
My problem is syncing repo and downloading source code takes a lot to download..like near about 20 GB..!
Is there any trick or any option to minimize the download size..Because, I dont have a good internet connection.!
OJ said:
Hello everyone, I am new to compiling and building roms.. I have learned and read many compiling guides for basic knowledge..
My problem is syncing repo and downloading source code takes a lot to download..like near about 20 GB..!
Is there any trick or any option to minimize the download size..Because, I dont have a good internet connection.!
Click to expand...
Click to collapse
Edit the manifest, look in .repo/manifest.xml, there for example remove the prebuilt toolchains that do not match your system. (for example remove all darwin entries if you are not using a Mac) This saves you like a GB or so. other then that there are not many things you can remove that make a difference, as git is already compressed by itself in the first place.
and the source is not 20gb.. it's more like 6-9gb and unpacked (checked out) like 20gb
It's just very big, and there is not much that can be done about it actually.
broodplank1337 said:
Edit the manifest, look in .repo/manifest.xml, there for example remove the prebuilt toolchains that do not match your system. (for example remove all darwin entries if you are not using a Mac) This saves you like a GB or so. other then that there are not many things you can remove that make a difference, as git is already compressed by itself in the first place.
and the source is not 20gb.. it's more like 6-9gb and unpacked (checked out) like 20gb
It's just very big, and there is not much that can be done about it actually.
Click to expand...
Click to collapse
Ohh ok.. Thanks.. I will try.
OJ said:
Ohh ok.. Thanks.. I will try.
Click to expand...
Click to collapse
Plus, it's mainly going to be the first sync that's gonna use a lot of bandwidth/time/resources
after this you just sync the changes..
have a look at @reddevil's tutorial here in xda university..
shows you exactly what you need!
Since yesterday I'm downloading lineageos 15.1 https://wiki.lineageos.org using repo sync command
It has crossed 30GB and still downloading.
Edit:
2018 April 19th : Downloading has completed at 31GB Today.
Will the download of source resume if i terminate the download (ctrl+c) ?
ps: i'm using repo sync command. (initialized by lineage 14.1)
Because I don't have stable internet connection & power for the laptop.
Still Downloading
Currently downloaded 51 GB and is still downloading...
I was wondering when does it stop?!
UPDATE:
Took about 90 GB
SuperUs8r said:
Currently downloaded 51 GB and is still downloading...
I was wondering when does it stop?!
Click to expand...
Click to collapse
It has been known to take days to complete, depending on the system.
Sent from my SM-S767VL using Tapatalk
I am currently pulling the lineage os 15.1 repository and it is now over 26 GB so the source code is huge and you cannot change it
Hi, I'm currently trying to build AOSP for our device from source however I cannot figure out how to add device support, I've followed so many guides on editing the local_manifests.XML but I can't seem to get it to work.
Can any of our devs explain to me how to build AOSP with the addition of our device support? I'm not entirely worried about kernel ATM as our source was released so I will build that.
I just can't for the life of me add device support properly.. Could anyone link me to a guide or some other stuff to read? Google is very unhelpful when googling Linux related issues.
Edit - to clear up any confusion bottom line as of right now I basically need to know how to implement the device tree we already do have (several github links, mainly cm based) into my AOSP source.
Would I just technically copy the files into Google's already created device/vendor/ folders?
https://source.android.com/source/add-device.html using this link as reference. May be very bland.
christopherrrg said:
Hi, I'm currently trying to build AOSP for our device from source however I cannot figure out how to add device support, I've followed so many guides on editing the local_manifests.XML but I can't seem to get it to work.
Can any of our devs explain to me how to build AOSP with the addition of our device support? I'm not entirely worried about kernel ATM as our source was released so I will build that.
I just can't for the life of me add device support properly.. Could anyone link me to a guide or some other stuff to read? Google is very unhelpful when googling Linux related issues.
Edit - to clear up any confusion bottom line as of right now I basically need to know how to implement the device tree we already do have (several github links, mainly cm based) into my AOSP source.
Would I just technically copy the files into Google's already created device/vendor/ folders?
https://source.android.com/source/add-device.html using this link as reference. May be very bland.
Click to expand...
Click to collapse
Try building CyanogenMod instead. They have device specific instructions!
Sent from my MotoG3 using Tapatalk
am2012 said:
Try building CyanogenMod instead. They have device specific instructions!
Sent from my MotoG3 using Tapatalk
Click to expand...
Click to collapse
Ya you can dl the source for both the device and vendor ........copy them over to the source and you shouldn't have a problem
am2012 said:
Try building CyanogenMod instead. They have device specific instructions!
Sent from my MotoG3 using Tapatalk
Click to expand...
Click to collapse
he's trying to build aosp.. why would he build cyanogenmod?
HelpMeruth said:
he's trying to build aosp.. why would he build cyanogenmod?
Click to expand...
Click to collapse
Fair enough. I imagine as he posted this 6 months ago, he has been successful in his attempts!
Introduction
Hello all, I am bringing you this thread as a jumping off point to compiling kernels and working with upstream Linux. I will include a guide, some links, and some terms that will help you get started with modifying kernel source. This is also a good reference point for existing developers as I have consolidated all upstream patches into one repo. Let's get down into it!
What in the world is upstream Linux?
When an OEM sets up a device, they will pick a stable longterm branch from the Linux kernel to base their modifications around (drivers and such). In the case of Bullhead, they picked 3.10.73. Currently, the Linux kernel's 3.10 is updated to 3.10.105, as you can see on kernel.org. This means that Google is "missing" versions 3.10.74 to 3.10.105. Now, why does this matter? Well, the way that the Linux kernel runs its stable branches, the only things that get merged into there are bug fixes and security updates. That's it, there are no wonky features or unstable patches. The only way you get a patch into a stable branch is by having it be in the mainline branch first. Some developers have an aversion to adding upstream because they claim it is excessive and not necessary and they are partially right since not all the patches that come in are relevant to our architecture (arm64). However, upstream Linux is not unstable and by adding each version one at a time, you can verify this. I found only two patches between 3.10.73 and 3.10.105 that gave me issues and it is easy enough to either fix/revert them. Being up to date is good since you keep yourself protected from bugs and security issues that crop up. Google has been better about doing this lately with their monthly security updates but it never hurts to take matters into your own hands.
I suggest watching one of these talks given by Greg Kroah-Hartman, it is really interesting to see how the process goes:
https://www.youtube.com/watch?v=SPY0LyTU53w | https://www.youtube.com/watch?v=L2SED6sewRw
What did you do?
All I did was fetch the latest kernel.org patches from here and cherry pick them on top of the latest kernel source from Google.
I merge these patches by cherry-picking each version individually (3.10.73 to 3.10.74, 3.10.74 to 3.10.75, etc), that way I can verify that the kernel compiles fine and that there are no merge conflicts. Google will sometimes pick certain commits from upstream that are of a higher importance than others which can result in conflicts if you try to pick it again. Additionally, upstream might fix a bug one way and Google has done it another (which is not really good, Google should be pushing their fixes back to upstream so everything stays in sync).
What do I do with this?
I have created two repos below: one with the latest N security update branch with the latest upstream patches picked up on top of it (the bullhead-upstream branch) and another one with a plain AnyKernel source for you to modify (bullhead-stock is the most basic, bullhead-decrypt contains an fstab file that will disable both forced encryption and dm-verity). You are free to fork these or base other branches on them, that's the whole point of this post. I have verified that all the patches contain no major detectable issues. I would like some credit if you do use it but it's not required since the kernel is licensed under GPL Another reason I offer this is I have seen a lot of developers picking in upstream in patch sets, so you get one single commit for an upstream version. This is detrimental as you start to add your own patches as you cannot fully tell what was modified and for what reason without the individual commits. It might look cleaner but you don't get full history which hurts you in the long run.
Links
Kernel source: https://github.com/nathanchance/bullhead/tree/upstream-7.1.2
AnyKernel source: https://github.com/nathanchance/AnyKernel2/tree/bullhead-stock-decrypt
Toolchain source: https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/
How to compile
This will be a quick, step by step guide on how to compile this kernel from source. By using this process, you can start to make modifications to the kernel source and make a flashable zip.
Clone the kernel source, the AnyKernel source, and toolchain source
Code:
cd ~
mkdir Kernel && cd Kernel
git clone https://github.com/nathanchance/bullhead.git source
git clone https://github.com/nathanchance/AnyKernel2.git anykernel
git clone https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9 AOSP-4.9
Explanation:
First command: make sure you are in your home directory (or whatever directory you want to hold the kernel folder we are about to make.
Second command: make a Kernel folder and move into it
Third command: clone the kernel source from my repo into a folder named source
Fourth command: clone the AnyKernel source from my repo into a folder named anykernel
Fifth command: clone the Google 4.9 toolchain into a folder named AOSP-4.9
AnyKernel is the name of the zip we are going to make which allows the kernel to be flashed over any ROM.
A toolchain is a set of compiler tools that allow us to compile the kernel on any computer architecture.
Make sure you are on the correct branches
Code:
cd source && git checkout upstream-7.1.2
cd ../anykernel && git checkout bullhead-stock-decrypt
Explanation:
First command: move into the source directory and checkout the branch "upstream-7.1.2", which has all of the necessary patches in it.
Second command: move into the AnyKernel directory and checkout the branch "bullhead-decrypt". If you don't want to disable forced encryption, use the "bullhead-stock" branch.
Tell the compiler what you are are compiling
Code:
export CROSS_COMPILE=${HOME}/Kernel/AOSP-4.9/bin/aarch64-linux-android-
export ARCH=arm64 && export SUBARCH=arm64
make clean && make mrproper
make bullhead_defconfig
Explanation:
First command: point the compiler to the location of your toolchain. If you have done anything different with the folder locations, you will need to modify the "${HOME}/Kernel/AOSP-4.9" part.
Second command: tell the compiler which architecture we are compiling for. In this case, our device is an arm64 device.
Third command: clean out any compiled files and remove our previous defconfig.
Fourth command: tell the compiler which options we want in the kernel using the bullhead_defconfig.
A defconfig is a file that will tell the compiler which features we want in the kernel. No computer ever uses all of the options in the kernel since there are different drivers for various devices.
Make the kernel!
Code:
make -j$(nproc --all)
Explanation:
make tells the compiler to make the kernel (duh) and the -j$(nproc --all) tells the compiler to use the maximum number of cores your computer has available
Make the AnyKernel zip
Code:
cp -v arch/arm64/boot/Image.gz-dtb ../anykernel/zImage-dtb
cd ../anykernel
zip -r9 stock-upstream.zip * -x README stock-upstream.zip
Explanation:
First command: copies the completed kernel (Image.gz-dtb) into the AnyKernel folder
Second command: moves us into the AnyKernel folder
Third command: makes the zip file (named stock-upstream.zip) in the AnyKernel folder.
If you ever want to do this again, run these commands and go straight to step 3:
Code:
cd source && git clean -fxd && git pull
cd anykernel && git clean -fxd && git pull
NOTE: This thread is aimed to be a breeding ground for kernel development, a place to jump off if you will. I am happy to answer how to questions about building kernels or flashing the one I have provided but this is not supposed to be a general Q&A thread. Please use another thread or create your own in Q&A if you need assistance.
THIS. This is what I've been looking for ever since I bought and rooted my bullhead: an optimized stock kernel. I hope and pray that upstream patches are just the beginning, and later on, you'll have the time and inclination to add more optimizations. I don't care for other features. Just a kernel that works and performs is fine with me. If ever you need a tester for future builds, just give me a shout out and I'll be happy to assist. Thanks for sharing your work, mate.
I'd like to respectfully make a request. Talking a look at your Flash kernel thread and I found the optimizations I was referring to in my post above, namely:
Upstream Linux versions 3.10.74-3.10.103
Updated to the October security patch
Patches for some CVEs
Upstream patches from CAF and Linux
Compiled with the Linaro 6.2 toolchain, compiled regularly from Uber's source?*here
Makefile optimizations
Forced encryption and dm-verity disabled
If you can add these to the stock kernel, I'm pretty sure you'll find a user base for this setup (aside from me, of course). I'm sure a lot old timers like myself would a appreciate something that they can use right out of the box and not have to tinker with too much to get a good performance.
apatal said:
I'd like to respectfully make a request. Talking a look at your Flash kernel thread and I found the optimizations I was referring to in my post above, namely:
Upstream Linux versions 3.10.74-3.10.103
Updated to the October security patch
Patches for some CVEs
Upstream patches from CAF and Linux
Compiled with the Linaro 6.2 toolchain, compiled regularly from Uber's source?*here
Makefile optimizations
Forced encryption and dm-verity disabled
If you can add these to the stock kernel, I'm pretty sure you'll find a user base for this setup (aside from me, of course). I'm sure a lot old timers like myself would a appreciate something that they can use right out of the box and not have to tinker with too much to get a good performance.
Click to expand...
Click to collapse
This kernel is not meant to have anything other than the upstream Linux stuff, that's why it is labelled as reference. The only reason I include a kernel here at all is to prove that the additions are stable and cause no side effects. If you want those things, you can compile the kernel yourself (I can show you which patches and toolchain you would need).
Sent from my Nexus 6P using XDA Labs
The Flash said:
This kernel is not meant to have anything other than the upstream Linux stuff, that's why it is labelled as reference. The only reason I include a kernel here at all is to prove that the additions are stable and cause no side effects. If you want those things, you can compile the kernel yourself (I can show you which patches and toolchain you would need).
Click to expand...
Click to collapse
Noted with thanks! Great! When I get the time and resources to build my own kernel, I'll come back here for some pointers.
Btw, I saw a thread here about making your own ROM in the cloud. Is that something you can do as well for making a kernel?
apatal said:
Noted with thanks! Great! When I get the time and resources to build my own kernel, I'll come back here for some pointers.
Btw, I saw a thread here about making your own ROM in the cloud. Is that something you can do as well for making a kernel?
Click to expand...
Click to collapse
Definitely, I do all my building on a server.
The Flash said:
Definitely, I do all my building on a server.
Click to expand...
Click to collapse
Thanks! I'll take a look at it and see if I can figure it out.
Github and the kernel in the OP are updated to 3.10.104.
The Flash said:
Github and the kernel in the OP are updated to 3.10.104.
Click to expand...
Click to collapse
I supposed because of the upstream patch, third kernel already has the Dirty Cow fix, correct?
apatal said:
I supposed because of the upstream patch, third kernel already has the Dirty Cow fix, correct?
Click to expand...
Click to collapse
Yes.
Hi...Sir @The Flash,
This third command is Making FlashableZip?
OR
Non-FlashableZip?
•••
ZawZaw said:
Hi...Sir @The Flash,
This third command is Making FlashableZip?
OR
Non-FlashableZip?
•••
Click to expand...
Click to collapse
Flashable zip
The Flash said:
Flashable zip
Click to expand...
Click to collapse
Thanks Sir. :good:
3.10.105 released https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/log/?id=refs/tags/v3.10.105
Sent from my Nexus 5X using XDA-Developers Legacy app
tuhinxp04 said:
3.10.105 released https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/log/?id=refs/tags/v3.10.105
Click to expand...
Click to collapse
I am aware. I'm not actually doing this for this device anymore so there won't be an update.
Hi... @The Flash
I have one question, please reply me.
What is UBER?
UBER is a compliler as Google's ToolChain Prebuilt?
What different UBER and Google Toolchain?
I want to know,
Please explain me.
Thanks You Sir
•••
ZawZaw said:
Hi... @The Flash
I have one question, please reply me.
What is UBER?
UBER is a compliler as Google's ToolChain Prebuilt?
What different UBER and Google Toolchain?
I want to know,
Please explain me.
Thanks You Sir
•••
Click to expand...
Click to collapse
https://plus.google.com/+ChetKener/posts/YzMJEkzPQgp
The Flash said:
https://plus.google.com/+ChetKener/posts/YzMJEkzPQgp
Click to expand...
Click to collapse
Thanks You Sir.
•••
Hey @The Flash I've been reading through your "How to build Pure Nexus" thread and this thread and I believe that I have an understanding of how to properly setup an environment and compile a kernel for use. However, I still need some guidance as to how to pull commits from others sources and merge them into mine so that my kernel will have those features. The main features I want for my kernel are: LZ4 ramdisk compression (as seen in jollaman's and rachanta's kernels), F2FS compatibility, Overclocking for both the big and little clusters, and a kernel tick rate of 100Hz. If it is not too much to ask could you please show me an example of how to merge at least one of these features into my source so that when I compile my kernel it will have the feature?
HesThatGuy said:
Hey @The Flash I've been reading through your "How to build Pure Nexus" thread and this thread and I believe that I have an understanding of how to properly setup an environment and compile a kernel for use. However, I still need some guidance as to how to pull commits from others sources and merge them into mine so that my kernel will have those features. The main features I want for my kernel are: LZ4 ramdisk compression (as seen in jollaman's and rachanta's kernels), F2FS compatibility, Overclocking for both the big and little clusters, and a kernel tick rate of 100Hz. If it is not too much to ask could you please show me an example of how to merge at least one of these features into my source so that when I compile my kernel it will have the feature?
Click to expand...
Click to collapse
I can do overclocking because it is the easiest of those. Note that you will need some good git skills as well as fairly solid foundation of C to understand what is happening around the code when you run into conflicts.
1. Fetch the repo you want to get changes from (git fetch <url> <branch>)
Code:
git fetch https://github.com/Flash-Kernel/bullhead release-7.1.1
2. Find the commit hash you want to pick on Github and cherry-pick it
Code:
git cherry-pick e60c81d4839bb0f7efd3a79213467e7cbe77801d
3. If there are conflicts, it will make you resolved them first. You'll see conflict markers like so:
Code:
<<<<<<<<<< HEAD
STUFF THAT IS CURRENTLY THERE
==================
STUFF THAT IS EXPECTED TO BE THERE AFTER COMMIT
>>>>>>>>>>>>>
Sometimes, all the stuff that is currently there will be replaced by the stuff that is expected to be there. Other times, you'll have to be more fine about it and compare the diff on Github and see what is actually changing. It's a learned process, not really one that I can concretely teach.
Introduction
Hello everyone, these are some arm and arm64 toolchains I have compiled using a script created by @USBhost and modified by @frap129 and me. I know the concept of toolchains is not a new one, as there have been many specialized/optimized variants. However, some people may want a pure/unaltered toolchain for certain projects. That's what this will be, a generic/simple toolchain configuration. These will be done on a semi-nightly basis. They have been tested on up to date Arch Linux and Ubuntu 17.04 systems. If you know how to use scripts or cross compile, feel free to skip straight to the downloads!
Configuration
The GNU (standard or unlabeled) toolchains are built from GNU's latest gcc-7-branch. The Linaro toolchains are compiled from the linaro-local/gcc-7-integration-branch branch.
These are the additional components:
Code:
binutils 2.29.1
gmp 6.1.2
mpfr 3.1.5
mpc 1.0.3
isl 0.18
bionic r15c
Latest Linux Kernel headers (7318413077a5141a50a753b1fab687b7907eef16)
These toolchains are statically linked so they should work on any 64-bit Linux system; let me know if there are any issues with this.
Build script
These were compiled with crosstool-NG, which is extremely versatile but a little complex for the average user. Instead, I offer a build script in this repo to compile very similar toolchains (they will not be statically linked but that's no issue if you are only compiling on your machine and they won't have bionic). It has been modified heavily from the original repo to support two different architecture configurations (more can easily be added upon request).
To learn more about the script, give the README a glance, as it will be more up to date than the thread.
Using the toolchains
Please see the README.
Issues?
If you run into any issues with either using or compiling these toolchains, please do one of the following:
Open an issue on Github. Use the toolchains repo for issues with using, use the script repo for issues with compiling.
Make a post on here.
In both cases, I will require a detailed explanation of your system configuration, what you are compiling, and a FULL terminal output; without these, your problem will be ignored.
Credits
@USBhost: For the initial script and permission to make this thread
@frap129: For his modifications to the script
@MSF Jarvis: For testing the arm option
@kantjer: For testing the Ubuntu versions on Linux Mint
Reserved
Great stuff
nice, thank you ?
Sent from my LGLS676 using Tapatalk
Dude it took me days to get arm to build because of weird errors and you just added a flag that builds it?
frap129 said:
Dude it took me days to get arm to build because of weird errors and you just added a flag that builds it?
Click to expand...
Click to collapse
Yeah, all I did was target arm-linux-gnueabi and build the arm Linux headers and everything compiled just fine.
So linaro or standard, what's recommended?
And what flags do you suggest to use for ROM and kernel?
Any support for x86/x86_64 platform?
neobuddy89 said:
So linaro or standard, what's recommended?
And what flags do you suggest to use for ROM and kernel?
Click to expand...
Click to collapse
I personally use Linaro given all the work they do for the arm architecture. These are the flag I use for my kernel. I'd love to claim credit for them but @kwoktopus helped me with most of them
zainifame said:
Any support for x86/x86_64 platform?
Click to expand...
Click to collapse
I do not currently plan on it but if there is enough demand I can consider it.
The Flash said:
I personally use Linaro given all the work they do for the arm architecture. These are the flag I use for my kernel. I'd love to claim credit for them but @kwoktopus helped me with most of them
I do not currently plan on it but if there is enough demand I can consider it.
Click to expand...
Click to collapse
Hope u support the x86/x86_64 platform
The Flash said:
I do not currently plan on it but if there is enough demand I can consider it.
Click to expand...
Click to collapse
X86_64 is theoretically already supported.
All you need to do is Target x86_64 and choose what version then done.
Like what was done for arm
USBhost said:
X86_64 is theoretically already supported.
All you need to do is Target x86_64 and choose what version then done.
Click to expand...
Click to collapse
True, I can add an option to the script. I assumed he was referring to the prebuilts
what's recommended? btw great stuff
Dreamstar said:
what's recommended? btw great stuff
Click to expand...
Click to collapse
I don't really recommend anything other than trying both variants and seeing which one you like.
Great stuff on XDA after a long time good work
Hi, can I use it to compile my rom based on LineageOS 14.1? I started to develop my own rom recently and now I wanted to try changing the toolchain.
zibiksior said:
Hi, can I use it to compile my rom based on LineageOS 14.1? I started to develop my own rom recently and now I wanted to try changing the toolchain.
Click to expand...
Click to collapse
Mostly will not be able to compile a ROM with this but give it a try. It for sure can compile the inline kernel.
Just a brief update, the build script still works perfectly fine but I will start compiling the provided toolchains with crosstool-NG as I can make the toolchains statically linked, meaning that they should work with all versions of Linux. It will also be easier for me to manage and tarballs will be smaller. I will try to have this done tomorrow, given Linaro just released their updated snapshot source
The Flash said:
Mostly will not be able to compile a ROM with this but give it a try. It for sure can compile the inline kernel.
Just a brief update, the build script still works perfectly fine but I will start compiling the provided toolchains with crosstool-NG as I can make the toolchains statically linked, meaning that they should work with all versions of Linux. It will also be easier for me to manage and tarballs will be smaller. I will try to have this done tomorrow, given Linaro just released their updated snapshot source
Click to expand...
Click to collapse
Ok, I undertstand can you instead point me some link with prebuild toolchains which I can use to compile my rom? I connot find any... Or meybe some manual how to compile appropriate version of toolchain?
20170520 toolchains are now uploaded!
As I mentioned before, they are compiled with crosstool-NG so that it's easier for me to update. Furthermore, the toolchains are much smaller now so they're easier to download and they're statically linked so they *should* work when any updated form of Linux. Let me know of any issues and enjoy!
Nice stuff indeed, thanks
Btw i've once been told that gnueabi and androideabi are slightly different, would it be okay to compile android kernels with gnueabi?
Coconut Kernel for HAVOC OS - With Nethunter Support
Code:
***I'm not responsible for any problems that might occur flashing this kernel or what you do with the kernel support***
This kernel is tested on HAVOC OS 2.2 - 2.4 PIE. This is built from HolyDragon Source with added nethunter support/USB Wifi Adapter Drivers and monitor mode/packet injection
The kernel should also work on every ROM that Holydragon kernel supports.
Requirements
Oxygen OS 5.0.8 firmware is required. The wifi adapter wont work on older firmwares. Those who are using Havoc OS would most probably be on 5.0.8 firmware so this is just a remainder for others and/or anyone who have trouble making this work.
How to install
Make sure that you are rooted with magisk/supersu/any superuser
Download kernel from attachment and flash in TWRP Recovery
Reboot and download any terminal app like Termux
Plugin the USB Wifi card and open Termux
Type the command su
Then type ifconfig wlan1 up
This is how you can test whether it works or not
The kernel works fine with Nethunter as well as other chroot applications like Linux Deploy.
Note:- This kernel does not need any module to be inserted as all wifi drivers are compiled inline. So no need to insmod/modprobe
Credits
@HolyAngel for HolyDragon Kernel Source
Source
https://gitlab.com/HolyAngel/OP3
Thanks sir, this weekend, I test and i say you if I have a problem, but surely not, at this moment it is the kernel that I have but without the controller. I want to learn to compile the kernel on my own so that, in case HolyAngel updates the kernel, it dosn't depend on your work.
Victroid said:
Thanks sir, this weekend, I test and i say you if I have a problem, but surely not, at this moment it is the kernel that I have but without the controller. I want to learn to compile the kernel on my own so that, in case HolyAngel updates the kernel, it dosn't depend on your work.
Click to expand...
Click to collapse
https://forum.xda-developers.com/an...erence-how-to-compile-android-kernel-t3627297
Follow the tutorial above for kernel building.
@fredrickz
Any future build for stock oos pie like your Oreo one, it was perfect man thank you for your efforts regard to the community.?
DoN LoUhI said:
@fredrickz
Any future build for stock oos pie like your Oreo one, it was perfect man thank you for your efforts regard to the community.
Click to expand...
Click to collapse
Stock oos pie source isn't available yet man. I can build pie version from holydragon sources. I'll compile one when stock sources arw available too.
fredrickz said:
Stock oos pie source isn't available yet man. I can build pie version from holydragon sources. I'll compile one when stock sources arw available too.
Click to expand...
Click to collapse
Fair enough, thank YOU:laugh::good:
You explicitly mention this:
This is built from HolyDragon Source with added nethunter support/USB Wifi Adapter Drivers and monitor mode/packet injection
Click to expand...
Click to collapse
And the kernel source points to:
https://gitlab.com/HolyAngel/OP3
Click to expand...
Click to collapse
This can only mean 2 things:
1) you've merely taken holydragon kernel source and renamed it as your own or
2) you're actually breaking the GPL here by not releasing your changes
So which one is it?
And this leaves me no doubt that the second is very likely the case:
Note:- This kernel does not need any module to be inserted as all wifi drivers are compiled inline. So no need to insmod/modprobe
Click to expand...
Click to collapse
@Fredricks
It would be more than appreciated if you could add support for HID brother. Thanks:crying:
anupritaisno1 said:
You explicitly mention this:
And the kernel source points to:
This can only mean 2 things:
1) you've merely taken holydragon kernel source and renamed it as your own or
2) you're actually breaking the GPL here by not releasing your changes
So which one is it?
And this leaves me no doubt that the second is very likely the case:
Click to expand...
Click to collapse
I dont want to break any gpl.. the thing is that all my changes are local. Im not used to github. This kernel and all others i posted werr just for my own use. I have been using @ZaneZam kernel for oneplus3. But the Oreo kernel wasnt working fine. Thats the reason i tried to compile one my own. I shared it with a friend of mine some time ago and he insisted that i should post it so that others may also benefit. The kernel i posted doesn't have tonnes of feature list because i mostly stick to stock. I just added the wifi drivers and was using them. My friend asked me to add support for DriveDroid and i just did that. I don't know much about git and didnt have time to learn.
If this is against the rules then maybe ill post the source later. Im currently out of town.
for now if you want to know what changes i did,
1. Prepare the kernel for standalone build (except holydragon kernel)
2. Added just the wifi drivers mentioned in the nethunter wiki. I didnt add support for usb Bluetooth or sdr.
3. Added support for DriveDroid from official post in xda making changes to adapt the code to 3.18 kernel.
4. Added a fancy name to the kernel.
5. Published it.
DoN LoUhI said:
@Fredricks
It would be more than appreciated if you could add support for HID brother. Thanks:crying:
Click to expand...
Click to collapse
Im out of town bro. Ill add it when i reach home.
fredrickz said:
Im out of town bro. Ill add it when i reach home.
Click to expand...
Click to collapse
Very thankful, have a good time..:good: