[TUTORIAL][VIDEO]KernelANDROID[LINARO][SABERMOD][NDK]build from source - Android Software Development

Here is a complete tutorial about:Android Kernel(compile)+ Linaro/Sabermod/NDK.​
//In the future I will add a tutorial related to undervolt., overclock, cpu governor, and others.(only Snapdragon CPU)
Kernel Features HERE
Youtube channel(if you have troubles).
Part 1: vmware+ubuntu+Installing the required files:
Linaro
Part 2: download kernel source files+ setup toolchain+jdk+abootimg
Part 3: kernel+ boot.img file
Part 4: test
Part 2/3 SABERMOD
Part 2/3 Android NDK
More:
extract .config via ADB:
compile-speed:
dump boot.img:
Change bootimg.cfg size-hex:
Create boot.img via script.sh. Much faster!!!
Linaro vs NDK:
I'll keep you updated, so stay tuned ​

Reserved

Thank you so much for this guide! before people had to learn from strictly written ones and it was difficult for a lot of us to pick up
oh and congrats on Portal feature!

Thank you for this guide . I can wait to try it .
Sent from my GT-I9100G using XDA Premium 4 mobile app

Sorry if its already been answered but can I use Ubuntu 14.04 to do this? what advantage does 12.04 have?

You can use either Ubuntu 14. However this does not affect anything(about kernel). But I preferred the version 12 because it is more popular, and if problems "arise", it's easier to find solutions.

!
great tutorials! any chnce of one compiling with GCC?
also man! YOUR COMPUTE IS ON STEROIDS!!!

Maybe, but in summer(I'm still busy with school). GCC needs to be changed in Part II.
also man! YOUR COMPUTE IS ON STEROIDS!!!
Click to expand...
Click to collapse
Configuration is:
Asus k53sv
-Intel Core I7 2630QM
-12 GB Ram (1333 mhz cl9)
-HDD: 750GB WD Black;
-GPU Intel HD 3000+Nvidia GT540M 2gb ddr3;
+1080p tv(monitor) but only for tutorials.

srsdani said:
Maybe, but in summer(I'm still busy with school). GCC needs to be changed in Part II.
Configuration is:
Asus k53sv
-Intel Core I7 2630QM
-12 GB Ram (1333 mhz cl9)
-HDD: 750GB WD Black;
-GPU Intel HD 3000+Nvidia GT540M 2gb ddr3;
+1080p tv(monitor) but only for tutorials.
Click to expand...
Click to collapse
yeah ive been having problems with GCC on ubuntu 14.04, on my last installation(also 14.04) all compiled fine, yet this fresh installation theres no errors but doesnt boot(stock unmodified sources) :/

What's your device? Some have a slightly different configuration(Samsung or Sony/Sony Ericsson etc.).

srsdani said:
What's your device? Some have a slightly different configuration(Samsung or Sony/Sony Ericsson etc.).
Click to expand...
Click to collapse
after days of troubleshooting i finally just found the problem..
i had exported PATH to JDK 8 in my .bashrc, i just compiled and it worked
thanks to your video making me look in .bashrc!
LEGEND!!!!

Ricky Divjakovski said:
after days of troubleshooting i finally just found the problem..
i had exported PATH to JDK 8 in my .bashrc, i just compiled and it worked
thanks to your video making me look in .bashrc!
LEGEND!!!!
Click to expand...
Click to collapse
Can this work for my s4 I9506 stock kernel

Kind of over complicated?
No need to modify .bashrc to build kernels, also nautilus-open-terminal, and synaptic arent needed in any way for kernel compilation and its kinda bad practice to auto accept with sudo apt-get install -y.
Also I dont think java is needed to build kernels (since they are mostly C and assembly code), but oracle java 6 is usually what is recommended for android builds.
Basically all you really need to do is install the required packages, download kernel source and desired toolchain, then run these lines in terminal to get your zImage-
export ARCH=arm
export CROSS_COMPILE= <directory to toolchain>
make <your kernel default config>
make -j<number of threads>
That way makes it much easier to try out different toolchains and toolchain versions

Buddy, mention clearly of which device u r using, n on which device it will work.:laugh: by the way nice work

Niku-Droid said:
Buddy, mention clearly of which device u r using, n on which device it will work.:laugh: by the way nice work
Click to expand...
Click to collapse
kernel building for different devices is pretty much all the same, all that differs is the kernel source, defconfig and sometimes a few extra commits to work with linaro toolchain. And if you use the arch specific toolchains you need to pick the right one for your device

metalspring said:
kernel building for different devices is pretty much all the same, all that differs is the kernel source, defconfig and sometimes a few extra commits to work with linaro toolchain. And if you use the arch specific toolchains you need to pick the right one for your device
Click to expand...
Click to collapse
Yea, buddy, but he should mention about which device is he using, so it would give us a brief idea, that what we have to do.

Niku-Droid said:
Yea, buddy, but he should mention about which device is he using, so it would give us a brief idea, that what we have to do.
Click to expand...
Click to collapse
Device: Acer Cloudmobile s500
Cpu snapdragon s4 krait dual—core 1.5 ghz
Gpu Adreno 225;
1gb ram
8 mp camera+1.9 mb front;
1460 mah battery
Hd 720p display

Very nice tutorial. I just got into building from source. Yesterday shortly before you posted this, I have successfully compiled a ROM for the first time. Also can you add the link to the other tutorial when it's done on this thread?

can anyone just post the video links they are not opening on my mobile , are they on YouTube so I can DL them for future reference
Thanks

Look great will be looking into tutorials

Related

[Q] want to compile CM7 - easy dev

So i would like to edit easy Dev to compile CM7 but I'm a linux newbie. I'm not afraid to admit it. Currently i'm on Ubuntu 10.10 Netbook remix, just running it off of a pendrive. How hard would it be to edit it to compile CM7 instead of CM6?
It IS Lupus said:
So i would like to edit easy Dev to compile CM7 but I'm a linux newbie. I'm not afraid to admit it. Currently i'm on Ubuntu 10.10 Netbook remix, just running it off of a pendrive. How hard would it be to edit it to compile CM7 instead of CM6?
Click to expand...
Click to collapse
Well... You'll need a vendor tree first. And you'll have to run it on a 64-bit box with 64-bit linux. You have to change 'froyo' to 'gingerbread' in EasyDev, so it will grab CM7 source. There will also be some other differences to work out.
As soon as there's a vendor tree available and I have the time to test, I'll finish up EasyDev v7. Some of the additions that I have actually worked on so far are:
1) two or three bug fixes
2) adding CM7
3) adding option to install tiny or full gapps
The CM6 code has been unstable recently in addition to koush's hosting having issues, so I have had plenty of speed bumps in addition to real life stuff.
So... If you can wait on me, that's fine. If not, go for it! Feel free to post your code changes in the thread. We'll take any help we can get.
gnarlyc said:
And you'll have to run it on a 64-bit box with 64-bit linux.
Click to expand...
Click to collapse
Conap mentioned this before as well - just out of curiosity, do you know what the dependency is that requires x64? The compilation target is an ARM device, so I can't imagine that it is a library issue... is it simply a matter that one of the compilation/build tools needs more than 3-4 Gigs of VM?
I remember that building the kernel source trees on a uniprocessor would come to a halt if you tried it on a linux box with less than about 768 Mb of RM, but hitting the 32-bit limit (3-4Gb) with build tools seems kinda surprising.
bftb0
bftb0 said:
Conap mentioned this before as well - just out of curiosity, do you know what the dependency is that requires x64? The compilation target is an ARM device, so I can't imagine that it is a library issue... is it simply a matter that one of the compilation/build tools needs more than 3-4 Gigs of VM?
I remember that building the kernel source trees on a uniprocessor would come to a halt if you tried it on a linux box with less than about 768 Mb of RM, but hitting the 32-bit limit (3-4Gb) with build tools seems kinda surprising.
bftb0
Click to expand...
Click to collapse
I honestly wasn't sure, but a quick Google search...
http://groups.google.com/group/android-building/browse_thread/thread/852d63ab6124c87e
This is a post from the Android Building group. It appears to be a JDK issue. I've not really tested either way as of yet, although apparently Google says "use a 64-bit host to build, that's what is supported."

