当前位置:   article > 正文

ubuntu14.04、xenomai3.1、ethercat igh构建主站(1)_ubuntu14.04、xenomai3.1、ethercat igh构建主站(1)

ubuntu14.04、xenomai3.1、ethercat igh构建主站(1)

我是在i9 9900k的主机上编译的linux内核、xenomai以及ethercat igh。生成的文件如下:
在这里插入图片描述
接着我是在i5 6600主机上安装编译后的内核,搭建ethercat主站进行测试。
这是我编译好的上述4个文件。

参考文章

https://rtt-lwr.readthedocs.io/en/latest/rtpc/xenomai3.html
https://rtt-lwr.readthedocs.io/en/latest/rtpc/xenomai.html
https://www.bilibili.com/video/BV1wg4y1z7C2?t=1399

材料

linux内核: 4.9.38 https://mirrors.edge.kernel.org/pub/linux/kernel/
xenomai3.1 https://xenomai.org/downloads/xenomai/stable/
ipipe-core-4.9.38-x86-4.patch https://xenomai.org/downloads/ipipe/v3.x/x86/
ubuntu http://old-releases.ubuntu.com/releases/
ethercat igh https://github.com/ribalda/ethercat

一些安装包
sudo apt-get install build-essential libncurses5-dev bison flex libssl-dev
sudo apt-get install kernel-package
//下面的可以不用安装
$ sudo apt-get install build-essential git-core libncurses5-dev libssl-dev
$ sudo apt-get install flex bison texinfo zip unzip zlib1g-dev gettext 
$ sudo apt-get install gperf libsdl-dev libesd0-dev libwxgtk2.6-dev 
$ sudo apt-get install uboot-mkimage 
$ sudo apt-get install g++ xz-utils
//ubuntu右键打开终端
sudo apt-get install  nautilus-open-terminal
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
更换源
sudo gedit /etc/apt/sources.list

//删除原有内容替换为
deb http://mirrors.aliyun.com/ubuntu/ precise main restricted universe multiverse 
deb http://mirrors.aliyun.com/ubuntu/ precise-security main restricted universe multiverse 
deb http://mirrors.aliyun.com/ubuntu/ precise-updates main restricted universe multiverse 
deb http://mirrors.aliyun.com/ubuntu/ precise-proposed main restricted universe multiverse 
deb http://mirrors.aliyun.com/ubuntu/ precise-backports main restricted universe multiverse 
deb-src http://mirrors.aliyun.com/ubuntu/ precise main restricted universe multiverse 
deb-src http://mirrors.aliyun.com/ubuntu/ precise-security main restricted universe multiverse 
deb-src http://mirrors.aliyun.com/ubuntu/ precise-updates main restricted universe multiverse 
deb-src http://mirrors.aliyun.com/ubuntu/ precise-proposed main restricted universe multiverse 
deb-src http://mirrors.aliyun.com/ubuntu/ precise-backports main restricted universe multiverse

sudo apt-get update
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

第一步 打补丁

./scripts/prepare-kernel.sh --linux=/home/vmuser/workspace/linux-4.9.38 \
--ipipe=/home/vmuser/workspace/xenomai-v3.1/ipipe-core-4.9.38-x86-4.patch --arch=x86_64
  • 1
  • 2

第二步 配置menuconfig

make menuconfig
在这里插入图片描述

> Processor type and features
[ ] Linux guest support  ---- 
[ ] Multi-core scheduler support
> Power management and ACPI options
[ ] Suspend to RAM and standby 
[ ] Hibernation (aka 'suspend to disk') 
> Power management and ACPI options > CPU Frequency scaling
[ ] CPU Frequency scaling
> Power management and ACPI options > ACPI (Advanced Configuration and Power Interface) Support
< >   Processor 
> Power management and ACPI options > CPU Idle  
[ ] CPU idle PM support   
> Processor type and features
[ ] Transparent Hugepage Support
[ ] Contiguous Memory Allocator
[ ] Allow for memory compaction
[ ]   Page migration
> Xenomai/cobalt > 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) Maximum number of POSIX timers per process  
> General setup 
(-xenomai-3.0.5) Local version - append to kernel release
> General setup > Timers subsystem
[*] High Resolution Timer Support
> Xenomai/cobalt > Drivers > RTnet
<M> RTnet, TCP/IP socket interface
> Xenomai/cobalt > Drivers > RTnet > Drivers
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

第三步 编译、安装内核

在i9 9900k上编译内核,生成linux-headers-xxx.deb和linux-image-xxx.deb安装包。

sudo apt install kernel-package
//CONCURRENCY_LEVEL=$(nproc) make-kpkg --rootcmd fakeroot --initrd kernel_image kernel_headers
sudo CONCURRENCY_LEVEL=$(nproc) make-kpkg --initrd kernel_image kernel_headers
  • 1
  • 2
  • 3

在i5 6600上安装内核、并进行测试。

