jjzjj

IGH(EtherCAT开源主站)移植到beaglebone black(AM3358)开发板上

哪里来的小鬼 2023-11-01 原文

本文是在已经打上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

有关IGH(EtherCAT开源主站)移植到beaglebone black(AM3358)开发板上的更多相关文章

  1. ruby-on-rails - 可移植 Ruby on Rails 环境 - 2

    我给自己买了一个新的8gigUSBkey,我正在寻找一个合适的解决方案来拥有一个可移植RoR环境来学习。我在谷歌上搜索了一下,发现了一些可能性,但我很想听听一些现实生活中的经历和意见。谢谢! 最佳答案 我喜欢InstantRails,非常容易使用,无需安装程序,也不会修改您的系统环境。 关于ruby-on-rails-可移植RubyonRails环境,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/q

  2. python - 开源 Twitter 克隆(在 Ruby/Python 中) - 2

    关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭6年前。Improvethisquestion是否有任何用Ruby或Python编写的生产就绪的开源Twitter克隆?我对功能丰富的实现更感兴趣,而不仅仅是简单的Twitter消息(例如:API、FBconnect、通知等)谢谢!

  3. Gradle 自动化构建开源工具 - 2

    文章目录写在前面1、下载与安装(windows)1.1、idea中配置gradle2、基础知识(Gradle6.9为例)2.1、Gradle脚本语法2.1.1、dependsOn2.1.2、创建动态任务2.1.3、增加任务行为2.1.4、参数2.1.5、Ant任务2.1.6、方法2.1.7、默认任务2.1.6、依赖任务的不同输出3、java项目中使用3.1、在已有项目中构建gradle3.2、在新建项目时构建gradle(idea)3.3、gradle项目目录结构3.4、build.gradle3.4.1、plugins3.4.2、repositories3.4.3、dependencies3

  4. 停车系统源码-基于springboot+uniapp开源项目 - 2

    Iparking停车收费管理系统-可商用介绍Iparking是一款基于springBoot的停车收费管理系统,支持封闭车场和路边车场,支持微信支付宝多种支付渠道,支持多种硬件,涵盖了停车场管理系统的所有基础功能。技术栈Springboot,MybatisPlus,Beetl,Mysql,Redis,RabbitMQ,UniApp功能云端功能序号模块功能描述1系统管理菜单管理配置系统菜单2系统管理组织管理管理组织机构3系统管理角色管理配置系统角色,包含数据权限和功能权限配置4系统管理用户管理管理后台用户5系统管理租户管理多租户管理6系统管理公众号配置租户公众号配置7系统管理操作日志审计日志8系统

  5. ruby - 如何在 Ruby 中构建可移植的绝对路径? - 2

    让我们假设一个脚本需要访问一个目录,比如在“任意”操作系统上的/some/where/abc。在Ruby中构建路径有几个选项:File.join('','some','where','abc')File.absolute_path("some#{File::SEPARATOR}where#{File::SEPARATOR}abc",File::SEPARATOR)标准API中的路径名我相信第一个解决方案足够清晰,但符合惯用语。根据我的经验,一些代码审查会要求评论来解释它的作用......问题有没有更好的方法来构建绝对路径是Ruby,其中更好的意思是“完成工作并为自己说话”?

  6. ruby-on-rails - 有没有很好的引用(开源)Rails NoSQL应用程序? - 2

    我有兴趣了解使用nosql将如何影响rails应用程序的架构/设计/代码。有人知道使用nosql持久性的开源rails应用程序的一个好例子吗?谢谢 最佳答案 看看这些项目:卡桑德拉用法atDigg。卡桑德拉用法atTwitter。Friendly用法atFetLife(nsfw)。最后,MyNoSQL是一个提供nosql相关信息的好网站。 关于ruby-on-rails-有没有很好的引用(开源)RailsNoSQL应用程序?,我们在StackOverflow上找到一个类似的问题:

  7. ruby-on-rails - 请向我推荐一些需要编写文档/测试的 rails/ruby 开源代码 - 2

    关闭。这个问题不符合StackOverflowguidelines。它目前不接受答案。要求我们推荐或查找书籍、工具、软件库、教程或其他场外资源的问题对于StackOverflow来说是偏离主题的,因为它们往往会吸引自以为是的答案和垃圾邮件。相反,请描述问题以及迄今为止为解决该问题所做的工作。关闭8年前。Improvethisquestion在过去的4个月左右的时间里,我一直在使用ruby​​onrails,我真的很喜欢开源的整个概念。我知道它不是ruby​​/rails独有的,但来自Windows编程,这是我第一次真正接触它。我想尽我所能“回馈”,但我觉得我无法贡献任何有值(value

  8. ruby-on-rails - Rails 一天 12 小时 AM/PM 范围 - 2

    这是一个非常简单的问题,之前可能有人问过并回答过,但我什么也没找到。无论如何,我需要一个12小时的范围/数组,比如中午12点到中午11点,中午12点到晚上11点。你可能明白了它的要点。现在我正在尝试做一个荒谬复杂的方法,涉及将AM映射到一个阵列,PM到另一个阵列,然后将两个阵列连接在一起。必须有一种更简单的方法来做到这一点。我知道Railstime_select,但我需要一种不同于它提供的格式。有什么建议么?澄清:所以我正在寻找的是12-hourclock,与AM和PM。如果我想要一个24小时制的时钟,我可以执行(0..24),然后就完成了。但是12小时制从12点到11点,然后从12点

  9. ruby - 将 Ruby 打包成可移植的可执行文件 - 2

    长期以来,我一直在努力寻找一个好的解决方案:是否有可靠的方法将ruby​​安装到可在该平台上移植的文件夹中?我想要一个文件夹,我可以轻松地将其复制到我正在制作的发行版中,这样我就可以“随时随地”拥有一个ruby​​环境。如果我需要编译源代码和其他东西,那很好,只要我最终安装了可移植的ruby​​安装即可。我找到了一些试图解决这个问题的资源,但没有一个让我满意。PortableRubyonRailsenvironmenthttp://hcettech.blogspot.pt/2012/05/windows-portable-rails-development.html对我来说,这是Rub

  10. ruby-on-rails - 我如何找到可以贡献的开源项目(Ruby、Rails) - 2

    关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭7年前。Improvethisquestion我是一名RubyonRails开发人员,手头有一些时间。我想利用这段时间通过为开源项目做贡献来回馈和学习。我不是一流的程序员,想从小做起。在哪里可以找到Ruby或Rails中的小型开源项目?我该如何贡献?亚历克斯

随机推荐