Ubuntu18.04安装Xenomai

Ubuntu18.04安装Xenomai

参考

linux系统乌班图18.04安装xenomai3.1,内核4.9.38

Ubuntu20.04linux内核(5.4.0版本)编译准备与实现过程-编译过程(2)

安装依赖

sudo apt update
sudo apt-get install gcc git make automake build-essential libncurses5-dev bison flex libssl-dev kernel-package git-core flex bison texinfo zip unzip zlib1g-dev gettext libfuse-dev fuse-emulator-gtk pkg-config findutils debhelper libtool libltdl-dev

安装会提示你内核的选择:选择第一个安装(install the package maintainer’s version)

下载源码

linux内核 :https://www.kernel.org/pub/linux/kernel/

xenomai:https://xenomai.org/downloads/xenomai/stable

补丁ipipe:https://xenomai.org/downloads/ipipe/v4.x/x86/

mkdir Xenomai
cd Xenomai

X86:

wget https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.9.38.tar.gz
wget https://xenomai.org/downloads/xenomai/stable/xenomai-3.1.tar.bz2
wget https://xenomai.org/downloads/ipipe/v4.x/x86/ipipe-core-4.9.38-x86-4.patch
tar xf linux-4.9.38.tar.gz
tar xf xenomai-3.1.tar.bz2
cd linux-4.9.38/
cp -r ../ipipe-core-4.9.38-x86-4.patch ./
../xenomai-3.1/scripts/prepare-kernel.sh --arch=x86_64 --ipipe=ipipe-core-4.9.38-x86-4.patch
sudo make menuconfig

arm64:

wget https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.9.51.tar.gz
wget https://xenomai.org/downloads/xenomai/stable/xenomai-3.1.tar.bz2
wget https://xenomai.org/downloads/ipipe/v4.x/arm64/ipipe-core-4.9.51-arm64-4.patch
tar xf linux-4.9.51.tar.gz
tar xf xenomai-3.1.tar.bz2
cd linux-4.9.51/
cp -r ../ipipe-core-4.9.51-arm64-4.patch ./
../xenomai-3.1/scripts/prepare-kernel.sh --arch=aarch64 --ipipe=ipipe-core-4.9.51-arm64-4.patch
sudo make menuconfig

内核配置推荐如下:

X86:

* General setup
​   --> Local version - append to kernel release: -xenomai-3.1
    --> Timers subsystem
​       --> High Resolution Timer Support (Enable)
 
​ * Xenomai/cobalt
    ​ --> Sizes and static limits
        ​ --> Number of registry slots (512 --> 4096)
        ​ --> Size of system heap (Kb) (4096 --> 4096)
        ​ --> Size of private heap (Kb) (256 --> 256)
        ​ --> Size of shared heap (Kb) (256 --> 256)
        ​ --> Maximum number of POSIX timers per process (256 --> 512)
    ​ --> Drivers
        ​ --> RTnet
            ​ --> RTnet, TCP/IP socket interface (Enable)
                ​ --> Drivers
                    ​ --> New intel® PRO/1000 PCIe (Enable)
                    ​ --> Realtek 8169 (Enable)
                    ​ --> Loopback (Enable) 
                ​ --> Add-Ons
                    ​ --> Real-Time Capturing Support (Enable)
         ---> Real-time IPC drivers(Enable)  //点击两下空格,要*,不要M
                ---> RTIPC protocol family(Enable) 
                    ---> XDDP cross-domain datagram protocol(Enable) 
                    ---> IDDP intra-domain datagram protocol(Enable) 
                    ---> Number of IDDP communication ports  (32)
                    ---> Buffer protocol(Enable) 
                    ---> Number of BUFP communication ports (32)
 
​ * Processor type and features
    ​ --> Enable Maximum number of SMP Processors and NUMA Nodes (Disable)
    ​ --> Processor family
        ​ --> Core 2/newer Xeon (if “cat /proc/cpuinfo | grep family” returns 6, set           as Generic otherwise)
    ​ --> Transparent Hugepage Support (Disable)
    ​ --> Allow for memory compaction (Disable)
    ​ --> Contiguous Memory Allocation (Disable)
     --> Page Migration (Disable)
 
