• Introducing XDA Computing: Discussion zones for Hardware, Software, and more!    Check it out!
  • Fill out your device list and let everyone know which phones you have!    Edit Your Device Inventory

[KERNEL][3.x][dev] Nook Color ICS/CM9 kernel development

Search This thread
I went ahead and forked this one project for "dalingrin / NookColor_Kernel," on my github project. I have an idea that kernel might compile with the headers changed out to the 3.0.8-gb0e1840 headers on the nook color for CM 10. Here is the link for that. https://github.com/dalingrin/NookColor_Kernel.

Here is the link for my github project. https://github.com/meteorrock

Here is the kernel box for the nook color using CM 10 <software samari>. https://github.com/meteorrock/android_kernel_bn_encore

And here is the framwork box for you <software samari> for the jellybean branch of CM 10 for the nook color. https://github.com/fat-tire/android_device_bn_encore

This will be just a wild development idea for me to see if it will work. I believe the nook color tweaks tool is just a front end GUI that might work with some modification to his kernel to work on CM 10. Just a theory, going to give it a go over the next few days or weeks as I get time. If you do not try, you will not move forward in your development skills. I will probably fail but I will give it my best shot. I will try to track down the headers for that kernel by either cherrypicking them from the nook color for CM 10 or find them on the internet.

That would be great if you can get that feature implemented for CM 10 so if you want to help jump right on in =) If I can get it to compile and running on my nook color on my side I will post results in this link here for testing also for you. Thanks for helping <software samari> . I will track down the headers for you and post a link in here for you here in a bit. :)
 
Last edited:
I went ahead and forked this one project for "dalingrin / NookColor_Kernel," on my github project. I have an idea that kernel might compile with the headers changed out to the 3.0.8-gb0e1840 headers on the nook color for CM 10. Here is the link for that. https://github.com/dalingrin/NookColor_Kernel.

Here is the link for my github project. https://github.com/meteorrock

Here is the kernel box for the nook color using CM 10 <software samari>. https://github.com/meteorrock/android_kernel_bn_encore

And here is the framwork box for you <software samari> for the jellybean branch of CM 10 for the nook color. https://github.com/fat-tire/android_device_bn_encore

This will be just a wild development idea for me to see if it will work. I believe the nook color tweaks tool is just a front end GUI that might work with some modification to his kernel to work on CM 10. Just a theory, going to give it a go over the next few days or weeks as I get time. If you do not try, you will not move forward in your development skills. I will probably fail but I will give it my best shot. I will try to track down the headers for that kernel by either cherrypicking them from the nook color for CM 10 or find them on the internet.

That would be great if you can get that feature implemented for CM 10 so if you want to help jump right on in =) If I can get it to compile and running on my nook color on my side I will post results in this link here for testing also for you. Thanks for helping <software samari> . I will track down the headers for you and post a link in here for you here in a bit. :)


~~~~~~~~~~~~~~~~``

Update............... <software samari> you will need the android sdk and its included toolchains here. We are developing under linux 64 bit. Here is the link for that for you. Some are installed already if you have a fresh install of your linux distro. http://developer.android.com/sdk/index.html


Then we need to install all of these dependancies under linux. I use the apt-get to fetch my tools. I will list the code for you in here.

Code:
sudo apt-get install python

Code:
sudo apt-get install git-core

And here is the other dependencies you might need. You will need the open jdk or java Runtime for that android sdk. Its included in the code below.

Code:
 sudo apt-get install git-core gnupg flex bison gperf build-essential \
  zip curl libc6-dev libncurses5-dev:i386 lib32ncurses5-dev x11proto-core-dev \
  libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \
  libgl1-mesa-dev g++-multilib mingw32 openjdk-6-jdk tofrodos \
  python-markdown libxml2-utils xsltproc zlib1g-dev:i386
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so

There is a guide here at this link in XDA for you to go over if you need to. http://forum.xda-developers.com/showthread.php?t=1966751

~~~~~~~~~~~~~~~~~

I will try to pull that header.h file from Jellybean and list it for you in here this weekend, got tons of homework right now. There should be that one header.h file for our nook color in the source files in the link I listed above. I am not sure but I think the header files for our nook color is architecture specific so we can not use the header files for 3.0.8 from generic linux kernels. We are using the ARMv7 I believe.

~~~~~~~~~~~~~~

Update.

Here is that makefile path variable for the omap 3-3 for you <software_samari> if you are still with us. https://github.com/meteorrock/android_kernel_bn_encore/blob/encore-omap3-3/Makefile