Yet another custom kernel thread (special toolchain included)

Hi hackers,
i know about the common method described by chulri, to compile custom kernels and it works well.
Anyway for kernel only experiments this way is little too bloated.
EDIT3:
So here's my standalone toolchain for archos (build with modified buildroot system for 32Bit linux OS):
arm-archos GCC4.4.1 for ARM uClinux (uClibc C library 0.9.30 with Archos specific tweaks and bugfixes)
http://dl.dropbox.com/u/8815400/arm-archos.tar.gz
EDIT5:
The toolchain does not work on a 64Bit OS.
I'll post a link for the 64Bit version soon.
Only for reference:
There are a lot of external solutions to be found in the web.
E.g. there are different flavoured toolchains based on gcc 4.4.1 from Mentor Graphics (formerly known as Codesourcery):
Sourcery G++ Lite 2010q1-188 for ARM EABI (Newlib C library 1.17.0)
Sourcery G++ Lite 2010q1-189 for ARM uClinux (uClibc C library 0.9.30)
Sourcery G++ Lite 2010q1-202 for ARM GNU/Linux (GNU C library 2.11)
So if i restrict my activities on kernel compilation all three should do the job.
I made a custom kernel using the above mentioned GNU C toolchain, all compiles fine, but did not test it yet.
This is next... i need to find an easy way to test my tweaked kernels.
So far i would recommend UrukDroid running and use the recovery menu to exchange the kernel & ramdisk.
Any comments are welcome.
Unfortunately our devices use also some binary only kernel modules which are not supported by this method:
hmditx.ko (though marked as GPL, we got no sources)
hdmicec.ko (same here)
UPDATE: Sources had been published by Archos at gitorious.
nwolc.ko (proprietary module from NXP)
BTW, someone should contact the author Andre Lepine to hand out the GPL'ed source code
If i got it right, all custom kernels had been build using the buildroot system because of these.
AFAIK using another toolchain would result in a completely different system map and prevent the modules to load.
Anyway if we exclude HDMI and tweak some start scripts to prevent the modules to get loaded, we'll be fine.
Would be nice to start some discussion up here or leave a comment.
I'd also like to get some tricks form the cracks
EDIT:
Sure there's also Ti's wireless driver package which has to be integrated to compile tiwlan_drv.ko.
Need to do some research to find the correct package.
Any hints are welcome!
EDIT2:
Anyone tried to compile a gen8 kernel using the new gen9 kernel source?
Everything seems to be there...
EDIT4:
See above! The toolchain works very nice.
It had been specially compiled for external use and in the meantime it was tested on many different hosts.
Instructions how to install and use it could be found here:
http://forum.xda-developers.com/showpost.php?p=19134490&postcount=8
Thanks a lot for your attention!
Regards,
scholbert
One question: What's so much better about that toolchain to throw away the Archos-compatible toolchain and deal with the hassle of excluding features to build compatible binaries? I guess I didn't get the point
chulri said:
One question: What's so much better about that toolchain to throw away the Archos-compatible toolchain and deal with the hassle of excluding features to build compatible binaries? I guess I didn't get the point
Click to expand...
Click to collapse
Like i tried to point out:
Anyway for kernel only experiments this way is little too bloated.
Click to expand...
Click to collapse
A neat little cross toolchain environment would be enough for kernel experiments.
I'm working on different platforms e.g. old Debian 4.0 workstation, Netbook with UNR 11 but limited space, other linux machines i don't like to run entire process.
You need a lot of disk space and time (at least first time to build the whole environment).
The other thing is that everything is built into the buildroot structure, you could barely locate the toolchain itself...
Sure your right, if you say everthing works out of the box, but i don't like all these automated procedures, to build my own kernel.
In fact that's just it and i wonder if there's another way.
Just kernel source + cross-toolchain...
Apart from that, the toolchain Sourcery G++ Lite 2010q1-189 for ARM uClinux (uClibc C library 0.9.30) is very close to the Archos one.
BTW, anyone tried to tweak the Archos build script to built the toolchain for external use?
Cheers,
scholbert
scholbert said:
So if i restrict my activities on kernel compilation all three should do the job.
I made a custom kernel using the above mentioned GNU C toolchain, all compiles fine, but did not test it yet.
Click to expand...
Click to collapse
Hi Scholbert!
I've been doing the same for my kernels, it compiles and runs fine, wifi loads without any particular tweak with the original Archos compiled module, but I didn't check hdmi as I don't have cable for it. I'm using a cm7 toolchain to build it (arm-eabi-4.4.3) though.
scholbert said:
This is next... i need to find an easy way to test my tweaked kernels.
So far i would recommend UrukDroid running and use the recovery menu to exchange the kernel & ramdisk.
Click to expand...
Click to collapse
My setup is a bit different since I patched bootloader: I have my "stable" build on normal boot (/rawfs/init) and my dev build on sde (/rawfs/custom), and I flash my kernel directly from my stable build without going through recovery.
I just do adb push kernel and initrd, then directly on device a "kd_flasher -k kernel -i initrd", and I reboot from normal to sde with a "reboot_into sde". It's really quick this way, I just have a script on my linux box to do all this.
I believe you can do the same without patched bootloader with a temproot on secure archos build.
scholbert said:
EDIT2:
Anyone tried to compile a gen8 kernel using the new gen9 kernel source?
Everything seems to be there...
Click to expand...
Click to collapse
Yes, I'm playing with it. I don't know what device you have, but mine (A70S) was not finished in Archos sources: board-archos-a70s is almost empty, panel wasn't finished... I add stuff slowly (still learning Omap, I know Qualcomm better), my kernel boots, I currently have framebuffer, internal mmc and usb working.
Hi letama!
letama said:
I've been doing the same for my kernels, it compiles and runs fine, wifi loads without any particular tweak with the original Archos compiled module, but I didn't check hdmi as I don't have cable for it. I'm using a cm7 toolchain to build it (arm-eabi-4.4.3) though.
Click to expand...
Click to collapse
Cool that's nice information.
Interesting that the tiwlan_drv.ko loads without problems.
Just to start an experiment, i started to shrink down the buildroot setup from Archos and built the gcc 4.4.1 toolchain only.
But it's not finished yet...
letama said:
My setup is a bit different since I patched bootloader: I have my "stable" build on normal boot (/rawfs/init) and my dev build on sde (/rawfs/custom), and I flash my kernel directly from my stable build without going through recovery.
Click to expand...
Click to collapse
O.k. i see, sounds like a clean environment this way.
In fact there's no need for this sqashfs thing anymore...
I already got the SDE's avboot version installed. This version is little bigger in size and obviously got some add-on's.
The same byte signature could be found here, so i guess the hack would match this avboot version as well.
Maybe i give it a try.
letama said:
I just do adb push kernel and initrd, then directly on device a "kd_flasher -k kernel -i initrd", and I reboot from normal to sde with a "reboot_into sde". It's really quick this way, I just have a script on my linux box to do all this.
Click to expand...
Click to collapse
Cool, sounds like a nice development platform this way.
letama said:
I believe you can do the same without patched bootloader with a temproot on secure archos build.
Click to expand...
Click to collapse
Mmmh i thought about using it from UrukDroid...
Anyway, the way you do it sounds more elegant.
letama said:
Yes, I'm playing with it. I don't know what device you have, but mine (A70S) was not finished in Archos sources: board-archos-a70s is almost empty, panel wasn't finished... I add stuff slowly (still learning Omap, I know Qualcomm better), my kernel boots, I currently have framebuffer, internal mmc and usb working.
Click to expand...
Click to collapse
I got an A101... looks little better here, but i did not compile the kernel yet.
Anyway, would be nice to have a complete kernel (incl. wireless and HDMI base code) in the end which compiles fine with latest gcc and runs out of the box
Thanks a lot for your extensive reply!!!
Regards,
scholbert
scholbert said:
I already good the SDE's avboot version installed. This version is little bigger in size and obviously got some add-on's.
The same byte signature could be found here, so i guess the hack would match this avboot version as well.
Maybe i give it a try.
Click to expand...
Click to collapse
Yes, it's the same signature, I verified it with IDA before installing sde, only location differs. You should be fine as long as you don't have multiple matches. If you want my code to patch it, let me know... You'd have to adapt the offsets but it would be probably safer than doing it manually.
Regarding kernel development, I forgot one big advantage to have patched bootloaders: ram_console! I built my "stable" and "dev" kernels with it, so I just have to make my dev kernel to crash to reboot and get the full dmesg with "cat /proc/last_kmsg" even if framebuffer or usb don't work .
scholbert said:
I got an A101... looks little better here, but i did not compile the kernel yet.
Anyway, would be nice to have a complete kernel (incl. wireless and HDMI base code) in the end which compiles fine with latest gcc and runs out of the box
Click to expand...
Click to collapse
Yes, gen9 sources look better for A101, I took them as base for my A70 and it's almost ok. I took away hdmi as it seems a bit too hackish, I'll see later . I also had some issue with gp timers that wouldn't use 32K clock, I'd be curious to see a dmesg on a gen9 tablet.
Right now I'm fighting with usb that kills video driver looonng way to go before having a fully functional kernel.
letama said:
Yes, it's the same signature, I verified it with IDA before installing sde, only location differs. You should be fine as long as you don't have multiple matches. If you want my code to patch it, let me know... You'd have to adapt the offsets but it would be probably safer than doing it manually.
Click to expand...
Click to collapse
Thanks for offering your tool.
Guess it's the same you once posted in that thread about changing bootlogo.
I had a look at the soruces once.
Anyway i already prepared a patched bootblock. Did not re-write it yet
Time is lacking...
letama said:
Regarding kernel development, I forgot one big advantage to have patched bootloaders: ram_console! I built my "stable" and "dev" kernels with it, so I just have to make my dev kernel to crash to reboot and get the full dmesg with "cat /proc/last_kmsg" even if framebuffer or usb don't work .
Click to expand...
Click to collapse
Yupp that's nice... have you seen my UART hack?
letama said:
Yes, gen9 sources look better for A101, I took them as base for my A70 and it's almost ok. I took away hdmi as it seems a bit too hackish, I'll see later . I also had some issue with gp timers that wouldn't use 32K clock, I'd be curious to see a dmesg on a gen9 tablet.
Right now I'm fighting with usb that kills video driver looonng way to go before having a fully functional kernel.
Click to expand...
Click to collapse
Guess i will try to compile this kernel soon.
No time for that right now.
Made some efforts to built special toolchain.
See the upcoming post...
Big thanks for participating!!!
Regards,
scholbert
Ready to use Archos specific toolchain
Hi again,
three simple steps to build UrukDroid custom kernel/modules:
1. Grab my customized toolchain and install it (see first post).
The toolchain is configured to work on mostly any 32Bit linux host (min. libc 2.3.6, should work down to Debian 4.0, Ubuntu 8.04 and similar).
The toolchain must be extracted and placed at /opt on your host machine (x86).
To run it as a user you might change the properties for /opt directory to match the user's rights.
You also could extract the archive as root and run:
chown -R 1000:1000 /opt/arm-archos
To make it more comfortable:
Modify user's .bashrc file to include the path to the toolchain:
export PATH=$PATH:/opt/arm-archos/usr/bin
2. Grab UrukDroid kernel sources and compile.
UrukDroid kernel sources could be found here:
http://sauron.pourix.com/UrukDroid/UrukDroid-1.5/UrukDroid-1.5.1-kernelsrc.tar.bz2
You might extract the sources anywhere you like.
After this has been done, step into the kernel source root directory.
Modify Makefile to use the Archos toolchain (line 199):
Code:
...
# Alternatively CROSS_COMPILE can be set in the environment.
# Default value for CROSS_COMPILE is not to prefix executables
# Note: Some architectures assign CROSS_COMPILE in their arch/*/Makefile
export KBUILD_BUILDHOST := $(SUBARCH)
ARCH ?= $(SUBARCH)
CROSS_COMPILE ?= arm-linux-uclibcgnueabi-
...
cp linux.config .config
make oldconfig
make zImage
make modules
make modules_install INSTALL_MOD_PATH=/my_kernel/modules/
3. Transfer the binaries to your Archos device.
Right now there's no need to exchange the kernel, because we use $auron's base setup for the kernel.
Place your custom modules at /lib/modules
TBC
scholbert
scholbert said:
Thanks for offering your tool.
Guess it's the same you once posted in that thread about changing bootlogo.
I had a look at the soruces once.
Anyway i already prepared a patched bootblock. Did not re-write it yet
Time is lacking...
Click to expand...
Click to collapse
Yes, it's roughly the same code. You did patch both location ?
scholbert said:
Yupp that's nice... have you seen my UART hack?
Click to expand...
Click to collapse
Yes, saw it, it would be very nice to have console on serial, but I don't want to open my A70 yet as it's still has warranty running. I may try that if I can find parts and if I get a gen9 as "main".
scholbert said:
Guess i will try to compile this kernel soon.
No time for that right now.
Click to expand...
Click to collapse
Great! Let me know if you have something, I'd be very interested in a dmesg.
I somehow "fixed" my video driver problem (well, not really fixed, adding traces made it go away ), now I'm trying to get SurfaceFlinger works. Sgx driver doesn't seem to play nice with .29 userspace binaries, I'm not sure I'd be able to go much further without new binaries.
scholbert said:
Made some efforts to built special toolchain.
See the upcoming post...
Click to expand...
Click to collapse
Nice! I'll try to take a look at it when I find some time.
Hey letama,
sorry for the delay...
letama said:
Yes, it's roughly the same code. You did patch both location ?
Click to expand...
Click to collapse
Yepp, both locations are patched.
As we already pointed out, there the rawfs header contains some checksums and avboot is the first file in there.
What do you think, if i manually change some bytes in avboot and leave the checksum untouched, will there be any problems?
letama said:
Yes, saw it, it would be very nice to have console on serial, but I don't want to open my A70 yet as it's still has warranty running. I may try that if I can find parts and if I get a gen9 as "main".
Click to expand...
Click to collapse
O.k. if there's warranty on your device, i totally agree.
letama said:
Great! Let me know if you have something, I'd be very interested in a dmesg.
Click to expand...
Click to collapse
Need more time
letama said:
I somehow "fixed" my video driver problem (well, not really fixed, adding traces made it go away ), now I'm trying to get SurfaceFlinger works. Sgx driver doesn't seem to play nice with .29 userspace binaries, I'm not sure I'd be able to go much further without new binaries.
Click to expand...
Click to collapse
Yeah guess there are some changes in the drivers API.
letama said:
Nice! I'll try to take a look at it when I find some time.
Click to expand...
Click to collapse
So far i tested it, the toolchain works out very nice.
Concerning kernel compilation:
It seems the binaries are quite well optimized in size. No problems so far.
I found out that in stock ROM they used some strip command to make the modules even smaller.
Anyway won't speed things up significantly i guess...
Concerning userland apps:
Though my genereated uClibc is little bigger in size, i noticed no problems so far. A binary comparison between the libaries (stock vs mine), shows little differences though.
Anyway, would be nice if people use it and report...
Have a nice day!
scholbert
Hi Scholbert!
scholbert said:
sorry for the delay...
Click to expand...
Click to collapse
No problem, I'm also busy as hell...
scholbert said:
Yepp, both locations are patched.
As we already pointed out, there the rawfs header contains some checksums and avboot is the first file in there.
What do you think, if i manually change some bytes in avboot and leave the checksum untouched, will there be any problems?
Click to expand...
Click to collapse
Well, I didn't touch checksums either, and it seems they're not checked anywhere else, so you should be good. As long as you patched both location before reboot, you should be ok.
scholbert said:
Yeah guess there are some changes in the drivers API.
Click to expand...
Click to collapse
I made some progress there, I took LG P970 3D binaries with driver source code from their cm7 kernel (they also have a 2.6.35) and I was able to boot up to launcher. I had to fiddle a bit with audio runtime as phone audio won't work, but low level audio driver is working too. Next step is touchscreen... And probably doing a proper cm7 build, I'm running a frankenstein mix of cm7 for nook tablet
scholbert said:
So far i tested it, the toolchain works out very nice.
Click to expand...
Click to collapse
I tried it briefly yesterday as I borked my kernel config at some point and it was crashing my usual toolchain, it doesn't run on my comp: "error while loading shared libraries: libmpfr.so.1: wrong ELF class: ELFCLASS64". Ubuntu 11.10 64 bits...
Best,
LeTama
letama said:
Well, I didn't touch checksums either, and it seems they're not checked anywhere else, so you should be good. As long as you patched both location before reboot, you should be ok.
Click to expand...
Click to collapse
Yeah guessed so... the russian guy who first tried this hack also never mentioned anything like this. So it'll be safe then.
letama said:
I made some progress there, I took LG P970 3D binaries with driver source code from their cm7 kernel (they also have a 2.6.35) and I was able to boot up to launcher. I had to fiddle a bit with audio runtime as phone audio won't work, but low level audio driver is working too. Next step is touchscreen... And probably doing a proper cm7 build, I'm running a frankenstein mix of cm7 for nook tablet
Click to expand...
Click to collapse
Wow sounds pretty like a "frankengenius" software design.
Good work!
Have you seen that Archos released part of the hdmi code as external driver code. So the kernel is even more open now (speaking of 2.6.29).
Sometimes their cooperation is very nice.
About two weeks ago i contact the author at NXP, then last week i wrote to Archos and on thursday they released it. Not bad...
Anyway they ought to release the source, even without mentioning it.
It's just GPL code.
letama said:
I tried it briefly yesterday as I borked my kernel config at some point and it was crashing my usual toolchain, it doesn't run on my comp: "error while loading shared libraries: libmpfr.so.1: wrong ELF class: ELFCLASS64". Ubuntu 11.10 64 bits...
Click to expand...
Click to collapse
Sure the toolchain is compiled for 32Bit systems, forgot to mention this.
So it will never work on a 64Bit system.... sorry
Cheers,
scholbert
scholbert said:
Have you seen that Archos released part of the hdmi code as external driver code. So the kernel is even more open now (speaking of 2.6.29).
Click to expand...
Click to collapse
Didn't see it, very nice! HDMI is a low on my priority list, but it's good to have source code, it will help porting it. Even though my efforts on this kernel will slow a bit as I purchased today a gen9 and ICS source code is out .
At first glance, boot process and layout looks very similar to our gen8, same rawfs, a custom file that would indicate that we should get SDE, so far so good. Need to spend some quality time with hex editor and IDA now .
Damn work, I need 72 hours days!
scholbert said:
Sure the toolchain is compiled for 32Bit systems, forgot to mention this.
So it will never work on a 64Bit system.... sorry
Click to expand...
Click to collapse
No problem, just wanted to give a bit of feedback.
@letama:
Wouldn't it be alot more productive for you and us if you would somehow join your affort with the guys from openaos?
cm7 and then cm9 would be here faster the more experienced devs are helping.
fzelle said:
@letama:
Wouldn't it be alot more productive for you and us if you would somehow join your affort with the guys from openaos?
cm7 and then cm9 would be here faster the more experienced devs are helping.
Click to expand...
Click to collapse
Hi fzelle,
Well, I'm only learning slowly, they're far more experienced than me on Archos. My main goal is to understand omap platform, that's why I'm toying with the 2.6.35 kernel. Cm7 is only a convenient for way me to make sure the kernel behaves well. I don't seek a perfect cm7/archos experience for all devices as they do, but if at some point I learned enough, I may try to help if I can.
LeTama
CM7 for Archos atm is based on the 2.6.29 kernel delivered from Archos, so your kernel is far more advanced.
And if you got 2.6.35 to work properly, the guys over at openaos would probably be happy to use that.
fzelle said:
CM7 for Archos atm is based on the 2.6.29 kernel delivered from Archos, so your kernel is far more advanced.
And if you got 2.6.35 to work properly, the guys over at openaos would probably be happy to use that.
Click to expand...
Click to collapse
Yes, 2.6.35 should match better gingerbread code. If I can go somewhere, I'll share it. Currently, I'm far from that, still having troubles with usb and a big piece will be power management. We'll see, but I'm a bit out of free time.
Hey letama,
i guess fzelle is right.
AFAIK, the openaos developers concentrate on the Android part for gen8. As stated they still use 2.6.29 and this no problem so far.
But a kernel project might run in parallel.
Would be nice to get the new kernel working at least for A70 and A101.
I started a build for A101 (...and still compiling), maybe we could share our .config file
EDIT: Aaaaaargh, still fighting with the kernel config/compile errors.
Wifi/BT framework issue.... RFKILL_STATE_UNBLOCKED etc. seems not to be implemented anymore...
letama said:
I made some progress there, I took LG P970 3D binaries with driver source code from their cm7 kernel (they also have a 2.6.35) and I was able to boot up to launcher. I had to fiddle a bit with audio runtime as phone audio won't work, but low level audio driver is working too. Next step is touchscreen... And probably doing a proper cm7 build, I'm running a frankenstein mix of cm7 for nook tablet
Click to expand...
Click to collapse
The SGX part is an open issue i guess, but there's some support form Ti as well. E.g.: https://gforge.ti.com/gf/project/openmax/frs/
Remember the Beagleboard-XM is very similar to what we got on our devices.
Also Zoom3 platform, so maybe their repository is a good starting point for these addon's as well.
In fact using the OMAP might be a benefit in general, because there are so many opensource projects covering this architecture
Happy hacking!
scholbert
Hi Scholbert,
scholbert said:
i guess fzelle is right.
AFAIK, the openaos developers concentrate on the Android part for gen8. As stated they still use 2.6.29 and this no problem so far.
But a kernel project might run in parallel.
Would be nice to get the new kernel working at least for A70 and A101.
Click to expand...
Click to collapse
Agreed! It would be nice if we could develop both A70 and A101 in parallel, sharing will speed things up.
scholbert said:
I started a build for A101 (...and still compiling), maybe we could share our .config file
Click to expand...
Click to collapse
I attached my current one, I added one config option that you don't have, CONFIG_MUSB_ERRATA_445, you can remove the line. I'm not sure I have the config right, but it boots and has quite a lot of stuff working. You need to re-add A10IT board though.
scholbert said:
The SGX part is an open issue i guess, but there's some support form Ti as well. E.g.: https://gforge.ti.com/gf/project/openmax/frs/
Click to expand...
Click to collapse
Well, for me it's no longer an issue, I think what I did is the best we can do until we can get a hand on Archos binaries for 3630. The issue is that you have to have proprietary binaries, they must match driver version, and the binaries I have from P920 works fine even though maybe not as recent as Archos ones. There is no open source implementation afaik. OpenMax is only for video codec, not 3D.
scholbert said:
Happy hacking!
Click to expand...
Click to collapse
Thanks, you too! You have a mission now! Let's get this kernel running on A101
Hi letama!
letama said:
Agreed! It would be nice if we could develop both A70 and A101 in parallel, sharing will speed things up.
Click to expand...
Click to collapse
To be honest i meant developing openaos and kernel in parallel. Who ever does it
Anyway, as i wrote it... i started to play around with the new kernel.
It's hard for me these days to find some time for hacking and i'm not a genius in modifying kernel drivers and stuff.
So in fact i don't know how far i will get things rollin'
letama said:
I attached my current one, I added one config option that you don't have, CONFIG_MUSB_ERRATA_445, you can remove the line. I'm not sure I have the config right, but it boots and has quite a lot of stuff working. You need to re-add A10IT board though.
Click to expand...
Click to collapse
Thanks a lot. I will compare your config with my setup.
Already found some missing parts in the board file...
letama said:
Well, for me it's no longer an issue, I think what I did is the best we can do until we can get a hand on Archos binaries for 3630. The issue is that you have to have proprietary binaries, they must match driver version, and the binaries I have from P920 works fine even though maybe not as recent as Archos ones. There is no open source implementation afaik. OpenMax is only for video codec, not 3D.
Click to expand...
Click to collapse
Ah i see, so i'll take a look at the binaries.
I guess you meant P970, as stated earlier.
letama said:
Thanks, you too! You have a mission now! Let's get this kernel running on A101
Click to expand...
Click to collapse
Haha, as stated above... nice mission anyway
BTW, did you see there are some nice projects at gitorious.
A 2.6.37 kernel port for A43 and A101 had also been started already.
I had a short look at some parts... don't know about the exact state of the code.
Let's stay in touch!
Best regards,
scholbert

