Ubuntu实时内核安装&Igh主站安装配置

一、准备工作

系统:Ubuntu 20.04.2 LTS

内核版本:Linux 5.4.28

目标内核:linux-5.4.28-rt19

需要的Linux内核和补丁资源以及IGH主站都在以下链接中

链接:百度网盘 请输入提取码 提取码:5ciu

==注:以下资源最好都放在Download中

二、Ubuntu实时内核安装

1.安装依赖

sudo apt-get install -y build-essential kernel-package libncurses5-dev

Ubuntu实时内核安装&Igh主站安装配置_第1张图片

 依赖安装选择一定要选择图示那一项

2.打补丁

#创建rt_linux_build
mkdir rt_linux_build
#改变目录到rt_linux_build
cd ~/rt_linux_build
#复制linux-5.4.28.tar.gz到lrt_linux_build
cp ~/Downloads/linux-5.4.28.tar.gz ./
#复制patch-5.4.28-rt19.patch.gz到rt_linux_build
cp ~/Downloads/patch-5.4.28-rt19.patch.gz ./
#解压linux-5.4.28.tar.gz到rt_linux_build
tar zxvf linux-5.4.28.tar.gz 
#解压patch-5.4.28-rt19.patch.gz到rt_linux_build
gzip -d patch-5.4.28-rt19.patch.gz
#复制patch-5.4.28-rt19.patch到linux-5.4.28
cp patch-5.4.28-rt19.patch ./linux-5.4.28
#到linux-5.4.28目录
cd linux-5.4.28
#打补丁
patch -p1 < patch-5.4.28-rt19.patch

3.配置内核

sudo make menuconfig

配置内核的时候有可能报错,那是因为有些配置没有安装,执行下面指令之后,在执行配置内核指令就行了

sudo su
yum install bison
yum install flex

进入内核配置界面,配置如下

General setup —> Preemption Model —> Fully Preemptible Kernel(Real-Time)

Kernel hacking —> Memory Debugging —> Check for stack overflows not selected

第二步操作可能没有,如果没有第二步就不做配置

接下来就save 然后按ESC直到退出就行

4.编译内核

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

编译时间长短根据电脑性能而定。编译过程中容易遇到’debian/stamp/bulid/kernel' failed make:的问题,解决方法如下:

sudo gedit .config

找到下面内容修改为:

CONFIG_SYSTEM_TRUSTED_KEYS=""

然后安装OpenSSL开发包,运行下面指令

sudo apt-get install libssl-dev

接下来就静静等待编译通过就好

5.安装内核

cd ..
sudo dpkg -i linux-headers-5.4.28-rt19_5.4.28-rt19-10.00.Custom_amd64.deb linux-image-5.4.28-rt19_5.4.28-rt19-10.00.Custom_amd64.deb
sudo update-grub
sudo reboot

开机之后查看内核版本:

uname -a

我的版本为Linux fje-Inspiron-7560 5.4.28-rt19,只要出现了5.4.28-rt19就表示配置成功

6.实时性测试

安装cyclictest实时测试软件

sudo apt-get install rt-tests
#查看cyclictest版本
cyclictest -version

#输入测试指令:
sudo cyclictest -t 5 -p 80 -s

测试指令可能会报错:FATAL: invalid cpu passed to numa_node_of_cpu(4),这表示软件版本低了,去官网下载最新版本就行,要是不想下载也可以不测试实时性,反正肯定是实时内核编译通过了

三、安装Igh主站以及配置

首先可以在主目录中创建一个IGH文件夹,将etherlabmaster-code-334.zip放入其中,解压,然后进入文件夹打开终端进行安装编译

1.安装依赖

sudo apt-get install autoconf autogen libtool

2.安装igh EtherCAT Master

#生成configure脚本
./bootstrap
./configure --enable-cycles  --enable-8139too=no
#编译
make -j$(nproc) all modules
#安装
sudo su
make modules_install install
depmod
ln -s /usr/local/etc/init.d/ethercat /etc/init.d/ethercat
mkdir /etc/sysconfig
cp /usr/local/etc/sysconfig/ethercat /etc/sysconfig/ethercat

3.配置用户态库

修改ethercat设备权限

cd /etc/udev/rules.d
#新建一个ethercat的rule文件
sudo gedit 99-ethercat.rules
#向文件中添加下面内容
KERNEL=="EtherCAT[0-9]", MODE="0777"

配置实时权限

sudo gedit /etc/security/limits.conf
#在该文件的最下方按照格式添加
 hard rtprio 99

就像这样

Ubuntu实时内核安装&Igh主站安装配置_第2张图片

 4.配置EtherCAT

#查找MAC地址
ifconfig
eth0      Link encap:以太网  硬件地址 00:0c:29:33:48:56  
          inet 地址:192.168.244.129  广播:192.168.244.255  掩码:255.255.255.0
          inet6 地址: fe80::20c:29ff:fe33:4856/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  跃点数:1
          接收数据包:60 错误:0 丢弃:0 过载:0 帧数:0
          发送数据包:107 错误:0 丢弃:0 过载:0 载波:0
          碰撞:0 发送队列长度:1000 
          接收字节:13255 (13.2 KB)  发送字节:15164 (15.1 KB)

lo        Link encap:本地环回  
          inet 地址:127.0.0.1  掩码:255.0.0.0
          inet6 地址: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  跃点数:1
          接收数据包:130 错误:0 丢弃:0 过载:0 帧数:0
          发送数据包:130 错误:0 丢弃:0 过载:0 载波:0
          碰撞:0 发送队列长度:1 
          接收字节:8851 (8.8 KB)  发送字节:8851 (8.8 KB)

其中00:0c:29:33:48:56就是要查找的MAC地址

#修改/etc/sysconfig/ethercat的两处位置
MASTER0_DEVICE="00:0c:29:33:48:56"
DEVICE_MODULES="generic"

保存关闭

5.Igh EtherCAT Master测试

sudo depmod
#开启主站
sudo /etc/init.d/ethercat start
#显示主站状态
ethercat master
#显示从站设备
ethercat slaves
#关闭主站
sudo /etc/init.d/ethercat stop

具体测试结果如下,其中扫描到了4个从站

Ubuntu实时内核安装&Igh主站安装配置_第3张图片

 

你可能感兴趣的:(开发语言,linux)