LinuxCNC虚拟机环境搭建 |
您所在的位置:网站首页 › debian10安装vmware tools › LinuxCNC虚拟机环境搭建 |
本文讲述如何在虚拟机上搭建 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 模式,如果在安装过程中,出现网络无法连接的问题,可以尝试将网络配置修改为桥接模式,如下图所示 如果在安装过程中出现无法访问软件源的错误,如下图所示,可能是系统镜像中默认的软件源失效了,导致无法更新和安装软件。这里可以先忽略该问题,待系统安装完成后,再修改软件源的地址。 初次安装完 Debian 系统,启动后系统会提示升级 LinuxCNC 版本,如下图所示,按照提示升级 LinuxCNC 版本。 启动 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 的关联配置及软件版本 如下图所示,取消急停后,打开电源,然后就可以进行仿真运动,比如回零、手动运动、自动加工等。 运行命令: > cd /usr/linuxcnc2.7.14/scripts > which linuxcnc > linuxcnc如下图所示,选择轴配置 其中,which linuxcnc 用于查看 linuxcnc 命令的脚本位置。 如下图所示,软件启动后,查看 LinuxCNC 的关联配置及软件版本 在安装完 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.listDebian 有自己独特的版本系统,整个系统有三个版本,分别为稳定版、测试版和不稳定版。每次发布的版本都是稳定版,而测试版在经过一段时间的测试证明没有问题后会成为新的稳定。因为稳定版是会更新的,为了便于区分不同时期的稳定版,每个版本又有自己特有的代号(codename),现在的稳定版称为 wheezy(debian7),测试版称为 jessie,而不稳定版的代号永远是 sid。 sources.list的写法 找到包含 dists 和 pool 这两个目录的那个目录,把地址记下来,比如 http://archive.debian.org/debian/;打开 dists,记录里面包含的目录名字,比如包含 wheezy、jessie 等;打开 pool 目录,看看里面包含哪些组件目录,比如 main、contrib、non-free;书写格式: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 进行全面升级或使用软件包管理器中的“标记全部软件包以便升级”功能进行升级。两者效果是一样的。 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |