I found two hints on how to do this: http://source.android.com/source/building-kernels.html
and from a gp forum thread to use make C8666_defconfig I am on my way I hope. Thanks, Craig ________________________________ From: Craig Comstock <[email protected]> To: Adrian Custer <[email protected]>; Jose Vidal <[email protected]>; "[email protected]" <[email protected]> Sent: Thursday, February 20, 2014 8:13 AM Subject: Re: [b2g] FirefoxOS tree structure I am interested in modifying the kernel slightly for the keon. Is it possible to reconfigure the kernel from a known config? I've compiled kernels before but am not familiar with where the current config would be and what the process is for doing this work. I saw a note from Dave Hylands describing part of it to Jose so I have that for reference as well. Primarily I am trying to get the framebuffer console working so I see that on startup and then also get /dev/uinput working so I can make a kernel level gesture to keyboard/mouse facility. Obviously that part isn't so much to do with b2g... Thanks, Craig ________________________________ From: Adrian Custer <[email protected]> To: Jose Vidal <[email protected]>; [email protected] Sent: Wednesday, February 5, 2014 5:06 AM Subject: Re: [b2g] FirefoxOS tree structure On 2/5/14, 5:06 AM, Jose Vidal wrote: > > Hi everyone, > > What's the Firefox OS source code directory tree structure ? Hey Jose, The structure of the directory in which you build Firefox OS is indeed quite hard to understand. The directory does several things at once and then the Mozilla team decided that, since it was a mess anyway, they were welcome to make more of a mess of things. You need to understand, first, that the "Firefox OS directory" will do several things: * it is a "repo directory" that will be used by the Android project's 'repo' tool which means that: - it will have, by default, a hidden .repo/ dir with: 1. a new copy of the 'repo' tool 2. a manifest.xml file describing the project 3. a directory full of Git version control repositories - it will end up with *working copies* of all the source code used to build the project * it is a "source code directory" which you could use to work on the source code of the different projects, which you could do either using the 'repo' tool to manage work on many of the projects at once or using the 'git' tool to work on a single or few projects together, * it is a "Make directory tree" in which the source code will all be built using the Android project's Makefile system, * it is a "build directory" which will, after the build, include the output directories with the source code results, notably in the ./out/ and ./gecko_objdir/ directories, * it is a "runtime directory" which holds a mess of undocumented scripts used to run and profile the result of a build. Note also that the project is building not just Firefox OS but a bunch of Android tools including the 'adb' and 'fastboot' tools to interact with a device over USB, some tools used to assemble images, and a bunch of profiling tools based on Eclipse. This latter means that the directory requires two build chains, one for Firefox OS based on the architecture of the device you are targeting and another for the tools based on the architecture of the machine on which you are running the build. Note also that the contents of the directory will depend on the device you are targeting since each device gets a different 'manifest.xml' file listing the project contents. Finally, note the the builds are all dysfunctional to various, undocumented, extents. By default, the builds only go so far and then expect you to blindly trust the ./flash.sh script which will copy over what you have built to the device, something that only will work if you have root permissions on the phone. The builds will not, by default, build the four cannoical files: boot.img recovery.img system.img userdata.img but instead will try to copy the files over to the system/ and data/ partitions on the device. There are a mess of undocumented targets for 'make' that you can magically call to try and make those images, except that for some projects you can't actually generate the boot.img file. (Actually, forget the recovery.img; you should be able to leave that alone and use the one on your phone.) If you take the time, it turns out you can start from an empty directory to build Firefox OS! Note that this is only a vague outline: I don't want to take the time to look all this up right now. I spent a month and a half working on a build tool with better documentation that the scripts provided by Mozilla but got discouraged when I discovered that the scripts silently skipped building the kernel on the device I was working on building. >From what I remember, the steps are something like: 1) use curl or wget to get the repo tool launcher (a single file) wget src-of-repo ./bin/. 2) run the repo launcher pointing at the source of manifest files ./bin/repo -u .... -b ... -m .... => this will add to the repo directory (.repo/ by default) (1) a full copy of the repo tool (2) a copy of the manifest.xml at the right branch 3) run 'repo sync' with the right flags => this will get a clone of all the git projects and put the git repository in the .repo/projects/ dir and put a working copy of the source code in the top level directory (WARNING THIS IS AROUND 10GB OF CODE!) 4) configure the system 5) optionally copy files from a working device locally 6) build the system by (1) setting up the right environmental variables and (2) running make (WARNING THIS WILL TAKE A WHILE AND WILL FIRST TRY TO SYNC UP THE SOURCE CODE OVER THE NETWORK.) 7) get the build results onto a device. This depends on how deeply you built the projects: you may brutally copy files over to the existing partitions of the device or you might actually use the 'fastboot' tool to copy over full images overwriting the partitions. The scripts in the B2G git project (the one on GitHub not the one on Mozilla.org) aim to 'facilitate' this but really are not targeted at third party users so use them at your own risk. Eventually, we need to write an industrially robust set of project build scripts for Firefox OS usable by all those working on the project: those who just want recent builds, those who want to customize their builds, those working on the Firefox OS source code, those working on porting to new devices, those working on building production releases for distribution, ... For now, the project leaves you on your own to figure things out. cheers, ~adrian BTW, you will have to understand the Android setup pretty well to understand what is going on. Meanwhile a lot of that documentation has been withdrawn by Google, supposedly because it was out of date, but possibly because they want to limit third party forks like Firefox OS. _______________________________________________ dev-b2g mailing list [email protected] https://lists.mozilla.org/listinfo/dev-b2g _______________________________________________ dev-b2g mailing list [email protected] https://lists.mozilla.org/listinfo/dev-b2g _______________________________________________ dev-b2g mailing list [email protected] https://lists.mozilla.org/listinfo/dev-b2g
