Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Some links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.

LKMP usually means the Linux Kernel Mentorship Program, a remote program that helps aspiring developers learn the Linux kernel contribution process with guidance from experienced developers and maintainers. To get started, check the active projects and dates in LFX Mentorship, complete the required beginner course, choose a suitable project, and demonstrate your skills with focused, tested contributions. Expect public email-based review and revisions—not a guaranteed course, job, stipend, or patch acceptance.

What LKMP is—and what it is not

The Linux Kernel Mentorship Program is intended to help people become Linux kernel contributors. Mentees learn development practices, work in a selected project area, communicate with mentors and maintainers, and submit patches for review. The official page describes two 24-week sessions per year, but dates and opportunities should be checked in the active LFX Mentorship listing rather than inferred from older schedule pages.

LKMP is not generally a step-by-step, instructor-led boot camp. You will need to study independently and make progress between conversations with mentors. It is also not a guaranteed job or paid internship. The program says funding may depend on location and session; verify the terms for the specific opportunity before applying.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Is LKMP a good fit?

The program is aimed at people who want to contribute to upstream systems software and are prepared to work through a public, iterative review process. You do not need to be an experienced kernel developer, but you should be comfortable with C and shell, as the official eligibility guidance recommends.

#1 Best Overall

Before applying, check yourself against this list:

  • You can read and write ordinary C and use a Linux terminal.
  • You can use Git for commits, branches, diffs, and rebasing, and have compiled software from source.
  • You can read technical documentation, inspect logs, and investigate a problem independently.
  • You are willing to communicate on public mailing lists, receive direct criticism, and revise work.
  • You can reserve consistent time for application tasks and, if selected, ongoing work.

The eligibility page says applicants must be at least 18 by the mentorship start, legally eligible to work in their country of residence for the mentorship duration, and not previous LKMP participants. It welcomes students and people seeking professional advancement. It recommends about 40 hours a week for full-time participation or 20 for part-time; treat those figures as guidance, and follow the format stated for the active opportunity.

LKMP may be a poor fit if you need guaranteed daily instruction, cannot compile or use Linux, are unable to participate in public review, or require a guaranteed stipend or employment outcome.

Apply through the current project listing

  1. Check dates and open projects. Create an LFX Mentorship mentee profile and search for active Linux opportunities. Official LKMP pages have conflicting historical schedule information; the current program page also contains an invalid “November 31st” end date. Do not rely on that date or an old schedule page—use the active LFX listing and project instructions.
  2. Complete the prerequisite course. The program page names the free A Beginner’s Guide to Linux Kernel Development course. Keep its completion certificate, and confirm the active listing’s current course and application requirements.
  3. Choose a project area deliberately. Kernel work ranges from documentation and selftests to staging drivers, filesystems, networking, memory management, architecture code, security, and tooling. Check what the project asks you to do, mentor availability, required knowledge or hardware, how you can test changes, and communication expectations. Read recent work in the relevant area rather than choosing solely by its title.
  4. Prepare the requested materials. The official page lists a resume, cover letter, course certificate, skill-evaluation tasks, mentor-assigned work, small project contributions, and contribution or bug-fix reports. Follow the chosen project’s instructions: the program says applications are not considered unless assigned tasks are completed and submitted.
  5. Make focused contributions. Documentation, selftests, or project-specific changes can be a starting point. Prefer a small, meaningful change you can explain and test over a pile of cosmetic patches. The program’s contribution guidance emphasizes substantial work over whitespace-only patch counts.

Set up a safe development environment

A dedicated Linux machine or virtual machine keeps kernel experiments away from the system you rely on. A physical machine can test real hardware more faithfully, but a bad kernel can prevent it from booting. A virtual machine is easier to snapshot and recover, but cannot reproduce every device, timing, graphics, or power-management issue. Use the environment that fits the project; a cloud machine is not a universal requirement.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Keep a known-good bootable kernel and a recovery route. Allow room for source trees, separate build directories, debug symbols, logs, and multiple versions. The official getting-started guide recommends x86-64 and suggests roughly 3 GB for /boot, but that guide was last modified in 2019. Partition needs vary by distribution, encryption, and kernel packaging, so do not treat that figure as a current universal requirement.

The guide’s Ubuntu package example is also historical, not an exhaustive modern dependency list:

sudo apt-get install build-essential vim git cscope libncurses-dev libssl-dev bison flex

Package names and additional dependencies differ by distribution, architecture, kernel configuration, and whether you build documentation. Check your distribution’s package guidance and the current kernel tree’s build documentation.

