So I tried some older rt kernels downloaded from Debian but either they won't work properly with Jessie (in some cases system won't boot) or in the case of the later versions which do work, it keeps crashing.
I patched a 3.14 kernel to rt on a Xeon64 bit computer, set CONFIG_PREEMPT, set CONFIG_HZ=1000 and disabled CONFIG_SCHED_SMT and then compiled and installed the kernel headers and image.
The computer ran for about 5 mins and during testing of audio apps (Kontakt running on Wine) it hung.
Installing a 3.14 RT kernel image from Debian didn't seem to work either, computer freezes.
By the way, I also made the "mistake" of installing nVidia drivers which complicates kernel testing so it's better to go back to Nouveau but it is a bit tricky to uninstall it properly and get Nouveau working again. This is what I ended up doing as root user.
Code: Select all
apt-get remove --purge nvidia-*
mv /etc/X11/xorg.conf /etc/X11/xorg.conf.oldnvidia
echo 'nouveau' | tee -a /etc/modules
apt-get install xserver-xorg-video-nouveau
dpkg-reconfigure xserver-xorg
Reboot and hope for the best
- UPDATE -
Compiled a 3.18 Kernel with PREEMPT, 1000HZ and installed in Jessie
Tested with Kontakt in Wine and OBXD in Carla, system still Xruns with a RME 9652
Seems to work OK so far, no Xruns, with a UMC404
The UMC404 has magically stopped working in Linux in the past and only connecting it to a Windows computer has seemed to reset it. Anyway, the conclusion I can draw so far is that getting PCI cards to work well with Linux audio seems to be challenging and that USB cards seem to work better. Perhaps certain PCI-Express models would also work but until somebody's tested them who knows.
For people who want to compile kernels in Debian and wonder how, here's a very rough guide
Install QT4 if not already installed
Install the following
Code: Select all
apt-get install kernel-package fakeroot build-essential
Download Kernel Sources from Kernel.org
Code: Select all
https://www.kernel.org/pub/linux/kernel/v3.x/
Untar Kernel Source (It's up to you to decide what version you want to use)
Code: Select all
tar xJvf linux-3.14.29.tar.xz
cd linux*
If patching RT Kernel
Code: Select all
xzcat ../patch-3.14.29-rt26.patch.xz | patch -p1
Copy the config of your current kernel to the folder you untarred the linux kernel sources. The config version depends on the kernel version you currently have installed, below is just an example
(Select preempt model you require. Next you can accept all the other default settings when prompted by holding down the enter key until it's run through the config file.
Ensure the settings below are set and save the .config when done.
Processor Type and Features,
- [Optional] can select Xeon at Processor Family (or use usual 64Bit x86 CPU)
- [Optional] SMT Hyperthreading, disable (it may help with crashing if compiling RT Kernel??)
- Preemption Model, set to low-latency (if you're not using a RT kernel)
- Timer Freq set to 1000HZ
- [Optional] Disable APM
You should see these values when you check the .config file
CONFIG_PREEMPT=y
CONFIG_HZ_1000=y
CONFIG_HZ=1000
CONFIG_APM=n (Optional)
To compile the kernel
Code: Select all
make-kpkg clean
CONCURRENCY_LEVEL=`nproc` LOCALVERSION= fakeroot make-kpkg --initrd --revision 0 kernel_image kernel_headers
Install the kernel
Code: Select all
cd ..
dpkg -i linux-headers-xxxx.deb
dpkg -i linux-image-xxxxx.deb
NOTES
run update-grub2 (to update bootloader, not really necessary when installing kernel with dpkg -i)
Listing kernel components
Code: Select all
dpkg --get-selections | grep linux-
Uninstalling old kernels. Be careful you don't uninstall the standard kernel by accident.
Code: Select all
apt-get remove --purge linux-image-xxxx
apt-get remove --purge linux-headers-xxxx