# [WIP][KERNEL]featherKernel - based off of Linux 3.6_rc1! (Developers needed! - a community kernel)



## jellybellys (Apr 3, 2012)

*What is featherKernel?*
featherKernel is a kernel based off of the GNU/Linux kernel. Most kernels (infact I think all of them are) for the galaxy nexus are based off of Samsung's 3.0 kernel. Because of this, once we get this working, this will most likely be one of the better kernels for the galaxy nexus, and it will enable future development of better kernels from others, because this kernel is 100% open source! 

*So what state is the project at?*
Right now, the project is at a state where it will not compile. I have been spending alot of time just trying to get it to compile, but still getting errors. Good news: the project will fully compile now, but not boot. I am working on looking at the cause of it not booting and trying to fix it. I need help from other people who would like a nice challenge.

*So how can I help?*
Check out the source code at this link. If you have something that you think might help the kernel compile, reply below or PM me with your github username and I'll add you to the repo. If you aren't that code savvy, you can always show your support by clicking like, making a reply, or starring the github repo.

*Once you get working builds, where will they be available?*
They will eventually be available right here, at this thread.

This project isn't impossible. Similar projects have been done for other devices before, but we need all the support we can get!

*List of current contributors:*
Linus Torvalds and everyone who has contributed to GNU/Linux
Me (jellybellys)
sonicxml
*Could the next contributor be you?*

https://github.com/j...-feather-kernel


----------



## jellybellys (Apr 3, 2012)

RESERVED FOR FUTURE USE!


----------



## erod434 (Feb 24, 2012)

This looks really promising. Can't wait for you to get it to work.


----------



## Coutts (Dec 7, 2011)

What are some short term things / goals for things to fix? I may be able to help.


----------



## sonicxml (Oct 1, 2011)

Have you taken a look at this? https://android-review.googlesource.com/#/q/statuspen+project:kernel/goldfish+branch:android-goldfish-3.4,n,z

Google has 3.4 building, but not booting as of right now


----------



## jellybellys (Apr 3, 2012)

Coutts said:


> What are some short term things / goals for things to fix? I may be able to help.


The current goal is to get it to fully compile.


----------



## jellybellys (Apr 3, 2012)

sonicxml said:


> Have you taken a look at this? https://android-revi...oldfish-3.4,n,z
> 
> Google has 3.4 building, but not booting as of right now


Thanks so much. I'll take a look at that.


----------



## AshG (Jun 7, 2011)

This is the spirit of RW right here. Can't wait until a booting beta is out for trial. Best of luck!


----------



## jdkoreclipse (Jun 16, 2011)

I might take a look at this when I'm not so busy.

Sent from my Galaxy Nexus using RootzWiki


----------



## michaelearth (Dec 25, 2011)

This may be a dumb question but what advantages would this kernel bring over the current kernels?

Thanks


----------



## jellybellys (Apr 3, 2012)

sonicxml said:


> Have you taken a look at this? https://android-revi...oldfish-3.4,n,z
> 
> Google has 3.4 building, but not booting as of right now


I see you forked my repo. What changes did you make? Were you able to get a working build? If you want, I can get you access to my repo if you'd like so you can push those changes to it.


----------



## sonicxml (Oct 1, 2011)

jellybellys said:


> I see you forked my repo. What changes did you make? Were you able to get a working build? If you want, I can get you access to my repo if you'd like so you can push those changes to it.


Yeah I got it building 

Haven't tried to see if it'll boot though

Sent from my Galaxy Nexus using RootzWiki


----------



## jasondowning85 (Dec 20, 2011)

That was quick! Interested to see what kind of benefits this will provide.


----------



## tacosrdelicioso (Nov 24, 2011)

sonicxml said:


> Yeah I got it building
> 
> Haven't tried to see if it'll boot though
> 
> Sent from my Galaxy Nexus using RootzWiki


Wowza

Sent from my Galaxy Nexus using Tapatalk 2


----------



## 52brandon (Jul 27, 2012)

sonicxml said:


> Yeah I got it building
> 
> Haven't tried to see if it'll boot though
> 
> Sent from my Galaxy Nexus using RootzWiki


