Meego Wiki
Views

MeeGo kernel documentation for contributors

From MeeGo wiki
(Difference between revisions)
Jump to: navigation, search
(added page - still WIP)
m (Fix capitalization in new link.)
 
(6 intermediate revisions not shown)
Line 1: Line 1:
==Configuration changes==
==Configuration changes==
-
If you want to suggest a kernel configuration option change for MeeGo, please send an email to the [http://lists.meego.com/listinfo/meego-dev meego-dev mailing list] or file a bug in [http://bugs.meego.com/ bugzilla]. Please include a description of why you want the change done (not just the "what"), why it is important for MeeGo to do this change.
+
If you want to suggest a kernel configuration option change for MeeGo, please send an email to the [http://lists.meego.com/listinfo/meego-kernel meego-kernel mailing list] or file a bug in [http://bugs.meego.com/ bugzilla]. Please include a description of why you want the change done (not just the "what"), why it is important for MeeGo to do this change.
   
   
Note that MeeGo tries to keep the kernel configurations between the different builds as consistent as possible, and because of that, you may see configuration options that are not strictly required for some platform still be enabled. We do make exceptions to the "as consistent as possible" if a general configuration option has a significant impact on size, but we'd like to know this... (think of it this way: "Turning this option off saves 102312 bytes of size, and phones do not use fiber channel" is a pretty good justification description, while "turn FOO off for size" is not).
Note that MeeGo tries to keep the kernel configurations between the different builds as consistent as possible, and because of that, you may see configuration options that are not strictly required for some platform still be enabled. We do make exceptions to the "as consistent as possible" if a general configuration option has a significant impact on size, but we'd like to know this... (think of it this way: "Turning this option off saves 102312 bytes of size, and phones do not use fiber channel" is a pretty good justification description, while "turn FOO off for size" is not).
Line 17: Line 17:
== Requesting a patch from Linus' kernel, or a maintainer tree to be integrated into MeeGo==
== Requesting a patch from Linus' kernel, or a maintainer tree to be integrated into MeeGo==
-
Lets say you have developed a patch, or otherwise want a patch that Linus or a maintainer already merged (or is in progress, as described above) included into MeeGo. There are two ways to request this: Email to [http://lists.meego.com/listinfo/meego-dev meego-dev] and [http://bugs.meego.com MeeGo Bugzilla]. For either case, we expect you to do the same diligence you do when you send a patch to the Linux Kernel Mailing List: You provide a description of the what and the why, you format the patch in the LKML form (included [http://meego.com/about/contribution-guidelines/signed-process Signed-off-by: line] etc etc).
+
Lets say you have developed a patch, or otherwise want a patch that Linus or a maintainer already merged (or is in progress, as described above) included into MeeGo. There are two ways to request this: Email to [http://lists.meego.com/listinfo/meego-kernel meego-kernel] and [http://bugs.meego.com MeeGo Bugzilla]. For either case, we expect you to do the same diligence you do when you send a patch to the Linux Kernel Mailing List: You provide a description of the what and the why, you format the patch in the LKML form (included [http://meego.com/about/contribution-guidelines/signed-process Signed-off-by: line] etc etc).
   
   
Specifically for MeeGo, we also want you to tell us where the patch is in the upstream integration process. If your patch is already merged by Linus, we'd like you to give us the git commit ID (we have tools that make it easy for us to backport patches based on this commit ID). If the patch is in a maintainer tree, let us know. If your patch is in progress of being merged by the maintainer, let us know where you posted it and where the review is happening.
Specifically for MeeGo, we also want you to tell us where the patch is in the upstream integration process. If your patch is already merged by Linus, we'd like you to give us the git commit ID (we have tools that make it easy for us to backport patches based on this commit ID). If the patch is in a maintainer tree, let us know. If your patch is in progress of being merged by the maintainer, let us know where you posted it and where the review is happening.
   
   
-
==General Contribution Guidelines==
+
==Additional Contribution Guidelines==
 +
 
 +
Please also read the [http://wiki.meego.com/images/Kernel_criteria.pdf kernel criteria (PDF)] document for additional requirements before submitting your contribution.
 +
 
 +
Patches sent to the mailing lists should be broken up into several email messages of less than 100KB each.
 +
 
 +
You should also consider the [[Release_Engineering|MeeGo release schedules]], including code freeze dates, before submitting your contributions.
 +
 
 +
MeeGo cannot take patches that add system calls or other userspace ABI numbers/structures without having these ABIs first merged upstream. This is to avoid MeeGo becoming ABI incompatible with Linux if/when the upstream kernel assigns different numbers/structures for the ABI or assigns different users to the numbers in the patch.
Please visit our [http://meego.com/about/contribution-guidelines general contribution guidelines] for other details and additional ways to contribute to MeeGo.
Please visit our [http://meego.com/about/contribution-guidelines general contribution guidelines] for other details and additional ways to contribute to MeeGo.
 +
 +
==Tips on Compiling and Packaging Kernels==
 +
 +
For tips on acquiring the kernel sources, patching, compiling, and packaging kernels (whether for MeeGo or for your own development), please see [[Tips_on_compiling_and_packaging_kernels_in_MeeGo|this article]].

Latest revision as of 04:30, 17 February 2011

Contents

Configuration changes

If you want to suggest a kernel configuration option change for MeeGo, please send an email to the meego-kernel mailing list or file a bug in bugzilla. Please include a description of why you want the change done (not just the "what"), why it is important for MeeGo to do this change.

Note that MeeGo tries to keep the kernel configurations between the different builds as consistent as possible, and because of that, you may see configuration options that are not strictly required for some platform still be enabled. We do make exceptions to the "as consistent as possible" if a general configuration option has a significant impact on size, but we'd like to know this... (think of it this way: "Turning this option off saves 102312 bytes of size, and phones do not use fiber channel" is a pretty good justification description, while "turn FOO off for size" is not).

Developing drivers for MeeGo

The MeeGo project really wants Device drivers and other kernel code to be developed for, and integrated in, the kernel.org kernel as maintained by Linus Torvalds. Every patch we carry has a cost for us, and we do not want to carry long term patches.

So if you want to develop a device driver for MeeGo, please develop your driver for, and submit your driver to, the kernel.org Linux kernel. In fact, this is a requirement for MeeGo!

Now, sometimes the process of integrating into the kernel.org kernel takes a bit of time (for example your code may be in a maintainer tree but not yet merged by Linus). In that case, and as long as you're committed to continue the upstream integration process, we may make and exception and integrate your code prior to Linus Torvalds doing the final merge of your code.

There will be a few hard cases where the upstream kernel, for principle reasons, to reject a device driver. The PowerVR graphics drivers come to mind. For those cases, for pragmatic reasons, the Meego Technical Steering Group can grant exceptions to the policy and allow such drivers into MeeGo regardless of upstream rejection. Such exception comes with a set of requirements on maintenance and responsiveness etc/etc.

Requesting a patch from Linus' kernel, or a maintainer tree to be integrated into MeeGo

Lets say you have developed a patch, or otherwise want a patch that Linus or a maintainer already merged (or is in progress, as described above) included into MeeGo. There are two ways to request this: Email to meego-kernel and MeeGo Bugzilla. For either case, we expect you to do the same diligence you do when you send a patch to the Linux Kernel Mailing List: You provide a description of the what and the why, you format the patch in the LKML form (included Signed-off-by: line etc etc).

Specifically for MeeGo, we also want you to tell us where the patch is in the upstream integration process. If your patch is already merged by Linus, we'd like you to give us the git commit ID (we have tools that make it easy for us to backport patches based on this commit ID). If the patch is in a maintainer tree, let us know. If your patch is in progress of being merged by the maintainer, let us know where you posted it and where the review is happening.

Additional Contribution Guidelines

Please also read the kernel criteria (PDF) document for additional requirements before submitting your contribution.

Patches sent to the mailing lists should be broken up into several email messages of less than 100KB each.

You should also consider the MeeGo release schedules, including code freeze dates, before submitting your contributions.

MeeGo cannot take patches that add system calls or other userspace ABI numbers/structures without having these ABIs first merged upstream. This is to avoid MeeGo becoming ABI incompatible with Linux if/when the upstream kernel assigns different numbers/structures for the ABI or assigns different users to the numbers in the patch.

Please visit our general contribution guidelines for other details and additional ways to contribute to MeeGo.

Tips on Compiling and Packaging Kernels

For tips on acquiring the kernel sources, patching, compiling, and packaging kernels (whether for MeeGo or for your own development), please see this article.

Personal tools