//安装内核
sudo dpkg -i linux-headers-4.1.18-xenomai-3.0.5_4.1.18-xenomai-3.0.5-10.00.Custom_amd64.deb 
sudo dpkg -i linux-image-4.1.18-xenomai-3.0.5_4.1.18-xenomai-3.0.5-10.00.Custom_amd64.deb

sudo gedit /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="text"
#GRUB_HIDDEN_TIMEOUT=0
#GRUB_HIDDEN_TIMEOUT_QUIET=true
sudo update-grub
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
卸载安装好的内核
dpkg --get-selections|grep linux 
apt-get remove linux-image-xxx
apt-get remove linux-headers-xxx
  • 1
  • 2
  • 3
  • 4

第四步 编译xenomai

可以在ubuntu系统查看xenomai信息
uname -a
# Should return Linux waro-rt 4.9.38-xenomai-3.0.5 #2 SMP Wed Sep 20 16:00:12 CEST 2017 x86_64 x86_64 x86_64 GNU/Linux
dmesg | grep Xenomai
# [    1.417024] [Xenomai] scheduling class idle registered.
# [    1.417025] [Xenomai] scheduling class rt registered.
# [    1.417045] [Xenomai] disabling automatic C1E state promotion on Intel processor
# [    1.417055] [Xenomai] SMI-enabled chipset found, but SMI workaround disabled
# [    1.417088] I-pipe: head domain Xenomai registered.
# [    1.417704] [Xenomai] allowing access to group 1234
# [    1.417726] [Xenomai] Cobalt v3.0.5 (Sisyphus's Boulder) [DEBUG]
**********************************************
cd xenomai-3.1
./script/bootstrap //如果没有configure文件则执行此语句
./configure --with-core=cobalt --enable-smp --enable-pshared    我执行了这一条
./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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

xenomai目录包含如下文件
在这里插入图片描述

第五步 编译igh

./bootstrap //如果没有configure文件则执行此语句
./configure --with-linux-dir=/home/vmuser/workspace/linux-4.9.38 \  
--enable-generic=yes --enable-8139too=yes --enable-e1000=yes --enable-e1000e=yes --enable-r8169=yes \
--enable-rtdm=yes --enable-cycles=yes --enable-hrtimer=yes --with-xenomai-dir=/usr/xenomai
**********************************************
igh把编译生成的文件默认安装在了/opt/etherlab目录。
通过设置--prefix=/home/vmuser/ethercat-master/output可以把编译生成的文件安装在/home/vmuser/ethercat-master/output目录中。
**********************************************
make
make modules
make install
sudo make modules_install
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

我在编译igh的8169网卡驱动(4.9版本)时有报错。
打开ethercat/devices/r8169-4.9-ethercat.c,把339行删掉。
如果用其它版本的驱动,没有报错,就不用删了。

在这里插入图片描述
编译完成后,生成如下文件
在这里插入图片描述
在这里插入图片描述
我将这两部分文件copy到了自建的igh文件夹中。

第六步 将xenomai.tar.gz和igh.tar.gz复制到其他主机

我将编译生成的文件打包成xenomai.tar.gz和igh.tar.gz,然后copy到i5 6600主机进行测试。
我将生成的xenomai.tar.gz文件进行解压,并copy到usr目录。
在这里插入图片描述
利用bin目录下的latency 工具进行测试
在这里插入图片描述
实时效果并不理想,后续再改吧
将igh.tar.gz文件进行解压,并copy到/opt/etherlab目录。
在这里插入图片描述
将igh编译生成的驱动文件放到如下位置
在这里插入图片描述
接着输入depmod命令。

第七步 ethercat主站配置

这一步参考了igh官方文档的P82页(Installing the Software),文章截图如下:
在这里插入图片描述
将/opt/etherlab/etc目录下的sysconfig文件夹copy到/etc目录中,然后修改ethercat文件。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里主要是对MASTER0_DEVICE="“和DEVICE_MODULES=”"进行了修改。
ln -s /opt/etherlab/etc/init.d/ethercat /etc/init.d 建立软连接
注意ethercat文件中的这部分是否正确
在这里插入图片描述

第八步 测试主站

开启主站

# /etc/init.d/ethercat start
  • 1

重启主站
在这里插入图片描述
在这里插入图片描述
可以看到主站正常运行,能够扫描到从站的信息。

----------------------------------------------------------------------------------------------

ubuntu14.04解决菜单栏和工具栏消失的方案:

进入图形界面
sudo startx
重设compiz设置(这一步可以不要)
dconf reset -f /org/compiz/
重置compiz后,重启Unity:
setsid unity(这一步必须要)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

添加环境变量

sudo gedit /etc/profile 
export PATH=$PATH:/usr/xenomai/include
source /etc/profile
  • 1
  • 2
  • 3

cannot open shared object file 问题的解决

# gedit /etc/ld.so.conf
添加lib目录
include /etc/ld.so.conf.d/*.conf
/usr/xenomai/lib
/usr/etherlab/lib

修改完ld.so.conf之后必须执行/sbin/ldconfig -v同步动态库
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/694548
推荐阅读
相关标签
  

闽ICP备14008679号