Skip to content
aRustyDev's Blog
Go back

How do I start contributing to the linux kernel?

Edit on GitHub

So as you probably already know (or are in the process of finding out), the linux kernel is pretty intense to get started with. I am finding a number of challenges in getting to my first contribution. So far I see the following hurdles

Table of contents

Open Table of contents

Eudyptula Challenge

General Atmosphere

I answered that given my current level of knowledge the best for me would be to work with one of the maintainers who could tell me what shall be done and later review my work so that I could learn and do something useful at the same time. Can you guess the answer? It was:

“No maintainer has that time, sorry.”

In this particular moment I understood what my attitude should be. I immediately saw that I need to be proactive because no one will do any kind of work for me. This reminded me of a quote from one of the hacker movies that I enjoyed as a teenager; it fits:

“This business is all about bits. It is up to us if we are one or zero.”

Getting Started TODOs

Target ‘code quality’ tasks

There is a tool called checkpatch.pl which resides in the scripts directory of the kernel repository scripts/checkpatch.pl -f <file>

sudo apt-get install sparse

% echo "" > /tmp/todolist-kernel.txt; count=0; for entry in find . -name “TODO; do echo $count". "$entrygit log —pretty=format:” Last edited %ar” $entry | head -1 >> /tmp/todolist-kernel.txt; echo "" >> /tmp/todolist-kernel.txt; sed 's/^/ /' $entry >> /tmp/todolist-kernel.txt; echo "" >> /tmp/todolist-kernel.txt; ((count=$count+1)); done the information in the TODOs, at least in the staging area, should be accurate. The code in staging does not meet the quality standards and the job is to make it good enough to be promoted as a ‘real’ kernel driver. This makes it a perfect place to start from especially when combined with the information from TODOs.

Kernel Contribution Methods

Why Contribute to the Linux Kernel?

Tips for New Linux Kernel Contributors


Edit on GitHub
Share this post on:

Next Post
eBPF for Observability: A Practical Introduction