ubuntu18.04+xenomai3.1+igh2.8+linuxcnc2.10

环境编译:

Linuxcnc编译

参考:https://www.bilibili.com/read/cv26538992/

说下环境我的是ubuntu18.04版,xenomai3.1

1.获取源码

git clone -b master https://ghproxy.com/https://github.com/LinuxCNC/linuxcnc.git  //这里一般获取最新的我的是2.10

cd linuxcnc/src/

./autogen.sh

出现问题

E: 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用)

E: 无法获取 dpkg 前端锁 (/var/lib/dpkg/lock-frontend),是否有其他进程正占用它?

ps -e | grep apt

我这里显示

  3209 ?        00:00:00 apt.systemd.dai

  3213 ?        00:00:00 apt.systemd.dai

接下来杀死这些进程(需要根据你自己的进程ID更改命令)

sudo kill 3209

sudo kill 3213

根据实际操作,一般只用执行第一句话就可以了,第二个进行会跟着一起被杀死,前面操作失败后,就按后面的来操作。

接下来非常重要:

sudo rm /var/lib/dpkg/lock-frontend

sudo rm /var/cache/apt/archives/lock

到这里才解决前面的问题

sudo apt-get install libudev-dev

sudo apt-get install libmodbus-dev

sudo apt install libgtk-3-dev

sudo apt-get install yapps2

sudo apt-get install intltool

sudo apt-get install bwidget

sudo apt-get install tclx

sudo apt install libreadline-gplv2-dev或libeditreadline-dev

出现问题:

ModuleNotFoundError: No module named 'tkinter' 报错就安装这个

sudo apt-get install tcl-dev tk-dev python3-tk

./configure --with-realtime=uspace原文是这个我改成这个

./configure --with-realtime=xenomai

后面提示可以run就行了。

然后make

make

报错,无法编译~/linuxcnc/src/rtapi/uspace_xenomai.cc,需要参考xenomai的例子/demo/posix/cyclictest修改头文件

uspace_xenomai.cc 头需要参考xenomai的头包含加进去

#include "config.h"

#include "rtapi.h"

#include "rtapi_uspace.hh"

#include <pthread.h>

#include <atomic>

#include <stdio.h>

#include <stdlib.h>

#include <stdint.h>

#include <stdarg.h>

#include <unistd.h>

#include <fcntl.h>

#include <getopt.h>

#include <signal.h>

#include <sched.h>

#include <string.h>

#include <time.h>

#include <errno.h>

#include <limits.h>

#include <linux/unistd.h>

#include <sys/prctl.h>

#include <sys/stat.h>

#include <sys/sysinfo.h>

#include <sys/types.h>

#include <sys/time.h>

#include <sys/resource.h>

#include <sys/utsname.h>

#include <sys/mman.h>

#ifdef HAVE_SYS_IO_H

#include <sys/io.h>

#endif

sudo make setuid

source ../scripts/rip-environment

检测下(很长时间 可以不需要)

runtests

输出  Runtest: 258 tests run, 258 successful, 0 failed + 0 expected, 3 skipped

我这边是Runtest: 259 tests run, 256 successful, 3 failed + 0 expected, 4 skipped

Failed: 不管了

/home/wujianya/linuxcnc/tests/build/header-sanity

 /home/wujianya/linuxcnc/tests/io-startup/random/no-tool-in-P0

/home/wujianya/linuxcnc/tests/io-startup/random/tool-in-P0

运行LinuxCNC

linuxcnc

缺包安装

pip install PyOpenGL

ERROR: No matching distribution found for OpenGL

python3 -m pip install PyOpenGL

报Note: Using POSIX non-realtime

源码修改直接不检查xenomai,直接detect_xenomai返回数值非0,看一下行不行,或者改成uname –a显示的东西。修改uspace_rtapi_app.cc下的harden_rt()下rtapi_is_realtime()->detect_realtime()->detect_xenomai()修改strcasestr(u.release,”这里填uname –a后的结果即可”)

报缺少动态库

libcobalt.so.2: cannot open shared object file: No such file or directory

解决:

sudo gedit ~/.bashrc

添加

export LD_LIBRARY_PATH=/usr/xenomai/lib:$LD_LIBRARY_PATH

然后执行

source ~/.bashrc

个人学习流程:

  1. 基于现有的例子基于TCL/TK的Axis的配置进行相关学习,添加单轴调驱动器回零功能、清报警功能、写io输出功能、读io输入功能。学习下classicladder相关知识。参考文档:linuxcnc_documentation.pdf。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值