本文是在已经打上xenomai补丁的linux-3.8.13-bone86内核源码上进行的,参看使用xenomai与linux内核源码交叉编译,移植到beaglebone black(AM3358)开发板上

igh软件下载地址:

IgH EtherCAT Master for Linux (etherlab.org)

一、准备ethercat-1.5.2源码

将打入xenomai补丁,写入sd卡的系统的sd卡挂载(插入电脑,自动挂载)到ubuntu系统

将编译出的xenomai拷贝到ubuntu系统中

sudo cp -r /media/lemonhack/rootfs/usr/xenomai/ /usr/

下载ethercat源码

wget https://etherlab.org/download/ethercat/ethercat-1.5.2.tar.bz2

 解压ethercat源码

tar -xvf ethercat-1.5.2.tar.bz2

 进入ethercat源码目录,创建输出文件夹,并且赋予相应权限

sudo -i
cd /home/lemonhack/ethercat/ethercat-1.5.2/
mkdir output
chmod 777 output

二、编译IGH 

安装编译igh所需要的依赖

apt-get install autoconf autogen libtool

configure设置

--with-linux-dir:已经交叉编译过的内核源码位置(主机上)

./configure --prefix=/home/lemonhack/ethercat/ethercat-1.5.2/output --with-linux-dir=/home/lemonhack/ethercat/linux-3.8.13-bone86 --enable-rtdm=yes --with-xenomai-dir=/usr/xenomai/ --enable-8139too=no --enable-generic=yes CC=arm-linux-gnueabihf-gcc --host=arm-linux-gnueabihf

 这一步如果使用的是普通用户来输入make的话,可能会出现rtdm/rtdm.h,no such file or directory。我的建议是一开始就是用root用户。可能出现这个错误的原因是上一篇文章生成xenomai是使用root用户生成的,所以现在操作也需要使用root用户,不然环境可能不一样。当然,如果大家由准确的答案,请一定要告知我。

make

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- modules

make install

mkdir output/modules

cp devices/ec_generic.ko output/modules/
cp master/ec_master.ko output/modules/

将输出文件打包 

tar -cjf output.tar.bz2 output/

 复制输出文件到写入系统根文件的sd卡

cp output.tar.bz2 /media/lemonhack/rootfs/home/debian/

三、在beaglebone black开发板上加载模块

将写入系统根文件的sd卡插入beaglebone black开发板的microSD Card槽中,启动beaglebone black开发板,通过mobaxterm的串口进行显示

su
tar -jxvf output.tar.bz2

 复制ec_master.ko到指定位置,当前内核版本的位置,使用uname -r可知

cp output/modules/ec_master.ko /lib/modules/3.8.13-ipipe/

 depmod(depend module)可检测模块的相依性

depmod

复制到相应地方

cp output/etc/init.d/ethercat /etc/init.d/
cp output/bin/ethercat /usr/local/bin/

 复制到相应地方

mkdir /etc/sysconfig
cp output/etc/sysconfig/ethercat /etc/sysconfig/

 配置rules,创建设备号

echo KERNEL==\"EtherCAT[0-9]*\", MODE=\"0664\" > /etc/udev/rules.d/99-EtherCAT.rules

获取beaglebone black开发板的MAC地址。MAC地址为f4:b8:98:c8:6a:81

ifconfig

配置主站的MAC地址

modprobe ec_master main_devices=f4:b8:98:c8:6a:81

 启动EtherCAT

/etc/init.d/ethercat start

 安装通用网卡驱动

insmod output/modules/ec_generic.ko

祝你好运! 

四、参考

IgH(Igh EtherCAT Master for Linux)移植到搭载Linux系统的开发板_end_宿命的博客-CSDN博客

 beaglebone(AM335X)安装igh-ethercat_拉松的博客-CSDN博客_am3359移植igh

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