本文讲述如何在虚拟机上搭建 LinuxCNC 运行环境,以及搭建过程中遇到的问题和对应解决方案。

安装环境的版本:VMware Workstation 16 pro,Debian 7.11,LinuxCNC 2.7.14。

安装 Debian 系统

下载 Debian 系统镜像文件

在 LinuxCNC 官网的 Downloads 页面下载 Debian 7 Wheezy ISO,下载的系统镜像文件为 linuxcnc-2.7.14-wheezy.iso。

安装 Debian 系统镜像

打开 VMware Workstation,新建虚拟机,并在“新建虚拟机向导”中填入 Debian 系统镜像文件的路径,然后按照向导配置虚拟机并进行安装。

以下为安装注意事项。

启动菜单

由于LinuxCNC包含人机界面,因此在启动菜单中选择 “Install(Graphical)”,如下图所示,以便能够启动界面操作软件。

选择语言

如果选择中文,则在安装完成后,进入系统终端,字体显示间隔不均匀或出现重叠,如下图所示,因此最好选择 English 进行安装。

网络配置

虚拟机默认的网络配置为 NAT 模式,如果在安装过程中,出现网络无法连接的问题,可以尝试将网络配置修改为桥接模式,如下图所示

配置软件包管理器

如果在安装过程中出现无法访问软件源的错误,如下图所示,可能是系统镜像中默认的软件源失效了,导致无法更新和安装软件。这里可以先忽略该问题,待系统安装完成后,再修改软件源的地址。

升级 LinuxCNC

初次安装完 Debian 系统,启动后系统会提示升级 LinuxCNC 版本,如下图所示,按照提示升级 LinuxCNC 版本。

安装 VMware Tools

启动 Debian 系统,开启虚拟机,点击 VMware 菜单栏“虚拟机”下的“安装 VMware Tools”,之后 Debian 系统的桌面会出现 VMware Tools,然后打开会出现如下图所示的文件列表

将后缀为 .tar.gz 的压缩文件复制到临时文件夹 /tmp,用 tar -zxvf 命令解压,产生一个 vmware-tools-distrib 文件夹,进入该文件夹并执行 sudo ./vmware-install.pl 命令,输入用户密码,之后一直选择 yes 或者默认即可。

安装完后,重启 Debian 系统,系统界面就可以根据 VMware Workstation 的窗口自动调整大小。

编译 LinuxCNC 源码

参考链接:http://linuxcnc.org/docs/devel/html/code/building-linuxcnc.html

获取 LinuxCNC 源码

这里提供两种方式获取 LinuxCNC 源码,一种是在 Debian 系统中直接从 GitHub 上下载源码,另一种是通过共享的方式,将 Windows 系统上下载的 LinuxCNC 源码拷贝到 Debian 系统中。

从 GitHub 上下载 LinuxCNC 源码

切换到想要存放源码的目录,一般选择 /usr,然后执行命令:sudo git clone -b v2.7.14 git://github.com/linuxcnc/linuxcnc.git linuxcnc2.7.14,即可将 LinuxCNC 的 2.7.14 版本源码下载到 Debian 系统中。

从 Windows 系统拷贝 LinuxCNC 源码

首先,假定 LinuxCNC 源码已经下载到 Windows 系统中;

其次,关闭 Debian 系统,编辑虚拟机设置,启用共享文件夹,并添加 LinuxCNC 源码所在 Windows 系统中的目录,如下图所示

然后,启动 Debian 系统,切换到 /mnt/hgfs 目录下,即可看到共享的 LinuxCNC 源码。

最后,在 Debian 系统中,将 LinuxCNC 源码拷贝到指定目录,sudo cp -r linuxcnc2.7.14 /usr/linuxcnc2.7.14

特别说明,这里将 LinuxCNC 源码拷贝到 Debian 系统中的必要性。如果直接在 Windows 共享文件夹中编译 LinuxCNC 源码,会出现 ln: failed to create symbolic link ‘xxx.so’: Operation not supported 错误,这是因为在编译 LinuxCNC 源码时会创建软链接,而 Windows 下的 NTFS 文件系统不支持软链接,导致创建软链接失败。

检查编译依赖包

在 Debian 系统中,LinuxCNC 提供可以收集编译 LinuxCNC 所依赖软件包的检测机制,通过运行检测脚本,能够轻易列出当前系统中所缺失的软件依赖包。具体步骤如下:

第一步,安装检查依赖包的命令:

> sudo apt-get install dpkg-dev

第二步,运行 Debian 系统的配置:

> cd /usr/linuxcnc2.7.14/debian
> sudo ./configure uspace
> cd ..

第三步,检查依赖包:

> dpkg-checkbuilddeps

