Table of Contents

2021 GSoC - Kworkflow

Go back to the main GSoC Linux Foundation page

Repository: https://github.com/kworkflow/kworkflow

IRC: #kworkflow on irc.freenode.net

Code License: GPLv2

Mentor: Rodrigo Siqueira, aka siqueira (rodrigosiqueiramelo at gmail dot com)

Brief about kworkflow

Kworkflow, or just kw, is a tool that intends to simplify the kernel workflow by automating tasks such as:

  1. Manage kernel build;
  2. Manage installation/removal of Linux on a target machine (local, remote, or VMs);
  3. Provide an easy way to collect basic information;
  4. Support working on DRM subsystem (we can expand to other subsystems);
  5. Manage config files. Etc;

By using kw we expect to reduce the learning curve for newcomers and speed up everyday tasks executed by kernel developers in their workflow. Finally, the project should be reasonably easy to contribute since it is written in Bash, has extensive test coverage, and is documented from the code level to the user level.

Pre-requisites (warm-up)

( ( This section is mandatory for everybody ) )

If you are interested in this project, we have a few but essential pre-requisites for you to try before your application:

  1. Learn how to install and remove a Linux kernel - https://flusp.ime.usp.br/others/Kernel-compilation-and-installation/
  2. Learn how to deal with modules - https://flusp.ime.usp.br/others/play_with_modules/
  3. Basic Bash knowledge - https://www.gnu.org/software/bash/manual/bash.pdf (Read until Chapter 7)

Send your first patch to kw

It is highly recommended that you try to send a small contribution to kw. For helping you to see what could be a good start, take a look at this link:

Finally, before you try to submit a patch, take a few minutes to read the following page:

Project Idea

We are open to discuss the final project proposal. As guidance, follow some of the areas that we want to improve on kw:

  1. Fix a few bugs, add more tests, and enlarge documentation;
  2. Cleanup output and add verbose mode;
  3. Add support to generate dpkg versions of the kernel;
  4. Speed up kernel deploy to a machine;
  5. Add support to Raspberry pi deploy;
  6. Expand the set of OS supported by kw;

kw has many open tickets on the Github web page; feel free to propose some specific projects based on the available tickets.

How to prepare your project proposal

The pre-requisites section is mandatory for everyone; for this reason, your final project proposal should have one section per assignment with two or three paragraphs that describe your experience with each task. Additionally, in your application, you must add print screens that follow the below instructions:

Contact Siqueira to get one specific ID

If you are really interested in this project, send me a message to Siqueira and request one specific ID. You will need it for the next steps.

QEMU Setup

For demonstrating your QEMU setup, you will need need to take a print screen of your entire desktop with QEMU running and with the following comment in your TTY:

#kw 2021 GSoC <ID>

For your custom kernel installation

For showing that you were able to install a custom kernel machine in your VM system, add the following label in your kernel name suffix:

Kernel-<YOUR_NAME>-<YOUR_ID>
(( Replace YOUR_NAME by your first name, and YOUR_ID ))

Install it in your QEMU VM; in the TTY, run the following command:

uname -a

Take a print screen of the entire screen.

Finally, make sure that you have the following section in your application:

  1. One or two paragraphs about you;
  2. A couple of sections that describe your interaction with kw;
  3. A list of your contribution to kw;
  4. A project proposal to be executed in the GSoC timeline. Please, make sure that you add three main milestones (it should match with the GSoC evaluation date) and a work breakdown.

P.s.: Feel free to share your draft before submit the final version.