Suchen

RTOS

So wird ein Raspberry Pi echtzeitfähig

Seite: 2/4

Firmen zum Thema

Der PREEMPT_RT Patch auf einem Raspberry Pi

Der PREEMPT_RT Patch des Linux Mainline-Kernels wird in dieser näheren Betrachtung als die bevorzugte Alternative für den Einsatz von Echtzeitansprüchen auf einem Raspberry Pi angesehen. Die Installation ist auf verschiedenen Wegen möglich, wobei der Einfachheit halber hier ein von OSADL bereitgestellter Patchscript verwendet werden kann. Ausgangspunkt ist eine installierter Kernel-Version 4.4.8, welche auch für die später aufgeführten Referenzmessungen verwendet wurde.

pi@raspberrypi3:~ $ uname -a
Linux raspberrypi3 4.4.48-v7+ #964 SMP Mon Feb 13 16:57:51 GMT 2017 armv7l GNU/Linux

Bildergalerie

In der OSADL QA Farm führt OSADL eine Reihe von Tests durch, um sicherzustellen, dass die entwickelten PREEMP_RT Patches für die betreffende Linux Kernelversion für Produktionszwecke bereit sind. Diese QA-Aktivitäten umfassen überwachte Stress-Tests, um verschiedene Faktoren auf einer großen Anzahl unterschiedlicher Hardware zu erfassen, beispielsweise:

  • Kernel Crashes
  • Memory Leaks
  • Treiberfehler
  • unbefriedigende Worst-Case-Latenz
  • etc.

Neben zahlreichen anderen Prozessoren befindet sich in Rack #7, Slot #3 ein Raspberry Pi 3 mit einem Linux Kernel 4.6.5-rt10-v7 #4 SMP PREEMPT RT. Am Ende dieser Website sind die erforderlichen Patches gelistet und können inspiziert werden. Für die Installation reicht es aber, den Button "Generate download and patch script" anzuklicken und den Patchscript zu erzeugen. Nach Aufruf des Scripts auf unserem Raspberry Pi 3 erfolgen die Überprüfung und gegebenenfalls auch das Nachladen der erforderlichen Tools, das Download des betreffenden Kernels und der Patches. Am Ende dieses Prozesses sollte die Ausgabe „The kernel linux-4.6.5-rt10 is now ready to be compiled“ erscheinen (Bild 1).

Mit den folgenden Kommandos wird der mit dem PREEMPT_RT Patch versehene Linux-Kernel kompiliert und installiert:

$ cd /usr/src/linux-4.6.5-rt10
$ KERNEL=kernel7
$ 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/bcm2709-rpi-*.dtb /boot
$ reboot

Nach dem Reboot kann mit dem Kommando uname überprüft werden, ob der gepatchte Kernel auch gestartet wurde. Wichtig ist, dass in der Ausgabe „PREEMPT RT“ erscheint (Bild 2).

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de (ID: 44821464)