Real Time Systems
If latency on embedded system is a problem for you, you'll find tutorials to patch the kernel of Raspberry Pi and other boards, as well as performance tests. Preempt-RT and Xenomai are patches for the Linux kernel to transform Linux into a real-time OS.
The Preempt-RT patching article is one of the most visited articles in my blog. However, that article needed a small update: Raspberry Pi 4B is out there and with Raspbian Buster, a new version of kernel is available: 4.19.y.
I also uploaded the compiled and patched kernel to lemariva/RT-Tools-RPi. You can follow all these steps and compile the kernel by yourself or you can download the files from the repository and deploy the kernel on your Raspberry Pi 4B.
This tutorial is the second of a...
Real Time Systems | 6 min | 16137
The website of Xenomai says the following about it Xenomai:
Xenomai brings POSIX and traditional RTOS APIs for porting time-critical applications to Linux-based platforms. When the native Linux kernel cannot meet the response time requirements of the application, Xenomai supplements it with Cobalt, a small real-time infrastructure which schedules time-critical activities independently from the main kernel logic.
Checking the list of supported hardware, the Raspberry Pi 2, 3 B(+) ARM micro (BCM2835) is included.
This tutorial is almost the same as the tutorial for Preempt-RT patching, but in ...
Real Time Systems | 8 min | 34260
The Preempt-RT tutorial article is the most visited post on my blog. Therefore, I decided to update the tutorial to make it cleaner, and to introduce some other possible modifications and tips for solving problems.
Preempt-RT is a popular patch for the Linux kernel to transform Linux into such a real-time operating system. There is another option to get this done, and that's Xenomai (tutorial and performance tests here).
Tiejun Chen, the main responsible for the official Raspberry-Pi-RT branch, has published a video about Preempt-RT here. It includes tips, results and tests.
Getting the Sour...
Real Time Systems | 5 min | 5259
N-Queens Problem: A Benchmarking Solver for Raspberry Pi
The N-Queens Problem/Puzzle is a well-known problem that consists of placing N chess queens on an N × N chessboard so that no two queens attack each other. For example, one possible solution to the N-queens problem for N = 4 is the following:
Fig. 1: N-queens problem example (N = 4).
Source: Google Optimization Tools
As you can see, there aren't two queens on the same row, column or diagonal. Usually t...
Real Time Systems | 3 min | 7020
The Raspberry Pi 3 Model B+ (Fig. 1) is now on sale and I bought one two weeks ago. The main modifications are the followings:
- A 1.4GHz 64-bit quad-core ARM Cortex-A53 CPU
- Dual-band 802.11ac wireless LAN and Bluetooth 4.2
- Faster Ethernet (Gigabit Ethernet over USB 2.0)
- Power-over-Ethernet support (with separate PoE HAT)
- Improved PXE network and USB mass-storage booting
- Improved thermal management
Fig. 1: Raspberry Pi 3 Model B+
The Raspberry Pi uses now the LAN2515 chip from Microchip instead of the LAN9514 for Ethernet and the USB Ports.
If you are looking for some Benchmarkin...
Real Time Systems | 1 min | 1735
~/rpi-kernel$ git clone https://github.com/raspberrypi/linux.git ~/rpi-kernel$ cd linux ~/rpi-kernel/linux/ git checkout rpi-4.14.y-rt
Then, you can follow the tutorial from here.
Real Time Systems | 2 min | 4889
Today I patched the kernel of a Raspberry Pi Zero W with Preempt-RT. I used the repo TiejunChina.
Update 18.03.2018: The official Preempt-RT patched Rasbian repo is here.
##~/rpi-kernel$ git clone https://github.com/TiejunChina/linux.git # update 18.03.2018: old repository## ~/rpi-kernel$ git clone https://github.com/raspberrypi/linux.git # update 18.03.2018: new repository ~/rpi-kernel$ cd linux ~/rpi-kernel/linux$ git checkout rpi-4.14.y-rt # today the kernel version is 4.14.22 # with rt17 resulting in 4.14.22-rt17+
You can find a complet...
Real Time Systems | 5 min | 10297
The last week I was working on a real-time application (with a 1 ms sample time) that runs on an ARMv8 Cortex-A53 (Raspberry Pi 3 Model B based board) and I was wondering the differences between latencies on the standard and the Real-Time (RT) Linux kernel. I had some problems with the standard kernel version, then I thought I could analyze the latencies of both kernels, and make some conclusions. Many test are available but with older kernel versions. The tests were perfo...
Real Time Systems | 6 min | 28353
You can still read this article, but a new tutorial is available here:
There are a lot of tutorials for Raspberry Pi kernel patching using Preempt-RT, but I needed about 15 hours to get it working! I hate Kernel patching! and I have to say, that's not my first time. I have a system working with Ubuntu, RTAI and an Ethercat master. I patched the system more than once. But it is/was always a new thing! and It costs a lot of tim...