Xenomai是一套為嵌入式系統設計的實時開發框架,通過 “雙內核” 架構,讓Linux既能處理復雜的通用任務,又能可靠地完成那些對響應時間有極端要求的任務,廣泛用于工業自動化、機器人、航空航天等對實時性要求極高的場景。本篇文章以啟揚RK3588開發板為例,分享如何增加Xenomai3實時補丁。

步驟:
只需要打兩個補丁,Dovetail或者I-pipe補丁,以及xenomai3的內核補丁。
Dovetail 是 I-pipe 的后繼產品,二選一,Dovetail支持5.10之后的內核, I-pipe反之。
01
打Dovetail補丁
我現在內核是6.1.99,主要Dovetail的補丁是RK發放的,RK修改過的,要用有這個補丁的內核版本,沒有對應內核的Dovetail補丁問FAE也沒用。
在sdk里面位置:docs/Patches/Real-Time-Performance/XENOMAI/kernel-6.1/6.1.99/
cdkernel
git apply docs/Patches/Real-Time-Performance/XENOMAI/kernel-6.1/6.1.99/*
PS:https://source.denx.de/Xenomai/linux-dovetail.git
有跟隨內核主線維護的Dovetail的內核倉庫,這個倉庫就是加了Dovetail的內核,也有對應的patch但是我沒有找到。
這個補丁的作用是把硬件資源抽象化ADEOS,并且劃分作用域。
作用是圖中的域2。
02
打xenomai3的內核補丁
需要下載xenomai3的源碼
# 在sdk的根目錄下 需要翻墻
gitclone https://source.denx.de/Xenomai/xenomai.git
cdxenomai
# 選擇版本
git checkout stable/v3.3.x
# 生成patch
scripts/prepare-kernel.sh --linux=/home/yangx/linux2/yangx/RK3588/IAC-RK3588-MB-kernel-6.1/kernel/ --arch=aarch64 --outpatch=/home/yangx/linux2/yangx/RK3588/IAC-RK3588-MB-kernel-6.1/cobalt.patch
# 進入kernel 打patch即可
git apply ../cobalt.patch
03
配置內核選項
查看鏈接:Wiki · xenomai / xenomai · GitLab

以及這些選項配置:有的沒有,盡量一致

make menuconfig ARCH=arm64
進入menuconfig的界面,打入的補丁正常的話會顯示:

內核的相關配置就結束了。
我的內核配置patch
rockchip_linux_defconfig.xlsx
04
編譯xenoma3庫
# 在sdk的根目錄下
cdxenomai
source一下NXP的編譯器 或者 配置一下編譯器的環境變量
source/opt/fsl-imx-wayland/6.1-mickledore/environment-setup-armv8a-poky-linux
# 生成Makefile
./scripts/bootstrap
./configure CFLAGS="-mtune=cortex-a76"LDFLAGS="-mtune=cortex-a76"--build=i686-pc-linux-gnu --host=aarch64-linux-gnu --with-core=cobalt --enable-smp CC=aarch64-linux-gnu-gcc LD=aarch64-linux-gnu-ld
# 編譯 安裝
make -j128
mkdir -p build && make install DESTDIR=./build/
# 之后把build下生成的文件全部復制到板子的文件系統里面即可。
測試:
加壓力測試以測試實時性和空閑狀態下比較。
-
嵌入式系統
+關注
關注
41文章
3719瀏覽量
133226 -
工業自動化
+關注
關注
17文章
3036瀏覽量
69434 -
RK3588
+關注
關注
8文章
503瀏覽量
7101
發布評論請先 登錄
瑞芯微RK3588開發板RK3588 EVB和RK3588S EVB解讀
RK3588 PCB推薦疊層及阻抗設計
迅為RK3588開發板實時系統編譯-Preemption系統/ Xenomai系統編譯-獲取Linux源碼包
迅為RK3588開發板實時系統編譯-Preemption系統/ Xenomai系統編譯-實時系統燒寫-固件獲取方式
【LGA封裝RK3588核心板】基于RK3588,小而強大的ArmSom-W3 CORE BOARD
rk3588和rk3588s的區別
RK3588與3588s的區別
RK3588系列有多少型號?
【技術分享】RK3588如何搭建xenomai3+ethercat

技術分享 | RK3588增加Xenomai3實時補丁
評論