执行完后,终端会列出当前系统中尚未安装但编译 LinuxCNC 依赖的软件包名称。若要安装依赖包,使用命令 sudo apt-get install,后面加上软件包的名称;如果一次安装多个依赖包,需要用空格将软件包名称隔开。

可以随时使用命令 dpkg-checkbuilddeps 查看当前系统中尚未安装的依赖包。

以下为安装过程中可能遇到的问题。

无法定位包

在使用 apt-get install xxx 安装依赖包时,一直提示 Unable to locate package 错误,如下图所示

正常情况下,只需要更新源即可:sudo apt-get update

包已过期

在更新源时,提示包已过期,如下图所示

出现这种问题,可能原因有两个:一个是系统时间错乱,另一个是软件源的数字签名时间已过。如果想要继续使用数字签名已过期的软件包,可以屏蔽有效性检查,使用如下命令

> sudo apt-get -o Acquire::Check-Valid-Until=false update

否则,需要修改源的地址,链接满足要求的软件包。

包未找到

在更新源时,提示源或包未找到,如下图所示

出现这种问题,说明 sources.list 中指向的源失效了,导致更新和安装软件失败。出现这种问题,需要修改 sources.list,首先备份 sources.list,然后编辑 sources.list 中非法的源地址。

> sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
> sudo vi /etc/apt/sources.list

有关 sources.list 的详细说明见附录。

编译 LinuxCNC 源码

当编译 LinuxCNC 源码的依赖包安装完成后,就可以切换到 src 目录下,配置 LinuxCNC 编译环境,然后编译 LinuxCNC 源码,按照下述命令依次执行

> cd /usr/linuxcnc2.7.14/src
> sudo ./autogen.sh
> sudo ./configure --with-realtime=/usr/realtime-3.4-9-rtai-686-pae/bin/rtai-config
> sudo make
> sudo make setuid
> sudo source ../scripts/rip-environment

以下为编译过程中可能遇到的一些问题。

没有权限

如果在编译过程中出现 Permission denied 错误,则可能是当前用户没有权限,可以在命令前面加上 sudo 后再次执行。

其中,sudo 命令是以系统管理员的身份执行命令,也就是说,经由 sudo 所执行的指令就好像是 root 亲自执行。

无法启动 LinuxCNC

如果在编译完成后,切换到 scripts 目录下,执行 sudo ./linuxcnc 但是无法启动,如下图所示

出现这种问题的原因是,编译 LinuxCNC 前配置的实时核选项不正确导致,如果配 --real-time=uspace,则可能出现此问题;此时,需要配置 --real-time=/usr/realtime-$VERSION,指定明确的 RTAI 版本。

运行 LinuxCNC

编译完成后,切换到 scripts 目录下,有两种方式运行 LinuxCNC;选择对应的轴配置,通过终端可以查看 LinuxCNC 关联的配置,软件启动后还可以查看软件版本

编译版本的LinuxCNC

运行命令:

> cd /usr/linuxcnc2.7.14/scripts
> sudo ./linuxcnc

如下图所示,选择轴配置

如下图所示,软件启动后,查看 LinuxCNC 的关联配置及软件版本

如下图所示,取消急停后,打开电源,然后就可以进行仿真运动,比如回零、手动运动、自动加工等。

内置版本的 LinuxCNC

运行命令:

> cd /usr/linuxcnc2.7.14/scripts
> which linuxcnc
> linuxcnc

如下图所示,选择轴配置

其中,which linuxcnc 用于查看 linuxcnc 命令的脚本位置。

如下图所示,软件启动后,查看 LinuxCNC 的关联配置及软件版本

附录

软件源 sources.list 文件格式说明

在安装完 debian 操作系统之后需要修改 sources.list 文件,否则无法在线更新软件,下面简要讲解下 sources.list 文件中各个配置项的具体含义。

deb http://archive.debian.org/debian wheezy main contrib non-free
deb-src http://archive.debian.org/debian wheezy main contrib non-free
deb http://archive.debian.org/debian-security wheezy/updates main contrib non-free
deb-src http://archive.debian.org/debian-security/ wheezy/updates main contrib non-free

其中,可以将每一行分为四个部分,当你在线更新某个软件时,debian 就是遵照这四个选项(准确的说是后三项)的指示找到软件来安装的:

deb  ### ftp地址                            ### 版本代号 ### 限定词
deb ### http://archive.debian.org/debian ### wheezy  ### main contrib non-free

第一部分

第一部分为 deb 或者 deb-src,其中前者代表软件的位置,后者代表软件的源代码位置。

第二部分

第二部分为 ftp 地址,在浏览器中打开此链接以后会发现有如下图所示内容:

其中,

dists/ 目录包含“发行版”(distributions),此处是获得 Debian 发布版本(releases)和已发布版本(pre-releases)的软件包的正规途径。有些旧软件包及 packages.gz 文件仍在里面。