[VMWare Image][9-DEC-2011] Android AOSP/ROM Developer Environment

Everyone is allowed to make changes to the VMWare image and re-upload it. If you re-upload the VMWare image with the made corrections, post the download link(s) in this thread. I will update the first post.
If there is a AOSP Developer that is willing to make a complete tutorial, please make one that works and is up-to-date with 2.3.7
The more people we have working on making ROMs, the better.
This VMWare image is:
- Base: Ubuntu 10.04 LTS
- ICS ready
- Gingerbread ready
- Fully updated
- Eclipse with ADT Plugin
- Android Kitchen Integrated
PASSWORD: root
Latest changelog (Coming soon)
- Based on 10.04 LTS instead of 11.10
- Different approach
Download link:
Bypass 24h wait time, limit reached --> Solution? Reset your ip! In Belgium this is easy by restarting your modem/router. This may be different in other countries.
more mirrors will come!
Part 1
Part 2
Part 3
Image is extracted, where do I start?
Continue from this link
How to build 2.3.7 for Nexus S
This is just a snippet that may help you.
repo init -b android-2.3.7_r1 < /dev/null (This branch is ready to use with Nexus S and Nexus S 4G)
repo sync
source build/envsetup.sh
lunch full_crespo-userdebug
make -j8 (-j8 = for eightcores like 2600k, 2630QM / -j4 = for quads 2500K/2620M/Q6600 / -j2 for dual cores / ...)
Click to expand...
Click to collapse
Don't forget to add the vendor files of the device. You need to download the scripts as well of the driver binaries.
Click to expand...
Click to collapse
I tested a quick build. And it's working.
A virtual machine with limited RAM in order to compile AOSP? Definitively not a good idea. Why not dual boot? Sooooo easy to install the worst distro ever (*buntu).
This is awesome. My only problem is that I only have VMWare Workstation 7.
Super! Waiting for this
djjonastybe said:
Dear community,
I made a AOSP developer environment for VMWare Workstation 8 or latest VMWare Player (free).
You can use this VMWare image as a base to build AOSP ROMs. Imade it for those having trouble getting it to work or maybe if you don't have time to set it up properly. Well if you are downloading this you might have a good reason!
Anyway have fun!
If there are any errors let me know.
This VMWare image is:
- ICS ready
- Gingerbread ready
- Fully updated
Download link:
...uploading...
Click to expand...
Click to collapse
Who would have guessed that an android dev would have difficulty setting up a linux enviroment . . . go figure.
You do not have to be an Android Dev to compile Android. I haven't written a single line of code for Android and can compile AOSP 2.3.7 fine.
This is simply to save time. And if you have good enough hardware (like myself) compiling Android AOSP in a VM session works perfectly fine.
Most people that are into computers have a rocking system. I have 12GB ram, I dedicate 8 for my VM and the rest for my main OS (windows 7). Works fine, what's the issue?
Some people don't want to dual boot and sometimes a Linux distro doesn't support certain hardware or can't be installed.
I would appreciate it. THANKS
nice.....this could be very useful
Sent from my Nexus S using xda premium
FeaRThiS: Who would have guessed that an android dev would have difficulty setting up a linux enviroment . . . go figure.
Click to expand...
Click to collapse
You seem to be the only one against uploading this.
Guys I am still trying to upload it. I am splitting it in 700MB sizes. Crocko's uploadservice is down. I will upload it on depositfiles and multiupload
12,5%
@FeaRThiS just stated the obvious. I also think the first step to understand how to build an AOSP ROM is knowing how to setup the development environment.
I don't have anything against using a VMWare image. But, IMHO, considering the time for uploading/downloading the file, if you do the setup yourself (in VMWare or whatever), you should have already been compiling your ROM by now.
suksit said:
@FeaRThiS just stated the obvious. I also think the first step to understand how to build an AOSP ROM is knowing how to setup the development environment.
I don't have anything against using a VMWare image. But, IMHO, considering the time for uploading/downloading the file, if you do the setup yourself (in VMWare or whatever), you should have already been compiling your ROM by now.
Click to expand...
Click to collapse
Okay, its not useful for you two.
Next!
I like it and i will try it.
djjonastybe said:
You seem to be the only one against uploading this.
Guys I am still trying to upload it. I am splitting it in 700MB sizes. Crocko's uploadservice is down. I will upload it on depositfiles and multiupload
12,5%
Click to expand...
Click to collapse
I have nothing against it and it may even be useful in case of emergency when you can not access a linux machine, but as stated by @S suxeN the first step for any dev would be learning to create their own dev enviroment.
i didnt say that.
but the statement is right. Anyways i yet think this image is of great use, as you can always start from there, if u did something wront, what can always happen to nun-linux users.
I don't know anything about linux. Is Eclipse with ADT on here by any chance? If not, what IDE is there to develop with in this VM?
I didn't think that far. Eclipse is not installed.
But I will work on it for next release. For now you have to install it manually. I hope tomorrow evening the new vmware will be uploaded!
Hey guys, don't be so hard on the fella. He's doing us a great service in a way. Not all of us are able to bring laptops wherever we go, dual-boot, etc. I just downloaded this to my external drive that I use to keep my stuff on for work and it'll come in handy when I wanna test apps without worrying about nuking my phone.
Also, it helps that I can demo apps on the thing to co-workers on screen than using a phone. That way I won't have to worry about them screwing things up if they decided to 'explore.'
http://code.google.com/android/nexus/drivers.html#crespogwk74
Can someone help me with this? This has the binaries for the Nexus S.
Where do I place the scripts?
I have a vendor folder with several maps in it now. But I don't know what I have to do now.
I placed the 'vendor' folder in my working directory. But lunch isn't showing up crespo in the list.
These are my steps:
Building
I executed lunch. I realised I did not have crespo in the list. So next, I read the line 'Building for devices'.
Eventually I ended up here:
Building devices
Obtaining proprietary binaries
Starting with IceCreamSandwich, the Android Open-Source Project can't be used from pure source code only, and requires additional hardware-related proprietary libraries to run, specifically for hardware graphics acceleration.
Official binaries for Nexus S, Nexus S 4G, Galaxy Nexus, and PandaBoard can be downloaded fromGoogle's Nexus driver page, which add access to additional hardware capabilities with non-Open-Source code.
There are no official binaries for Nexus One, ADP2 or ADP1., ADP2 or ADP1.
Click to expand...
Click to collapse
I clicked the link and downloaded the GWK74 binaries.
Now then I read further:
Extracting the proprietary binaries
Each set of binaries comes as a self-extracting script in a compressed archive. After uncompressing each archive, run the included self-extracting script from the root of the source tree, confirm that you agree to the terms of the enclosed license agreement, and the binaries and their matching makefiles will get installed in the vendor/ hierarchy of the source tree.
Click to expand...
Click to collapse
I have the vendor hierarchy...
Do I have to put these files in:
my home folder/bin
OR
home folder/workingdirectory_name
Or what do I have to do now?
updated first post with small hint on how to download 2.3.7 for our Nexus S. Good luck!
yep, i think this is pretty awesome. for me, i'm not an android dev but i've dabbled with theming and porting mods from other phones to the epic 4G previously. i'd love to be able to start with a system ready to go and mess around with some guides to learn how to compile source, etc... thanks.
Nice image man, gonna give it a go later. Thought I'd put my word in the discussion , sure there lots of talented devs, but they have all got different hardware/software and time requirements. So this becomes a useful tool to add to the inventory.

