当前位置:   article > 正文

Intel 赛扬J6412 + Ubuntu 18.04+ Xenomai-v3.2.1+IgH Ethercat_赛扬j6412 ubuntu xenomai

赛扬j6412 ubuntu xenomai

目录

BIOS 配置

下载源码

安装工具

解压压缩包

导入内核

配置内核

1、直接导入本人配置好的文件

      2、  内核逐项配置参考如下

编译内核及模组

安装内核

安装 xenomai 库

编译安装IgH Ethercat

附件


前言

        目前网上的博客很多关于xenomai实时操作系统的安装,但是很少对不同硬件平台的测试。本篇内容介绍下Intel 赛扬J6412安装xenomai实测效果。为什么要选取J6412呢,因为Intel 在低端边缘控制领域对Elkhart Lake做了一定的优化。既然是工业级的实时应用,本次专门选取了一台J6412 CPU的工业电脑作为测试主机,机器包含两个Intel I211 千兆网口,方便后续做Ethercat 的安装。

X86平台安装实时操作系统时,首先要对BIOS 配置进行修改,关闭可能影响实时性的配置。

依照Intel的介绍,x86 平台的一些BIOS 配置尽可能多的修改如下配置,不同硬件平台配置选项位置可能不太一样,根据CPU 功能不一样有些选项不一定会有。

本次选用的工控机修改了以下选项,部分选项在此平台中没有(仅供参考,不同厂家BIOS 开放程度不一样部分选项可能被隐藏)

  • 下载源码

  1. 安装ubuntu 18.04系统,本篇不对系统安装介绍

       2、Xenomai 官方Linux内核源码:linux-dovetail-v5.10.76-dovetail3.tar.gz

下载链接

3、Xenomai 内核源码:xenomai-v3.2.1.tar.gz

下载链接

4、IGH 源码:xenomai-v3.2.1.tar.gz

下载链接

以上所有源码也可在文章后面链接下载

  • 安装工具

1、开局先换源

sudo gedit /etc/apt/sources.list

    将http://cn.archive.ubuntu.com 全部替换成http://mirrors.aliyun.com

sudo apt update

2、安装以下工具

sudo apt-get install gcc git libncurses5-dev make flex bison libssl-dev libelf-dev automake libtool m4 autoconf  fuse debhelper findutils autotools-dev pkg-config libltdl-dev

  • 解压压缩包

1、 进入存放源码的路径下

sudo tar xf linux-dovetail-v5.10.76-dovetail3.tar.gz

sudo tar xf xenomai-v3.2.1.tar.gz

      2、将解压后的文件拷贝到制定文件夹中

sudo mkdir /usr/src/xenomai

sudo cp -r linux-dovetail-v5.10.76-dovetail3 /usr/src/xenomai

sudo cp -r xenomai-v3.2.1 /usr/src/xenomai

  • 导入内核

        将xenomai导入到待编译的内核中

cd /usr/src/xenomai/linux-dovetail-v5.10.76-dovetail3

sudo /usr/src/xenomai/xenomai-v3.2.1/scripts/prepare-kernel.sh --arch=x86_64

  • 配置内核

配置内核可以直接导入配置文件,或者逐项配置

cd /usr/src/xenomai/linux-dovetail-v5.10.76-dovetail3/

sudo make menuconfig

1、直接导入本人配置好的文件

文章后面网盘下载xenomai.config,将xenomai.config拷贝到/usr/src/xenomai/linux-dovetail-v5.10.76-dovetail3/

选择Load输入 xenomai.config点OK ,跳到“编译内核及模组”步骤继续往下进行 

      

      2、  内核逐项配置参考如下

* General setup

​      --> Local version - append to kernel release: -xenomai(后面所有配置用此名字)

    --> Timers subsystem

​             ---> High Resolution Timer Support [*](默认无需修改)

