Linux Format logo

Free books for kernel patchers

This offer has now closed, and everyone's books have been sent out. Well done, everyone!

Subscribers should already have started to receive LXF129, and the rest of you will be able to pick up your copy from this Thursday. Inside you'll find a four-page tutorial on how everyone - even someone with only a few weeks of coding experience - can submit patches to the Linux kernel. It might sound crazy, particularly as many people consider the Linux kernel to be Really Hard or out of reach of mere mortals. But I hope that when you've finished the tutorial, you'll feel confident enough to give it a try.

Now, we want to encourage everyone to give it a try, so here's the deal: if you follow our tutorial and submit a patch to the kernel that gets accepted - even if it's only a really, really tiny little change - we'll send you a free book. All you have to do is email me,, with your name and address, plus a link to where I can see your patch was accepted. Don't forget, the Linux kernel mailing lists are available online for everyone to read, so a link pointing there is fine. Alternatively, just forward me an email from someone accepting it.

There are some limits: only 1 book per person; the offer is available worldwide; your patch must have been accepted; your patch can be really tiny or simple. Also, we have a limited stock of books, so we're offering this on a first-come, first-served basis.

NB: if you're a subscriber who lives overseas and you haven't received your copy yet, don't forget you can visit our subscriber-only area at and download all the PDFs from LXF129 now.

Your comments

Awesomeness in a jar

Now there's an area I'd like to learn more about! Can't wait for my copy to arrive :D


The article is awesome, im working through it now :D


Man, my issue turned up today (it has a great way of turning up on my days off, thanks LXF!). I spent 5 hours of my day off getting a patch to work nicely, fixing several issues. Turns out the driver I was fixing used a deprecated data structure which isn't being used from now on!

How disheartening. But a learning process no less :(

Re: Depressed

Craig: good work! Don't be discouraged - you've already made it further than 99.99% of Linux users, and, while it sucks that your changes this time won't be accepted, you've proved that you've got what it takes to dive in and make a real difference in the kernel community. Well done!

And you have more than deserved your book - drop me an email with your details and I'll get something in the post for you.


Thanks! I've dropped you a mail with my details.

nice i might try and make

nice i might try and make wifi for aspire one a150s work with more distros fine with ubuntu 9.10 bad with opensuse 11.2 and others

unclear style message

I've worked through the tutorial and a lot was straightforward, but there is one message from checkpatch I just don't understand:
WARNING: printk() should include KERN_ facility level

The first line this occurs in is
printk("comedi%d: ni_labpc: %s, io 0x%lx", dev->minor, thisboard->name,

What does the warning mean and how is it fixed? I can't seem to find the solution anywhere.



You need to have something like:
printk(KERN_ERR, "comedi%d: ni_labpc: %s, io 0x%lx", dev->minor, thisboard->name, iobase);
This tells the kernel that it is an error message (the code you posted may not be an error message), and prints it to the appropriate place and checks if it should be printed at all

Patch commited

w00t just committed my first patch, quite easy to do. Will definitely start fixing more stuff and hopefully committing proper code fixing patches soon!


Quite a cool thing to do. I know how to do C programming the only bit that confused me was handling git and committing patches so, time to start coding and code fixing I guess?


Also for those of you that use GMAIL:

$ git config --global sendemail.smtpserver
$ git config --global sendemail.smtpserverport 587
$ git config --global sendemail.smtpencryption tls
$ git config --global sendemail.smtpuser
$ git config --global sendemail.smtppass your_password

had to do that under Ubuntu 8.10 to make git send-email work.


I submitted my first patch yesterday using the tutorial, and now I'm reading 'linux kernel in a nutshell' and want to buy 'Understanding the Linux Kernel'. I think you got me hooked!

More help

Guys some of you might find helpful to watch this:

Also how do we know if we get a book or not ? :)

Slightly annoyed

I couldn't send my patch through 'git send-email', because I get "git: 'send-email' is not a git-command. See 'git --help'.". Instead, I had to send it manually as an attachment, because copying and pasting corrupts it.

RE: Slightly annoyed

I see "sudo apt-get install git" doesn't automatically install git-email. My mistake...

bad luck ,I come lately.

bad luck ,I come lately.

Web hosting by UKFast