Size: 1960
Comment:
|
Size: 3114
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
= Getting Started as an OPW applicant = | Hooray! Thanks for your interest in working on the Linux kernel. The next step is to [:OPWApply:apply] to OPW, and use this tutorial to create your first patch to the Linux kernel. |
Line 3: | Line 3: |
Hooray! Thanks for your interest in working on the Linux kernel. | == Intro == If you run into any issues with this tutorial, please ask questions on the #kernel-opw IRC channel on irc.oftc.net, or on the [https://groups.google.com/forum/#!forum/opw-kernel opw-kernel mailing list]. |
Line 5: | Line 6: |
If you run into any issues with this tutorial, please ask questions on the [https://live.gnome.org/OutreachProgramForWomen#Introduction #opw IRC channel] | [[Anchor(kernel-setup-done)]] = Contribution Instructions = '''PLEASE NOTE: DO NOT SEND YOUR FIRST PATCH TO THE MAIN LINUX MAILING LISTS!''' |
Line 7: | Line 10: |
= Intro = | Instead, send your patch to the [https://groups.google.com/forum/#!forum/opw-kernel opw-kernel mailing list]. |
Line 9: | Line 12: |
This tutorial will cover how to get your first patch submitted. We would love it if accepted interns could test their kernel code on a computer running Linux, however, to get applicants started, this tutorial will describe how to set Linux up in a virtual machine. | [[Include(FirstKernelPatch)]] |
Line 11: | Line 14: |
You can run Linux from within Windows (or even run Linux on Linux!) from a virtual machine (VM). This tutorial will show you how to: * Install VMPlayer * Download our Linux VM image * Configure kernel drivers * Compile and install the kernel * Make a simple driver change * Test your changes * Create a patch * Submit a patch |
= Resending patches = |
Line 21: | Line 16: |
= Install VMPlayer = | If you find a mistake in your initial patch submission, and you need to correct it, make sure to version your new patch as described below. |
Line 23: | Line 18: |
Go to the [http://www.vmware.com/products/player/ VMPlayer website] and click the 'download' link. Download the VMPlayer that's appropriate for your operating system (e.g. Windows or Linux 64-bit), and install it. | If your patch has not been responded to within three business days (not including weekend days), the mentors may have missed it, and you may want to resend it. Make sure to use RESEND in the subject line if the patch itself has not been changed (meaning no changes in the patch description or body). You can use the `--subject-prefix` argument to `git format-patch` to add RESEND, by running |
Line 25: | Line 20: |
= Download our Linux VM image = | {{{ git format-patch --subject-prefix="RESEND PATCH" }}} |
Line 27: | Line 24: |
= Configure kernel drivers = | That command will create an email you can send with mutt (or your approved mail client) that will have a subject that looks like: |
Line 29: | Line 26: |
= Compile and install the kernel = | {{{ [RESEND PATCH] Foo: Fix these things }}} |
Line 31: | Line 30: |
= Make a driver change = | If your patch hasn't been responded to within a week, ping a mentor (or sarahsharp) on the IRC channel. '''Do not ping mentors immediately after sending patches.''' We know you're excited/worried about submitting your first patch, but mentors need to take time to properly respond and review patches. |
Line 33: | Line 32: |
= Test your changes = | = Tips = |
Line 35: | Line 34: |
= Create a patch = | Last round's criteria for selecting applicants was: |
Line 37: | Line 36: |
= Submit a patch = | 1. Whether applicants moved from simple patches to more complex patches (code refactoring, bug fixes, or sparse cleanups). 1. Whether applicants created simple patches for their first or second project choices. 1. Whether patches were consistently correct (i.e. no checkpatch errors or build warnings added). 1. How many patches were accepted. 1. Strength of C programming experience, as judged by patches. 1. Communication style over email and IRC. 1. How responsive applicants were to feedback. 1. Whether applicants were self-learners. 1. Whether mentor and applicant timezone differences would work. 1. Applicants' time commitments over the internship period. |
Line 39: | Line 47: |
TODO: * Outline of what this tutorial covers * If you run into any issues, ask on the opw irc channel, or email sarah.a.sharp at linux.intel.com * Find out which drivers you have installed (maybe plug in any USB devices on hand) * Make small change in one of the drivers (e.g. run checkpatch over them, or fix some grammer in the printks) * Or maybe pick a driver in staging and run checkpatch on it * Test your patch (may need to enable debugging) * Make a patch (link to art of patch description creation) * Send patch to kernel newbies mailing list as RFC (perhaps we need a separate mailing list?) |
Make sure to submit patches early in the application period. Build up your patch portfolio by sending a few larger (3-6 patch) patchsets, then take on more complex patches for Sparse, Coccinelle, or code refactoring. Most importantly, try to create patches for the projects you're most interested in, especially focusing on any small TODO items that mentors post. Finally, please make sure you have more than one kernel project listed in your application, so that if your top choice is taken, you can still be considered for another project. |
Hooray! Thanks for your interest in working on the Linux kernel. The next step is to [:OPWApply:apply] to OPW, and use this tutorial to create your first patch to the Linux kernel.
Intro
If you run into any issues with this tutorial, please ask questions on the #kernel-opw IRC channel on irc.oftc.net, or on the [https://groups.google.com/forum/#!forum/opw-kernel opw-kernel mailing list].
Contribution Instructions
PLEASE NOTE: DO NOT SEND YOUR FIRST PATCH TO THE MAIN LINUX MAILING LISTS!
Instead, send your patch to the [https://groups.google.com/forum/#!forum/opw-kernel opw-kernel mailing list].
Resending patches
If you find a mistake in your initial patch submission, and you need to correct it, make sure to version your new patch as described below.
If your patch has not been responded to within three business days (not including weekend days), the mentors may have missed it, and you may want to resend it. Make sure to use RESEND in the subject line if the patch itself has not been changed (meaning no changes in the patch description or body). You can use the --subject-prefix argument to git format-patch to add RESEND, by running
git format-patch --subject-prefix="RESEND PATCH"
That command will create an email you can send with mutt (or your approved mail client) that will have a subject that looks like:
[RESEND PATCH] Foo: Fix these things
If your patch hasn't been responded to within a week, ping a mentor (or sarahsharp) on the IRC channel. Do not ping mentors immediately after sending patches. We know you're excited/worried about submitting your first patch, but mentors need to take time to properly respond and review patches.
Tips
Last round's criteria for selecting applicants was:
- Whether applicants moved from simple patches to more complex patches (code refactoring, bug fixes, or sparse cleanups).
- Whether applicants created simple patches for their first or second project choices.
- Whether patches were consistently correct (i.e. no checkpatch errors or build warnings added).
- How many patches were accepted.
- Strength of C programming experience, as judged by patches.
- Communication style over email and IRC.
- How responsive applicants were to feedback.
- Whether applicants were self-learners.
- Whether mentor and applicant timezone differences would work.
- Applicants' time commitments over the internship period.
Make sure to submit patches early in the application period. Build up your patch portfolio by sending a few larger (3-6 patch) patchsets, then take on more complex patches for Sparse, Coccinelle, or code refactoring. Most importantly, try to create patches for the projects you're most interested in, especially focusing on any small TODO items that mentors post.
Finally, please make sure you have more than one kernel project listed in your application, so that if your top choice is taken, you can still be considered for another project.