​* Pocessor type and features

       ​ --> Processor family

              ​ ---> Core 2/newer Xeon (if “cat /proc/cpuinfo | grep family”

                                returns 6, otherwise set as Generic otherwise)

             

     --> Multi-core scheduler support [](关闭)

            

* 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(R) PRO/1000 PCIe(Gigabit) [M](模块)

                                   ​ -----> Realtek 8169(Gigabit) [M](模块)

                                   ​ -----> Loopback [M](默认)

                                  

                            ​ ----> Add-Ons

                                   ​ -----> Real-Time Capturing Support [M](模块)

                                         

* Power management and ACPI options

       ​ --> CPU Frequency scaling

       ​      ---> CPU Frequency scaling [](关闭)

                    

       ​ --> ACPI (Advanced Configuration and Power Interface) Support

       ​      ---> Processor [](关闭)

                    

       ​ --> CPU Idle

              ​ ---> CPU idle PM support [](关闭)

                   

* Memory Management Options

       ​ ---> Transparent Hugepage Support [](关闭)

       ​ ---> Allow for memory compaction [](关闭)

       ​ ---> Contiguous Memory Allocator [](关闭)

        ---> Page Migration [](关闭)

            

​* Device Drivers

      --> Unisys visorbus driver [](关闭)

              ​

 * Pocessor type and features

                --> Enable Maximum number of SMP Processors and NUMA Nodes [](可选)

​ * Xenomai/cobalt

    ​ --> Drivers

         ---> Real-time IPC drivers [*] (双击空格选定为*)(可选)

                ---> RTIPC protocol family <M>(默认)

                    ---> XDDP cross-domain datagram protocol [*](默认)

                    ---> IDDP intra-domain datagram protocol [*](默认)

                    ---> Number of IDDP communication ports  (32) (默认)

                    ---> Buffer protocol [*](默认)

                    ---> Number of BUFP communication ports (32) (默认)

                    

  • 编译内核及模组

J6412配置较低编译过程需要3个多小时

sudo make -j4 bzImage

sudo make  -j4 modules

sudo make INSTALL_MOD_STRIP=1 modules_install

  • 安装内核

1、将内核编译源码路径下的.config文件拷贝到/boot路径下并重命名:

sudo cp /usr/src/xenomai/linux-dovetail-v5.10.76-dovetail3/.config /boot

sudo mv /boot/.config /boot/config-5.10.76-xenomai

2、将内核编译源码中的bzImage拷贝被到/boot下并重命名:

Sudo cp /usr/src/xenomai/linux-dovetail-v5.10.76-dovetail3/arch/x86_64/boot/bzImage  /boot

sudo mv /boot/bzImage   /boot/vmlinuz-5.10.76-xenomai

3、将内核编译源码中的System.map拷贝被到/boot下并重命名:

sudo cp  /usr/src/xenomai/linux-dovetail-v5.10.76-dovetail3/System.map /boot

sudo mv /boot/System.map /boot/System.map-5.10.76-xenomai

4、将make modules_install生成的模组(/lib/modules/5.10.76-xenomai)拷贝到要替换内核系统的/lib/modules下。生成/boot/initrd.img-5.10.76-xenomai文件:

cd /lib/modules/5.10.76-xenomai

sudo update-initramfs -c -k 5.10.76-xenomai

文件结尾有编译好的内核安装文件下载链接,可下载后拷贝到/boot目录

  • 允许非root用户

sudo addgroup xenomai --gid 1234

sudo addgroup root xenomai

sudo usermod -a -G xenomai $USER

  • 配置GRUB

sudo gedit  /etc/default/grub

        具体配置如下

GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 5.10.76-xenomai"

GRUB_TIMEOUT=10

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash xenomai.allowed_group=1234"

      

        更新grub

sudo update-grub

sudo update-grub2

  • 重启电脑,看下版本号,确定xenomai内核

uname -a

dmesg | grep -i xenomai

      

  • 安装 xenomai 库

    1. 编译命令如下

