苏州吴江做网站公司,银川网站建设一条龙服务,怎么做网站优化排名,0460网站之家Xenomai 4是一种双内核架构, 继承了Xenomai系列的特点#xff0c;通过在Linux内核中嵌入一个辅助核心#xff08;companion core#xff09;#xff0c;来提供实时能力。这个辅助核心专门处理那些需要极低且有界响应时间的任务。 本文将在官网教程(https://evlproject.org/…Xenomai 4是一种双内核架构, 继承了Xenomai系列的特点通过在Linux内核中嵌入一个辅助核心companion core来提供实时能力。这个辅助核心专门处理那些需要极低且有界响应时间的任务。 本文将在官网教程(https://evlproject.org/core/build-steps/)的基础上, 更详细地介绍如何编译和构建双内核 Xenomai 4.
概述
我是在vmware 的ubuntu 24.04的虚拟机上安装该内核的, 别的版本没测试过, 22.04 应该也行. 再之前的版本可能构建工具链太老, 会出现一些问题.
vmware workstation pro 17ubuntu 24.04 (8核, 8G内存, 80G硬盘) 这里需要注意的是需要保证硬盘空间大于50G, 之前设置为40G时,编译到一半空间不足.
安装该双内核架构, 大体上分为两个步骤, 一个是常规的编译内核的部分, 这个步骤和编译其他的linux内核差不多. 另一个是编译libevl这个库,用来测试双内核是否安装成功.
0. 前置依赖软件
大体上是这些, 如果哪里有报错缺什么包, 再补充.
sudo apt update
sudo apt install cmake make git flex bison libncurses5-dev gcc exuberant-ctags bc libssl-dev meson ninja-build libelf-dev libbpf-dev1. 编译内核
获取内核源码
git clone https://git.xenomai.org/xenomai4/linux-evl.git禁用两个config, 以防后面make 报错 (来源于:https://askubuntu.com/questions/1329538/compiling-kernel-5-11-11-and-later)
cd linux-evl
scripts/config --disable SYSTEM_TRUSTED_KEYS
scripts/config --disable SYSTEM_REVOCATION_KEYS然后设置开启evl-core,
make menuconfig选择Processor type and features 选中 EVL real-time core 然后选择save 后退出, 开始make, 需要注意的是make -j 会把所有核都拿去编译, 造成系统卡死, make一半就退出了, 建议留几个核, 比如:
make -j4 然后等待一段时间后, 安装内核
sudo make modules_install install更新grub, 这样可以在开机时按shifttab或者shift 进入boot, 选择新的双内核启动
sudo update-grub2至此, 带有evl功能的内核就安装好了.
2. 编译libevl
获取libevl
git clone https://git.xenomai.org/xenomai4/libevl.git使用meson一套来进行编译:
mkdir libevl_build
# meson setup -Duapi[刚刚安装的内核源码目录] $builddir $srcdir
meson setup -Duapi./linux-evl ./libevl_build ./libevl
cd libevl_build
meson compile
ninja install由于默认把libevl 动态库安装到了/usr/local/lib/x86_64-linux-gnu/ 目录下, 我们需要做些额外工作来让evl 能找到这个共享库 所以需要做如下操作:
sudo vim /etc/ld.so.conf.d/custom_libs.conf将下面这行添加到/etc/ld.so.conf.d/custom_libs.conf 里
/usr/local/lib/x86_64-linux-gnu/然后保存退出,再执行如下命令:
sudo ldconfig3. 验证evl core的安装
重启虚拟机, 在开启时进入boot (按shift),选择内核linux 6.11 进入 运行命令 sudo evl test ,如果出现如下结果说明安装成功了. 中间可能会出现这样的错误, 但是官网(https://evlproject.org/core/testing/)说是正常的,不用紧张.
../libevl/tests/sched-quota-accuracy.c:213: FAILED: evl_control_sched(44, p, q, test_cpu) (Operation not supported)
sched-quota-accuracy: no kernel support
../libevl/tests/sched-tp-accuracy.c:222: FAILED: evl_control_sched(45, p, ((void *)0), test_cpu) (Operation not supported)
sched-tp-accuracy: no kernel support
../libevl/tests/sched-tp-overrun.c:220: FAILED: evl_control_sched(45, p, ((void *)0), test_cpu) (Operation not supported)参考链接:
https://evlproject.org/core/