lol, that was quick. I'll be watching to see what you guys can get out of this. Considering popcorn has been the best on my GNEX since I first tried it, I'm excited to see you involved on this


----------



## Amphaeon (May 16, 2012)

Sonic rox


----------



## jellybellys (Apr 3, 2012)

sonicxml said:


> Yeah I got it building
> 
> Haven't tried to see if it'll boot though
> 
> Sent from my Galaxy Nexus using RootzWiki


Are you building with the linaro toolchain or aosp?


----------



## jellybellys (Apr 3, 2012)

Will look into getting a working build tomorrow morning. Hopefully will have a working build sometime tomorrow!

Sent from my Galaxy Nexus using RootzWiki


----------



## sonicxml (Oct 1, 2011)

jellybellys said:


> Are you building with the linaro toolchain or aosp?


I actually built with linaro

Sent from my Galaxy Nexus using RootzWiki


----------



## imnuts (Jun 9, 2011)

Interesting project. Any reason you're picking 3.6 RC over 3.5 stable? Not that it matters to much really, just curious.


----------



## SomeGuyDude (Jul 3, 2011)

This is RW, why would we EVER settle for the stable version of anything? Otherwise we'd all still be on ICS!

Sent from my Galaxy Nexus using Tapatalk 2


----------



## jellybellys (Apr 3, 2012)

imnuts said:


> Interesting project. Any reason you're picking 3.6 RC over 3.5 stable? Not that it matters to much really, just curious.


because I can

Sent from my Galaxy Nexus using RootzWiki


----------



## Trav06 (Jun 13, 2011)

michaelearth said:


> This may be a dumb question but what advantages would this kernel bring over the current kernels?


As a layman, I'm curious about this too.


----------



## 52brandon (Jul 27, 2012)

Trav06 said:


> As a layman, I'm curious about this too.


because it's completely open source? Because it's the latest? Exploring any and every option will benefit everybody


----------



## will748 (Mar 6, 2012)

Got it to compile but nowhere near booting for me. Probably just me but it seemed to mess up my boot partition. Had to wipe it and restore it from stock. I don't know, this happens whenever I compile aosp to.

Sent from my Nexus 7 using RootzWiki


----------



## Soapinmouth (Jun 21, 2011)

Trav06 said:


> As a layman, I'm curious about this too.


should give a performance boost if anything.


----------



## jellybellys (Apr 3, 2012)

Trav06 said:


> As a layman, I'm curious about this too.


Should provide better power management, performance boosts, and everything that the Linux kernel had that the android kernel didn't. This should also allow us to boot naively into Linux from our phones, which may just lead to possible JVM integration into the android system, and no guarantees, but we may be able to run java on our phones. We could possibly boot a whole X.org and gnome environment on our phones too. The possibilities are endless.


----------



## DigitalDK (Jun 7, 2011)

So much innovation going on! I can't wait for this to start falling into place!


----------



## jellybellys (Apr 3, 2012)

sonicxml said:


> Yeah I got it building
> 
> Haven't tried to see if it'll boot though
> 
> Sent from my Galaxy Nexus using RootzWiki


When attempting to build your fork, I get this error right off the bat. Any idea why?

```
<br />
[email protected]:~/andy/feather/sonic/tuna-feather-kernel$ make ARCH=arm CROSS_COMPILE=/opt/android-toolchain-trunk/bin/arm-linux-androideabi- -j2<br />
  HOSTCC  scripts/basic/fixdep<br />
  SHIPPED scripts/kconfig/zconf.lex.c<br />
  SHIPPED scripts/kconfig/zconf.tab.c<br />
  SHIPPED scripts/kconfig/zconf.hash.c<br />
  HOSTCC  scripts/kconfig/zconf.tab.o<br />
  HOSTLD  scripts/kconfig/conf<br />
scripts/kconfig/conf --silentoldconfig Kconfig<br />
drivers/cpufreq/Kconfig:189: can't open file "drivers/cpufreq/Kconfig.arm"<br />
make[2]: *** [silentoldconfig] Error 1<br />
make[1]: *** [silentoldconfig] Error 2<br />
make: *** No rule to make target `include/config/auto.conf', needed by `include/config/kernel.release'.  Stop.<br />
```


----------



## sonicxml (Oct 1, 2011)

jellybellys said:


> When attempting to build your fork, I get this error right off the bat. Any idea why?
> 
> ```
> <br />
> ...