​ * Device Drivers
​   --> Staging drivers
​    --> Unisys SPAR driver support
        ​ --> Unisys visorbus driver (Disable)

arm64:

* General setup
​   --> Local version - append to kernel release: -xenomai-3.1
    --> Timers subsystem
​       --> High Resolution Timer Support (Enable)
 
​ * Xenomai/cobalt
    ​ --> Sizes and static limits
        ​ --> Number of registry slots (512 --> 4096)
        ​ --> Size of system heap (Kb) (4096 --> 4096)
        ​ --> Size of private heap (Kb) (256 --> 256)
        ​ --> Size of shared heap (Kb) (256 --> 256)
        ​ --> Maximum number of POSIX timers per process (256 --> 512)
    ​ --> Drivers
        ​ --> RTnet
            ​ --> RTnet, TCP/IP socket interface (Enable)
                ​ --> Drivers
                    ​ --> New intel® PRO/1000 PCIe (Enable)
                    ​ --> Realtek 8169 (Enable)
                    ​ --> Loopback (Enable) 
                ​ --> Add-Ons
                    ​ --> Real-Time Capturing Support (Enable)
         ---> Real-time IPC drivers(Enable)  //点击两下空格,要*,不要M
                ---> RTIPC protocol family(Enable) 
                    ---> XDDP cross-domain datagram protocol(Enable) 
                    ---> IDDP intra-domain datagram protocol(Enable) 
                    ---> Number of IDDP communication ports  (32)
                    ---> Buffer protocol(Enable) 
                    ---> Number of BUFP communication ports (32)

arm64还需要修改linux-4.9.51/.config文件中的 # CONFIG_MODULES is not setCONFIG_MODULES=y

编译内核:

sudo CONCURRENCY_LEVEL=$(nproc) make-kpkg --initrd kernel_image kernel_headers

若出现以下错误:

debian/ruleset/targets/common.mk:295: recipe for target 'debian/stamp/build/kernel' failed

则修改.config文件如下:
CONFIG_MODULE_SIG_ALL
CONFIG_MODULE_SIG_KEY
CONFIG_SYSTEM_TRUSTED_KEYS
三项注释掉,编译时系统会自动生成一次性密钥来加密

编译完成后,安装编译好的内核:

x86:

cd ..
sudo dpkg -i linux-headers-4.9.38-xenomai-3.1_4.9.38-xenomai-3.1-10.00.Custom_amd64.deb
sudo dpkg -i linux-image-4.9.38-xenomai-3.1_4.9.38-xenomai-3.1-10.00.Custom_amd64.deb

arm64:

cd ..
sudo dpkg -i linux-headers-4.9.51-xenomai-3.1_4.9.51-xenomai-3.1-10.00.Custom_arm64.deb
sudo dpkg -i linux-image-4.9.51-xenomai-3.1_4.9.51-xenomai-3.1-10.00.Custom_arm64.deb

添加xenomai 组:

sudo addgroup xenomai --gid 1234
sudo addgroup root xenomai
sudo usermod -a -G xenomai $USER

配置开机启动内核:

sudo gedit /etc/default/grub
GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 4.9.38-xenomai-3.1"
GRUB_TIMEOUT=5
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash xenomai.allowed_group=1234"
GRUB_CMDLINE_LINUX=""
GRUB_GFXMODE=1920x1080

arm64可能没有grub,需要安装:

sudo apt-get install grub2-common
sudo update-grub
sudo reboot

询系统是否正确安装:

$ uname -a
Linux xxx 4.9.38-xenomai-3.1 #1 SMP Mon Oct 10 15:35:41 CST 2022 x86_64 x86_64 x86_64 GNU/Linux

$ dmesg | grep Xenomai
[    2.346551] [Xenomai] scheduling class idle registered.
[    2.346552] [Xenomai] scheduling class rt registered.
[    2.346570] [Xenomai] SMI-enabled chipset found, but SMI workaround disabled
[    2.346593] I-pipe: head domain Xenomai registered.
[    2.347804] [Xenomai] allowing access to group 1234
[    2.347840] [Xenomai] Cobalt v3.1

