Echtzeitfähiger Raspberry Pi

AusgangssituationRaspberry Pi

Raspberry Pi mit aktueller Raspbian-Version Raspbian Jessie

$ uname –a
Linux raspberrypi 4.4.9+ #884 Fri May 6 17:25:37 BST 2016 armv6l GNU/Linux

Einstellen der CPU-Taktfrequenz auf 700 MHz (für spätere Vergleichbarkeit der Testergebnisse)

Installation des Programms cyclictest zur Messung des zeitlichen Verhaltens eines Linux-Systems (Details).

$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/clrkwllms/rt-tests.git
$ cd rt-tests
$ make

Durch Aufruf des Programms mit den folgenden Parametern

$ sudo ./cyclictest -l50000000 -m -n -a0 -t1 -p99 -i400 -h400 –q

erhält man Ergebnisses, die mit dem in der OSADL QA-Farm laufenden Raspberry Pi verglichen werden können.

PREEMPT_RT Patch

Um den PREEMPT_RT Patch durchführen zu können, kann man den betreffenden OSADL Patch Skript verwenden, der am Ende der Webseite abrufbar ist.

Zum Kompilieren und zur Installation des gepatchten Kernels können die folgenden Kommandos benutzt werden:

$ cd /usr/src/linux-4.1.15-rt15
make
make modules_install
release=`cut -d" " -f3 include/generated/utsrelease.h | tr -d '"'`
cp arch/arm/boot/zImage /boot/zImage-$release
cp arch/arm/boot/zImage /boot/kernel.img
cp arch/arm/boot/dts/bcm2708-rpi-*.dtb /boot
reboot

Mit dem Kommando

$ uname –a
Linux raspbberypi 4.1.15-rt15 #1 PREEMPT RT Tue May 17 17:19.15 CEST 2016 armv6l GNU/Linux

kann überprüft werden, ob der gepatchte Kernel nach dem Reboot gestartet wurde.

Durch Aufruf des Programms cyclictest mit identischen Parametern

$ sudo ./cyclictest -l50000000 -m -n -a0 -t1 -p99 -i400 -h400 –q

erfolgt nun die Latenzzeitmessung des gepatchten Kernels.

Die Ergebnisse beider Messungen sind im Blogbeitrag dargestellt.