cd  /usr/src/xenomai/xenomai-v3.2.1

sudo ./scripts/bootstrap

sudo ./configure --with-pic --with-core=cobalt --enable-smp --disable-tls --enable-dlopen-libs --disable-clock-monotonic-raw

sudo make -j4

sudo make  -j4 install

                2.更新环境变量

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

                3.修改权限:

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

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

                4.测试实时效果

sudo /usr/xenomai/bin/latency

        6小时测试结果如下图所示:

      

        5.修复xenomai负延迟

sudo -s

echo 0 >/proc/xenomai/latency

sudo /usr/xenomai/bin/latency

        运行一段时间后记录下“last_best”的值,令YOUR_VALUE=这个值x1000

echo YOUR_VALUE >/proc/xenomai/latency

  • 编译安装IgH Ethercat

1、解压ethercat-e1000e-5.10.tar.gz,复制到xenomai/目录

sudo tar xf ethercat-e1000e-5.10.tar.gz

sudo cp -r ethercat-e1000e-5.10 /usr/src/xenomai/

cd /usr/src/xenomai/ethercat-e1000e-5.10

2、编译源码

                 sudo ./bootstrap

sudo ./configure --with-module-dir=/lib/modules/5.10.76-xenomai --enable-generic --enable-8139too=no --enable-e1000e --enable-cycles --enable-hrtimer --with-xenomai-dir=/usr/xenomai --prefix=/opt/etherlab

sudo make  -j4 #编译

sudo make -j4 modules  #编译模块

sudo make  -j4  install  #安装

sudo make -j4 modules_install  #安装模块

3、 配置

sudo mkdir /etc/sysconfig  #创建文件夹

sudo cp /opt/etherlab/etc/sysconfig/ethercat /etc/sysconfig/  #复制配置文件

sudo cp /opt/etherlab/etc/init.d/ethercat /etc/init.d/  #复制启动脚本

sudo chmod a+x /etc/init.d/ethercat

sudo update-rc.d ethercat defaults

               4、使能ethercat工具

sudo ln -s /opt/etherlab/bin/ethercat /usr/local/bin/ethercat

                 5、  配置用户权限

      sudo gedit /etc/udev/rules.d/99-EtherCAT.rules

输入下列内容  KERNEL=="EtherCAT[0-9]*", MODE="0664", GROUP="users"

               6、把相关模块放进系统目录,如果使用通用网卡是这样的

sudo cp devices/ec_generic.ko /lib/modules/$(uname -r)

sudo cp master/ec_master.ko /lib/modules/$(uname -r)

                 如果使用专用网卡需要多进一个目录,是这样的

sudo cp devices/e1000e/ec_e1000e.ko /lib/modules/$(uname -r)

sudo cp master/ec_master.ko /lib/modules/$(uname -r)

               7、执行命令查看网卡MAC地址和类型

                        sudo depmod

                      ifconfig

             

               8、配置网卡

sudo gedit /etc/sysconfig/ethercat

修改如下两处:

MASTER0_DEVICE=" 00:30:64:52:24:db"    #主机配置Ethercat MAC address

DEVICE_MODULES="igb"        #Intel i211 配置IGB

      

9、 启动Ethercat主站

sudo /etc/init.d/ethercat start

                      如果主站启动则表示安装成功。

                        ethercat tool命令查看

sudo ethercat --h

10、配置系统ethercat库

                       sudo gedit /etc/ld.so.conf

 添加  /opt/etherlab/lib

                    

                        sudo ldconfig

                      通过下面指令测试是否安装

                        sudo ldconfig -v | grep libether*

                        成功安装会显示  libethercat.so.1 -> libethercat.so.1.1.0

至此所有安装及配置步骤完成。

附件

编译及配置文件下载:

链接:https://pan.baidu.com/s/1YeeymnTWnX8NjXIuQfiD3A

提取码:wmmn       

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/694521
推荐阅读
相关标签
  

闽ICP备14008679号