Size: 4613
Comment:
|
Size: 1999
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: |
Warning: this is still a work in progress. We'll announce on the [ opw-kernel google group] when this tutorial is finished. Please turn in your application to express interest in the kernel project, and sign up for the opw-kernel mailing list. | [[Anchor(kernel-setup-done)]] = Contribution Instructions = '''PLEASE NOTE: DO NOT SEND YOUR FIRST PATCH TO THE MAIN LINUX MAILING LISTS!''' |
Line 7: | Line 10: |
If you run into any issues with this tutorial, please ask questions on the [https://live.gnome.org/OutreachProgramForWomen#Introduction #opw IRC channel] | Instead, send your patch to the [https://groups.google.com/forum/#!forum/opw-kernel opw-kernel mailing list]. |
Line 9: | Line 12: |
= Intro = | [[Include(FirstKernelPatch)]] |
Line 11: | Line 14: |
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. | = Tips = |
Line 13: | Line 16: |
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 |
Last round's criteria for selecting applicants was: |
Line 23: | Line 18: |
= Hardware Requirements = | 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 25: | Line 29: |
You need a system with virtualization (VT-d), at least 4GB of RAM, and 40GB of free hard drive space in order to run Linux in a VM. | 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. |
Line 27: | Line 31: |
== Alternatives == If your system doesn't meet those requirements, you will need to be running Linux, or dual boot your machine so you can run both Linux and Windows. We strongly suggest you use the [http://www.ubuntu.com/download/desktop/thank-you?distro=desktop&bits=64&release=lts Ubuntu 12.04 64-bit version]. If your machine doesn't have 64-bit support, you can use the [http://www.ubuntu.com/download/desktop/thank-you?release=lts&bits=32&distro=desktop&status=zeroc 32-bit version]. Once you have Ubuntu installed, please follow the directions [:OPWfirstpatchAlt:here]. = Install VMPlayer = 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. == Linux installation instructions == The [http://www.vmware.com/products/player/ VMPlayer download] comes as a .bundle file. That's a binary executable, that will launch a setup wizard. First, change to the directory where you downloaded the VMPlayer binary by using the command {{{cd}}}. Tip: {{{cd}}} changes the current working directory to a different directory. You can learn more about any command by reading the manual pages. Simply prefix the command with the word "man", e.g. {{{man cd}}}. Next, check to see if the file is executable. Run this command: {{{ ls -l}}} Then look at at the file's listing, and see if it has the executable ("x") bit set: {{{ $ ls -l total 181056 -rw-rw-r-- 1 sarah sarah 185386101 Apr 26 22:19 VMware-Player-5.0.2-1031769.x86_64.bundle}}} If it doesn't show the executable bit, make the file executable by running: {{{ chmod a+x VMware-Player-5.0.2-1031769.x86_64.bundle}}} Then execute the binary by prefixing it with a ./ and running it as the root user with sudo: {{{ sudo ./VMware-Player-5.0.2-1031769.x86_64.bundle}}} Tip: Be careful about what you run as root! The root user has access to all the files on your system, so you usually don't want to run arbitrary commands as root. Always run commands without sudo, and without changing to a root terminal, where ever possible. Now run VMPlayer with the command: {{{ vmplayer}}} = Download our Linux VM image = Before you start the VM, you need to make some adjustments to the emulated hardware. FIXME talk about increasing the amount of RAM to at least 2GB, unless the maximum recommended amount of RAM is less than 2GB. = Configure kernel drivers = = Compile and install the kernel = = Make a driver change = = Test your changes = = Create a patch = = Submit a patch = 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?) |
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].
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.