1、安装必备工具包
1.1、安装gcc软件包
sudo apt install gcc
1.2、安装git软件包
sudo apt install git
1.3、安装界面编程库
sudo apt install libncurses5-dev
1.4、安装make工具包
sudo apt install make
1.5、安装词法语法分析包
sudo apt-get install flex bison
1.6、安装SSL工具包
sudo apt install libssl-dev
1.7、安装ELF工具包
sudo apt install libelf-dev
1.8、安装自动化config工具包
sudo apt install automake
2、下载相应的软件
2.1、系统内核下载
https://mirrors.tuna.tsinghua.edu.cn/kernel/v5.x/
linux-5.4.105.tar.gz
2.2、ipipe软件补丁
https://xenomai.org/downloads/ipipe/v5.x/x86/
ipipe-core-5.4.105-x86-4.patch
2.3、xenomai3.1.x版本拷贝
https://source.denx.de/Xenomai/xenomai/-/tree/stable/v3.1.x
xenomai-stable-v3.1.x
3、压缩包解压
sudo tar -zvxf linux-5.4.105.tar.gz
sudo tar -zvxf xenomai-stable-v3.1.x.tar.gz
4、Ubuntu内核打补丁
sudo su
cd linux-5.4.105/
sudo cp -r ../ipipe-core-5.4.105-x86-4.patch ./
../xenomai-stable-v3.1.x/scripts/prepare-kernel.sh --arch=x86_64 --ipipe=ipipe-core-5.4.105-x86-4.patch
5、启动配置内核
sudo make menuconfig
5.1进入Processor type and features
5.1.1 Linux guest support(switch off)[*] to [] 禁用关闭
5.1.2 Processor family 选择core2/new xeon
5.1.3Multi-core scheduler support多核策略支持(switch off)[*] to [] 禁用关闭
5.2进入Power management and ACPI options
5.2.1suspend to RAM and standby(switch off)[*] to [] 禁用关闭
5.2.2Hibernation(aka 'suspend to disk')(switch off)[*] to [] 禁用关闭
5.2.3CPU Frequency scaling--->CPU Frequency scaling(switch off)[*] to [] 禁用关闭
5.2.4ACPI(Advanced Configuration and Power Interface) Support(switch off)[*] to [] 禁用关闭
5.2.5CPU Idle--->CPU idle PM support(switch off)[*] to [] 禁用关闭
5.3进入Memory Mangement options
5.3.1Transparment Hugepage Support(switch off)[*] to [] 禁用关闭
5.3.2Contiguous Memory Allocator(switch off)[*] to [] 禁用关闭
5.3.3Allow for memory compaction(switch off)[*] to [] 禁用关闭
5.3.4 Page migration(switch off)[*] to [] 禁用关闭
5.4进入General setup
5.4.1Timers subsystem--->High Resolution Timer Support(switch on)[*]
5.5进入xenomai/cobalt
5.5.1进入Sizes and static limits --->
(4096)Number of registry slots
(4096)Size of system heap(kb)
(256)Size of private heap(kb)
(256)Size of shared heap(kb)
(512)Maxinum number of POSIX timers per process
5.5.2进入Drivers--->RTnet--->RTnet,TCP/IP socket interface(switch on)[] to [M] 启用驱动
5.5.2.1New Intel(R) PRO/1000(Gigabit)(new) (switch on)[] to [M] 启用驱动
5.5.2.2Realtek 8169(Gigabit)(new) (switch on)[] to [M] 启用驱动
5.5.2.2Loopback (switch on)[] to [M] 启用驱动
5.5.3进入Add-ons--->Real-Time Capturing Support(new)(switch on)[] to [M] 启用驱动
6、安装内核编译软件包
sudo apt install kernel-package
7、开始编译内核
7.1修改.config文件
CONFIG_SYSTEM_TRUSTED_KEYS=""
7.2开始编译
sudo CONCURRENCY_LEVEL=$(nproc) make-kpkg --rootcmd fakeroot --initrd kernel_image kernel_headers
8、安装编译后的内核
8.1更换名称
cp -r linux-headers-5.4.105_5.4.105-10.00.Custom_amd64.deb linux-headers-5.4.105_xenomai3.1.deb
cp linux-image-5.4.105_5.4.105-10.00.Custom_amd64.deb linux-image-5.4.105_xenomai3.1.deb
8.2修改权限
chmod 755 linux-image-5.4.105_xenomai3.1.deb
chmod 755 linux-headers-5.4.105_xenomai3.1.deb
8.3安装内核数据包
sudo dpkg -i linux-headers-5.4.105_xenomai3.1.deb linux-image-5.4.105_xenomai3.1.deb
9、追加xenomai root用户权限
sudo addgroup xenomai --gid 1234
sudo addgroup xenomai --gid 1234
sudo usermod -a -G xenomai $USER
10、配置开机启动内核
sudo gedit /etc/default/grub
10.1修改内容如下:
#GRUB_DEFAULT=0
GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 5.4.105-xenomai-3.1.x"
#GRUB_TIMEOUT_STYLE=hidden
#GRUB_TIMEOUT=0
GRUB_TIMEOUT=3
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
#GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash xenomai.allowed_group=1234"
GRUB_CMDLINE_LINUX=""
10.2更新内核并重启
sudo update-grub
sudo reboot
11、安装xenomai用户空间库程序
11.1、查询系统是否正确安装
uname -sr
Linux 5.4.105
dmesg | grep Xenomai
[ 0.820102] [Xenomai] scheduling class idle registered.
[ 0.820104] [Xenomai] scheduling class rt registered.
[ 0.820104] disabling automatic C1E state promotion on Intel processo
[ 0.820104] SMI-enabled chipset found, but SMI workaround disabled
[ 0.820188] I-pipe: head domain Xenomai registered.
[ 0.825381] [Xenomai] allowing access to group 1234
[ 0.825477] [Xenomai] Cobalt v3.1
*** RTnet for Xenomai v3.1 ***
11.2安装FUSE文件系统
sudo apt install libfuse-dev
sudo apt install fuse-emulator-gtk
sudo apt install pkg-config
sudo apt install findutils
sudo apt install debhelper
sudo apt install libtool
sudo apt install libltdl-dev
11.3安装用户空间程序
cd xenomai-stable-v3.1.x/
sudo ./scripts/bootstrap
sudo ./configure --with-pic --with-core=cobalt --enable-smp --disable-tls --enable-dlopen-libs --disable-clock-monotonic-raw
make -j4
sudo make install
11.4更新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
11.5追加权限
sudo chmod -R 777 /dev/rtdm/memdev-private
sudo chmod -R 777 /dev/rtdm/memdev-shared
11.6测试
sudo /usr/xenomai/bin/latency