From new user to kernel compilation to upstream fix
It is quite exciting when helping new users solve issues while migrating to the Linux operating system, and Ubuntu Linux in this case.
A couple of weeks ago, a new member at the Ubuntu-gr forum posted a question about a sound problem in an Ubuntu Linux installation.
Here is the timeline
- An initial post was made with the relevant hardware information.
- More information was gathered that led to the PCI ID and subsystem ID of the sound card, which further led to the source of a patch for a quirk.
- The advice to recompile the full kernel (with the patch) was given. This process required over 10GB, which caused the distribution to crash. The user was fine to reinstall.
- A subsequent route was taken to simply compile Alsa (not the full kernel) and add the patch.
- This route was successful and the sound was now working.
- We want to post this patch upstream so that newer versions of the kernel contain the fix. In addition, all distributions will benefit as well.
- A bug report was submitted to the Alsa bugtracking #0004561. We now wait.
- Days are passing with no progress. A question at #alsa (Freenode) shows that the Alsa bugtracking is probably not used, so there is need to contact the developers through the mailing list.
- An e-mail is sent to the Alsa mailing list with the patch. The Alsa developer takes the patch and applies to his tree. We missed by several days the release of Linux 2.6.30; the patch should appear in 2.6.31.
The whole process took ten days. It is amazing how rewarding it is to follow the open-source processes and contribute the personal time to help make open-source better.
The patch was evidently elemental, however it required new testing to make sure it works, and that it applies to the current state of Alsa. There are many areas that you can contribute some of your time to make open-source better.
I would like to thank Theodora for going through the process, locating and verifying the patch, so that now it is pending inclusion in Linux 2.6.31.
Update 22Apr 2010: The change has been added to the Linux kernel :-). It’s a tiny small change that anyone can do.