本文是在已经打上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博客文章来源:https://www.toymoban.com/news/detail-501363.html
beaglebone(AM335X)安装igh-ethercat_拉松的博客-CSDN博客_am3359移植igh文章来源地址https://www.toymoban.com/news/detail-501363.html
到了这里,关于IGH(EtherCAT开源主站)移植到beaglebone black(AM3358)开发板上的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!