EtherCAT IGH 的下載和編譯
1、源碼下載地址說明
EtherCAT 官方下載網(wǎng)站
EtherCAT 官方git下載網(wǎng)站
2、編譯前一點(diǎn)小說明:
-
剛學(xué)習(xí)的時(shí)候,看到很多人說在看 EtherCAT IGH 的文檔的時(shí)候說 EtherCAT IGH 只支持 2.6 和 3.x 的內(nèi)核。這句話在 《EtherCAT IGH 1.52.pdf》中的 <1.1 Feature Summary> 提到了這么一句話 Designed as a kernel module for Linux 2.6 / 3.x,但是不知道是不是一直沒有更新過來,還是有一些其他的原因,這句話應(yīng)該是有問題的。經(jīng)過測試其實(shí)是沒有這個(gè)限制的,我現(xiàn)在在 Ubuntu 22.04, 內(nèi)核版本為 5.15.0的系統(tǒng)上面都編譯安裝成功了。
-
目前(2022.10.18)最新的EtherCAT 版本應(yīng)該是 v1.5.2 。當(dāng)內(nèi)核的版本超過 4.15.x的時(shí)候,編譯會(huì)出錯(cuò)。因?yàn)閺?.15開始內(nèi)核timer使用方式更改[1]。這個(gè)后面在常見的編譯錯(cuò)誤中還會(huì)提到。
3、編譯和安裝
其實(shí)在下載的源代碼中的根目錄中有一個(gè)文件 INSTALL,這個(gè)文件講的就是如何安裝 EtherCAT IGH。
3.1 編譯配置
前面的一些操作會(huì)因?yàn)橄螺d的源代碼來源不一樣有一些區(qū)別。
- 下載的壓縮包
tar -xjf ethercat-1.5.2.tar.bz2
cd ethercat-1.5.2
- 下載的git repo
cd ethercat
# 這個(gè)是用來生成配置文件的
./bootstrap
后面的操作基本就是一樣的了。
注意:這里的配置每個(gè)人都可以設(shè)置的不一樣,而在EtherCAT IGH 也提供了很多的編譯選項(xiàng)供用戶選擇。
./configure --enable-8139too=no
3.2 安裝
make all modules
sudo make modules_install install
sudo depmod
或者
make
make modules
sudo make install
sudo make modules_install
sudo depmod
3.3 配置主站
1、安裝完成后,會(huì)在/opt/目錄下生成一個(gè)etherlab/文件夾,讓看一下這個(gè)文件夾內(nèi)有些什么,發(fā)現(xiàn)包含一些庫文件和配置文件等。
@:~$ cd /opt/etherlab/
@:/opt/etherlab$ ls
bin etc include lib sbin
2、配置網(wǎng)絡(luò)設(shè)備信息
cd /etc
sudo mkdir sysconfig
sudo cp /opt/etherlab/etc/sysconfig/ethercat /etc/sysconfig
sudo cp /opt/etherlab/etc/init.d/ethercat /etc/init.d
sudo cp /opt/etherlab/etc/ethercat.conf /etc
使用ifconfig命令獲取到網(wǎng)卡的mac地址。
@:~$ ifconfig
enp2s0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether 98:23:a6:89:57:de
從上面的可以看到網(wǎng)卡地址為: 98:23:a6:89:57:de。
修改下面這兩個(gè)文件中的 MASTER0_DEVICE 和 DEVICE_MODULES的數(shù)值。
sudo gedit /etc/sysconfig/ethercat
sudo gedit /usr/local/etc/sysconfig/ethercat
修改如下
MASTER0_DEVICE=“98:29:a6:56:57:ce”
DEVICE_MODULES=“generic”
如果是專用的網(wǎng)卡的話,那么DEVICE_MODULES的數(shù)值可以是這些值8139too, e100, e1000, e1000e, r8169, generic, ccat, igb。*generic 一般是用來指代通用網(wǎng)卡的。
3、配置用戶態(tài)庫
cd /etc/udev/rules.d
#新建一個(gè)ethercat的rule文件
sudo gedit 99-ethercat.rules
- 向文件中添加下面內(nèi)容:
KERNEL==“EtherCAT[0-9]”, MODE=“0777”
下面這個(gè)不執(zhí)行好像也可以
保存后退出,然后執(zhí)行
sudo udevadm control --reload-rules
4、配置實(shí)時(shí)權(quán)限
sudo gedit /etc/security/limits.conf
-
在該文件的最下方按照如下格式添加一行:
<username> hard rtprio 99 -
比如說改成這個(gè)樣子: #username hard rtprio 99
4、運(yùn)行主站以及添加命令行工具
1、運(yùn)行主站
@:~$ sudo /etc/init.d/ethercat start
Starting EtherCAT master 1.6.0-rc1 done
如果安裝沒有問題,會(huì)出現(xiàn)下面的提示:
Starting EtherCAT master 1.5.2 done
就說明是安裝成功了的。
2、 停止主站
@:~$ sudo /etc/init.d/ethercat stop
Shutting down EtherCAT master 1.6.0-rc1 done
3、添加命令行工具
vim ~/.bashrc
在其中添加如下代碼:
PATH=$PATH:/opt/etherlab/bin
然后執(zhí)行
source ~/.bashrc
最后就可以愉快的使用 EtherCAT 提供的方便的命令行工具了。
5、編譯可能遇到的問題
1、下面這個(gè)博主寫的比較好,記錄了一些常見的編譯 EtherCAT IGH 會(huì)遇到的問題。
linux5.4內(nèi)核搭建igh主站第二次嘗試
2、下面這個(gè)博主寫的比較好,主要是這個(gè)博客的評論里面記錄了一些其他人在編譯 EtherCAT IGH 會(huì)遇到的問題以及博主的解決方法。
Linux下IGH Ethercat Master安裝
3、checking for kernal for 8139too driver… configure error
這個(gè)是因?yàn)?139too網(wǎng)卡在當(dāng)前kenel下不支持,解決辦法:將對應(yīng)的報(bào)錯(cuò)驅(qū)動(dòng)禁用掉就可以了。
./configure --enable-8139too=no
6、啟動(dòng)主站的時(shí)候可能遇到的問題
1、ERROR: could not insert ‘ec_master’: Invalid argument
@:~$ sudo /etc/init.d/ethercat start
Starting EtherCAT master 1.6.0-rc1 modprobe: ERROR: could not insert 'ec_master': Invalid argument failed.
如果沒有按照3.3 配置主站 中的2、配置網(wǎng)絡(luò)設(shè)備信息 重新修改這兩個(gè)文件中的內(nèi)容,那么在啟動(dòng)主站的時(shí)候就會(huì)報(bào)這個(gè)錯(cuò)誤。
2、Starting EtherCAT master 1.6.0-rc1 modprobe: FATAL:
@:~$ sudo /etc/init.d/ethercat start
Starting EtherCAT master 1.6.0-rc1 modprobe: FATAL: Module ec_master not found in directory /lib/modules/5.15.0-43-generic
failed
這個(gè)錯(cuò)誤應(yīng)該是在編譯之后沒有運(yùn)行 depmod 導(dǎo)致的。在編譯的那個(gè)文件目錄下面運(yùn)行下面這句話即可。
sudo depmod
3、Starting EtherCAT master 1.5.2 ERROR: modinfo: could not find module ec_e1000 done
如果是報(bào)這種問題,一般都是因?yàn)?configure的時(shí)候有沒有加選項(xiàng)–enable-e1000,把這個(gè)選項(xiàng)加上去就好了。
7、修改源代碼之后如何重新編譯
有的時(shí)候我們在調(diào)試的時(shí)候,可能會(huì)去修改源代碼,增加一些調(diào)試信息。那么我們在修改源代碼之后如何重新編譯呢?文章來源:http://www.zghlxwxcb.cn/news/detail-657674.html
- 在不修改編譯配置的情況下,基本上按照 ### 3.2 安裝 的說明重新編譯安裝即可.
- 然后按照3.3 配置主站 中的2、配置網(wǎng)絡(luò)設(shè)備信息 重新修改這兩個(gè)文件中的內(nèi)容,也可能只要修改其中一個(gè)文件即可。
8、參考引用
感謝下面各位大佬的文章。文章來源地址http://www.zghlxwxcb.cn/news/detail-657674.html
- [1] 【實(shí)操填坑】在樹莓派上編譯 EtherCAT IgH Master 主站程序
到了這里,關(guān)于EtherCAT IGH 的下載和編譯的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!