1) make sure you are on the sonic branch and get the latest commit
2) try this to build: export ARCH=arm && make tuna_defconfig && make CROSS_COMPILE=/opt/android-toolchain-trunk/bin/arm-linux-androideabi- -j2


----------



## ashclepdia (Oct 10, 2011)

jellybellys said:


> Should provide better power management, performance boosts, and everything that the Linux kernel had that the android kernel didn't. This should also allow us to boot naively into Linux from our phones, which may just lead to possible JVM integration into the android system, and no guarantees, but we may be able to run java on our phones. We could possibly boot a whole X.org and gnome environment on our phones too. The possibilities are endless.


I think i just got all tingly
Lol
Good luck !
Gonna.be fun watching this happen, wish I knew anything to help out, sorry for the kind of useless clutter post


----------



## EniGmA1987 (Sep 5, 2011)

I am really looking forward to how this project turns out.


----------



## jtj1825 (Oct 9, 2011)

I've got a boner just thinking about it

Sent from my Galaxy Nexus using Tapatalk 2


----------



## jellybellys (Apr 3, 2012)

sonicxml said:


> 1) make sure you are on the sonic branch and get the latest commit
> 2) try this to build: export ARCH=arm && make tuna_defconfig && make CROSS_COMPILE=/opt/android-toolchain-trunk/bin/arm-linux-androideabi- -j2


Just deleted everything from your branch that I had earlier and recloned, tried to build, here's what I get. Still stumps me why you are able to build it and I can't.

```
<br />
[email protected]:~/andy/feather/sonic$ git clone -b sonic [URL=https://github.com/sonicxml/tuna-feather-kernel]https://github.com/sonicxml/tuna-feather-kernel[/URL].git<br />
Cloning into 'tuna-feather-kernel'...<br />
remote: Counting objects: 48979, done.<br />
remote: Compressing objects: 100% (43160/43160), done.<br />
remote: Total 48979 (delta 6052), reused 47409 (delta 4482)<br />
Receiving objects: 100% (48979/48979), 125.98 MiB | 1.86 MiB/s, done.<br />
Resolving deltas: 100% (6052/6052), done.<br />
[email protected]:~/andy/feather/sonic$ cd tuna-feather-kernel<br />
[email protected]:~/andy/feather/sonic/tuna-feather-kernel$ export ARCH=arm && make tuna_defconfig && make CROSS_COMPILE=/opt/android-toolchain-trunk/bin/arm-linux-androideabi- -j2<br />
  HOSTCC  scripts/basic/fixdep<br />
  HOSTCC  scripts/kconfig/conf.o<br />
  SHIPPED scripts/kconfig/zconf.tab.c<br />
  SHIPPED scripts/kconfig/zconf.lex.c<br />
  SHIPPED scripts/kconfig/zconf.hash.c<br />
  HOSTCC  scripts/kconfig/zconf.tab.o<br />
  HOSTLD  scripts/kconfig/conf<br />
drivers/cpufreq/Kconfig:189: can't open file "drivers/cpufreq/Kconfig.arm"<br />
make[1]: *** [tuna_defconfig] Error 1<br />
make: *** [tuna_defconfig] Error 2<br />
[email protected]:~/andy/feather/sonic/tuna-feather-kernel$ git branch<br />
* sonic<br />
```


----------



## sonicxml (Oct 1, 2011)

jellybellys said:


