Welcome to CyanogenMod
|Welcome to our forum. Like most online communities you must register to post, but don't worry this is a simple free process that requires minimal information for you to signup. Be a part of the CyanogenMod Forum by signing in or creating an account. You can even sign in with your Facebook or Twitter account.
Follow along with me trying to learn how to code!!!!!!!
Posted 20 May 2012 - 12:27 AM
Feel free to email me at anytime for questions!
The Top developers for your nook color can be found here. #nookcolor irc.freenode.net. Remember this is a working environment for the developers, so keep your non development questions here in the forums.
Just download mIRC for your computer, there is even an IRC you can use right on your nook color called "AndChat" also that I have been looking at on the playstore. There is a thing called the git repository where you can submit your own work to help better cyanogenMod for the nook color. Come check us out and follow along with me there.
On XDA feel free to comment and ask me anything at anytime! Don t be shy guys I want lots and lots of comments. My handle will be the same as it is on here on the forums, <meteorrock> ok? ok. Feel free to PM me or anything too. I am using the newest theme there the XDA 2013 theme which makes me want to use it now.
Feel free to ask me anything in this thread.
Also in this thread. ~~~~~~~~~~ Ask a new developer anything ~~~~~~~~~~~~
The github can be found here. https://github.com/
Follow the instructions on the github to start helping the developers. For windows 7 users you will need some tools to get started. Check out the help section on this site here. http://help.github.com/win-set-up-git/
Read the book here online on how git works. http://git-scm.com/documentation/book
Pic related. Its your github.
Posted 30 May 2012 - 09:43 AM
BTW good job meteorrock. Lets go over on the #github and check it out. Text me at my number from school ok? I bet we could get that wi fi module done over the weekend on how smart you are. I will help too.
BTW You need to stop obsessing over Ice cream sandwich. I just uploaded the new Gingerbread RC 3 yesterday and its fast. There are other devs still improving gingerbread too you know for our nookie. You need to give them credz. Ice cream sandwitch is all hype I heard and more for dual or more layered processors in a tablet.
I found this ...its the new cyanogenmod 7.2 Release Candidate 3 for the encore, which is the nook color. http://download.cyan...=encore&type=RC
Edited by Phoenix Rising, 30 May 2012 - 08:43 PM.
Posted 01 June 2012 - 10:49 PM
There is probably one or two human debuggers for the whole project that involves the nook color that is, that go in and expect the code for errors not caught by the computers. One error though and every build beyond that starts to become corrupted. They mostly port those kernels over for development for testers on their nooks. This takes quite a bit a time, that is why we have to wait in-between different builds for our nooks, its probably done by huge servers.
If everyone that used cyanogenMod was to donate just a few dollars they could buy even bigger servers and it would further their development and wait time. You would of had ICS on your nook color already if they had the funds. This is of course an assumption.
This is what they called "cancer" in the developers forums, where the computers start to lay down bad code ported over for testing not caught by the computers.
You can follow along on XDA for the example of what we are doing in this thread here. http://forum.xda-dev...d.php?t=1677219
Posted 05 June 2012 - 08:49 PM
Next I downloaded the git environment along with a nice git UI for us windows OS users , I am doing this all on windows OS , this is found here. http://code.google.c.../gitextensions/
This git extensions "gits" or fetches all of the tools you need to get started right away using git. They even have videos for us to watch on how to use git and pull and push repositories to the github to help improve the linux branches for the nook color.
Here I will link meteorrocks link on the github where she is looking into the encore gingerbread branch. https://github.com/m...evice_bn_encore
Notice the different forks. The gingerbread 7.2 will be used for the next stable for our nook colors.
Here we are going to start looking into fattire's kernel branch for the upcoming ICS for our nook colors. He is a kernel developer for the nook color. https://github.com/f...evice_bn_encore
Notice the ICS and the ICS 3.0 branches you can click on in the github. ICS 3.0 is the experimental branch. They are working on that branch right here fixing your wi fi module on XDA at this link here. http://forum.xda-dev...d.php?t=1677219
That wi fi module work has the potential to be what they call 'backported' into your ICS for your upcoming OS that is coming to cyanogenMod. Really neat I say. You can follow along and see what the developers are doing step by step , add commits on the github and check their work!!
Check this link out here guys on stuff for working wi fi. https://github.com/f...comment-1419606
You guys thought verygreen is dead huh? I saw those comments on the #nookcolor. Check this out. https://github.com/f.../init.encore.rc
See those contributers on top? He was in hiding. Just click over the contributers. Dalingrn is there helping along with a few others . Verygreen is helping. He just got tired of you noobs asking him silly questions probably. There is only 7 contributors to the wi fi module ?? dafaq?
Posted 05 June 2012 - 09:29 PM
I would like to add that using the git extensions is no more complicated than using a video editing software, once you get the hang of what is going on it becomes alot easier. All you are doing is going in and checking on merge conflicts with the different branches of linux for the nook color. Once the main branch is laid down there is nothing to worry about, you are not going to crash the system or miss up other peoples work. You are just branching out from the tree that is laid down.
As Phoenix mentioned, there is only 7 guys working on the project, most of them probably have jobs and other things going on in their daily life with other responsibilities so give them a hand.
So people check out our links, sign up to the github and download the git extensions, for those that like to use Windows OS, if you rather use Linux and want to use the command line then you are a step ahead of the game. Github has commands to pull and push and merge code too.
Have fun and lets see some more pull requests.
If you got questions feel free to ask them in this thread. I don't see any questions so post some! Check my graph here. You can see all of the members working on the linux tree for your encore. I am at the bottom because I am a noob developer. Cool. https://github.com/f...network/members
Here is some videos for you to watch on how the git works. I watched it so check it out. Check this kernel hack guide. Its a good guide. http://linux.yyz.us/git-howto.html
Posted 06 June 2012 - 10:55 AM
I found the solution here. http://stackoverflow...-git-extensions
Remember you have to set up your putty on your git, guys. You will have to make a SSL key for it and store it on your computer. Putty is a command line tool used to push and pull files from the github.
Check my git here guys. See that pink book in there? This is an example on how the git works. https://github.com/meteorrock
I could not find any merge conflicts between the main branch and the wi fi driver. That code is tight.
Next I want you guys to look into kernel oops. Check this site here. http://en.wikipedia....nux_kernel_oops
Posted 07 June 2012 - 01:10 AM
Posted 07 June 2012 - 01:16 AM
I think I got a troll up in my email box trying to distract me. I am up to 20 emails plus now. Might just have to ignore her but one bad experience with a user on this cyanogenMod and it could cascade into a hundred users not coming over. Let me take a 10 minute break and help her.
Posted 07 June 2012 - 09:18 AM
My conclusion ; which could be incorrect, is that there could be a kernel oops somewhere that needs debugging by hand. Remember just one or two of those could prevent ICS coming to your nook until it is rooted out and fixed. Here is where low level developers like YOU and me and others new to kernel development can save the day. This will take time. Could be weeks or months so Phoenix try to settle down. THIS is where one person can save a whole project. ONE person can make a difference!
I want us to look over some of these links here. http://penberg.blogs...-debugging.html
Here too . http://stackoverflow...e-a-kernel-oops
I just got done reading those blogs and find them interesting. I will add to this box. I will try to find some youtube videos too to help.
If you are still going over git and its GUI , that is fine. This takes time and determination and this thread will be here for you to help you. Hopefully I am helping others on this subject as the information on it is very scattered and buried in the net.
Got questions? Don't be afraid to ask the developers in #nookcolor irc.freenode.net. I am not fond of the IRC environment but for others it could help them along asking questions. So keep them in mind guys.
Posted 10 June 2012 - 02:32 AM
Notice the different SDKs that are available. There is one for linux and one for windows and yet another one for Mac users. http://developer.and.../sdk/index.html
Here is some Videos to watch for you
The link for the Eclipse program is here. http://en.wikipedia....lipse_(software)
For us Kernel debuggers we will not need to use Eclipse as that program is mostly for writing android apps for the "playstore". It is a Java end-time developers tool for those apps. I believe if you want to debug REMOTELY though you will need this app. This option is available to you if you want to remote debug the linux branch on windows for the linux branch for the nook color. And the below link tells us REMOTE debugging is not the best way to debug kernels. It also tells us windows OS is not the best OS to debug in, however you can use Cygwin on windows. This is an linux environment for the windows OS. Here is the link on Cygwin. http://www.cygwin.com/ This is how I am going to do it for you. I will not be using remote debugging options myself. The source of this information is here. http://javarevisited...bugging-in.html
WHY wont we use Eclipse? Because to debug the linux kernels that program will not go lower than the JNI (Java Native Interface) The link for the source of that information is here. http://stackoverflow...-debugging?rq=1
For linux users they will not need the above steps of course. But for those that prefer windows OS the above option is available to you.
Below is development tools for both Linux and Windows OS users. I am looking into doing both. NOTE: Git extensions for windows OS users has a tool within in for merge conflicts already and its like a debugger, however you will need to patch it also. NOTE: This step is not necessary unless you want to submit your own patched kernel. You can just submit the error straight to the github for other developers.
There are tools we will need to pick up to start debugging the linux kernel for the nook color. I first want us to look over this wikipedia article on what kind of debuggers we can use. http://en.wikipedia.org/wiki/KGDB
Then we are going to download some debugger tools from this site, these debuggers can be used on Linux, windows and Macs. Here is the link for that. https://kgdb.wiki.ke...x.php/Main_Page
Right now I am researching these debuggers myself. I will come back and report in on this for us.
UPDATE June 28th 2012: For windows OS users the Microsoft Visual Studio has a debugger also. There are reports that debugger is the best for windows users, and has more raw power to debug kernels then even linux. Here is the source of that information http://stackoverflow...79023/c-gdb-gui Here is the link for Microsoft Visual Studio. I think I will try this debugger. This is not freeware, but there are ways around that through torrents. http://en.wikipedia....Studio_Debugger
The KGDB debugger tool for linux users can also be used to compile your fixed kernel and submitted to a patch once you find a merge conflict with your Git, or your Windows Git Extentions. The source of the information on this is found here. http://stackoverflow...techniques?rq=1
This looks like it can be done remotely also. Here is the link for that. http://www.linuxford...ules-with-kgdb/
NOTE: I might be wrong in this aspect but you might not even need the ADB for android if you are accessing the code directly through git. ADB can be used for kernel developers writing and modifying a modded kernel though. For those looking into just debugging the linux branch for the nook color , you might want to skip this step.
Posted 10 June 2012 - 09:09 AM
The git extentions user guide can be found here. http://www.google.co...K6p9cT7AE7jrVPA
Another good article. http://stackoverflow...-git-extensions
Right now I am setting up a cloned forked branch for the Ice Cream Sandwich on the nook color for cyanogenMod that you guys will need to branch and merge from. Just clone my repositories on my git page here. https://github.com/meteorrock
Below I took a screen-shot of the Ice Cream Sandwitch build I am now working on. Check it out. I am going to start looking for merge conflicts and trying to solve them. All of those side branches should be merged into the main master branch. Lets DO it guys.
Posted 12 June 2012 - 05:36 PM
Make sure to click around on the blue divider highlights in your Kdiff3 for fun, you will find it highlights code back and forth between those two boxes to make merging code easier!
As I learn more on how to use git extensions you can do whole sections of code at once instead of one line from what I have researched online. But I am still learning. I guess that commit to clean it up was added by another developer flying through code LOL. This is why your ICS is so buggy and sluggish. All of that code should be merged. I found out how to do this on this link here. Its in the background of my attached screen shot. http://groups.google...061138b9c?pli=1
Posted 16 June 2012 - 04:24 AM
Next we go up in the merge tab option in kdiff 3 and open it. I am using the "in-line kernel building" that is highlighted in blue as our example from Git extensions. WE hit the option in that open tab now to " merge current files."
Here is the Kdiff manual we will have to read to get up to speed on using that tool. http://docs.kde.org/...iff3/kdiff3.pdf
In the first upload example below we will see the merge conflict where I circled the problem in black. We will have to fix this problem and submit our patch. BE CAREFUL here when you make changes back to the main code in the master branch or your patch will not be submitted to the github. Typing and uppercase and space alignment are important here. Do you see the discrepancy? One of the lines of code has the word "KERNEL" there and the other line of code has the line with " BOOTLOADER" . WE will change it back to the correct word from the main branch and submit our patch for it on the github for review. The second line could be correct too by the other developer, the patch will merge into the other branches for submission on the github with the correct change from what I understand on this.
After we go in and solve these merge conflicts; I had two merge conflicts for the "device.mk" example; you will go up in your tab in kdiff3 and select Choose A for all unsolved conflicts, ( A is the master branch for this example,) and watch the bottom box clear out the merge conflict lines in red. THIS keeps you from having to go in and typing by hand for the code. You can now save your work to a folder somewhere on your computer, then see your results you made in a new file! Then you can right click on the new file with the saved merged resolved conflicts. Stage it with git Extensions and make commits on your work. MAKE sure you leave a description on what you did in your commits so other developers know what you did. For my example I left the commit, " "solved merge conflicts in "device.mk""" You are ready to push your first patch onto the github for review. You will be prompted by KDIFF3 if you have any merge conflicts you did not solve before you quit.
Before you push make sure you pull from your URL on the github first so the other developers do not have to resolve the same conflicts you just solved, making it easier on yourself and other developers. That means pulling from your own master branch, or origin. Someone could have solved the same issue you are working on already while you were away from the computer. Just like in real life you need to water your own tree before you add your resolve, the analogy for this is like grafting a leaf to that limb you have on the collective tree that is online. Think in terms of taking care of your own Bonsai tree when you work on the github. On git extentions I just select the last file that I saved from my KDIFF3 I worked on and left click on it , then pull to update. You will see a progress bar. UGGGH the github can be slow to download those updates too.
Also if you get files that are being staged from wherever you saved your diff to you can right-click on those files and choose .gitignore on your git extensions so you do not have to keep staging files you do not need. It will save these staged ignores somewhere on your computer in a notepad extension for later use.
Remember you can select actions in your file with "git extensions" when you right click on it for creating branches if you have to, for cloning branches, and other options available to you if you come across errors pushing your changes to your ICS nook color master branch. You can apply patches to your saved diff and other options too.
I just inputed one error I got into Google search bar for this one error I had trying to push my resolved file onto the github. Said my branch was too bushy or along that line right at the tip of it, because I pushed that file more than once. Just like on a real IRL tree you can prune your branches with git if your branch gets too bushy, it would stop growth on that branch too just like on a real tree. The main trunk of that tree is <fattires> for the ICS nook color branch. You are just putting in a master branch onto this tree from your github page onto the cloned repositories for the ICS nook color branch. JUST like grafting in a limb on your own COLLECTIVE bonsai tree. Its also SO like the movie TRON.
Your leaf, the resolves you made, help feed this imaginary tree through its photosynthesis, helps it grow and makes it more healthy. That MEANS a more , less buggy ICS on your nook color for you! Here is a link for that one error I got trying to push. http://stackoverflow...erence-from-git
Posted 16 June 2012 - 12:00 PM
Posted 19 June 2012 - 10:47 AM
Lets say you have a developer , yourself maybe, that has been working on the linux cyanogenMod kernel branches for the HTC. They decide that the HTC linux kernel branch has had enough development for him or her on their git page and their repositories on the github.
Then they decides that its time for the cyanogenMod linux kernel branch to FINALLY get some more development as cyanogenMod on the nook color is a lot more awesome then the branches they have been working on, they goes ahead and clones the cyanogenmod linux kernel branches for ICS to their repositories on their gitpage.
As they have been working and reviewing the code on the nook color linux branches, they remember a few lines of code or even a whole page of code from their diff they was working on before. They then get a brilliant idea that those lines of code would work better than the lines of code that they see before them.
They go back to their saved diff pages on their computer, or on their repositories, then 'cherry picks' those lines of code that would work better for the cyangenMod nook color linux branch they are now reviewing. Kind of like a copypasta. You can use this command within git to "port" certain features from one linux branch for your own device also.
On my git extensions you can select this action by saving a page from your diff from a different linux kernel tree on the github or from your computer. You can do this option too on the same linux kernel branches for the nook color, you find a different branch where the lines of code would work better in that perticular kernel.
Here is where having a nook color for testing purposes would come in handy. You could test and play around with this kernel on your nook color after you have 'cherry picked' a few lines of code or a whole page of code and see how it runs on it.
Remember our analogy about the bonsai tree? Cherry picking is like picking a leaf off of a different virtual tree, which in this case is a different repository that is not the cyanogenMod linux nook color tree , or a different branch of this same tree and then grafting it on your own bonsai tree to help it grow.
To do this function on the program ' git extensions' I just highlight my line of kernel I am wanting to look at and go up to the commands tab on top, click it and scroll down to 'cherry pick'. Another window will pop up for this function. See uploaded example below.
Want to view your work on the github? Just right click on your saved diff on your computer and select 'view diff'. You can see my work that I have done so far. See the second uploaded example below.
Posted 29 June 2012 - 01:24 AM
So I am going to go ahead and start debugging kernels instead and submit a patch. Usually you will want to submit small patches on the github like I was doing before today but I was told not to.
I learned today that Microsoft Visual Studio has one of the best debuggers included for any computer language today, even over linux so I am going to start looking into *ahem* acquiring a free version of that debugger for the nook color ICS linux tree. So for those wanting to develop apps or a feature to "port" into your linux tree for your device, you might want to consider that option.
This link here is an RC for the MicroSoft Visual Studio that is free to use. http://www.microsoft...ds#professional
Posted 29 June 2012 - 04:12 AM
See this thread here? http://forum.xda-dev...d.php?t=1526115
I think eyeballer has a few machines set up with debuggers already turning out nightlies that are an improvement to earlier CM9 builds. I dont think anyone can beat those machine debuggers. It just takes time though on personal computers to stabilizes the code. I think everyone is just waiting for those builds to finally become stable that way. They are called BUILD BOTS. I read that somewhere where you can set up linux build bots to do the work for you if you are patient.
Today I want everyone to do some research into what BUILD BOTS can do for your code on any device running android. You can let the computers do the work for you while doing other things, like at school or work.
Posted 30 June 2012 - 06:38 PM
But these buildbots for android are a great place for those new to development to start. It can help take LOTS of work off while you are doing other things also. It can bring ICS with all of its features to your device you are working on.
You can use your git to "checkout" these buildbots for your device.
Lets take a look at a link for using buildbots for any android device, this will work well for our nook color too. http://code.google.c...source/checkout
Posted 01 July 2012 - 12:46 AM