Ubuntu 18.04/16.04安装xenomai3.1实时内核过程详解

本文详细介绍了如何在Ubuntu 18.04和16.04上安装Xenomai 3.1实时内核,包括下载内核源码、配置、编译和测试等关键步骤,适合Linux实时性能优化开发者参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、相关简介

​ Xenomai 3是Xenomai实时框架的新架构,它可以作为一个联合内核系统无缝地并行运行Linux,也可以运行在本地的Linux内核之上。在后一种情况下,主线内核可以通过PREEMPT-RT补丁进行补充,以满足比标准内核抢占所带来的更严格的响应时间需求。

​ 在构建时选择两个可用的实时内核之一。双内核内核代号为Cobalt,本地Linux实现称为Mercury。

​ xenomai是Linux实时性能改造的重要方案之一,下面给出其具体的安装以及Ubuntu内核编译过程。

​ 具体原理图如下:
在这里插入图片描述

二、安装步骤

1、 下载ubuntu内核源码以及xenomai3.1软件包

wget https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.9.38.tar.gz 
wget https://xenomai.org/downloads/xenomai/stable/xenomai-3.1.tar.bz2

2、压缩包解压缩,并且复制到/usr/src

sudo tar xf linux-4.9.38.tar.gz
sudo tar xf xenomai-3.1.tar.bz2
 sudo cp -r linux-4.9.38  /usr/src
 sudo cp -r xf xenomai-3.1  /usr/src

3、给ubuntu内核打上xenomai补丁,建立一个x86_64位内核

 cd linux-4.9.38
 sudo wget https://xenomai.org/downloads/ipipe/v4.x/x86/older/ipipe-core-4.9.38-x86-3.patch 
../xenomai-3.1/scripts/prepare-kernel.sh --arch=x86_64 --ipipe=ipipe-core-4.9.38-x86-3.patch

4 、配置内核

sudo apt install libncurses5-dev
make menuconfig

具体配置如下所示:

* General setup

​ --> Local version - append to kernel release: -xenomai-3.1

​ --> Timers subsystem

​ --> High Resolution Timer Support (Enable)

​ * Xenomai/cobalt

​ --> Sizes and static limits

​ --> Number of registry slots (512 --> 4096)

​ --> Size of system heap (Kb) (512 --> 4096)

​ --> Size of private heap (Kb) (64 --> 256)

​ --> Size of shared heap (Kb) (64 --> 256)

​ --> Maximum number of POSIX timers per process (128 --> 512)

​ --> Drivers

​ --> RTnet

​ --> RTnet, TCP/IP socket interface (Enable)

​ --> Drivers

​ --> New intel® PRO/1000 PCIe (Enable)

​ --> Realtek 8169 (Enable)

​ --> Loopback (Enable)

​ --> Add-Ons

​ --> Real-Time Capturing Support (Enable)

​ * Power management and ACPI options

​ --> CPU Frequency scaling

​ --> CPU Frequency scaling (Disable)

​ --> ACPI (Advanced Configuration and Power Interface) Support

​ --> Processor (Disable)

​ --> CPU Idle

​ --> CPU idle PM support (Disable)

​ * Pocessor type and features

​ --> Enable maximum number of SMP processors and NUMA nodes (Disable)

​ // Ref : http://xenomai.org/pipermail/xenomai/2017-September/037718.html

​ --> Processor family

​ --> Core 2/newer Xeon (if “cat /proc/cpuinfo | grep family” returns 6, set as Generic otherwise)

​ // Xenomai will issue a warning about CONFIG_MIGRATION, disable those in this orde

​ --> Transparent Hugepage Support (Disable)

​ --> Allow for memory compaction (Disable)

​ --> Contiguous Memory Allocation (Disable)

​ --> Allow for memory compaction

​ --> Page Migration (Disable)

​ * Device Drivers

​ --> Staging drivers

​ --> Unisys SPAR driver support

​ --> Unisys visorbus driver (Disable)

5、进一步构建实时内核

sudo apt install kernel-package
sudo apt-get install libssl-dev

6、编译内核

CONCURRENCY_LEVEL=$(nproc) make-kpkg --rootcmd fakeroot --initrd kernel_image kernel_headers

7、安装生成的系统文件

cd ..
sudo dpkg -i linux-headers-4.9.38-xenomai-3.1_4.9.38-xenomai-3.1-10.00.Custom_amd64.deb linux-image-4.9.38-xenomai-3.1_4.9.38-xenomai-3.1-10.00.Custom_amd64.deb