> Just deleted everything from your branch that I had earlier and recloned, tried to build, here's what I get. Still stumps me why you are able to build it and I can't.
> 
> ```
> <br />
> ...


Sorry, that was my bad. If you pull the source again it should build now


----------



## jellybellys (Apr 3, 2012)

Got some errors in arch/arm/match-omap/display.c preventing it from building. Going to merge your changes into the master branch of jellybellys/tuna-dev-kernel and then look into fixing display.c. Going to add your github to jellybellys/tuna-dev-kernel so you can commit & push straight to it (no need for two projects)


```
<br />
  CC	  arch/arm/plat-omap/i2c.o<br />
  CC	  arch/arm/mach-omap2/wd_timer.o<br />
  CC	  arch/arm/mach-omap2/display.o<br />
  CC	  arch/arm/plat-omap/mailbox.o<br />
arch/arm/mach-omap2/display.c:79:41: error: omap2_dss_hwmod_data causes a section type conflict with omap4_dss_hwmod_data<br />
static const struct omap_dss_hwmod_data omap2_dss_hwmod_data[] __initdata = {<br />
										 ^<br />
arch/arm/mach-omap2/display.c:94:41: note: 'omap4_dss_hwmod_data' was declared here<br />
static const struct omap_dss_hwmod_data omap4_dss_hwmod_data[] __initdata = {<br />
										 ^<br />
make[1]: *** [arch/arm/mach-omap2/display.o] Error 1<br />
make: *** [arch/arm/mach-omap2] Error 2<br />
make: *** Waiting for unfinished jobs....<br />
  CC	  arch/arm/plat-omap/omap-pm-noop.o<br />
  LD	  arch/arm/plat-omap/built-in.o<br />
```


----------



## Ezekeel (Nov 13, 2011)

jellybellys said:


> because this kernel is 100% open source!


All kernels are free software.


----------



## jellybellys (Apr 3, 2012)

Ezekeel said:


> Just because the version number is larger it does not automatically mean it will be a better kernel. People have to get that into their heads. There already is more than enough useless version number wanking in the Android community.


Your just jealous.



> All kernels are free software.


Well most are... (not going to mention any names)


----------



## yarly (Jun 22, 2011)

jellybellys said:


> Well most are... (not going to mention any names)


Also, feel free to mention names of anyone holding out the source after being asked that works on Linux Kernels. GPL violators and those that defend them should be shamed in public. I get annoyed when I cant read through the source of a kernel because I like to see what people add for my own interests even if I don't run their entire kernel. If you don't wish to do so still, feel free to report it to me or the rest of the staff. Otherwise, I'll take what you said as a generic "blanket statement" with nothing to go on that's concrete.

I know it's being pedantic, but it's also "you're," not "your."


----------



## WhataSpaz (Feb 20, 2012)

jellybellys said:


> Your just jealous.


If you're going to troll, at least prove you're smarter by using proper grammar usage


----------



## SomeGuyDude (Jul 3, 2011)

It's worth mentioning that there's a dang good reason guys like Franco, Morfic, and Ezekeel USED to follow the current linux branch and then eventually went back to the old Android branch. Anyone who recalls suddenly firing up their Franco updater and seeing the version go from 0.36 to 0.8 has to remember being a little confused.

I think this is a great idea, but don't just assume that later = better when it comes to using a PC kernel on a phone.


----------



## Ezekeel (Nov 13, 2011)

jellybellys said:


> Your just jealous.
> 
> Well most are... (not going to mention any names)


When you make a post in the development forum and ask for help from kernel developers and then brush them off with rude answers if they have a question or make a comment and mix that with some general accusations against the dev community, the chance of finding a dev willing to help you will decrease.


----------



## jellybellys (Apr 3, 2012)

If anyone wants a status update, I was on gtalk with sonicxml all afternoon working on the kernel. The kernel will compile now, but not boot. Here is the zImage incase anyone wanted to look at it.

For those of you who don't like the idea of a pc kernel running on a phone, stop complaining. There's plenty of other kernels for you to choose from.


----------



## jellybellys (Apr 3, 2012)

Ezekeel said:


> When you make a post in the development forum and ask for help from kernel developers and then brush them off with rude answers if they have a question or make a comment and mix that with some general accusations against the dev community, the chance of finding a dev willing to help you will decrease.


Sorry for the internet misunderstanding. I should have added a </sarcasm> tag to that.


----------



## jellybellys (Apr 3, 2012)

yarly said:


> Also, feel free to mention names of anyone holding out the source after being asked that works on Linux Kernels. GPL violators and those that defend them should be shamed in public. I get annoyed when I cant read through the source of a kernel because I like to see what people add for my own interests even if I don't run their entire kernel. If you don't wish to do so still, feel free to report it to me or the rest of the staff. Otherwise, I'll take what you said as a generic "blanket statement" with nothing to go on that's concrete.


The most recent case where I have run into a non-GPL compliant kernel was when I was working on a CM10 port for the a500. I wanted to incorporate thor2002ro's (not on rootzwiki) kernel, but it was not open source.


----------



## yarly (Jun 22, 2011)

jellybellys said:


> The most recent case where I have run into a non-GPL compliant kernel was when I was working on a CM10 port for the a500. I wanted to incorporate thor2002ro's (not on rootzwiki) kernel, but it was not open source.


If it's not on rootz, not much I can do about it unfortunately. Nag the mods on XDA if it happened there. I know a few that would look into it.


----------



## jellybellys (Apr 3, 2012)

yarly said:


> If it's not on rootz, not much I can do about it unfortunately. Nag the mods on XDA if it happened there. I know a few that would look into it.


Yes, for the most part, RootzWiki does a great job at being GPL compliant. I just didn't want you to take that as a generic "blanket statement" with nothing to go on that's concrete.


----------



## jellybellys (Apr 3, 2012)

Does anyone know how to get something similar to a logcat while it's on the "Google" splash screen? It's stuck on the Google splash screen and I can't seem to narrow down the problem.


----------



## imnuts (Jun 9, 2011)

Are you using the proper graphics drivers for whatever version of Android you're using?


----------



## bigeyes0x0 (Apr 1, 2012)

jellybellys said:


> Does anyone know how to get something similar to a logcat while it's on the "Google" splash screen? It's stuck on the Google splash screen and I can't seem to narrow down the problem.


If you want to work on this kind of low level, I think hacking your phone to get the JTAG output is a good idea. Still as Ezekeel pointed out, it's much better to backport good features from upstream instead of shoehorning vanilla Linux kernel (FWIW, Linux kernel is generic calling it PC kernel is just well IDK) onto the phone, unless you want to run something else instead of Android on it.


----------



## jellybellys (Apr 3, 2012)

imnuts said:


> Are you using the proper graphics drivers for whatever version of Android you're using?


Tried pulling drivers/video from a JB kernel, but then it wouldn't compile. I started mixing the 3.6 and 3.0 jb drivers but it got too complicated.


----------



## jellybellys (Apr 3, 2012)

bigeyes0x0 said:


> If you want to work on this kind of low level, I think hacking your phone to get the JTAG output is a good idea. Still as Ezekeel pointed out, it's much better to backport good features from upstream instead of shoehorning vanilla Linux kernel (FWIW, Linux kernel is generic calling it PC kernel is just well IDK) onto the phone, unless you want to run something else instead of Android on it.


I wouldn't know how to get JTAG output on a galaxy nexus though. I'm going to keep trying at this 3.6_r1 thing, and if that dosen't work at all, I think I might take the samsung kernel and merge in things from GNU/Linux 3.0-3.6r1 to make it a full GNU/Linux kernel. One of my dreams I saw was being able to boot into a native linux environment, and that might be how it will happen.


----------



## bigeyes0x0 (Apr 1, 2012)

jellybellys said:


> I wouldn't know how to get JTAG output on a galaxy nexus though. I'm going to keep trying at this 3.6_r1 thing, and if that dosen't work at all, I think I might take the samsung kernel and merge in things from GNU/Linux 3.0-3.6r1 to make it a full GNU/Linux kernel. One of my dreams I saw was being able to boot into a native linux environment, and that might be how it will happen.


About the JTAG here you go


----------



## imnuts (Jun 9, 2011)

Also, you do realize that the source provided by Google is a "full linux kernel" right? You could take the phone source, use the proper config, and build a working 3.0.8 kernel for your desktop if you wanted. It's also fairly easy to merge in newer versions of the 3.0.x branch, and many of the bug fixes are already back ported.

As for drivers, if you don't use the device specific drivers from Google's source tree, odds are, you're never going to get it to build and boot. The graphics props provided for the ROM are meant for a specific version of graphics driver in the kernel, and if the two don't match, it doesn't work. As far as I know, anyone that has ever ported the vanilla sources has always had to pull in device specific drivers to their work, and it is not an easy task, nor is it something that is quick and easy. The one device I owned where someone did do this, it took 4-5 months to get it to work and get all the bugs worked out.


----------



## mikeymop (Jun 28, 2011)

They did this for the Dinc when GB came out, it was invaluable for development and we had a great kernel way before HTC sourced theirs. I wish I could contribute directly, if theres anything we can do let us know.


----------



## jdkoreclipse (Jun 16, 2011)

mikeymop said:


> They did this for the Dinc when GB came out, it was invaluable for development and we had a great kernel way before HTC sourced theirs. I wish I could contribute directly, if theres anything we can do let us know.


I remember this...invisiblek cayniarb and chad did the .35 kernel and then slayher did .37 and then cayniarb did .38

Sent from my Galaxy Nexus using RootzWiki


----------



## dalingrin (Aug 21, 2011)

I hate to be a Debbie Downer but.....Something you should consider is that the latest and greatest kernel work being done for a device is always in the architecture specific kernel. In the Galaxy Nexus's case that would be the Samsung kernel. The guys working on these devices upstream at Samsung and Google are not committing fixes and features directly to the upstream Linux kernel. So, after you get the kernel up and going you will need to forward port old kernel parts into this newer kernel. What you are left with is that the most relevant bits of the kernel to the Galaxy Nexus will still be the "old" 3.0 kernel.

The HTC devices like the Dinc that had newer kernels from community developers were based on upstream work-in-progress Qualcomm kernels not the general Linux upstream kernel. For instance, right now Qualcomm is working on a 3.4 kernel as seen here: https://www.codeaurora.org/gitweb/quic/la/?p=kernel/msm.git;a=shortlog;h=refs/heads/msm-3.4
This is an example of an architecture specific kernel that someone with an Qualcomm device could target if they really wanted a newer kernel.

At the end of the day, in my opinion fwiw, you would be better off sticking to the latest and greatest kernel that Samsung works on and backport anything from 3.6rc1 that you think would benefit the device. That said, I think you might be surprised that there really isn't much that we want or need from 3.6.


----------



## jellybellys (Apr 3, 2012)

Thanks for everyone's feedback! This has been a great experience so far. I have never dealt with kernels much, well not at all except for a few kernel tweaks I made for myself on the a500. Based on everyone's excellent feedback I think I have decided what I am going to do.

1. Start with a linux 3.0.x base (not samsung) and merge in samsung/google kernel stuff
2. Test that that works & boots
3. Make a ramdisk that points to a ext4 partition on the internal storage with an Ubuntu install on it.
4. Make any necessary tweaks to the kernel
5. Test booting natively into linux, and hope for the best.

That's my plan of action. The galaxy nexus dosen't need a newer kernel. This project would be more useful for a device like the Incredible 2 that still runs jelllybean on a crappy 2.6 kernel. If anyone else thinks they have a better plan of action, please tell me!


----------



## DeeBoFour20 (Jul 26, 2012)

I was wondering if something like this would happen ever since Android code got merged into the Linux kernel in 3.3. Surprised no one has mentioned that so far. I'm not a developer but from what I understand this should help.

http://news.cnet.com/8301-30685_3-57402415-264/with-linux-merge-expect-android-flowers-to-bloom/


----------



## jellybellys (Apr 3, 2012)

Sounds like an interesting idea. I am really looking forward to some working builds!


----------



## admiralspark (Sep 26, 2011)

First, Jellybellys, I want to say that I'm glad you've chosen to work on the kernel.
I've written code for both mainline and the android-fork kernels for a couple years now--it's a bit of a passion for me. If you don't mind, I wanted to respond to a few of the comments in the thread so far, maybe shedding some insight into the process and also helping you achieve a bootable kernel!

First, some feedback on a few comments:


yarly said:


> Thanks for everyone's feedback! This has been a great experience so far. I have never dealt with kernels much, well not at all except for a few kernel tweaks I made for myself on the a500. Based on everyone's excellent feedback I think I have decided what I am going to do.
> 
> 1. Start with a linux 3.0.x base (not samsung) and merge in samsung/google kernel stuff
> 2. Test that that works & boots
> ...


If you don't mind, I have a few minor changes I think you might want to consider. Try this:
1. *Start with a linux 3.0.x base from Samsung, and patch it with the mainline kernel 3.0.x patches that Samsung hasn't merged yet*. There's plenty of efficiency and driver updates in the kernel patches for 3.0.x that you'll find useful, and you'll get to utilize all of the mainline features that you wanted.
2. *Build/pull a ramdisk from the stock image and package it with your kernel (zImage), then release the zip for us to test. Or, look into the Anykernel project*.
3. Test that that works & boots
4. Make a ramdisk that points to a ext4 partition on the internal storage with an Ubuntu install on it. *The ramdisk contains the necessary tools that the system needs to boot, initialization files and whatnot*. Your stock ramdisk (with necessary updates) should be sufficient, and the bootloader will need to point at the necessary OS files somewhere inside the phone (they don't need to be on a separate partition). *Although X11 has been ported to Android* (see the Botbrew project for an easy installation), *you will need Xorg display drivers for any kind of hardware acceleration* (think 3D, youtube, rendering by GPU), *and they will need to be completely written by hand as they don't exist yet (outside of the OMAP development branch, which has closed-source graphics binaries we have to use)*. Another option is using Vesa, but, screw that when we have such an awesome phone!
5. Make any necessary tweaks to the kernel
6. Test booting natively into linux, and hope for the best.

IF you'd like an excellent example of porting the 3.x kernels to an android device, check out the Kernel 3.0.21 work on the Nook Tablet. These guys have done an excellent job of porting the necessary code to their kernel to boot both ICS and more generic linux desktop OS's like Debian. Prime stuff.

So, final thoughts: I'm cheering you on here, I hope you're able to pull this off, it'd be a major step towards some exciting development potential for the Gnex (and, possibly, some Ubuntu for Android). Spend some time familiarizing yourself with the boot/init process that Android uses, and how the kernels are packaged, and above all else, keep us posted on progress!


----------



## sjflowerhorn (Oct 17, 2011)

admiralspark said:


> First, Jellybellys, I want to say that I'm glad you've chosen to work on the kernel.
> I've written code for both mainline and the android-fork kernels for a couple years now--it's a bit of a passion for me. If you don't mind, I wanted to respond to a few of the comments in the thread so far, maybe shedding some insight into the process and also helping you achieve a bootable kernel!
> 
> First, some feedback on a few comments:
> ...


Wait for it . . Wait for it. . . . . Booya Gramma booya! 
Sorry but I was waiting quietly for that. And he's right about everything he said. You have to comply with the GPL. Watch out for the lawsuits bro. Only advice I can give you. And don't piss off people who will report you for breaking GPL compliance. Life lessons. Expensive ones. And be kind rewind.

Sent from my Galaxy Nexus using RootzWiki


----------



## jellybellys (Apr 3, 2012)

sjflowerhorn said:


> Wait for it . . Wait for it. . . . . Booya Gramma booya!
> Sorry but I was waiting quietly for that. And he's right about everything he said. You have to comply with the GPL. Watch out for the lawsuits bro. Only advice I can give you. And don't piss off people who will report you for breaking GPL compliance. Life lessons. Expensive ones. And be kind rewind.
> 
> Sent from my Galaxy Nexus using RootzWiki


Where did you get the impression that my kernel wasn't GPL? Its been GPL compliant since I started making it.

Sent from my Galaxy Nexus using RootzWiki


----------



## admiralspark (Sep 26, 2011)

sjflowerhorn said:


> Wait for it . . Wait for it. . . . . Booya Gramma booya!
> Sorry but I was waiting quietly for that. And he's right about everything he said. You have to comply with the GPL. Watch out for the lawsuits bro. Only advice I can give you. And don't piss off people who will report you for breaking GPL compliance. Life lessons. Expensive ones. And be kind rewind.
> 
> Sent from my Galaxy Nexus using RootzWiki


Yeah, 3 hrs of sleep in two days, I sound like an ESL speaker.

Jellybellys, he's just saying make sure it's kept that way  It's pretty easy if you think of it like this: if you're going to compile it and distribute it, right before you post a link to the zImage or an update.zip, git push all of your changes from your local machine. 
For example, in my build script I have a section specifically to push any possible code changes upstream before I run my 'make --options -j9'.


----------



## dalingrin (Aug 21, 2011)

admiralspark said:


> First, Jellybellys, I want to say that I'm glad you've chosen to work on the kernel.
> I've written code for both mainline and the android-fork kernels for a couple years now--it's a bit of a passion for me. If you don't mind, I wanted to respond to a few of the comments in the thread so far, maybe shedding some insight into the process and also helping you achieve a bootable kernel!
> 
> First, some feedback on a few comments:
> ...


+1000

Also, kernels like Imoseyon's leankernel are already patched to newer kernel versions. I'm not sure its worth starting from scratch.


----------



## imnuts (Jun 9, 2011)

dalingrin said:


> Also, kernels like Imoseyon's leankernel are already patched to newer kernel versions. I'm not sure its worth starting from scratch.


Last I checked, there were no kernels that are beyond 3.0.x. There are many that have features and bug fixes back-ported from the newer versions, but they are not actually on the newer kernel branches and are still on the 3.0.x line. What the OP is trying to do would result in a much cleaner code base IMO, and also I would hope fewer issues.


----------



## admiralspark (Sep 26, 2011)

dalingrin said:


> Last I checked, there were no kernels that are beyond 3.0.x. There are many that have features and bug fixes back-ported from the newer versions, but they are not actually on the newer kernel branches and are still on the 3.0.x line. What the OP is trying to do would result in a much cleaner code base IMO, and also I would hope fewer issues.


You have to remember, the mainline kernel moves at a much faster pace of development than the android-fork kernels. 3.0.x IS the "current" kernel in the android development world, as far as stable kernels go, and 3.4.x is the development branch. 
Technically, and unfortunately, taking a mainline kernel and forward-porting drivers/network stacks/kernel runtime code etc will create a very DIRTY kernel--it will require a slew of patches to make the older, proprietary bits work with the newer, advanced, upgraded code. Hence why having those proprietary drivers sucks









However, if this project works, it will make it VERY easy to implement new changes--once drivers work, you will know what changes to upstream patches need to be made to make the code all work together. It's going to be a serious learning experience!


----------



## laureanop (Aug 1, 2011)

Admiralsparks, imnuts,sonic and jelly. Thank you for sharing your knowledge with us.Even if nothing comes out of this project I have learned a lot just by reading the thread.

The relentless pursuit of the perfect rom


----------



## DigitalDK (Jun 7, 2011)

Any new headway with this? I'm surprised more developers haven't jumped on board...


----------



## jellybellys (Apr 3, 2012)

DigitalDK said:


> Any new headway with this? I'm surprised more developers haven't jumped on board...


I have been extremely busy lately and haven't gotten to work on this much. I plan on just making a nice, lightweight, android kernel with cool features (forget the whole linux thing) and releasing it under the name "featherKernel"


----------



## dmeadows013 (Sep 7, 2011)

If this kernel is optimized for battery life I'll jump on it lol. Gonna take a look at the source now.


----------



## droidlover (Jun 1, 2012)

I was following this pretty close. Nobody able to get to boot and stabilize with all the amazing dev's and contributors?

have to say I am surprised

Sent from my Galaxy Nexus using RootzWiki


----------



## d2d (Sep 2, 2011)

I seriously would like Jellybellys to not abandon hope & work on this project !!


----------



## sfreemanoh (Jul 9, 2011)

d2d said:


> I seriously would like Jellybellys to not abandon hope & work on this project !!


You realize you're a necromancer now, right? This thread was abandoned almost a year ago...


----------

