1. Ubuntu14.04搭建xenomai (linux内核:4.9.38 xenomai:3.1)

乌班图版本太高了,不一定行,反正我就是试了3天各种各样的都试过了,心态炸了,我就直接从乌班图18.04换14.04,成功安装。
linux系统:乌班图14.04
linux内核:4.9.38
xenomai:3.1
ipipe:跟linux内核版本要一样(4.9.38)

1,下载包

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
mkdir XenomaiIgh
sudo su
cd XenomaiIgh

2,下载linux内核及xenomai

2.1,下载linux内核

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

wget https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.9.38.tar.gz

2.2,下载xenomai

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

wget https://xenomai.org/downloads/xenomai/stable/xenomai-3.1.tar.bz2

2.3,下载补丁ipipe

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

sudo wget https://xenomai.org/downloads/ipipe/v4.x/x86/ipipe-core-4.9.38-x86-4.patch

2.4,解压缩包

sudo tar xf linux-4.9.38.tar.gz 
sudo tar xf xenomai-3.1.tar.bz2 

3,打补丁

cd linux-4.9.38/
sudo 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 

4,配置内核

sudo make menuconfig

推荐选择:

* General setup
  --> Local version - append to kernel release: -xenomai-3.0.5
  --> Timers subsystem
      --> High Resolution Timer Support (Enable)
* Xenomai/cobalt
  --> Sizes and static limits
    --> Number of registry slots (512 --> 4096)
    --> Size of system heap (Kb) (512 --> 4096)
    --> Size of private heap (Kb) (64 --> 256)
    --> Size of shared heap (Kb) (64 --> 256)
    --> Maximum number of POSIX timers per process (128 --> 512)
  --> Drivers
    --> RTnet
        --> RTnet, TCP/IP socket interface (Enable)
            --> Drivers
                --> New intel(R) PRO/1000 PCIe (Enable)
                --> Realtek 8169 (Enable)
                --> Loopback (Enable)
        --> Add-Ons
            --> Real-Time Capturing Support (Enable)
* Power management and ACPI options
  --> CPU Frequency scaling
      --> CPU Frequency scaling (Disable)
  --> ACPI (Advanced Configuration and Power Interface) Support
      --> Processor (Disable)
  --> CPU Idle
      --> CPU idle PM support (Disable)
* Pocessor type and features
  --> Enable maximum number of SMP processors and NUMA nodes (Disable)
  // Ref : http://xenomai.org/pipermail/xenomai/2017-September/037718.html
  --> Processor family
      --> Core 2/newer Xeon (if "cat /proc/cpuinfo | grep family" returns 6, set as Generic otherwise)
  // Xenomai will issue a warning about CONFIG_MIGRATION, disable those in this order
  --> Transparent Hugepage Support (Disable)
  --> Allow for memory compaction (Disable)
  --> Contiguous Memory Allocation (Disable)
  --> Allow for memory compaction
    --> Page Migration (Disable)
* Device Drivers
  --> Staging drivers
      --> Unisys SPAR driver support
         --> Unisys visorbus driver (Disable)

5,编译内核

这里编译大概要两个小时左右,根据自己电脑性能有所差异。

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

6,安装编译好的内核

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

7,添加xenomai 组

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

8,配置开机启动内核

sudo gedit /etc/default/grub

8.1,修改内容:

GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 4.9.38-xenomai-3.0.5"
#GRUB_DEFAULT=saved
#GRUB_SAVEDEFAULT=true
# Comment the following lines
#GRUB_HIDDEN_TIMEOUT=0
#GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=5
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash xenomai.allowed_group=1234"
GRUB_CMDLINE_LINUX=""

8.2,更新内核并重启

sudo update-grub
sudo reboot

9,安装xenomai用户空间库程序

9.1,查询系统是否正确安装

uname -a

Linux hh 4.9.38-xenomai-3.0.5 #1 SMP Thu Nov 11 16:41:44 CST 2021
x86_64 x86_64 x86_64 GNU/Linux

dmesg | grep Xenomai

[ 0.753757] [Xenomai] scheduling class idle registered. [
0.753758] [Xenomai] scheduling class rt registered. [ 0.753779] [Xenomai] SMI-enabled chipset found, but SMI workaround disabled [
0.754039] I-pipe: head domain Xenomai registered. [ 0.754935] [Xenomai] allowing access to group 1234 [ 0.754965] [Xenomai]
Cobalt v3.1

9.2,安装用户空间程序

cd xenomai-3.1
./script/bootstrap  //如果没有configure文件则执行此语句
./configure --with-pic --with-core=cobalt --enable-smp --disable-tls --enable-dlopen-libs
./configure --with-pic --with-core=cobalt --enable-smp --disable-tls --enable-dlopen-libs
./configure --with-pic --with-core=cobalt --enable-smp --disable-tls --enable-dlopen-libs --disable-clock-monotonic-raw
make
sudo make install  //默认安装在/usr/xenomai

9.3,更新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

9.4,追加权限

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

9.5,测试

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.359| 0.227| 9.093| 0| 0| -0.359| 9.093 RTD| -0.209| 0.127| 8.616| 0| 0| -0.359|
9.093 RTD| -0.328| 0.178| 11.469| 0| 0| -0.359| 11.469

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

常驻客栈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值