在网上找了很多xenomai的教程但是实践后都或多或少有点问题,经过一个星期终于搞完了,记录一下。
环境准备:
编译内核所需的工具包(也可根据步骤中的报错进行安装)
sudo apt-get install gcc libncurses-dev flex bison libssl-dev dkms libelf-dev libudev-dev libpci-dev libiberty-dev
Linux源码,ipipe补丁/devotail补丁,xenomai源码
linux和补丁的版本需要匹配,且根据Linux版本选择的补丁源码
在此直接使用打上了ipipe补丁/devotail补丁的linux5.15.59源码
https://source.denx.de/Xenomai/xenomai4/linux-evl/-/tree/v5.15.59-evl1-rebase
xenomai3源码使用3.2.1版本
https://source.denx.de/Xenomai/xenomai/-/archive/v3.2.1/xenomai-v3.2.1.tar.bz2
步骤:
1.将xenomai3源码与linux源码解压后放在文件夹home/pi/xenomai下
tar xf xenomai-v3.2.1.tar.bz2
tar xf linux-evl-v5.15.59-evl1-rebase.tar.gz
2.对Linux打cobalt内核补丁
进入xenomai-v3.2.1下的scripts
cd xenomai/xenomai-v3.2.1/scripts
执行(linux后的路径根据自己的来)
sudo ./prepare-kernel.sh --arch=arm64 --linux=/home/pi/xenomai/linux-evl-v5.15.59-evl1-rebase
3.对linux进行编译
进入linux-evl-v5.15.59-evl1-rebase
cd /home/pi/xenomai/linux-evl-v5.15.59-evl1-rebase
执行命令,进行内核配置(menuconfig时提示缺什么就安装什么)
export KERNEL=kernel8
export ARCH=arm64
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j4 defconfig
make menuconfig
进行内核配置
1.cpu Power Management:
关闭cpu Frequency scaling
2.ACPI (Advanced Configuration and Power Interface) Support:
关闭Processor
3.cpu Power Management:
关闭cpu Idle下的cpu idle PM support
4.Xenomai/cobalt:
启用Drivers下的RTnet和Real-time IPC drivers
4.构建deb包
make ARCH=arm64 KBUILD_DEBARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- CXXFLAGS="-march=armv8-a+crc -mtune=cortex-a72" CFLAGS="-march=armv8-a+crc -mtune=cortex-a72" -j4 bindeb-pkg
构建完成后会在xenomai目录下得到四个deb包和一些相关文件
5.在树莓派安装deb包
将四个deb包通过cp语句copy到树莓派本地目录
cp linux-headers-5.15.59_5.15.59-1_arm64.deb /home/pi
cp linux-image-5.15.59_5.15.59-1_arm64.deb /home/pi
cp linux-image-5.15.59-dbg_5.15.59-1_arm64.deb /home/pi
cp linux-libc-dev_5.15.59-1_arm64.deb /home/pi
树莓派安装deb包
sudo dppkg -i linux-headers-5.15.59_5.15.59-1_arm64.deb
sudo dppkg -i linux-image-5.15.59_5.15.59-1_arm64.deb
sudo dppkg -i linux-image-5.15.59-dbg_5.15.59-1_arm64.deb
sudo dppkg -i linux-libc-dev_5.15.59-1_arm64.deb
6.将生成的vmlinuz-5.15.59文件复制到/boot替代kernel8.img
vmlinuz-5.15.59所在目录
cd /home/pi/xenomai/linux-evl-v5.15.59-evl1-rebase/debian/linux-image/boot
cp vmlinuz-5.15.59 /boot
进入/boot替代kernel8.img
cd /boot
sudo rm kernel8.img
sudo mv vmlinuz-5.15.59 kernel8.img
重启,需要断电
7.安装xenomai
sudo ./scripts/bootstrap
sudo ./configure --with-core=cobalt --enable-pshared --enable-smp
make
sudo make install
8.设置环境变量,并进行latency测试
sudo su
export PATH=$PATH:/usr/xenomai/bin/
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/xenomai/lib/
latency
进行cyclictest测试
原文地址:https://www.jb51.cc/wenti/3287402.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。