dev activity

this is not to rush the devs, just asking, are they gonna wait till ( i really hope it actually hapens) jb update comes to us to start developing? couse i think our phone haves a lot more to give to us than the stock rom can, again i am not rushing the devs, just asking your oppinion, and since im kinda new to theese forums hardly think any dev is going to bother to even answer this thread
so im pretty much.asking your oppinion
this is just a question , please dont kill me
sent from the gray stuff inside my skull
demonoid phenomenom said:
this is not to rush the devs, just asking, are they gonna wait till ( i really hope it actually hapens) jb update comes to us to start developing? couse i think our phone haves a lot more to give to us than the stock rom can, again i am not rushing the devs, just asking your oppinion, and since im kinda new to theese forums hardly think any dev is going to bother to even answer this thread
so im pretty much.asking your oppinion
this is just a question , please dont kill me
sent from the gray stuff inside my skull
Click to expand...
Click to collapse
If you mean Custom Roms... we can't do anything until we can pack / unpack the boot.img/or recovery.img to make a custom recovery.
jeah thats right, i was wondering because my expirience with atrix 2 , previous to the ics update, i was using supercharger rom series, but again i understand that they got a leak to work on, and a bootstrap to flash the restores they where creating, and that stock leaked rom was awesome
sent from the gray stuff inside my skull
mattlgroff said:
If you mean Custom Roms... we can't do anything until we can pack / unpack the boot.img/or recovery.img to make a custom recovery.
Click to expand...
Click to collapse
Only for my own curiosity: what's prevents that ? The x86 arch ? or something else ?
Le_Poilu said:
Only for my own curiosity: what's prevents that ? The x86 arch ? or something else ?
Click to expand...
Click to collapse
Would be nice to know for sure. The current methods cannot find 'Android Magic'.
I'm looking forward to seeing this forum get some custom ROMs too...
Looks like progress is getting on with it now
Any updates on custom ROM making for this device?
I've followed the README from <link to Motorola's sourceforge for razr i, deleted because I'm a new user> , got to the final step, but now I'm stumped. What make target should I choose? 'make full_x86-eng' and 'make generic_x86' have no make rules. A simple 'make' generates a framework build error.
What do I have to do in order to get a bootable image (built from source) for the Razr i?
I'd appreciate any kind of advice. Thanks in advance.
PS: Many thanks Matt, turl1 and the other developers that worked on this device.
tiberiu24 said:
Any updates on custom ROM making for this device?
I've followed the README from <link to Motorola's sourceforge for razr i, deleted because I'm a new user> , got to the final step, but now I'm stumped. What make target should I choose? 'make full_x86-eng' and 'make generic_x86' have no make rules. A simple 'make' generates a framework build error.
What do I have to do in order to get a bootable image (built from source) for the Razr i?
I'd appreciate any kind of advice. Thanks in advance.
PS: Many thanks Matt, turl1 and the other developers that worked on this device.
Click to expand...
Click to collapse
You won't be able to build a full android system from that source. The most you can do is
Code:
$ . build/envsetup.sh
$ lunch generic_x86-eng
$ make [I]target[/I]
Where target is something like out/target/product/generic/system/bin/bluetoothd or bluetoothd
I am working on a device tree. Writing it from scratch isn't easy because there is no device I can base this on. No other x86 tree out there. And I still dont have a device. I did make threads requesting for a device but they got closed down. So once I have something built I'll make a new thread.
Sent from my GT-I9300 using xda app-developers app
hiemanshu said:
I am working on a device tree. Writing it from scratch isn't easy because there is no device I can base this on. No other x86 tree out there. And I still dont have a device. I did make threads requesting for a device but they got closed down. So once I have something built I'll make a new thread.
Click to expand...
Click to collapse
There's at least 10 device trees on the android-x86 project. And AOSP itself has a generic one, to build the x86 emulator platform. And I made a basic one to build recovery already, with support to generate the newer x86 boot image format.
Just saying
PS: I don't own the phone either
turl1 said:
There's at least 10 device trees on the android-x86 project. And AOSP itself has a generic one, to build the x86 emulator platform. And I made a basic one to build recovery already, with support to generate the newer x86 boot image format.
Just saying
PS: I don't own the phone either
Click to expand...
Click to collapse
Generic x86 and the razr I are too far apart. Also the android x86 ones are too far apart too (I am working on a android x86 tablet). I have already written more than 450 lines of the device tree by hand, and there is a lot more to go right now. I have patched bionic for x86 builds, I need to patch the build folder next, and even busybox needs patching, etc. I am now working on making a perfect set of the 3 important files, BoardConfing.mk, device.mk and proprietary-files.txt. My android x86 tree is a total of 181 lines (which in itself is twice the size of the trees on android-x86). Its fun, but really time consuming. Also the AOSP ones are generic ones, they will work on any system if you have all the correct drivers installed or compiled via the kernel, but Razr I needs the files to be pulled from the stock build, and it needs a lot of them, including kernel drivers.
-H
hiemanshu said:
Generic x86 and the razr I are too far apart. Also the android x86 ones are too far apart too (I am working on a android x86 tablet). I have already written more than 450 lines of the device tree by hand, and there is a lot more to go right now. I have patched bionic for x86 builds, I need to patch the build folder next, and even busybox needs patching, etc. I am now working on making a perfect set of the 3 important files, BoardConfing.mk, device.mk and proprietary-files.txt. My android x86 tree is a total of 181 lines (which in itself is twice the size of the trees on android-x86). Its fun, but really time consuming. Also the AOSP ones are generic ones, they will work on any system if you have all the correct drivers installed or compiled via the kernel, but Razr I needs the files to be pulled from the stock build, and it needs a lot of them, including kernel drivers.
-H
Click to expand...
Click to collapse
I'm playing a bit with AOSP 4.2 as I got some free time. This is what I found out so far:
bionic needed no patches. I seriously doubt it needs any on 4.1 (CM) either as recovery built fine.
build needed no patches either on both cases.
dalvik needed a 4-liner to build on AOSP (makefile fixes), I haven't tried to build it on CM
there's no busybox on AOSP, I patched the one on 4.1 already to be able to build recovery, it's all on CM Gerrit as you'd expect from a CM developer like myself
my tree is already 120 lines, as soon as you add the media decoder config and audio routing config you'll go over 180 lines
having proper drivers isn't enough, you need proper HALs too. And I haven't really looked, but I'd be surprised if you had to pull kernel drivers from the stock rom
turl1 said:
I'm playing a bit with AOSP 4.2 as I got some free time. This is what I found out so far:
bionic needed no patches. I seriously doubt it needs any on 4.1 (CM) either as recovery built fine.
build needed no patches either on both cases.
dalvik needed a 4-liner to build on AOSP (makefile fixes), I haven't tried to build it on CM
there's no busybox on AOSP, I patched the one on 4.1 already to be able to build recovery, it's all on CM Gerrit as you'd expect from a CM developer like myself
my tree is already 120 lines, as soon as you add the media decoder config and audio routing config you'll go over 180 lines
having proper drivers isn't enough, you need proper HALs too. And I haven't really looked, but I'd be surprised if you had to pull kernel drivers from the stock rom
Click to expand...
Click to collapse
1) bionic needs patching, patch already submitted to CM gerrit libdvm basically
2) build needs patching for the boot.img
3) dalvik has been patched
4) Odd, didn't notice that
5) Probably wont required pulling in kernel drivers, but would required pulling in the correct drivers for the defconfig
I'd be happy if you wanted to work together to get this working. PM me
hiemanshu said:
1) bionic needs patching, patch already submitted to CM gerrit libdvm basically
2) build needs patching for the boot.img
3) dalvik has been patched
4) Odd, didn't notice that
5) Probably wont required pulling in kernel drivers, but would required pulling in the correct drivers for the defconfig
I'd be happy if you wanted to work together to get this working. PM me
Click to expand...
Click to collapse
Let's continue talking on PM then
re. 2, I actually did need to patch build on AOSP after all . CM on the other hand, has BOARD_CUSTOM_BOOTIMG_MK from the tf tablets.
Hey I posted a rom over at droidrzr.com for use till aosp is ready. This should be enough till we get a jb leak
Sent from my XT890 using Tapatalk 2
Hi Folks
While I don't own a RAZR I , I have been Jaffing around with building CM10.1 and AOSP for x86, I've been getting in going on my FX8120, just need to sort the OpenGLES MESA drivers out.
Anyways I've got CM10.1 built for x86 using the mr1-staging branch ( I think it's been merged to cm10.1 ) and an edited mini-x86 device tree .
Busybox was a B**stard to build though, although on one of the branches there is an .config-minimal-x86 .config-full-x86, still needed tweaking tho.
I submitted my patches http://review.cyanogenmod.org/#/c/27377/ and http://review.cyanogenmod.org/#/c/27373/, however It seems x86 isn't top of cm's agenda.... or I'm missing something about assigning reviewers.
Obviously a base x86 build is only part of the story for you guys as you'll face all the regular problems that emedded devices have, not checked the specs for the RazR but I'm sure there's some binary blobs in your future,
Hack On Folks! :good:

