xenomai情况下开源实时数控体系LinuxCNC EtherCAT编译安装

[复制链接]
发表于 2025-11-23 23:05:11 | 显示全部楼层 |阅读模式
LinuxCNC是一款基于Linux利用体系的开源实时数控体系,可将平凡盘算机变革为高效的CNC(盘算机数字控制)呆板,本文记载xenomai下linuxcnc的构建简朴记载,xenomai下构建无特殊之处,重要参考链接https://www.linuxcnc.org/docs/devel/html/code/building-linuxcnc.html。

  
1.情况

软硬件情况

桌面情况:Ubuntu 24.04+xenomai3.3
硬件:rk3588(nanoPi R6/T6)
对xenomai内核要求

要在使linuxcnc在xenomai上运行,内核设置Local version必须是-xenomai,即CONFIG_LOCALVERSION="-xenomai",如许linuxcnc编译设置时才气辨认xenomai情况,否则不实时。
  1. General setup  --->                                                                                             (-xenomai) Local version - append to kernel release
复制代码
利用uname -a下令确认:

对xenomai库要求

如果你须要编译天生linuxcnc debian安装包,由于天生linuxcnc debian安装包过程中会处置处罚库的安装依赖天生依赖信息,这就要求xenomai库文件libcobalt.so属于某个debian包,普通的说要求我们的xenomai库也是通过debian包安装的,而不是直接make install这种方式直接安装的,否则会产生如下雷同错误。
  1. dpkg-shlibdeps: error: no dependency information found for /usr/xenomai/lib/libcobalt.so.2 (used by debian/linuxcnc-uspace/usr/lib/libuspace-xenomai.so.0)
复制代码
办理方式1:xenomai通过构建debian库来安装,可以参考本博客其他文章编译构建xenomai库debian安装包
办理方式2:找到Debian/rules,打开之后找到override_dh_shlibdeps,在dpkg-shlibdeps那一行末了加上如下选项:
  1. --dpkg-shlibdeps-params=--ignore-missing-info
复制代码
以忽依赖信息。
安装依赖包

先安装依赖的工具和库,我遇到的有这些,差别的情况有差别,堕落再对应安装不具备的即可。
  1. sudo apt install pkg-config build-essential  automake libtool m4 autoconf libudev-dev libmodbus-dev libusb-1.0-0-dev libgpiod-dev libglib2.0-dev libgtk-3-dev yapps2 intltool libboost-dev python3-dev libboost-python-dev  gtkwave bwidget tclx libeditreadline-dev python3-pip python3-tk libglu1-mesa-dev libxmu-dev asciidoc devscripts debhelper libtirpc-dev libtirpc-common tcl8.6-dev tk8.6-dev python3-opengl python3-full
复制代码
2.本地编译linuxcnc

起首须要安装该工具( sudo apt install git )然后拉取代码,如下所示:
  1. $ git clone https://github.com/LinuxCNC/linuxcnc.git linuxcnc-source-dir
复制代码
设置

拉代码天生设置文件
  1. $ git clone https://github.com/LinuxCNC/linuxcnc.git linuxcnc-source-dir
  2. $ cd linuxcnc-source-dir/src$ ./autogen.sh
复制代码
天生得configure,它须要许多可选参数。通过运行以下下令列出configure的全部参数:
  1. $ cd linuxcnc-source-dir/src
  2. $ ./configure --help
复制代码
最常用的参数是:

      
  • --with-realtime=uspace
    为任何实时平台或非实时平台构建。天生的 LinuxCNC 可实行文件将在带有 Preempt-RT 补丁的 Linux 内核(提供实时呆板控制)宁静凡(未打补丁)Linux 内核(提供 G 代码模拟,但不提供实时呆板控制)上运行。
           如果安装了 Xenomai(通常来自 libxenomai-dev 软件包)或 RTAI(通常来自名称以 “rtai-modules ”开头的软件包)的开发文件,也将启用对这些实时内核的支持。
      
  • --with-realtime=/usr/realtime-$VERSION
    利用旧的“内核实时”模子构建 RTAI 实时平台。这要求您在/usr/realtime-$VERSION中安装 RTAI 内核和 RTAI 模块。天生的 LinuxCNC 可实行文件将仅在指定的 RTAI 内核上运行。
      
  • --enable-build-documentation
    除了可实行文件之外,还构建文档。此选项会显着增长了编译所需的时间,由于构建文档非常耗时。如果不须要构建文档,则可省略此参数。
      
  • --disable-build-documentation-translation
    禁用为全部可用语言构建翻译文档。翻译文档的构建须要泯灭大量时间,因此如果不是真正须要的话,发起跳过它。

  1. $ ./configure --with-realtime=uspace --enable-build-documentation
  2. ....
  3. checking for xeno-config... /usr/bin/xeno-config
  4. checking for realtime API(s) to use... uspace+xenomai
  5. ...
  6. ######################################################################
  7. #                LinuxCNC - Enhanced Machine Controller              #
  8. ######################################################################
  9. #                                                                    #
  10. #   LinuxCNC is a software system for computer control of machine    #
  11. #   tools such as milling machines. LinuxCNC is released under the   #
  12. #   GPL.  Check out http://www.linuxcnc.org/ for more details.       #
  13. #                                                                    #
  14. #                                                                    #
  15. #   It seems that ./configure completed successfully.              
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表