安装用户空间程序:

cd ~/xenomai/xenomai-3.1
./configure --with-pic --with-core=cobalt --enable-smp --disable-tls --enable-dlopen-libs --disable-clock-monotonic-raw
make -j`nproc`
sudo make install  //默认安装在/usr/xenomai

更新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
sudo gedit /etc/sudoers
找到Defaults env_reset, 将其改为Defaults !env_reset
gedit ~/.bashrc
最后一行加入:alias sudo='sudo env PATH=$PATH'

source ~/.bashrc

追加权限:

sudo chmod -R 777 /dev/rtdm/memdev-private
sudo chmod -R 777 /dev/rtdm/memdev-shared

测试:

$ sudo /usr/xenomai/bin/latency
== Sampling period: 100 us
== Test mode: periodic user-mode task
== All results in microseconds
warming up...
RTT|  00:00:01  (periodic user-mode task, 100 us period, priority 99)
RTH|----lat min|----lat avg|----lat max|-overrun|---msw|---lat best|--lat worst
RTD|     -0.453|     -0.422|      3.453|       0|     0|     -0.453|      3.453
RTD|     -0.453|     -0.423|      0.178|       0|     0|     -0.453|      3.453
RTD|     -0.454|     -0.423|      0.872|       0|     0|     -0.454|      3.453
RTD|     -0.453|     -0.422|     -0.059|       0|     0|     -0.454|      3.453
RTD|     -0.454|     -0.422|      0.290|       0|     0|     -0.454|      3.453
RTD|     -0.452|     -0.423|      3.422|       0|     0|     -0.454|      3.453
RTD|     -0.451|     -0.422|      3.444|       0|     0|     -0.454|      3.453
RTD|     -0.471|     -0.422|      3.454|       0|     0|     -0.471|      3.454
RTD|     -0.454|     -0.420|      3.449|       0|     0|     -0.471|      3.454
RTD|     -0.455|     -0.421|      3.460|       0|     0|     -0.471|      3.460
RTD|     -0.454|     -0.423|      3.424|       0|     0|     -0.471|      3.460
RTD|     -0.453|     -0.423|      0.955|       0|     0|     -0.471|      3.460
RTD|     -0.452|     -0.422|      0.465|       0|     0|     -0.471|      3.460
RTD|     -0.453|     -0.423|     -0.095|       0|     0|     -0.471|      3.460
RTD|     -0.455|     -0.423|      0.333|       0|     0|     -0.471|      3.460
RTD|     -0.452|     -0.422|      3.421|       0|     0|     -0.471|      3.460
RTD|     -0.455|     -0.422|      0.217|       0|     0|     -0.471|      3.460
RTD|     -0.453|     -0.423|      3.454|       0|     0|     -0.471|      3.460
RTD|     -0.454|     -0.423|      3.444|       0|     0|     -0.471|      3.460
RTD|     -0.453|     -0.423|      0.551|       0|     0|     -0.471|      3.460
RTD|     -0.453|     -0.421|      0.570|       0|     0|     -0.471|      3.460
RTT|  00:00:22  (periodic user-mode task, 100 us period, priority 99)
RTH|----lat min|----lat avg|----lat max|-overrun|---msw|---lat best|--lat worst
RTD|     -0.455|     -0.422|      0.349|       0|     0|     -0.471|      3.460
RTD|     -0.455|     -0.423|      0.006|       0|     0|     -0.471|      3.460
RTD|     -0.454|     -0.422|      3.438|       0|     0|     -0.471|      3.460
RTD|     -0.453|     -0.422|      3.416|       0|     0|     -0.471|      3.460
RTD|     -0.453|     -0.421|      0.423|       0|     0|     -0.471|      3.460
RTD|     -0.453|     -0.422|      3.439|       0|     0|     -0.471|      3.460
RTD|     -0.455|     -0.423|      0.018|       0|     0|     -0.471|      3.460

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值