[etherlab-users] Etherlab installation issue [ubuntu 14]

Thomas Bitsky Jr tbj at automateddesign.com
Thu Nov 19 19:05:37 CET 2015


John,

I’m using Ubuntu 14.04 in a robot right now with the e1000e driver, and it works great. The one caveat is that I had to modify the e1000 driver source code for the newer kernel. I submitted instructions for doing the same to the message board awhile ago, so you should be able to find it easily. For development work, however, the generic driver works fine.

The EtherLAB manual is excellent (and contains almost all of what I’m about to include in this email), but here are the steps I documented at my company for newbies installing on Ubuntu 14.04, modified to remove the e1000e driver. Should get you up and running.

EtherLab EtherCAT Master installation

MAKE SURE YOU HAVE BOOTED UNDER THE TARGET KERNEL

1. in a subdirectory (usually ~/srcroot/etherlab):

$ wget http://etherlab.org/download/ethercat/ethercat-1.5.2.patched.tar.bz2

$ tar xjf ethercat-1.5.2.patched.tar.bz2


Move the source working directory to /usr/local/src
(We would be running this command from the directory containing the source directory. My usual is ~/srcroot/etherlab/, which would then contain ethercat-1.5.2)

$ sudo mv ethercat-1.5.2 /usr/local/src/

Move to that location

$ cd /usr/local/src/
Make a link to the source directory called Ethercat

$ sudo ln -s ethercat-1.5.2 ethercat

Move into the source directory

$ cd ethercat

$ ./configure --enable-generic –disable-8139too
                  Note: If you’re building for use in a VM, only --enable-generic and --disable-8139too

The Makefiles assume a default destination of /lib/modules/. However, the actual target location of modules on an Ubuntu system is /lib/modules/`uname -r` (this command will automatically adapt to the kernel version). Therefore, we need to provide the DESTDIR argument to the make commands.

$ sudo -s

$ make

$ make modules

$ sudo make install

$ sudo make modules_install

When we've completed installing all the modules we want to use, we need to do a final depmod:



# sudo depmod



Configure the EtherCAT Master


Now, we do some configuration work. We start by finding the MAC address we want to use.



$ ifconfig


Pick out the HWAddr (Hardware Address, also known as the MAC Address) of the adapter you'd like to use (example: eth0) and record it. You'll need to type it in later.


Now let's copy in the configuration to the location that the EtherCAT Master will be expecting it.



# sudo mkdir /etc/sysconfig/

# sudo cp /opt/etherlab/etc/sysconfig/ethercat /etc/sysconfig/




Edit the configuration file using the nano text editor.



# sudo nano /etc/sysconfig/ethercat

You need to setup this file as prescribed in the EtherCAT manual. You definitely need to change the values for MASTER0_DEVICE, which need the MAC address of the Ethernet card you've selected, and then the driver you'd like to use for that device.

For a development system, "generic" is fine. For a production system, the hope is that you've selected a target machine with a supported network device. We typically used cards supported by the e1000e driver, but check the hardware specs if you’re unsure.

Example:

MASTER0_DEVICE=“??:??:??:??:??:??"

DEVICE_MODULES=“generic"

(For a Development or VM-based system: DEVICE_MODULES="generic" )

Install the EtherCAT driver as a startup service.


cd /opt/etherlab

Copy the initialization script (If this doesn't work, make sure that there isn't a /etc/init.d/ethercat already. If so, remove it), change its ownership properties, then schedule it for startup and shutdown with the operating system.




# sudo cp ./etc/init.d/ethercat /etc/init.d/

# sudo chmod a+x /etc/init.d/ethercat




OPTIONAL:: This will automatically start the ethercat master on startup. Generally, we DON’T WANT TO DO THIS.

# sudo update-rc.d ethercat defaults
Make ethercat tool available:


# sudo ln -s /opt/etherlab/bin/ethercat /usr/local/bin/ethercat


The ethercat command-line tool (see sec. 7.1) communicates with the master via a character device. The corresponding device nodes are created automatically, if the udev daemon is running. So “normal" users shall have reading access, a udev rule must be created, which simply means creating the file:
/etc/udev/rules.d/99-EtherCAT.rules

Using the text editor nano:

$ sudo nano /etc/udev/rules.d/99-EtherCAT.rules


Enter the following contents:

KERNEL=="EtherCAT[0-9]*", MODE="0664"

Start or Restart the EtherCAT master (example: /etc/init.d/ethercat restart) and the device node will be automatically created with the desired rights.
If non-root users shall have writing access, the following udev rule can be used instead:

KERNEL=="EtherCAT[0-9]*", MODE="0664", GROUP="users"



 Now we can start the master:

$ sudo /etc/init.d/ethercat start


Thanks!
Thomas C. Bitsky Jr. | Lead Developer
ADC | automateddesign.com<http://automateddesign.com/>


Follow ADC news and media:
Facebook<https://facebook.com/automateddesigncorp> | Twitter<https://twitter.com/ADCSportsLogic> | YouTube<https://www.youtube.com/user/ADCSportsLogic>



From: etherlab-users <etherlab-users-bounces at etherlab.org<mailto:etherlab-users-bounces at etherlab.org>> on behalf of Preben Hjørnet <ph at blueworkforce.com<mailto:ph at blueworkforce.com>>
Date: Thursday, November 19, 2015 at 11:06 AM
To: John Hubbard <jhubbard at noao.edu<mailto:jhubbard at noao.edu>>
Cc: "etherlab-users at etherlab.org<mailto:etherlab-users at etherlab.org>" <etherlab-users at etherlab.org<mailto:etherlab-users at etherlab.org>>
Subject: Re: [etherlab-users] Etherlab installation issue [ubuntu 14]


We are hiring EtherCAT robotics control engineers .

venligst
Preben Hjørnet
Blue Workforce A/S
24609899

Den 19/11/2015 16.55 skrev "John Hubbard" <jhubbard at noao.edu<mailto:jhubbard at noao.edu>>:
On 11/18/2015 11:19 PM, Tommaso wrote:
Good morning,

I'm a student interested in programming with etherlab but I've encountered some problems during the installation.

Could you give me a detailed guide in order to install all the elements in boundle 2.1 with Ubuntu 14?

Thank you for your help.

I just recently installed on an Ubuntu 14.04 system running the 3.16 kernel.  I've attached some notes from my installation.  I largely followed the instructions from the pdf documentation.  For me the major key was disabling the realtek driver during the configure step.  For my system (non-real time) the generic driver seems to work fine.  Hope this helps.

p.s.
Including the error message(s) that you got from your install will generally allow the community to better assist you.

--
-john

To be or not to be, that is the question
                2b || !2b
(0b10)*(0b1100010) || !(0b10)*(0b1100010)
        0b11000100 || !0b11000100
        0b11000100 ||  0b00111011
               0b11111111
255, that is the answer.


_______________________________________________
etherlab-users mailing list
etherlab-users at etherlab.org<mailto:etherlab-users at etherlab.org>
http://lists.etherlab.org/mailman/listinfo/etherlab-users

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.etherlab.org/pipermail/etherlab-users/attachments/20151119/4860baba/attachment-0003.htm>


More information about the Etherlab-users mailing list