基于Ubuntu18.04.5的xenomai3.x移植
最重要的事要最先讲在此特别感谢B站大佬的视频讲解
1.准备工作&压缩包与补丁:
注意补丁要与linux内核版本一致;
ipipe-core-4.19.66-x86-6.patch
我这里选择的是 https://xenomai.org/downloads/ipipe/v4.x/x86/
linux-4.19.66.tar.gz
xenomai-3.1.tar.bz2
&linux-source 就是linux内核的解压目录
&xenomai-source 就是xenomai内核的解压目录
查看核心数量
more /proc/cpuinfo |grep "physical id"|uniq|wc -l
设置root密码
sudo passwd root
开ftp
sudo apt-get install vsftpd
重启ftp
sudo /etc/init.d/vsftpd restart
安装ssh
sudo apt-get install openssh-server
2.安装两个工具
1.sudo apt-get install build-essential libncurses5-dev bison flex libssl-dev
2.sudo apt-get install kernel-package
3.解压两个压缩包
eg:tar -xzvf linux-4.19.66.tar.gz
操千曲而后晓声,观千剑而后识器
4.给Linux内核打补丁命令:
&linux-source
这儿注意你自己的目录层级
$./../xenomai-3.1/scripts/prepare-kernel.sh --ipipe=../ipipe-core-4.19.66-x86-6.patch --arch=x86_64
5.内核配置:
&linux-source
make menuconfig
6.编译内核命令:
说明:编译内核时我们采用单独编译,那也就是说编译的平台不一定运行,而是在高性能的平台
编译内核,将其打包;再拿到需要的低配置或专用平台安装运行。这样可按需配置你需要的配置项。
&linux-source
sudo make-kpkg --initrd --revision 02 --append-to-version -xeno20210311 kernel_image kernel_headers
"-xeno20210311 "为了更好的版本控制,可以自定义目前所编译的内核版本。
sudo dpkg -i
(安装包名)
查看是否安装好
dpkg -l |grep linux-image
dpkg -l |grep linux-headers
方便临时写程序调试
如果你装错要卸载重装,走以下套餐:
apt-get --purge remove linux-image
dpkg -l |grep linux-image
(安装head方法一样,换个包名而已)
7.编译和安装xenomai
&xenomai-source
./configure --with-core=cobalt --enable-smp --enable-pshared
make
sudo make install
查看安装
ls /usr/xenomai/
安装给cpu加负载的工具
注意当前内核通过uname -a 查看如果版本不是我们的xenomai版本(02)需要切换到我们的
内核配置
命令:
测试实时性命令:stress -v -c 8 -i 10 -d 8
创建8个任务开方,10个文件系统操作,
读写8个文件。
8.配置启动菜单
sudo vim /etc/default/grub
->
GRUB_DEFAULT=0
#GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=6
GRUB_DISTRIBUTOR=lsb_release -i -s 2> /dev/null || echo Debian
#“quiet splash”
GRUB_CMDLINE_LINUX_DEFAULT=“text”
修改以后执行命令
sudo update-grub2
(或者grub)
reboot
启动界面选择
Advanced options for Ubuntu->Ubuntu with -> Linux 4.19.66-xeno20210311
9.测试实时性,注意在虚拟机上面测试没有意义。
命令:
先切到目录cd /usr/xenomai/bin
执行里面的demo
eg:sudo ./latency
最后如果非常不幸的你也出现了这种错误哈!
莫得关系,硬刚不行就服软哈哈!!
老实回去修改Linux内核配置
Power management and ACPI options ----------------------->
ACPI (Advanced Configuration and Power Interface) Support --> on
Processor type and features ----------------------->
ACPI NUMA detection ->on
EFI runtime service support ->on
EFI stub support ->on
EFI mixed-mode support->on
结束时的挖坑惯例
我估计下一篇出个TI或者ST开发中遇到的奇葩问题,也可能是别的哈哈说不准!