Hi
using Linux for audio and MIDI production isn’t fine with my hardware, that’s why I need to test several Linux distros and even this RC. Because some people have similar troubles and I’m familiar with some essentials, e.g. which versions for audio and MIDI applications are recommended for usage, I wish to have a howto, so that users can carry it over to the stable release.
I need some help to figure out, how to do some things for SUSE. I will write what to do step by step, like it should be for a howto, but at some points I hope the community can help.
OPEN A TERMINAL
KDE 4.1 SUSE menu > Applications > System > Terminal > Terminal
or push Alt + F2 and run konsole or xterm
I will start with the fundament.
— THE REALTIME KERNEL —
GETTING NEEDED SOFTWARE AND THE SOURCES
Note: Browse http://www.kernel.org/pub/linux/kernel/projects/rt/ to see what version the latest realtime preemption patch is. Don’t use patches and kernels ex 2.6.26 without verifying, if the problems for realtime audio and MIDI with kernels ex 2.6.26 are fixed. Make sure that the version of the kernel source for the vanilla kernel from http://kernel.org/pub/linux/kernel/ is suitable to the version of the patch.
spinymouse@suse11-1:~> cd /usr/src/packages/SOURCES
spinymouse@suse11-1:/usr/src/packages/SOURCES> su
suse11-1:/usr/src/packages/SOURCES # zypper install patch make gcc
suse11-1:/usr/src/packages/SOURCES # wget http://www.kernel.org/pub/linux/kernel/projects/rt/patch-2.6.24.7-rt23.bz2 http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.24.7.tar.bz2
UNPACK THE SOURCES
It’s recommended to add to the directory’s name, that will include the patched source, the patch version and a identification that points to the self compiled kernel-rt version. In this case “rt23” and “spinymouse.1”. The archive with the vanilla kernel source and the patch can be used as sources for different self compiled versions.
suse11-1:/usr/src/packages/SOURCES # bunzip2 patch-2.6.24.7-rt23.bz2
suse11-1:/usr/src/packages/SOURCES # tar xvjf linux-2.6.24.7.tar.bz2
suse11-1:/usr/src/packages/SOURCES # mv linux-2.6.24.7 linux-2.6.24.7-rt23-spinymouse.1
PATCH THE KERNEL
suse11-1:/usr/src/packages/SOURCES # cd linux-2.6.24.7-rt23-spinymouse.1
suse11-1:/usr/src/packages/SOURCES/linux-2.6.24.7-rt23-spinymouse.1 # patch -p1 < …/patch-2.6.24.7-rt23
CHANGE THE VERSION FOR YOUR SELF COMPILED KERNEL
suse11-1:/usr/src/packages/SOURCES/linux-2.6.24.7-rt23-spinymouse.1 # vim Makefile
Push i and change “EXTRAVERSION = .7-rt23” to “EXTRAVERSION = .7-rt23-spinymouse.1”
Push Esc and than type :wq and enter
KERNEL CONFIGURATION
suse11-1:/usr/src/packages/SOURCES/linux-2.6.24.7-rt23-spinymouse.1 # zcat /proc/config.gz > .config
suse11-1:/usr/src/packages/SOURCES/linux-2.6.24.7-rt23-spinymouse.1 # zypper install ncurses-devel
suse11-1:/usr/src/packages/SOURCES/linux-2.6.24.7-rt23-spinymouse.1 # make menuconfig
Most settings I kept unchanged, here are the settings I made especially for my hardware and those that are needed for realtime with any hardware, the copied config I used is the default for
suse11-1:/usr/src/packages/SOURCES/linux-2.6.24.7-rt23-spinymouse.1 # uname -r
2.6.27.7-8-default
I changed the processor family from “Generic-x86-64” to “Opteron/Athlon64/Hammer/K8” and the maximum number of CPUs from “8” to “2”, to optimize it for my hardware, yours might differ.
The preemption mode has to be set from “No Forced Preemption (Server)” to “Complete Preemption (Real-Time)” and the timer frequency from “250 Hz” to “1000 Hz”, independently of the used hardware.
It might be better to change the default CPUFreq governor from “ondemand” to “performance”.
After you’ve edited all settings “Save an Alternate Configuration File” and exit.
I’m not sure if I have forgotten to do some settings or to install any dependencies, because I got a lot of warnings like
.config:90:warning: trying to assign nonexistent symbol RT_GROUP_SCHED
COMPILE THE REALTIME KERNEL
suse11-1:/usr/src/packages/SOURCES/linux-2.6.24.7-rt23-spinymouse.1 # make rpm
This may take a while … after less than 35 minutes I got
suse11-1:/usr/src/packages/SOURCES/linux-2.6.24.7-rt23-spinymouse.1 # ls /usr/src/packages/RPMS/x86_64
kernel-2.6.24.7rt23spinymouse.18default-1.x86_64.rpm
TO BE CONTINUED
I’m short in time right now. I’ll continue ASAP.
Cheers,
Ralf