8、允许非root用户

sudo addgroup xenomai --gid 1234
sudo addgroup root xenomai
sudo usermod -a -G xenomai $USER

9、配置GRUB

sudo gedit  /etc/default/grub

具体修改如下:

GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 4.9.38-xenomai-3.1"
#GRUB_DEFAULT=saved
#GRUB_SAVEDEFAULT=true
# Comment the following lines
#GRUB_HIDDEN_TIMEOUT=0
#GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=5
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash xenomai.allowed_group=1234"
GRUB_CMDLINE_LINUX=""

更新GRUB并重新启动:

sudo update-grub

重启电脑:

sudo reboot

重新开机后选择Ubuntu高级内核。

10、安装xenomai用户空间库

查看是否安装成功:输入下面命令,是否显示为:

uname -r

# 4.9.38-xenomai-3.1

dmesg | grep Xenomai

# [1.417024] [Xenomai] scheduling class idle registered.

# [1.417025] [Xenomai] scheduling class rt registered.

# [1.417045] [Xenomai] disabling automatic C1E state promotion on Intel processo

# [1.417055] [Xenomai] SMI-enabled chipset found, but SMI workaround disabled

# [1.417088] I-pipe: head domain Xenomai registered.

# [1.417704] [Xenomai] allowing access to group 1234

# [1.417726] [Xenomai] Cobalt v3.1 (Sisyphus’s Boulder) [DEBUG]

cd xenomai-3.1
./configure --with-pic --with-core=cobalt --enable-smp --disable-tls --enable-dlopen-libs --disable-clock-monotonic-raw
make -j`nproc`
sudo make install

11、Update bashrc

echo '
### Xenomai
export XENOMAI_ROOT_DIR=/usr/xenomai
export XENOMAI_PATH=/usr/xenomai
export PATH=$PATH:$XENOMAI_PATH/bin:$XENOMAI_PATH/sbin
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$XENOMAI_PATH/lib/pkgconfig
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$XENOMAI_PATH/lib
export OROCOS_TARGET=xenomai
' >> ~/.xenomai_rc
echo 'source ~/.xenomai_rc' >> ~/.bashrc
source ~/.bashrc

12、测试

增加权限:

sudo chmod -R 777 /dev/rtdm/memdev-private
sudo chmod -R 777 /dev/rtdm/memdev-shared

延迟测试应该每秒钟显示一条消息,其中包含最小、最大和平均延迟值。如果此测试显示错误消息、挂起或显示意外值,请参阅故障排除指南。

如果延迟测试成功,您应该尝试下一步运行xeno-test测试,以评估系统的最坏情况延迟。试一试:

/usr/xenomai/bin/latency

== Sampling period: 100 us

== Test mode: periodic user-mode task

== All results in microseconds

warming up…

RTT| 00:00:01 (periodic user-mode task, 100 us period, priority 99)

RTH|----lat min|----lat avg|----lat max|-overrun|—msw|—lat best|–lat worst

RTD| 0.174| 0.464| 1.780| 0| 0| 0.174| 1.780

RTD| 0.088| 0.464| 1.357| 0| 0| 0.088| 1.780

RTD| 0.336| 0.464| 1.822| 0| 0| 0.088| 1.822

RTD| 0.342| 0.464| 1.360| 0| 0| 0.088| 1.822

RTD| 0.327| 0.462| 2.297| 0| 0| 0.088| 2.297

RTD| 0.347| 0.463| 1.313| 0| 0| 0.088| 2.297

RTD| 0.314| 0.464| 1.465| 0| 0| 0.088| 2.297

RTD| 0.190| 0.464| 1.311| 0| 0| 0.088| 2.297

97| 0| 0| 0.088| 2.297

RTD| 0.347| 0.463| 1.313| 0| 0| 0.088| 2.297

RTD| 0.314| 0.464| 1.465| 0| 0| 0.088| 2.297

RTD| 0.190| 0.464| 1.311| 0| 0| 0.088| 2.297

三、参考链接

Ubuntu16.04 Xenomai3.x 系列移植笔记----安装指导
Ubuntu 14.04.05上安装xenomai 2.6.4实时核
Xenomai3.1+ubuntu 18.04/16.04
xenomai3.1+linux构建linux实时操作系统-基于X86_64和arm

如果安装中遇到问题欢迎留言交流。

评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值