[GUIDE] How to Compile Your Own CM11/CM12/AOSP Kernel

Hi guys, long time no post. I have updated this guide on how to build kernels for Falcon so that anyone can learn! It's pretty simple once you get the hang of it. So yeah, here we go!
Prerequisites:
- You must have a Linux firmware running on your computer (I suggest Builduntu because you can skip the next one [build environment setup])
- Build environment setup (Put the this in terminal and follow instructions)
- Patience and a heart willing to learn
- You need to know the languages C, C++, Java, Ruby, Python... NOT! You don't need to know ANY coding languages.
[MOTIVATIONAL SPEECH]
Truth be told, when I first started out developing, I knew NO coding languages except for HTML and a little bit of Java. Both have nothing to do with kernels! I actually learned how to do this when I suffered from a concussion. So if you really want to learn how to kernel dev and you give up halfway, just know that a 14/15 year old kid could do it..
[/MOTIVATIONAL SPEECH]
Click to expand...
Click to collapse
WARNING: I am not responsible for any damages to your phone or computer or pet unicorn. When you modify the wrong partitions, set too many jobs for your compiler, break your keyboard out of frustration etc., that is not anyone's fault but yours. Or your pet unicorn.
Your Personal Handbook to the Following:
- Anything inside "CODE" boxes, type it into your terminal. If you can't find terminal, then press CTRL, ALT, t.
- If I were you, I would write these by hand instead of copying and pasting it because after a certain amount of times, you will remember the linux commands and it will be easier for you to compile more kernels for different devices
- Use this thread as a "Help Me" button. Ask for help!
Click to expand...
Click to collapse
A New Beginning:
Let's start out with something simple, getting the actual code:
Code:
git clone https://github.com/cyanogenmod/android_kernel_motorola_msm8226
This could range from 3 minutes to 2 hours!
Once that's done, open up your file manager and rename the folder (should be android_kernel_motorola_msm8226) to whatever you want. I will refer it as "mykernel".
Click to expand...
Click to collapse
Pokemon!
For this tutorial, we will be using a Sabermod 4.7 toolchain to compile. I WOULD teach you how to compile with 4.8+, but it creates errors that will take even longer for me to write about sooooooooo :fingers-crossed:. Now to get the toolchain:
Code:
git clone https://github.com/SaberMod/android_prebuilts_gcc_linux-x86_arm_sabermod-arm-eabi-4.7
Rename this to whatever you like, but I will be referring this as "toolchain"
Now go into you folder where the kernel source is stored...
Code:
cd mykernel
Click to expand...
Click to collapse
You're Almost There!:
Time to set-up the compiler!
Code:
export CROSS_COMPILE=/home/(insert linux home name here)/toolchain/bin/arm-eabi-
This tells the toolchain that "OK, we want to make ALL this code here into a kernel".
This next line tells it that your defconfig (the toolchain's manual for compiling the kernel) that it's in the arch/arm/configs folder.
Code:
export ARCH=arm
Now to tell the it what the defconfig is!
Code:
make falcon_defconfig
Hehe, now to the hardest part of all...
MuHAHHAHAHa
Click to expand...
Click to collapse
THE HARD (coding) PART
You ready for this? HERE IT IS! TIME TO BUILD THE KERNEL!
Code:
make -j4
Now sit back, relax, and watch the code! Or you could read a book, watch ****, count your fingers, play with your toes...
If you have an error during the waterfall of code, find the part where it actually says *error* (you'll probably have to scroll upwards) and search it on Google or post it here.
Click to expand...
Click to collapse
THE BEST PART
If you manage to get something that says "the kernel zImage is ready" or something like that, that means you've made it!
You have officially compiled your own kernel from source! Now you need to put it in a flashable zip.
Download this file and open it up, but DON'T EXTRACT IT.
Now go to your kernel source then "CTRL + F" and search for "zimage-dtb".
Find it and put it in the "kernel" folder of "FalconKernel - Signed.zip". Then "CTRL + F" and search ".ko".
Copy radio-iris-transport.ko and put it in the system/lib/modules (not pronto) of the zip.
Then find wlan.ko and rename it to pronto_wlan.ko. Copy and paste it in system/lib/modules/pronto of the zip.
Click to expand...
Click to collapse
Now you can put it on your phone and flash it! ​
I will update this in a bit. What feature would you guys want in your kernel? The most votes in the POLL above will be the one I teach you here!
Here I will walk you through on how to add the intelliplug feature made by @faux123
First, fetch my Green Machine kernel source (go into your kernel folder in terminal):
Code:
git fetch https://github.com/YoshiShaPow/green_machine_falcon
Then you could cherry-pick (basically copy) all my cherry picks for intelliplug from my source.
If you do check my source out, you can see there's a little link to a history of commits near the middle of the screen, right above the files/folders. You can see at this page of my features history, you'll see a bunch of commits for intelliplug. I will use those commits and copy it to your own kernel.
This copies the initial coding/first commit of intelliplug!
Code:
git cherry-pick 01a850f
This cherry-picks the remaining commits so that your newly added intelliplug is updated.
Code:
git cherry-pick 6623f2f^..4e1ece7
One more thing though, you need to add the line to compile intelliplug!
Almost all things compiled along with the zImage are in a file called defconfig. What a defconfig does, is tell your machine to build certain modules, kernel objects, drivers, governors, etc.etc.etc.. Now, all of them are found in the folder
arch/arm/configs
Click to expand...
Click to collapse
As stated in the OP, you have to modify the defconfig you use. (CM11 Kernel is falcon_defconfig, Gummy Kernel is msm8226_mmi_defconfig). Open up the corresponding defconfig and add this to ANY line anywhere.
Code:
CONFIG_INTELLI_PLUG=m
Now, for those who are familiar with "y=yes/n=no/m=maybe", you'll see that I specifically told you to put the "m=maybe" one. That's because when you compile the kernel again, right after you're about to start your build. Since you put that "m", the terminal will prompt you with a "y=yes/n=no" question on whether or not you would like to add the following feature. Since you would like to add the feature, put in "y". Later on when you feel more comfortable with adding features to your kernel, you can go back into the defconfig and put it as
Code:
CONFIG_INTELLI_PLUG=y
So that it will compile it without asking, since you have given it an answer.
Now you have officially compiled a "Custom Kernel" and with the knowledge you know, you could create a feature packed one by just kanging (copying one's work/features).
Always remember to
Code:
make clean && make mrproper
after every build to prevent errors and such!
Click to expand...
Click to collapse
I will use this to teach you how to make your own Bash Building scripts (and save time) to make it easier for your development life to flourish... eventually....
Any guide on adding governors or hotplug driver??
Sent from my Moto G using XDA Free mobile app
Best guide but how to add features likes s2w,dt2w etc
Flashhhh said:
Any guide on adding governors or hotplug driver??
Sent from my Moto G using XDA Free mobile app
Click to expand...
Click to collapse
Vote in the poll above! I will make a guide for one or more of the top chosen picks!
Brawn_Sg said:
Best guide but how to add features likes s2w,dt2w etc
Click to expand...
Click to collapse
DT2W and S2W are more complex. They require a few other things (ex. Powersuspend). I'll wait a bit and see what feedback I get before moving forward to something a bit more complex like DT2W, or GPU Overclock.
Can i use make menuconfig?
Krizthian said:
Can i use make menuconfig?
Click to expand...
Click to collapse
Yes you can. Normally when using "make menuconfig", you use the command after making the kernel's defconfig (falcon_defconfig).
Build using Docker
If you're on Linux, take a look at this approach which uses Docker for building CyanogenMod 12.0:
http://forum.xda-developers.com/showthread.php?t=2650345
(Disclaimer: It's written by me)
YoshiShaPow said:
Hi guys, long time no post. I have updated this guide on how to build kernels for Falcon so that anyone can learn! It's pretty simple once you get the hang of it. So yeah, here we go!
WARNING: I am not responsible for any damages to your phone or computer or pet unicorn. When you modify the wrong partitions, set too many jobs for your compiler, break your keyboard out of frustration etc., that is not anyone's fault but yours. Or your pet unicorn.
Now you can put it on your phone and flash it! ​
Click to expand...
Click to collapse
when i was trying to flash cm12 rom in cwm recovery it says error in zip and getting status 1 error , installation aborted ,
pls help im using moto g gpe and when trying to flash from twrp it says error executing updater binary in zip ,
no idea what to do pls help me out
karthik432 said:
when i was trying to flash cm12 rom in cwm recovery it says error in zip and getting status 1 error , installation aborted ,
pls help im using moto g gpe and when trying to flash from twrp it says error executing updater binary in zip ,
no idea what to do pls help me out
Click to expand...
Click to collapse
When you downloaded the anykernel zip, you aren't supposed to extract it. The best way to put the kernel in the zip is to just drag and drop it while IN LINUX. It will not work for windows! Or you could try signing the zip in TWRP (I think there's an option for that somewhere).
YoshiShaPow said:
When you downloaded the anykernel zip, you aren't supposed to extract it. The best way to put the kernel in the zip is to just drag and drop it while IN LINUX. It will not work for windows! Or you could try signing the zip in TWRP (I think there's an option for that somewhere).
Click to expand...
Click to collapse
im not extracting anything , i just downloaded the official cm12 nightly and flashed but didn't workout ,any ideas
karthik432 said:
im not extracting anything , i just downloaded the official cm12 nightly and flashed but didn't workout ,any ideas
Click to expand...
Click to collapse
That has nothing to do with this thread :silly:. You probably have to sign the zip again.
@YoshiShaPow.... i need some help
i compile a kernel for my device and it booted fine but no display....
can you help me in this....
sorry for posting here..my device is Redmi 1s
Luffy.d said:
@YoshiShaPow.... i need some help
i compile a kernel for my device and it booted fine but no display....
can you help me in this....
sorry for posting here..my device is Redmi 1s
Click to expand...
Click to collapse
No problem, I welcome anyone with kernel development questions here! When booted, what do you mean? And if there's no display, how do you know it booted? Also, did you use my anykernel zip? I may be wrong but I don't think it is compatible with all phones.
YoshiShaPow said:
No problem, I welcome anyone with kernel development questions here! When booted, what do you mean? And if there's no display, how do you know it booted? Also, did you use my anykernel zip? I may be wrong but I don't think it is compatible with all phones.
Click to expand...
Click to collapse
yeah it booted bro....i can hear lock unlock sound and even i can hear incoming call ring
i was trying to fix this from a week and found out it not kernel it rom problem ...
my device is build using prebuilt kernel so any compile kernel wont work...but now they are build with this kernel source so compile kernel work
thanks bro...
and one thing bro... i m new to kernel development so how can i optimize kernel
i know about and can add governors and use custom toolchain but i don't know about o2 or o3 optimization etc and all
sorry if i m being too much
great I start today
Luffy.d said:
yeah it booted bro....i can hear lock unlock sound and even i can hear incoming call ring
i was trying to fix this from a week and found out it not kernel it rom problem ...
my device is build using prebuilt kernel so any compile kernel wont work...but now they are build with this kernel source so compile kernel work
thanks bro...
and one thing bro... i m new to kernel development so how can i optimize kernel
i know about and can add governors and use custom toolchain but i don't know about o2 or o3 optimization etc and all
sorry if i m being too much
Click to expand...
Click to collapse
Those changes are a bit more advanced because it will bring build errors. The kernel is already preoptimized with o2 changes. The errors are fixable though. I don't think I'll be able to add an explanation for those in this thread, maybe through pm?
YoshiShaPow said:
Those changes are a bit more advanced because it will bring build errors. The kernel is already preoptimized with o2 changes. The errors are fixable though. I don't think I'll be able to add an explanation for those in this thread, maybe through pm?
Click to expand...
Click to collapse
thanks bro...will pm you when i finish setuping my git
etvtaglios said:
great I start today
Click to expand...
Click to collapse
Go for it bro!!

Categories

Resources