RT Kernel Instructions
From openSUSE
(Derived in part from the HOWTO at http://gimpel.funpic.de , and edited on and off here.)
Contents |
Introduction
A major requirement in audio processing is latency, that is, the delay between creating the signal and its “reception” by the system, for example playing on a MIDI keyboard to hearing the tone.
The standard kernel has a disadvantage in that it has a higher latency (~ 11 ms) compared to Windows or Mac. The shorter the latency, the more you can do at once with a system (e.g. more synths).
Ingo Molnar (currently working with RedHat) et al. run a project whose goal it is to reduce the latency in Linux down to a minimum: realtime preemption. Good audio hardware being a requisite, latencies below 1 ms can be achieved, and as such, reacts faster than an average Mac.
Notes
WARNING: This section may not be entire neutral-POV ;-)
- openSUSE 11.1 does not ship an RT kernel because there was no -rt patch provided by upstream for the 2.6.27 kernel version used in 11.1. (And it is hard to forward-port it if one does not happen to be the rt maintainer…)
- The quality of Novell-provided RT kernels has shown to be incomplete. The openSUSE 11.0 2.6.25.x RT kernel spews BUG notices (a fix is available but has not been integrated as of the 2.6.25.20 update to 11.0.)
- The test coverage of /repositories/Kernel:/ is not exactly known. Patches that are added in the course of development may break configurations (categorical name for "default", "pae", "rt" and so on; a.k.a "flavors") without being noticed (see 11.0 above — the 2.6.25.8-rt had worked fine).
Now, in a possibly highly biased way, your editor for this section (j.eng) recommends his own -jen series kernel. There is nothing overly magical to it — it is a SUSE base kernel, plus the -rt patch, a few personal patches, and sometimes additional kernel fixes[1].
- Well-tested — author runs RT exclusively on a daily basis. While not all possible test cases can be covered, user reports are not many.
- Updates are held off until it can be established that they work reasonably. Minor updates, such as 2.6.29.4 -> 2.6.29.5 may be published within the day, but larger moves like 2.6.29 -> 2.6.30 may delay longer. (Note that there is also the case of “not deemed worth updating at this point”.)
- PAE kernel selectively available (see below)
- NVIDIA RPMs provided as a convenience. (The unnecessary complexity of the ATI driver installer has put the nail into the coffin for fglrx.)
- Naturally SUSE-based, so you get your fancy bootsplash stuff (which is not included in vanilla kernels)
Installation
Simply add the j.eng repository if you do not have it yet. See Additional YaST package repositories for current URLs. The use of zypper is highly recommend to avoid unwanted package replacements of unrelated packages that other package managers like apt, smart, yum normally do.
Install one (or more, if you like) of the available kernels. Two choices besides the standard “-default” and “-pae” are provided:
- kernel-rt: Typical RT config (PREEMPT, 1KHz system timer, etc.)
- kernel-rtpae: Similar, with PAE enabled.
It is of utmost importance to honor the dependencies — they are there for a reason. Failure to comply may result in the inability to boot the new kernel. Zypper will display a “change vendor” list on the first install if there are any dependencies(*):
The following packages are going to change vendor:
mkinitrd module-init-tools
And if you happen to manually install the RPM package, not passing all dependent packages will raise a rightful error. Do not use --nodeps.
error: Failed dependencies:
mkinitrd(vendor=jengelh) >= 2.4 is needed by kernel-rt-2.6.29.5-jen80.i586
module-init-tools(vendor=jengelh) >= 3.4-56.8.jen3 is needed by kernel-rt-2.6.29.5-jen80.i586
(*) The list of deps shown here may be different from the ones actually encountered (as they may change in the course of further development; this example is not updated everytime)
That's all there is to it.
External links
- http://jengelh.medozas.de/projects/kernel/ — Release Notes
Categories: Kernel | Audio | JackLab