For your other question up in the other thread, you can check my thread here in cyanogenmod for getting up VM up and going. I was using "cygwin" on Windows 7 and the kernel maintainer for the encore said it uses too many patches for the 64 bit version. Its easy and fast to set up ubuntu on a VM. I got all of the links and codes needed for a quick setup with "virtualbox" or "Vmware workstation 9.0.1" in last few boxes in this link blog I made for the developers here starting to look into development on the encore, which is our nook color. http://forum.cyanogenmod.org/topic/...h-me-trying-to-learn-how-to-code/page__st__40

They do not mind "cowboy coders" but I think the other developers like to work in teams, they are old hat coders up in that one thread developing at the moment. If you want you can introduce yourself up in the IRC #nookcolor at freenode.net. They like the IRC environment. Dont worry I am a cowgirl too. :)
 
Last edited:
  • Like
Reactions: skyliner33v

software_samurai

Senior Member
Nov 18, 2006
109
51
I don't like using a VM on win7 - it's way too slow.

I've gotten everything installed and configured under cygwin. However, when I try to actually build CM10, schedtool is "missing" (obviously). There doesn't appear to be a cygwin version. I can mock up a python substitute, but that will take some time. Is there a way I can disable the use of schedtool in the build process?
 
I don't like using a VM on win7 - it's way too slow.

I've gotten everything installed and configured under cygwin. However, when I try to actually build CM10, schedtool is "missing" (obviously). There doesn't appear to be a cygwin version. I can mock up a python substitute, but that will take some time. Is there a way I can disable the use of schedtool in the build process?

Cygwin uses the apt-cyg commands. Try the <apt-cyg remove schedtool> and see if that helps you in that environment. I haven't used cygwin much though, I moved from cygwin to linux as I got further along in my knowledge of building android on linux. The apt-cyg works just like the apt-get does on linux.

Here is the binaries needed for the apt-cyg.

Code:
C:\Windows\System32>C:\Users\admin\Downloads\setup.exe -q -P  wget,tar,qawk,bzip2,subversion,vim

Next download and install apt-cyg from within Cygwin.

Code:
svn --force export http://apt-cyg.googlecode.com/svn/trunk/ /bin/
Code:
$ chmod +x /bin/apt-cyg
 
Last edited:

software_samurai