For an initial build using the mainline source tree, commands like these illustrate the flow:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
git clone https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
cd linux
mkdir -p ~/kernel-build
make O=~/kernel-build menuconfig
make O=~/kernel-build -j"$(nproc)"

This is an example, not a requirement to start with Linus’s tree. Once you choose a project, follow its instructions; a subsystem repository or project-provided source may be more appropriate. Keep build output separate from source when practical, and consult the tree’s documentation for configuration, testing, and installation steps.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

How to make and submit a first patch

Kernel contributions generally use email-based review rather than a GitHub pull request as the normal submission path. A patch’s explanation, testing record, recipients, and sign-off are part of the contribution. Read the kernel’s development-process documentation, coding-style guide, and patch-submission guide. The Code of Conduct and Enforcement Statement also explain expectations for participation.

  1. Inspect the area first. Read the relevant documentation and recent history. For example:
git log --oneline -- Documentation/ | head
git grep -n "target text"
  1. Find likely maintainers and lists. From the kernel tree, run ./scripts/get_maintainer.pl path/to/file.c. Review the output against subsystem documentation and recent patches; do not blindly copy recipients. The LKMP guidance advises copying the appropriate maintainers and lists.
  2. Make one narrow change. Start a topic branch if useful: git switch -c my-first-kernel-fix. Avoid bundling unrelated cleanups with a functional fix. A focused patch is easier to review, test, and revise.
  3. Run checks and test what you can. Examples include ./scripts/checkpatch.pl --strict HEAD^ and git diff --check. Checkpatch can flag style issues, but a clean result does not establish correctness. Compile the affected configuration and, where practical, boot in a VM, run relevant selftests, or test the affected driver or subsystem. Record the architecture, configuration, compiler, and tests. If you lack the required hardware, say so clearly rather than implying hardware testing.
  4. Write a useful commit message and sign off. Explain what is wrong, why it is wrong, what the patch changes, and how you tested it. Include a valid Signed-off-by: Your Name <[email protected]> line to certify the Developer Certificate of Origin. The official LKMP instructions say to put this sign-off last among the commit-message tags.
  5. Prepare the email submission carefully. Traditional workflows use git format-patch and git send-email. Check the submission guide and ensure your mail setup preserves the patch formatting. Send it to the right maintainers and lists, and be prepared to answer questions or send revised versions.

B4 is an optional contributor tool for preparing, checking, finding recipients for, and sending patch series. Its documented workflow includes commands such as b4 prep -n descriptive-name, b4 prep --edit-cover, b4 prep --auto-to-cc, b4 prep --check, and b4 send. B4 contributor features are comparatively new, so follow its documentation, keep backups, and use dry-run options where available. It does not remove the need for a valid email account or participation in email-based discussion and review; see the B4 sending guide.

What happens after selection?

Work with your assigned mentors, stay subscribed to the linux-kernel-mentees mailing list, and follow the project’s evaluation process. The program asks mentees to choose two kernel areas of interest, complete evaluation tasks in LFX Mentorship, upload reports, and produce a concluding blog about their work and what they learned. The current official page describes a goal of five to ten accepted upstream patches and identifies five as the minimum graduation bar. Treat that as the program’s stated target, not a guarantee that submitting five patches automatically means graduation.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

“Accepted upstream” is different from “sent.” A patch may be rejected, deferred, superseded by another fix, or accepted into a subsystem tree before reaching Linus’s tree. Review can request multiple revisions. Keep changes focused, answer questions clearly, explain what changed between versions, and report test results. If a patch is rejected, learn why and discuss a revised approach with the relevant reviewers or mentor; rejection is part of review, not proof that you cannot contribute.

Common mistakes to avoid

  • Relying on stale dates: verify deadlines and project availability in LFX because official schedule material conflicts.
  • Choosing a task without context: read recent subsystem traffic and project instructions before starting.
  • Sending cosmetic volume: prioritize correctness, explanation, and testability over raw patch count.
  • Skipping sign-off or testing details: include the DCO sign-off and state exactly what you built or tested.
  • Trusting checkpatch as proof: style checks do not catch most semantic defects.
  • Building on your only machine without recovery planning: retain a known-good kernel, or work in a VM with snapshots.
  • Testing too narrowly: compilation is useful but does not establish runtime behavior; run relevant tests where possible and disclose limits.
  • Using incorrect recipients or damaged email formatting: verify maintainers and lists, and inspect the outgoing patch.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.