Zelf een real-time kernel bouwen voor Ubuntu 12.04

De real-time kernel uit de PPA van Alessio Bogani liep bij mij nog wel eens vast dus heb ik er zelf een gebouwd met de meest recente 3.2 kernel en bijbehorende RT patchset. En dit draait een stuk stabieler, nog geen lockups gehad.

Een eigen kernel bouwen is gelukkig nog steeds niet zo heel moeilijk, met Ubuntu kun je zelfs heel gemakkelijk pakketten maken met behulp van de make-kpkg utility. Na wat googlen kwam ik onderstaande handleiding tegen en simpeler kan het bijna niet.

Installeer de benodigde pakketten:

sudo apt-get install kernel-package fakeroot build-essential libncurses5-dev

Download de kernel sources en de RT patchset:

mkdir -p ~/tmp/linux-rt
cd ~/tmp/linux-rt
wget -c http://www.kernel.org/pub/linux/kernel/v3.x/linux-3.2.28.tar.bz2
wget -c
http://www.kernel.org/pub/linux/kernel/projects/rt/3.2/patch-3.2.28-rt42.patch.bz2

Pak de kernel sources uit en patch deze met de RT patchset:

tar xjvf linux-3.2.28.tar.bz2
cd linux-3.2.28
patch -p1 < <(bunzip2 -c ../patch-3.2.28-rt42.patch.bz2)

Nu moet je de kernel nog configureren. De gemakkelijkste manier is om een bestaande kernel config te nemen, deze staan in de /boot directory van je systeem. Kopieer een config naar je werkdirectory en gebruik deze als uitgangspunt:

cp /boot/config-$(uname -r) .config

Dit commando kopieert de kernel config van de kernel die je op dat moment gebruikt. Je kunt ook de config van een andere kernel gebruiken, bijv. die van de Ubuntu lowlatency kernel aangezien deze al geoptimaliseerd is voor Linux audio toepassingen. De volgende stap is om een kernel config aan te maken met full preemption ingeschakeld aan de hand van de gekopieerde kernel config:

make oldconfig

Je kunt alle prompts wegklikken met Enter, behalve de prompt welk Preemption Model je wilt gebruiken. Selecteer daar 5 (Fully Preemtible Kernel):

Preemption Model
> 1. No Forced Preemption (Server) (PREEMPT_NONE)
  2. Voluntary Kernel Preemption (Desktop) (PREEMPT_VOLUNTARY)
  3. Preemptible Kernel (Low-Latency Desktop) (PREEMPT__LL) (NEW)
  4. Preemptible Kernel (Basic RT) (PREEMPT_RTB) (NEW)
  5. Fully Preemptible Kernel (RT) (PREEMPT_RT_FULL) (NEW)
choice[1-5]: 5 <Enter>

Workaround voor https://bugs.launchpad.net/ubuntu/+source/kernel-package/+bug/602405:

sed -rie 's/echo "+"/#echo "+"/' scripts/setlocalversion

Nu kun je de kernel gaan bouwen:

make-kpkg clean
CONCURRENCY_LEVEL=$(getconf _NPROCESSORS_ONLN) fakeroot make-kpkg
--initrd --revision=0 kernel_image kernel_headers

Als het bouwen klaar is (kan een tijd duren) kun je de kernel pakketjes installeren:

cd ..
sudo dpkg -i linux-{headers,image}-3.2.28-rt42_0_*.deb

Rebooten, nieuwe real-time kernel selecteren in je bootloader (GRUB) en je systeem zou nu moeten booten met de net gebouwde real-time kernel.

Zelf een real-time kernel bouwen voor Ubuntu 12.04

Homestudio migratie

Migratie voorloopt voorspoedig. Bijna alles draait weer en het systeem voelt weer lekker fris en fruitig aan. Enige echte lastpost is de real-time kernel die ik heb geïnstalleerd, die wil nog wel eens vastlopen (kernel panics). Maar dat komt waarschijnlijk omdat het al een oudere versie is (zo te zien 3.2.14-rt24, recentste versie is 3.2.19-rt30). Zal dus de lowlatency kernel moeten gebruiken, nog niet uitgebreid getest maar ik denk dat dat wel goed komt. Dan kan ik ook zonder problemen de plug-ins gebruiken van het Distrho project. Die maken bijna allemaal gebuik van het Juce framework en dat framework is voor zover ik het heb begrepen niet helemaal real-time safe zoals dat heet. Oftewel, plug-ins gebaseerd op dat framework doen het niet goed met een real-time kernel en kunnen zelfs je systeem laten crashen.

Homestudio migratie

Lubuntu onvolkomenheden

Na het installeren van Lubuntu 12.04 via een minimal install en een apt-get install lubuntu-core op de CLI ziet de desktop waarmee je geconfronteerd wordt er nog niet echt jofel uit.


text-align: center;

Desktop na installatie lubuntu-core

Dit is simpel op te lossen door het pakketje gtk2-engines-pixbuf te installeren. Dit pakketje zorgt ervoor dat GTK2 applicaties het correcte Lubuntu-default GTK2 theme krijgen.


text-align: center;