Senior Member
Nov 18, 2006
109
51
<apt-cyg remove schedtool> ?
It's not installed, so I don't understand how "removing" it would help.
Just for fun, I tried to <apt-cyg install schedtool> and it failed as I thought it would. Package schedtool not found
(I really wish someone would just create an Eclipse project that builds CM10 under Win7. Linux is great, but I've got more dev tools under Win7. Oh well.)

Regardless, I did manage to the the vbox for Ubuntu running at an acceptable speed, after fiddling with tons of settings and such. So I'm sync'ing the CM10 encore repo now. With any luck I'll be able to do a complete build by the end of this weekend.

Once that's done, I suppose I need to build a CM10 encore kernel, yes? And then perhaps I can start looking at the "nook color tweaks" thing.
 
Opps, I misread your posts above, I thought you had that dependency already and wanted it removed. Just a short quip on my part.

Yeah, everyone here is developing on a VM. I had that discussion with the kernel maintainer as I was on a laptop last year with cygwin under 32 bit. He said the kernels are being developed under 64 bit. I just keep windows 7 for my games and use VM virtualbox for looking into development. I guess the android kernels merged back into the main linux kernel branches for linux and Linus Torvalds himself did away with 32 bit support.

We lost a few people with no way to develop on 64 bit as some here are from impoverished countries wanting to help with lower grade comps. Glad to see you up in going with virtualbox though. I know it takes a workhorse to get that VM not to lag on a host OS.

~~~~~~~~~~~~~

Make sure you got all of your dependencies under your linux host OS for compiling, I just downloaded a few dependencies that I had missing as I had an error trying to compile this game app I am working on. Just downloaded from the apt-get the g++ package that was not installed by default for compiling for c++.

Here is another link for you to check over here in XDA on kernel development. http://forum.xda-developers.com/showthread.php?t=1748297
 
  • Like
Reactions: skyliner33v

software_samurai

Senior Member
Nov 18, 2006
109
51
Okay, I managed to successfully build CM10 under the vbox/VM. It took 35 GB of disk space! (At least now I know how to dynamically expand the vbox's virtual hard drive when I run out of space.)

So, where is the nook color tweaks tool source code?

Edit: Is this it? https://github.com/dalingrin/NookTweaks

One more Q: Is the https://github.com/meteorrock/android_kernel_bn_encore the repo you want to modify to create the kernel that will work with the nook tweaks tool?

Edit (3rd): ugh. I grabbed that repo above and when do a 'make', it asks me a thousand questions! Am I doing something wrong, or am I missing a .config file, or what?
Okay, I managed to figure out how to build the kernel. But it only creates a zImage. Looks like I need something to turn that into an installable kernel?
 
Last edited:
His source code is on the git. Its in that one link I gave earlier.


~~~~~~~~Rant lol~~~~~~~~~~
I am having problems with others taking my coding seriously right now so this might be my last post here <software samari>. Been getting tons of hate mail and other things from developers on whether at my age I have responsibly to go along with it. I am going to retire this username along with my profile pic at this time. I hate to roleplay a older middle age man online, but they just do not want a teenage girl up in the forums knowing any code. No matter how gifted. I hope the best of luck on this project for you though. I got jaded and tagged with my knowledge with this subject all over the internet up in the linux forums. Looking into setting up a server using linux right now.

They think I am only here to pick up skills to exploit others, which is stupid, but bigotry and ageism is a hard to let go for some in development. All I care is about the end results, I don't care if its someone 8 years old and a prodigy with computers or an 80 year old unix wizard. And I can not blame them. Teenagers have a bad track record and most are self serving. ~~~~~~~~~~~End of Rant~~~~~~~~~~ lol.

~~~~~~~~~~~~~~~~~~~

Try to pick up some git tools for linux like a diff tools, kdiff3 along with gitcola or some git related GUI. Check over my forums in cyanogenmod. If you know how to code in C language you will be alright.

Another thing, these old school coders will not reply to a cowboy coder, it took me a year to get even the kernel maintainer to respond to any questions I had. These are the TOP hackers here, and they will follow protocol of non response to outsiders. You have to show them your serious about this project up in the IRC #nookcolor channel at freenode.net. If you can get them on your side, you can name your own price at any development job you want IRL. Seriously. Top players are watching this device. I know lots of developers here will wash out because they are inverted and do not like chat environments. I do not care for chat environments either but try to visit with them up there.

They also respect those that can at least have a handle on the github for the encore project here. So make you one. Check my links above.

Also from what I have learned you will need that .config file for the encore ported from Jellybean. Its on the github in the Jellybean branch for the encore. Fattire is the project leader for these linux kernel branches. Its also in that link I gave above in box 142.

Pick up some git skills like pushing and pulling files and submitting commits if you do not know how to already.

~~~~~~~~~~~~~~~~`

If you got that zimage post it in here please. Let others help you test this awesome kernel. Your almost done. GREAT JOB bro. :=) That is AWESOME if you got that zimage file. Complete it with this source site here on making your module. http://www.csee.umbc.edu/courses/undergraduate/CMSC421/fall02/burt/projects/howto_build_kernel.html


Then slam that kernel home on the github for props and respect for the encore project. Make you a github account. :=) Make your mark in history. Publish your code that you got on the github please. Create a fork off of the overclock kernel project on the git or with the guys up in IRC. Not sure where you should fork it.



Sorry to be so long winded. =)
 
Last edited:
  • Like
Reactions: SGH-i200 and webyrd

software_samurai

Senior Member
Nov 18, 2006
109
51
~~~~~~~~Rant lol~~~~~~~~~~
I am having problems with others taking my coding seriously right now so this might be my last post here <software samari>. Been getting tons of hate mail and other things from developers on whether at my age I have responsibly to go along with it. I am going to retire this username along with my profile pic at this time. I hate to roleplay a older middle age man online, but they just do not want a teenage girl up in the forums knowing any code. No matter how gifted. I hope the best of luck on this project for you though. I got jaded and tagged with my knowledge with this subject all over the internet up in the linux forums. Looking into setting up a server using linux right now.

They think I am only here to pick up skills to exploit others, which is stupid, but bigotry and ageism is a hard to let go for some in development. All I care is about the end results, I don't care if its someone 8 years old and a prodigy with computers or an 80 year old unix wizard. And I can not blame them. Teenagers have a bad track record and most are self serving. ~~~~~~~~~~~End of Rant~~~~~~~~~~ lol.
While I understand your frustration (I was 9 when I started to program z80 code on a TRS-80), I would urge you not to give up. Been there, done that, got t-shirt. The best way to handle people like that is to ignore them, keep learning and growing your skills, and be a shining success. It isn't easy, but believe me, once you start producing good solid code, you will gain the respect you're seeking. But for heaven's sake, don't just give up. (That's what they want you to do.)

Try to pick up some git tools for linux like a diff tools, kdiff3 along with gitcola or some git related GUI. Check over my forums in cyanogenmod. If you know how to code in C language you will be alright.
I am familiar with *nix and such dev tools. I've been a software engineer for over 23 years now. And while I've built a *nix kernel or two in the past, this is my first foray into Android, hence why I'm unsure how it works. (One reason I'm checking it out.)

Another thing, these old school coders will not reply to a cowboy coder, it took me a year to get even the kernel maintainer to respond to any questions I had. These are the TOP hackers here, and they will follow protocol of non response to outsiders. You have to show them your serious about this project up in the IRC #nookcolor channel at freenode.net. If you can get them on your side, you can name your own price at any development job you want IRL. Seriously. Top players are watching this device. I know lots of developers here will wash out because they are inverted and do not like chat environments. I do not care for chat environments either but try to visit with them up there.

They also respect those that can at least have a handle on the github for the encore project here. So make you one. Check my links above.
Again, the best way to gain respect is to succeed despite all the naysayers around you. Don't give up.

Also from what I have learned you will need that .config file for the encore ported from Jellybean. Its on the github in the Jellybean branch for the encore. Fattire is the project leader for these linux kernel branches. Its also in that link I gave above in box 142.

Pick up some git skills like pushing and pulling files and submitting commits if you do not know how to already.
Yes. git is not that different from CSV or SVN, but this is the first time I've really worked with it directly, so I've got a few things to learn. That's the easy part.

If you got that zimage post it in here please. Let others help you test this awesome kernel. Your almost done. GREAT JOB bro. :=) That is AWESOME if you got that zimage file. Complete it with this source site here on making your module. http://www.csee.umbc.edu/courses/undergraduate/CMSC421/fall02/burt/projects/howto_build_kernel.html

Then slam that kernel home on the github for props and respect for the encore project. Make you a github account. :=) Make your mark in history. Publish your code that you got on the github please. Create a fork off of the overclock kernel project on the git or with the guys up in IRC. Not sure where you should fork it.
Already have a github account. (Just no projects yet.)

The zImage I created was from the baseline, so there's nothing new/special about it. When I start to tinker with the source code, then I'll post alpha/beta builds for others to test.

I should have been a little more precise in my query: Is there some script that has already been written that does all the steps necessary to take the zImage and the .ko files and build a flashable .zip file? If not, I'm sure I can scrape together one myself. I was hoping someone had already done that part. I'm slightly disappointed that it's not a target in the Makefile already. All the *nix Makefiles I've ever written always contained all processing commands necessary to create final, releasable packages. So I'll just have to dig up all the steps and build my own scripts I suppose. Such is the life of a... Software Samurai! <que dramatic music>
 

steven676

Senior Member
Nov 24, 2011
593
2,430
Okay, I managed to figure out how to build the kernel. But it only creates a zImage. Looks like I need something to turn that into an installable kernel?

The answer to this varies quite a bit depending on what ARM platform you're building for, but for us specifically, "make uImage" is sufficient. (You can also run u-boot's mkimage tool yourself if you like.)
 
  • Like
Reactions: software_samurai
Thanks software samari. I will not give up. Just thinking I might change handles for a bit until I am just a little older? It just upsets me some online over in the linux forums are so obtuse.

I love development and computers, I will always be around here and on the linux forums. Just might not proclaim my age or gender until later. I think its just causing more problems for me than what it is worth to proclaim ATM. Also, I think I am just getting a little essentric, for example putting rants in here in the forums when we really do not need that drama. Just need some downtime for a few weeks I think. I am just too serious lol. I need to be a tad more professional.

Thanks for helping us, I hope you stick around for abit. :)
 

Top Liked Posts

  • There are no posts matching your filters.
  • 47
    This is quite awesome.

    Here's some amazing things that have happened today:

    * jellybean has been built by krylon360 from AOSP and he's testing it out. I'm doing the same with the cm10 repo. I've already created some jellybean branches in the device_repo and I'll push that.

    * epsylon3 has a module for defy that allow full video/omx stuff to work on omap3. It's for the .32 kernel and it may be a fast way to get omx using the old kernel. nemith has expressed interest if no one else wants to try it.

    * I started a 3.4 kernel port and got it to build. it's a mess so I want to start over at some point. I haven't tried it, I know it won't work and I lost all my microUSB cables for the moment.

    * oh, and keyodi has sound working in 3.0!!!

    Holy crap!
    35
    This thread is for development of a long-discussed 3.x kernel for encore/nookcolor. The goal is not only to have a modern kernel, but to take advantage of the expected support for hardware accelerated video and such.

    TI has released an incomplete 3.x branch which is now being used as a base. The project so far has been about getting stuff ready and working so that as more source comes into omapzoom, it can be readily incorporated into our kernel.

    keyodi (with some contributions from me, but mostly keyodi, so thank him below) has been doing the work thusfar for a few days, and there is now a VERY buggy build up-and-running. But since there has been so much discussion in the other cm9 dev thread, we felt maybe moving it here would be a good idea.

    Current status:
    (updated 5/27/12)

    • it boots up
    • accel 2d graphics work
    • mounting read/writing internal & external SD card
    • touchscreen (updated 3.4 driver) works but "stutters" (see below)
    • bluetooth works
    • adb works
    • no wifi wifi!
    • accelerometer works
    • charger not recognized on boot.
    • random restarts when sleeping
    • general sleep issues (pwr_core doesn't enter sleep)
    • no sound
    • weirdness where touchscreen is responsive only in short bursts.
    • no hardware accelerated video (no source for it)

    Userland-wise, OMAP_ENHANCEMENT support needs to be added back into ICS, but that's beyond the scope of this thread.

    Devs are invited to help. Anyone else should probably stay away, as this is buggy as hell.

    To Build:

    Add the following local_manifest.xml to ~/android/system/.repo:

    --------------------

    <?xml version="1.0" encoding="UTF-8"?>
    <manifest>

    <remote name = "gh"
    fetch="git://github.com/" />

    <remove-project name="CyanogenMod/android_hardware_ti_omap3" />

    <project path="device/bn/encore"
    name="fat-tire/android_device_bn_encore"
    remote="gh"
    revision="ics-3.0"/>

    <project path="kernel/bn/encore"
    name="keyodi/ti-omap-encore-kernel3"
    remote="gh"
    revision="encore-omap3-3"/>

    <project name="platform/hardware/ti/omap3" remote="oz" path="hardware/ti/omap3" revision="ics-mr1" />


    </manifest>


    --------------------
    Then repo sync, and then re-build (doing a make clobber may not be a bad idea to pick up changes to the BoardConfig.mk file). Changes were made to the device on its own branch to turn off audio for now. Also the kernel, using the cm9 conventions, is built along with the rest of CM9.

    Try at your own risk. It is truly an unusable, barely completed result at the moment. Kernel devs, meet up on irc.

    Also see the NookTablet (OMAP4, but lots of similar hardware) 3.x thread here as well as hashcode's Kindle Fire (OMAP4 also, but with 512MB) 3.x kernel thread here.
    29
    We have sound!!!

    I just got sound working...I pushed all the changes so we at least have the source, but the codec needs to be cleaned up a little and I still need to compare the current source w/ the .32 to make sure we're not missing anything.

    The legacy audio (BOARD_USES_AUDIO_LEGACY := true), also needs to be enabled in the BoardConfig in order for audio to work.
    16
    Okay, another brief update:

    1. rebuilt w/linaro 4.7 & 3.0 kernel using slightly different cflags.
    2. it got stuck again on netd.
    3. I straced to see where it was getting stuck. replaced libjpeg.so with a recent nightly.
    4. It boots!

    Update: I think I need to redo this. I'm not 100% sure which compiler it used actually.. Update #2-- Hmm, no I actually suspect I did it right. but jic I'm gonna rebuild and try it again.

    Here's what I used. Hopefully it still picked up the -O3 stuff, though i wasn't looking while it was building.

    Code:
    -TARGET_GLOBAL_CFLAGS += -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp 
    -TARGET_GLOBAL_CPPFLAGS += -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp 
    +TARGET_GLOBAL_CFLAGS += -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp
    +TARGET_GLOBAL_CPPFLAGS += -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp
    +TARGET_arm_CFLAGS   := -O3 -fomit-frame-pointer -fstrict-aliasing -funswitch-loops \
    +                       -fmodulo-sched -fmodulo-sched-allow-regmoves
    +TARGET_thumb_CFLAGS :=  -mthumb \
    +                        -Os \
    +                        -fomit-frame-pointer \
    +                        -fstrict-aliasing
    +TARGET_TOOLS_PREFIX=/home/fattire/Development/linaro/android-toolchain-eabi-4.7/bin/arm-linux-androideabi-
     TARGET_BOOTLOADER_BOARD_NAME := encore
     TARGET_PROVIDES_INIT_TARGET_RC := true
     TARGET_USERIMAGES_USE_EXT4 := true
    +CROSS_COMPILE=~/Development/arm-2010q1/bin/arm-none-linux-gnueabi-

    Looks like the kernel modules didn't load for some reason, so no wifi so I can't test quadrant or anything. Just wanted to update in case anyone was following along.