The openSUSE kernel developers have recently announced that the kernel git trees have moved to kernel.opensuse.org/git, providing better reliability than gitorious. Gitorious had trouble with cloning the nearly 1GB repository sometimes, but the developers will keep syncing to gitorious so nothing should break. Moreover, kernel.opensuse.org offers an easy interface to install openSUSE kernels on a variety of openSUSE releases.

More things are planned for kernel.opensuse.org including the introduction LXR. cgit was already added during the writing of this article!

What is there - daily fresh kernels!

kernel.opensuse.org offers an interface for users to find a specific version of a kernel for openSUSE. As the wiki states, there is a number of different kernels build for openSUSE. This includes the default kernel (usable for desktops and real-hardware servers), the desktop kernel, optimized for desktop usage and a number of more specialized kernels including Xen and EC2 ready kernels, debug, trace and of course a vanilla (standard kernel.org) kernel. On kernel.opensuse.org you can find (links to) repositories for all current openSUSE and SLE releases with up to date versions of all the mentioned kernels and more. Most of these are build daily to keep ‘em fresh!

Follow upstream

If you want to follow upstream kernel development closely, vanilla is probably your thing. This will turn into the upcoming Linux 3.0 kernel! If you feel adventurous and want to test patches that are not yet ready to go in the mainline kernel, check the linux-next branch. These are patches which will go into ‘Linux 3.1’, the upcoming+1 version of the Linux kernel.

Or track openSUSE

Or, you might want to test what is coming in the next openSUSE release via the ‘master branch’. This will give you a kernel that is ahead even of the Factory kernel! Each of those kernels is build for a large number of build targets including openSUSE 11.2, 11.3, 11.4 and a number of SLE versions. Clicking on Packages (under the Tools menu top-right) and then the kernel branch you like (the kernel from openSUSE 11.4, SLES10_SP3, linus’ git tree ‘vanilla’, etc) will show you the repository and how to add it. These kernels are build daily, so tracking what the kernel developers are up to is easy as pie!

Michal Marek, working on kernel.opensuse.org told us that:

master, openSUSE-11.3, openSUSE-11.4, vanilla, stable and linux-next should work on any of 11.3, 11.4 and Factory. I fixed the spec files now so that the packages also install on 11.2, but that release is out of support, anyway.

How to use it?

To add a specific kernel to openSUSE, click on the branch you are looking for and then on packages under the Tools menu. You will then see the zypper command which will help you add this kernel to your openSUSE installation.

By default, the kernel will replace your old kernel. If you want to be keep the old one as a fallback, go to /etc/zypp/zypp.conf and uncomment the line starting with “multiversion =”. For the vanilla and linux-next branches, this is not needed, the default configuration puts Linus’ kernel-vanilla next to your default kernel-desktop in parallel. Having the kernel available as option the boot menu and not replacing your current kernel protects you from issues with the latest piece of technology you are testing out!

[caption id=”attachment_9137” align=”alignright” width=”300” caption=”openSUSE kernel commit activity overview”] [/caption]

If you want to get the source code of the kernel branch, or browse its git tree, click on GIT Clone or GIT Browse under the Tools menu to get the commands for cloning the repository to your drive or see the code. You can also follow development and see what patches are added by who in the GIT Browse page. For example, this link brings you to a page showing the latest activity of the openSUSE kernel developers in Factory.

More coming!

For developers, the site provides a git viewer based on cgit. An LXR source code browser is planned in the future. LXR is a tool that displays source files with links to function, macro and type definitions and usage.