pool/ 目录为软件包的物理地址。软件包均放进一个巨大的“池子(pool)”,按照源码包名称分类存放。为了方便管理,pool 目录下按属性再分类(“main”,“contrib” 和 “non-free”),分类下面再按源码包名称的首字母归档。这些目录包含的文件有:运行于各种系统架构的二进制软件包,生成这些二进制软件包的源码包。

project/ 目录大部分为开发人员的资源。

tools/ 目录用于创建启动盘,磁盘分区,压缩/解压文件,启动 Linux 的 DOS 下的小工具。

第三部分

第三部分表示 debian 版本号,debian 的发行版本名称大都来自玩具总动员中的角色名称。每个稳定的发行版都会有一个代号,如 debian 6 叫做 squeeze,debian 7 叫做 wheezy 等;处于测试阶段的 debian 发行版,如 wheezy 往下发展就是 jessie 了。

第四部分

从水平的角度介绍完 debian 发行版,现在我们进入这些目录大致看一下里面的内容(以 wheezy 目录为例),如下图所示

我们会发现每个目录都会包含 contrib、main、non-free 等这几个目录,那么这些目录又分别是什么呢?

以垂直的观点来看 debian 软件的分布:main、contrib、non-free、non-us。

因为 debian 是非营利组织,但是组织架构严谨,有一套完善的软件管理方式。基于其对软件 free 度的一种坚持,对不同版权软件包的录入有一些限定。

下面是对它们的一些简要介绍:

main Debian 里最基本及主要且符合自由软件规范的软件(packages)。

contrib 这里头软件虽然可以在 Debian 里头运作,即使本身属于自由软件但多半却是相依于非自由(non-free)软件。

non-free 不属于自由软件范畴的软件。

non-us 这个分类里头的软件都来自非美国地区,当中可能有牵扯到专利、加密等等问题。

marillat 对应 Christian Marillat 的软件仓库,包括 mplayer、transcode 等。

rareware 对应 rarewares.org 的软件仓库,包括很多音效程序,如 lame、musepack、beep media player 等。

ustc 对应 debian@ustc 维护的一些软件包,如 mule-gbk,gaim-openq,scim,stardict dicts,patched xpdf,irssi,xmms。

java 对应 Blackdown java。包括 j2re,j2sdk,mozilla java plugin。

firefly 对应打过 firefly 补丁的包,包括 fontconfig mozilla mozilla-firefox pango1.0 qt-x11-free xft

misc 对应其它无分类的包,包括 nvidia-kernel,winex3,rox,chmsee 等

按需修改自己的 sources.list

Debian 有自己独特的版本系统,整个系统有三个版本,分别为稳定版、测试版和不稳定版。每次发布的版本都是稳定版,而测试版在经过一段时间的测试证明没有问题后会成为新的稳定。因为稳定版是会更新的,为了便于区分不同时期的稳定版,每个版本又有自己特有的代号(codename),现在的稳定版称为 wheezy(debian7),测试版称为 jessie,而不稳定版的代号永远是 sid。

sources.list的写法

  1. 找到包含 dists 和 pool 这两个目录的那个目录,把地址记下来,比如 http://archive.debian.org/debian/
  2. 打开 dists,记录里面包含的目录名字,比如包含 wheezy、jessie 等;
  3. 打开 pool 目录,看看里面包含哪些组件目录,比如 main、contrib、non-free;
  4. 书写格式:deb <记录的地址> <记录的目录名> <记录的名字>,如 deb http://archive.debian.org/debian/ wheezy main contrib non-free

更新软件包列表信息,升级 Debian

修改 /etc/apt/sources.list 之后一般会运行下面两个命令进行更新升级:

> sudo apt-get update
> sudo apt-get dist-upgrade

其中,update - 取回更新的软件包列表信息,dist-upgrade – 发布版升级。

第一个命令仅仅更新的软件包列表信息,所以很快就能完成;第二个命令是全面更新发布版,一般会下载几百兆的新软件包。

其实在运行完第一个命令后系统就会提示你进行更新升级。因为修改了源,所以这次更新的改动可能会很大,比如安装某个包可能会删除太多的其他包,所以系统会提示你运行 sudo apt-get dist-upgrade 进行全面升级或使用软件包管理器中的“标记全部软件包以便升级”功能进行升级。两者效果是一样的。

