2014年9月28日 星期日

Raspberry Pi 安裝 IgH EtherCAT Master for Linux

        這篇筆記我在樹梅派上安裝 IgH EtherCAT Master 的流程,以下所有指令都是在樹梅派上執行,沒有使用任何的 Cross compile toolchain。

        1. 更新 Kernel 版本並下載 Kernel source ( 如果已經有的話此步驟 1. 2 可以跳過,本篇 update 時為 3.12.28+  )
sudo rpi-update
reboot
sudo wget https://raw.githubusercontent.com/notro/rpi-source/master/rpi-source -O /usr/bin/rpi-source && sudo chmod  x /usr/bin/rpi-source && /usr/bin/rpi-source -q --tag-update
rpi-source

        2. 如果執行 rpi-source 發生 GCC 版本不匹配的問題時,執行以下指令更新 GCC 版本到 4.8
sudo apt-get install -y gcc-4.8
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 20
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 50

        3. 由於 IgH EtherCAT 的 Source 是放在 Mercurial 上,如果沒有安裝的先執行以下指令安裝 Mercurial
sudo apt-get install mercurial

        4. 下載 IgH EtherCAT
hg clone http://hg.code.sf.net/p/etherlabmaster/code ethercat-hg
cd ethercat-hg/
hg update stable-1.5

        5. 安裝 automake 等工具 (已經有的話就跳過)
sudo apt-get install automake autoconf libtool

        6. 下面這個步驟應該是不用做,但我的筆記有就先記著
sudo apt-get install linux-source

        7. 以上步驟都是前置作業,以下才是開始安裝 IgH EtherCAT 
./bootstrap
./configure --enable-generic=yes --enable-8139too=no
make all modules
sudo make modules_install install
sudo depmod

        8. 建立一些連結
sudo ln -s /opt/etherlab/etc/init.d/ethercat /etc/init.d/ethercat
sudo mkdir /etc/sysconfig
sudo cp /opt/etherlab/etc/sysconfig/ethercat /etc/sysconfig/ethercat

        9. 設定 EtherCAT,有兩個東西要填,
            MASTER0_DEVICE 填網路埠的 MAC address,可以透過 ifconfig 查到
            DEVICE_MODULES 填 generic。
vi /etc/sysconfig/ethercat

        10. 進到 root 執行以下命令
echo KERNEL==\"EtherCAT[0-9]*\", MODE=\"0664\" > /etc/udev/rules.d/99-EtherCAT.rules

        11. 建立 Command tools 的連結以方便使用 EtherCAT 相關指令
ln -s /opt/etherlab/bin/ethercat /usr/local/bin/ethercat
     
        到這裡就完成了,可以透過執行 /etc/init.d/ethercat start 啟動 Ethercat master,如果順利安裝應該會看到啟動成功。照以上步驟已經確定可以透過 ethercat slaves 等指令查看連接的各個 slaves,但我還沒有真正讓 slave 馬達成功轉動,之後有成功再把過程記下來。

        

12 則留言:

  1. 請問您的Raspberry Pi是安裝哪一個系統呢?

    回覆刪除
  2. 作者已經移除這則留言。

    回覆刪除
    回覆
    1. 你好~最近也在研究這東西
      我目前手邊沒有slave請問 IgH EtherCAT Master for Linux可以用來模擬 slave (Servo Motor)?
      我想在VM灌2個Linux系統,其中一個系統模擬成Servo Motor負責接收資料,並回傳封包回Master
      謝謝

      刪除
    2. 我沒聽說 igh 有模擬 Slave 的功能,也許你需要找其他的 library ?

      刪除
    3. 謝謝,我再研究一下

      刪除
  3. configure: error: No configured Linux kernel sources in yes
    你好楼主,我在运行第7步中./configure的时候,报错。错误内容如上所示。烦请指教,谢谢。

    回覆刪除
  4. make all modules error.
    不知道为何。
    请帮忙。

    回覆刪除
  5. 作者已經移除這則留言。

    回覆刪除
  6. 作者已經移除這則留言。

    回覆刪除
  7. 請問您是用樹梅派哪一塊?

    回覆刪除
  8. 您的demo kit 是否還在? 是否可demo您如何控制 motor

    回覆刪除