An intro to real-time Linux with Ubuntu
Tags: Embedded , Industrial , IoT , real-time Linux , robotics
A real-time system responds to events within a specified deadline. If the timing constraints of the system are unmet, failure has occurred. In the kernel context, real-time denotes a deterministic response to an external event, aiming to minimize the response time guarantee.
Real-time Beta now available in Ubuntu 22.04 LTS
Last April, Canonical announced real-time Ubuntu 22.04 LTS Beta for x86 and Arm64 architectures. Based on v5.15 of the Linux kernel, real-time Ubuntu integrates PREEMPT_RT to power the next generation of industrial, robotics, IoT and telco innovations by providing a deterministic response time to their extreme low-latency requirements.
Real-time Ubuntu is available for free for personal use via Ubuntu Advantage, the most comprehensive Linux enterprise subscription, covering all aspects of open infrastructure. Anyone can enable the real-time kernel per the instructions, and we encourage real-time Ubuntu users to help us by reporting bugs.
Watch our webinar
If you want to delve deeper into this topic, we recently hosted a webinar covering:
- What real-time is and common misconceptions
- Market applications
- Linux kernel preemption
- Preemption modes available in mainline
- Real-time Ubuntu 22.04 LTS Beta
Thanks to everyone who attended, asked questions and provided feedback throughout the discussion! For those who couldn’t make it, the webinar is now available on-demand.
Below is a recap of the questions asked during the webinar.
[Q&A] An Introduction to real-time Linux
Q1) What is inside real-time Ubuntu 22.04 LTS Beta?
A1) Real-time Ubuntu is a Jammy Jellyfish kernel with the upstream real-time patches applied.
Q2) When do you expect to be out of Beta?
A2) We are targeting April 2023 for the GA of real-time Ubuntu 22.04 LTS. Extensive testing will help us bring the real-time kernel to production earlier. Please support the Ubuntu community by reporting any bugs you may encounter.
Q3) How will the Beta and the GA release differ?
A3) The GA release will run the latest stable kernel available, and it will include the upstream real-time patches matching up with the version. The real-time Linux Analysis (RTLA) tool, merged into upstream 5.17, will also be available with the production-ready real-time Ubuntu kernel, boosting its debugging capabilities.
Q4) What are the main advantages of using the Ubuntu real-time kernel rather than patching a standard kernel?
A4) The main advantage is the enterprise-grade support you will receive from Canonical.
Q5) Do you have a recommended hardware configuration for testing real-time Ubuntu?
A5) A feature of the real-time kernel in Linux is that it allows for freedom of hardware. We are testing the Beta release on ARM, AMD and Intel hardware and don’t recommend a particular configuration.
Q6) Does real-time Ubuntu work with a 32-bit architecture?
A6) No, we currently focus only on 64 bits.
Q7) Are NVIDIA drivers supported under the Ubuntu real-time kernel?
A7) The Beta release does not support NVIDIA drivers, but that may change in the future.
Q8) Do you plan on supporting this full task isolation patchset?
A8) We will consider including the patch once it lands in the mainline.
Q9.1) Do you plan on making the upcoming Ubuntu releases have a hybrid of real-time queues and standard Linux kernel queues? Q9.2) Will Ubuntu support a kernel with both FIPS 140-2 and real-time enabled? Q9.3) Is there a plan to move toward certification for safety-critical applications such as DO-178 for aviation?
A9) Those are not currently in the plans, but that could change in the future.
Q10) Why would someone pick PREEMPT_RT over a hard real-time solution like Xenomai?
A10) Hard-real-time solutions are expensive and require specific hardware.
Q11) When do you expect PREEMPT_RT to be fully upstreamed?
A11) This is not within Canonical’s control. PREEMPT_RT, the de-facto Linux real-time implementation, is hosted by the Linux Foundation and is slowly being mainlined. Whereas a relevant portion of the locking is in mainline, the upstream patch set still provides much code.
Q12) How does PREEMPT_RT reduce scheduling and interrupt latency?
A12) PREEMPT_RT uses different locking mechanisms (e.g. preemptable spin locks) and a scheduler other than CFS. When enabling PREEMPT_RT, the kernel uses the real-time scheduling class, which has a higher priority over the CFS scheduler and provides the first-in-first-out and round-robin scheduling policies.
Q13) What is the maximum latency guaranteed by PREEMPT_RT?
A13) PREEMPT_RT does not currently guarantee any maximum latency.
Q14) What is the CPUfreq governor used in PREEMPT_RT?
A14) The CPU governor is currently set to CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND. The cpufrequtils package enables switching to the performance governor with: cpufreq-set -g performance
Join the free real-time Linux beta programme
Join our free beta programme today. We will keep you up-to-date with the latest news and efforts towards GA, and we will notify you first once the kernel is production-ready. By signing up, you may have the opportunity to establish an open communication channel with our team to provide feedback and share suggestions.
Talk to us about real-time Ubuntu
Interested in running real-time Ubuntu in production? Tell us more about your needs