IIO Kernel Development, From Zero to Hero

written in outreachy

Hi, I am Cristina and I’m doing an internship at The Linux Foundation this summer, as part of the Outreachy program, for which I’ve been selected.

I haven’t been involved too much into open source development and I’ve always wished to be, so that when I heard the program was opened, I saw it as the perfect chance to start contributing and be part of a community.

The process of selection lasted from the end of February until April, time in which I’ve got accustomed with the work environment, kernel development practices and wrote a few patches for a project I liked. I did my best in trying to know the project as much as I could and finally got accepted!

Why Linux Kernel?

I find operating systems the most fascinating subject in computer science and what better way to broaden my knowledge than actually contributing to the Linux Kernel? Apart from that, the penguin is nice.

What is IIO?

IIO stands for the Linux Industrial I/O Subsystem which deals with drivers for small devices, analog or digital such as sensors (pressure, light, temperature), accelerometers , ADCs, DACs and others. The IIO module has been in the upstream linux kernel since v2.6.32, that would be around 2009 and supports more than 200 iio device drivers [1]. More blog posts on this subject and the iio architecture are coming in the next weeks, as I am currently investigating and reading in the field.

There were several proposals for the projects on this round, which you can find here. I chose the IIO dummy driver mentored by Daniel Baluta and Octavian Purdila, which acts as a sort of template for writing iio drivers, but which is far from clean. My main responsability is to solve all the problems related to this dummy driver and get it out of staging.

All in all, it’s going to be an interesting summer, with a lot of challenges I can hardly wait to solve!