LinuxCNC虚拟机环境搭建相关推荐

  1. 分布式存储 CentOS6.5虚拟机环境搭建FastDFS-5.0.5集群

    其实这是一篇来自:http://www.open-open.com/lib/view/open1435468300700.html 个人认为很适合新手参考的文章,感谢原创作者的努力. 分布式存储 Ce ...

  2. 实时系统vxWorks - 虚拟机环境搭建(修复)

    概述 非常抱歉,由于小编的疏忽大意,在之前的文章<实时系统vxWorks - 虚拟机环境搭建>一文中,步骤有所缺失,导致不少网友在执行19步后直接进入了dos系统,而未进入到正常的vxWo ...

  3. F5 WMware虚拟机环境搭建-BIG-IP Virtual Edition 11.3.0

    F5 WMware虚拟机环境搭建- BIG-IP Virtual Edition 11.3.0 一. 准备工作: -1.宿主PC,需支持硬件虚拟化.建议使用securable软件查看是否支持. -2. ...

  4. todo谷粒商城二本地虚拟机环境搭建及项目初始化

    todo 模块依赖的版本可能有变化,等项目稳定回来确认一下 VirtualBox VirtualBox相对VMware来说是轻量级的虚拟软件, 最关键的是VirtualBox是开源免费的. 使用之前要 ...

  5. ubuntu虚拟机环境搭建

    虚拟机安装ubuntu系统搭建编译环境 1.ubuntu16.04 系统镜像iso https://blog.csdn.net/kwame211/article/details/83902851 建议 ...

  6. 实时系统vxWorks - 虚拟机环境搭建

    概述 VxWorks 操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),是嵌入式开发环境的关键组成部分.良好的持续发展能力.高性能的内核以及友好的用户开发环 ...

  7. virtualbox虚拟机环境搭建之一---Ubuntu1804安装Virtualbox,在Virtualbox中导入Win7镜像

    一.下载Virtualbox并安装 1.下载virtualbox deb安装包 到virtualbox官网:https://www.virtualbox.org/wiki/Linux_Download ...

  8. 虚拟机环境搭建: virtualBox6.1+window10

    一.下载window10镜像 下载网址:https://msdn.itellyou.cn/ 我下载的是 然后ed2k协议要使用迅雷下载 这里有一个坑:选择要下载的镜像不要超过4G,否则用virtual ...

  9. Teradata虚拟机环境搭建

    下载Teradata镜像 teradata镜像下载地址 vmware下载 安装Teradta 下载完解压,使用vmware虚拟机,点击[文件]->[打开],找到镜像所在位置 根据情况编辑虚拟机设 ...

  10. 虚拟机环境搭建-lubuntu

    1.win7系统虚拟机部署, 首先virtualbox(开源免费/Win10首选)不支持win7(和windows主题文件冲突,需要使用PE进入替换) 新版的V15 VmWare不支持win8以下的版 ...

最新文章

  1. NLPIR智能语义:大数据精准挖掘是信息化发展趋势
  2. ArrayBlockingQueue原理分析
  3. 小白开学Asp.Net Core 《九》
  4. php魔术变量的概念_PHP 魔术变量和魔术函数详解
  5. 01章.计算机网络概述(1.7)
  6. 基础知识系列☞关键字→virtual
  7. gdpr合规性测试_使用生产数据在GDPR后世界进行测试
  8. 二逼平衡树 题解(树套树)
  9. 周志华《机器学习》西瓜书第一章绪论第一部分
  10. 求n的阶乘【VB代码实现】
  11. 360浏览器如何改html5,360安全浏览器如何设置为默认浏览器
  12. linux下xampp的使用教程,Linux下安装xampp教程
  13. 百度网盘怎么设置提取码 百度网盘自定义提取码方法
  14. 微信小程序识别图片并提取文字_微信小程序图片上传(文字识别)
  15. atitit..国富论 在现代it企业项目管理中的作用attialx 总结---国富论读后感 attialx...
  16. Revit二次开发之 自定义选项卡排在最前端
  17. 感知算法-超声波三角定位测量方法
  18. TJA1044---具有待机模式的高速CAN收发器
  19. UHD在DPDK下进行编译
  20. Visual Studio Code(插件篇):Visual Studio Code 必装的 10 个高效开发插件(扩展)

热门文章

  1. 做最便宜的监控,旧手机变监控摄像头,还不用app
  2. 实时文件同步工具-端端Clouduolc在项目研发中的使用体会
  3. CSS的前景色和背景色,高度和宽度,字体属性,文本阴影,抖音字体
  4. ubuntu 域名解析暂时失败
  5. 打印机打印中文,截取字符时出现乱码问题
  6. 26个字母大小写转换
  7. 阻止计算机病毒入侵系统,入侵预防系统
  8. 汤姆猫炫跑鸿蒙,汤姆猫炫跑最新版下载|汤姆猫炫跑新版本下载 安卓版 v1.4.0.470- 游娱下载站...
  9. 普适计算-2014/04/04
  10. CrossAir CA-C03 2.4G贴片天线使用步骤