Desktop na installatie pixbuf GTK2 engine

En Qt applicaties? Die pikken helaas nog niet de juiste GTK instellingen op ondanks dat de GUI Style standaard op GTK+ staat.


text-align: center;

Qt houdt het op een Clearlooks GUI Style

Na het installeren van het pakketje libgnome2-common is dit ook opgelost en hebben alle applicaties een homogenere feel.


text-align: center;

qtconfig met correcte GTK+ GUI Style

Lubuntu onvolkomenheden

Homestudio migreren naar Precise

De Arch install die ik draaide naast good ol’  Lucid gaat toch plaats maken voor Precise. Arch is cool maar gewoon te veel werk voor mij. Ook kreeg ik de font rendering niet goed en na een update waarna yaourt niet meer werkte heb ik Arch niet meer opgestart.

Op mijn studio PC ga ik ook LXDE gebruiken. Heb een minimal install gedaan en vervolgens lubuntu-core geïnstalleerd. FFADO erop en de real-time kernel van Alessio Abogani en dat lijkt goed te draaien dus ga de boel nu verder inrichten. Hou jullie op de hoogte van de vorderingen.

Homestudio migreren naar Precise

Geüpgraded naar Precise Pangolin

Op m’n werk zat ik op 11.10 en heb gewoon maar de upgrade naar 12.04 erover heen gerost. Ben niet zo’n fan van upgraden, doe liever een schone install, maar ik kan niet ontkennen dat Ubuntu upgraden inmiddels afgrijselijk soepel verloopt. Na de upgrade doet alles het nog gewoon zoals voorheen op slechts wat minuscule dingetjes na. Zo zag het font dat ik gebruikte voor in de terminal (Monospace) er bijvoorbeeld niet meer uit. Na dit vervangen te hebben met DejaVu Sans Mono was het weer leesbaar alhoewel het naar mijn gevoel nog niet helemaal hetzelfde is als onder 11.10. Maar heb het idee dat de algehele font rendering is aangepast. En Plymouth werkt nog niet maar dat komt waarschijnlijk doordat ik een aangepaste Grub configuratie gebruikte ivm. de Ati kaart die in mijn werk PC zit. Dus dat moet ik nog even aanpassen. Ook moet ik op zoek naar andere icoontjes want daar is ook wat aan veranderd waardoor het niet goed meer oogt. Als iemand nog tips heeft hoor ik het graag.

Geüpgraded naar Precise Pangolin

Nog iets meer dan een week

En dan mag ik eindelijk m’n PC’s updaten naar de nieuwe Ubuntu LTS versie, 12.04 Precise Pangolin. Dus ook mijn home studio PC. Komt redelijk goed uit want heb momenteel niet zo gek veel tijd en behoefte om muziek te maken. Heb wat anders om handen.

Op mijn werk draai ik al wel een paar maanden 11.10 en ben daar best tevreden over. Toch kan LXDE niet op tegen Gnome 2 dus ga denk ik toch weer wat zoeken naar en experimenteren met window en desktop managers opdat ik maar moge eindigen met de ultieme desktop ervaring. Ach uiteindelijk zal het wel weer een pragmatische oplossing worden, niet de D66 connotatie van pragmatisch, maar de Driss uit Les Intouchables connotatie (cliffhanger alert). Pragmatique.

Nog iets meer dan een week

Linux Audio Conference 2010

ZIt ik een beetje rond te kijken op Open Blik zie ik dat de Linux Audio Conference van linuxaudio.org komend voorjaar in Utrecht is! Zo, daar word ik wel even enthousiast van. Nog mooier zou zijn als ik een bijdrage zou kunnen leveren aan deze conferentie. Gezien mijn universitaire achtergrond en mijn huidige werk bij de Universiteit van Amsterdam zou dat zo maar eens een hele mooie kans zijn.

Uiteraard blijf ik dit volgen en zal ik alle verdere ontwikkelingen hier neerpennen. Mooi iets om naar uit te kijken.

Linux Audio Conference 2010

Die vermaledijde xruns!

Je kent het wel, ben je lekker met JACK bezig, hang je Audacity er aan, beetje editten en in ene wordt het je systeempje te veel. Gevolg: xruns, xruns en nog meer xruns. Op mijn netbookje heb ik hier dus last van en waarschijnlijk ligt dat aan een brakke geluids- of codecmodule. Ik heb er maar een soort van noodknop voor gemaakt die de gehele soundstack opnieuw laadt. Daarna zijn de xruns gelukkig weer weg. Ik moet maar eens gaan uitzoeken hoe die ALSA drivers nou precies aan de kernel hangen, zijn het nou kernel afhankelijke modules of staan ze los van de kernel die je gebruikt? Het moet wel allemaal een beetje stabiel draaien, juist ook met het onboard geluidskaartje, ik ga niet de hele tijd een externe geluidskaart meeslepen.

De noodknop is eigenlijk niet meer dan een scriptje (heb het maar restartsound genoemd) dat alle geluidsmodules uit de kernel trekt, alsa stopt, de modules weer laadt en alsa weer opstart.

Die vermaledijde xruns!