资讯详情

艰难的LinuxCNC(EMC2)源代码安装依赖01

艰难的LinuxCNC(EMC2)源代码安装依赖01 分析了一个圆弧补偿程序ode,想多了解一下,在linuxCNC(emc2)系统仿真,看它的算法,没想到源代码安装有这么大的依赖库,因为LinuxCNC数据比较完善。该软件只有一半的代码是开放的,一半以上的代码是不开放的,因为该项目起源于美国国家标准和技术研究所,也可以理解。 现介绍一下linuxCNC软件: LinuxCNC(增强版机械控制)是机床(车床和铣床)的计算机控制系统; (传统上是计算机数值控制CNCcomputernumericalcontrol)。 LinuxCNC开源代码是自由软件,现行版本的认证协议是GPLandLGPL。 LinuxCNC包括: 多个图形用户界面包括触摸屏 G代码解释器,(RS-274机床编程语言) 实时前瞻性的运动规划系统 低层机械电子操作(如传感器和电机) 一个易于使用的电子测试板快速生成您设备的独特配置 配有梯形图的PLC编程软件 方便的deb格式安装和Live-CD(嵌入linuxCNC的ubuntu光盘) 它不支持CAD或者,G机械自动生产的代码生成公式。 它可以模拟到9轴,支持多个界面 在计算机上LinuxCNC控制可操作的真实伺服(模拟或PWM脉宽和闭环反馈系统 运动控制的特点包括:切割半径和长度补偿、路径偏差限制在允许误差范围内、切割螺纹、多轴运动同步、合理进给率、操作员进给极限和常规速度控制。 支持非笛卡尔运动系统是支持用户的运动模型,包括可支持的结构(机械结构)hexapods六角并联系统 (Steward平台和类似的感受)和旋转关节系统的运动支持, 比如PUMA或者SCARA(商业名称:工业机器人industrialrotob,学术名称:机械臂manipulator) /*Steward是20世纪60年代德国工程师提出的第一个六自由度装配平台,应用于机械加工和连杆机床*/ LinuxCNC运行在Linux的实时扩展上,支持现行的2.4&2.6内核实时扩展应用RT-Linux或者RTAI补丁。 安装deb格式和刻录Live-CD这是一种相对较快的安装方法,但如果开发人员安装它,特别是一个新系统,那就更麻烦了, 我写了我的安装过程,希望能为开发人员节省安装时间, 系统:debiansqueeze,604stableversion,i586,version,裸体系统,只有gnome,没有autotools. 硬件:hpnx6120笔记本电脑,intelpentiumm. 1,首先安装gcc,autoconf,autogen,automake,make,libtool,m4,我安装这些软件的方法是synaptic 打开(左上角菜单),系统,系统管理》新立得软件包管理器,或在终端中进入超级用户,su,然后输synaptic 搜索上述软件,选择,安装光盘,选择并单击《应用》执行安装。 2,下载LinuxCNC在当前文件夹中,源代码直接输入以下指令linuxcnc-dev,将所有代码下载到文件夹中, gitclonegit://git.linuxcnc.org/git/linuxcnc.gitlinuxcnc-dev 三、开始安装,进入linuxcnc-dev文件夹, #cdlinuxcnc-dev 然后,检查安装命令, #ls 其中一个之一README查看内容的文件, #catREADME(or,nanoREADMEor,viREADME) 内容如下: Fromthetopleveldirectory,switchtothesourcedirectory: cdsrc Inthesourcedirectory,buildLinuxCNC: ./configure--enable-run-in-place [or,ifyoudonothavearealtimekernel:] ./configure--enable-run-in-place--enable-simulator makeclean make sudomakesetuid torunthesoftwaregobacktothetopleveldirectory,andissue: .scripts/rip-environment linuxcnc 根据提示,我们进入src文件夹, #cdsrc 然后开始编译配置文件,输入命令 ./configure--enable-run-in-place--enable-simulator 4.问题是依赖mesalib,我们来谈谈安装MesaLib-7.5.1 下载地址:http://downloads.sourceforge.net/project/mesa3d/MesaLib-7.5.1.tar.gz Mesa-7.5.依赖,依赖glib-2.0,而glib-2.0以来XorgLibraries, 4.1XorgLibraries, 详细的安装参考:Xorg-7.7(因为这个版本支持多个文件的自动下载和安装) http://www.linuxfromscratch.org/blfs/view/svn/x/x7lib.html XorgLibraries以下软件, Fontconfig-2.10.2,XorgProtocolHeaders,libXdmcp-1.1.1,andlibxcb-1.9 我按这个顺序安装, 24.XWindowSystemEnvironment *IntroductiontoXorg-7.7 *util-macros-1.17 *XorgProtocolHeaders *makedepend-1.0.4 *libXau-1.0.7 *libXdmcp-1.1.1 *libpthread-stubs-0.3 *xcb-poto-1.8     * libxcb-1.9     * Xorg Libraries  因为我的系统中有xorg一些文件和glib-2.0,系统是debian的,所以都是成熟的应用包,而没有开发软件包,为了混淆,所以,我把所有的安装路径全部选择到/usr/local,    4.1.1, util-macros-1.17 下载地址: http://xorg.freedesktop.org/releases/individual/util/util-macros-1.17.tar.bz2 ftp://ftp.x.org/pub/individual/util/util-macros-1.17.tar.bz2 ./configure $XORG_CONFIG && make make install 这里,我没有设置$XORG_CONFIG $XOR_PREFIX,系统默认的是/usr/local   4.1.2,Xorg Protocol Headers  依赖需要: util-macros-1.17 建议安装: Sudo-1.8.6p3 and Wget-1.14  (因为两个程序系统自带,所以没有安装,如果安装,下载代码,安装) 安装好依赖关系以后,执行安装命令,因为是多个文件,这个安装和下载的方法很特殊,基于bash脚本,不过很经典, 4.1.2.1,  命令: cat > proto-7.7.md5 << "EOF" 1a05fb01fa1d5198894c931cf925c025  bigreqsproto-1.1.2.tar.bz2 98482f65ba1e74a08bf5b056a4031ef0  compositeproto-0.4.2.tar.bz2 998e5904764b82642cc63d97b4ba9e95  damageproto-1.2.1.tar.bz2 4ee175bbd44d05c34d43bb129be5098a  dmxproto-2.3.1.tar.bz2 b2721d5d24c04d9980a0c6540cb5396a  dri2proto-2.8.tar.bz2 e7431ab84d37b2678af71e29355e101d  fixesproto-5.0.tar.bz2 c5f4f1fb4ba7766eedbc9489e81f3be2  fontsproto-2.1.2.tar.bz2 3847963c1b88fd04a030b932b0aece07  glproto-1.4.16.tar.bz2 13c8aedaf98a92e282b7e456c0a5bed9  inputproto-2.2.tar.bz2 677ea8523eec6caca86121ad2dca0b71  kbproto-1.0.6.tar.bz2 ce4d0b05675968e4c83e003cc809660d  randrproto-1.4.0.tar.bz2 1b4e5dede5ea51906f1530ca1e21d216  recordproto-1.14.2.tar.bz2 a914ccc1de66ddeb4b611c6b0686e274  renderproto-0.11.1.tar.bz2 cfdb57dae221b71b2703f8e2980eaaf4  resourceproto-1.2.0.tar.bz2 edd8a73775e8ece1d69515dd17767bfb  scrnsaverproto-1.2.2.tar.bz2 c3b348c6e2031b72b11ae63fc7f805c2  videoproto-2.3.1.tar.bz2 5f4847c78e41b801982c8a5e06365b24  xcmiscproto-1.2.2.tar.bz2 eaac343af094e6b608cf15cfba0f77c5  xextproto-7.2.1.tar.bz2 120e226ede5a4687b25dd357cc9b8efe  xf86bigfontproto-1.2.0.tar.bz2 a036dc2fcbf052ec10621fd48b68dbb1  xf86dgaproto-2.1.tar.bz2 1d716d0dac3b664e5ee20c69d34bc10e  xf86driproto-2.1.1.tar.bz2 e793ecefeaecfeabd1aed6a01095174e  xf86vidmodeproto-2.3.1.tar.bz2 9959fe0bfb22a0e7260433b8d199590a  xineramaproto-1.2.1.tar.bz2 d4d241a4849167e4e694fe73371c328c  xproto-7.0.23.tar.bz2 EOF 这个命令的意思是新建一个文件proto-7.7.md5,内容就是这些md5代码和软件包对应的名字,EOF是终端结束cat的命令,文件中没有。 4.1.2.2, 命令: mkdir proto && cd proto && grep -v '^#' ../proto-7.7.md5 | awk '{print $2}' | wget -i- -c \     -B http://xorg.freedesktop.org/releases/individual/proto/ && md5sum -c ../proto-7.7.md5 意思是在终端的当前文件夹 建立一个新的 proto文件夹, 进入文件夹,捕捉 上层文件夹中的proto-7.7.md5文件, 文件中的md5对应的 网址中的md5文件,并用,wget命令下载全部到proto文件夹, 4.1.2.3, 命令: as_root() {   if   [ $EUID = 0 ];        then $*   elif [ -x /usr/bin/sudo ]; then sudo $*   else                            su -c \\"$*\\"   fi  } export -f as_root 因为安装中的命令有一个环境应用,as_root, 此命令是定义as_root,并且要求以超级用户的身份来安装程序。 bash -e 进入子终端,(我这里没有什么反义,不过还是找此步骤操作) 4.1.2.4, 命令: for package in $(grep -v '^#' ../proto-7.7.md5 | awk '{print $2}') do   packagedir=${package%.tar.bz2}   tar -xf $package   pushd $packagedir   ./configure $XORG_CONFIG   as_root make install   popd   rm -r $packagedir done 循环软件包, 捕捉 上层文件夹中proto-7.7.md5文件中的文件名,逐个解压所有的 tar.bz2的文件,然后逐个进入, 执行安装命令./configure $XORG_CONFIG 超级用户 make install 安装完成后删除目录 到此,Xorg Protocol Headers 已经完成安装了,安装的路径是/usr/local, 所以,安装完成后, 为了方便其他程序可以找到此库文件,配置地址很重要,用宏命令 LD_LIBRARY_PATH 和 PKG_CONFIG_PATH 来配置, 4.1.2.5, LD_LIBRARY_PATH是配置链接库文件的路径,*.so *.a 等后缀的文件地址,我们没有设置$XORG_PREFIX 和 $XORG_CONFIG, 所以默认的是/usr/local, 那么配置LD_LIBRARY_PATH的路径就是 /usr/local/lib # LD_LIBRARY_PATH=/usr/local/lib 或者 # export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH 功能是一样的,查看是否配置成功,必须加$符号, # echo $LD_LIBRARY_PATH  /usr/local/lib    /* 显示这样的地址就是已经配置的地址 */   PKG_CONFIG_PATH是配置*.pc文件的命令,是pkg-config命令的终端环境宏命令,一般软件的库文件都已一个*.pc的文件,内包含相关软件的路径, 头文件和库文件的地址,(比如CFLAGS=/usr/locoal/include  LIBS=/usr/local/lib), 而*.pc的文件一般都放在../../lib/pkgconfig 库文件夹中的pkgconfig文件夹中,所以这个地址我们应该多配置几个,用冒号间隔, # PKG_CONFIG_PATH=/usr/lib/pkgconfig:/lib/pkgconfig:/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig 其他查看和其他和LD_LIBRARY_PATH一样, 为什么要用/usr/local/share/pkgconfig,因为Xorg Protocol Headers 有一个库文件是安装到了../../share中的。 注意:如果安装过程中出现异样,重新执行命令即可。 4.1.3, makedepend-1.0.4   http://xorg.freedesktop.org/releases/individual/util/makedepend-1.0.4.tar.bz2 依赖 Xorg Protocol Headers, (我们刚刚完成了安装和配置) 安装步骤: ./configure $XORG_CONFIG && make make install 4.1.4, libXau-1.0.7  http://xorg.freedesktop.org/releases/individual/lib/libXau-1.0.7.tar.bz2 依赖 Xorg Protocal Headers 安装步骤: ./configure $XORG_CONFIG && make make install 4.1.4, libXdmcp-1.1.1   http://xorg.freedesktop.org/releases/individual/lib/libXdmcp-1.1.1.tar.bz2 依赖 Xorg Protocal Headers 安装步骤: ./configure $XORG_CONFIG && make make install 4.1.5, libpthread-stubs-0.3  http://xcb.freedesktop.org/dist/libpthread-stubs-0.3.tar.bz2 安装步骤: ./configure --prefix=/usr/local && make make install 4.1.6, xcb-proto-1.8  http://xcb.freedesktop.org/dist/xcb-proto-1.8.tar.bz2 依赖关系: Python-2.7.3 4.1.6.1, Python-2.7.3 http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tar.xz 依赖关系: (建议安装)expat-2.1.0 and libffi-3.0.11 expat-2.1.0 http://downloads.sourceforge.net/expat/expat-2.1.0.tar.gz 安装步骤: ./configure --prefix=/usr/local && make make install libffi-3.0.11 ftp://sourceware.org/pub/libffi/libffi-3.0.11.tar.gz 安装步骤: ./configure --prefix=/usr/local && make make install Python-2.7.3的安装步骤:(注意,所有sed命令,不允许直接复制到终端,否则出现安装错误) sed -i "s/ndbm_libs = \[\]/ndbm_libs = ['gdbm', 'gdbm_compat']/" setup.py && ./configure --prefix=/usr/local \             --enable-shared     \             --with-system-expat \             --with-system-ffi   \             --enable-unicode=ucs4 && make make install && chmod -v 755 /usr/local/lib/libpython2.7.so.1.0 如果检测python --version的版本不是2.7.3,链接python2.7 -> python # ln -sv /usr/local/bin/python2.7 /usr/bin/python 如果出现找不到 libpython2.7.so.1.0, 复制 libpython2.7.so.1.0 到 /usr/lib # cp /usr/local/lib/libpython2.7.so.1.0 /usr/llib 即可。 4.1.6, xcb-proto-1.8  http://xcb.freedesktop.org/dist/xcb-proto-1.8.tar.bz2 依赖关系: Python-2.7.3, (已经安装,) 安装步骤: ./configure $XORG_CONFIG make install 4.1.7,libxcb-1.9  http://xcb.freedesktop.org/dist/libxcb-1.9.tar.bz2 以来关系:(只有libxslt-1.1.28没有安装) libXau-1.0.7, libXdmcp-1.1.1, libpthread-stubs-0.3, libxslt-1.1.28, and xcb-proto-1.8  4.1.7.1,libxslt-1.1.28 http://xmlsoft.org/sources/libxslt-1.1.28.tar.gz 依赖关系: 需要:libxml2-2.9.0 libxml2-2.9.0 http://xmlsoft.org/sources/libxml2-2.9.0.tar.gz 安装步骤: ./configure --prefix=/usr/local --disable-static && make make install libxslt-1.1.28 安装步骤: ./configure --prefix=/usr/local --disable-static && make make install 4.1.7.1,libxslt-1.1.28 安装步骤: ./configure $XORG_CONFIG --enable-xinput --docdir='${datadir}'/doc/libxcb-1.9 && make make install 4.1.8,Xorg Libraries  依赖关系: (没有安装Fontconfig-2.10.2 ) Fontconfig-2.10.2, Xorg Protocol Headers, libXdmcp-1.1.1, and libxcb-1.9   4.1.8.1,Fontconfig-2.10.2  http://fontconfig.org/release/fontconfig-2.10.2.tar.bz2 依赖关系:(没有安装 FreeType-2.4.11)  FreeType-2.4.11 and either expat-2.1.0 or libxml2-2.9.0    FreeType-2.4.11  http://downloads.sourceforge.net/freetype/freetype-2.4.11.tar.bz2 安装步骤: (注意,所有sed命令的操作不可以复制,否则会出现错误) sed -i -r 's:.*(#.*SUBPIXEL.*) .*:\1:' \           include/freetype/config/ftoption.h && ./configure --prefix=/usr --disable-static && make make install 4.1.8.1,Fontconfig-2.10.2  安装步骤: ./configure --prefix=/usr/local \             --sysconfdir=/etc \             --localstatedir=/var \             --docdir=/usr/share/doc/fontconfig-2.10.2 \             --disable-docs \             --disable-static && make make install 4.1.8,Xorg Libraries  安装步骤: (和Xorg Protocol Headers 的安装步骤一样,不再详细解释,) 4,1,8,1, cat > lib-7.7.md5 << "EOF" 84c66908cf003ad8c272b0eecbdbaee3  xtrans-1.2.7.tar.bz2 78b4b3bab4acbdf0abcfca30a8c70cc6  libX11-1.5.0.tar.bz2 71251a22bc47068d60a95f50ed2ec3cf  libXext-1.3.1.tar.bz2 645f83160cf7b562734e2038045106d1  libFS-1.0.4.tar.bz2 471b5ca9f5562ac0d6eac7a0bf650738  libICE-1.0.8.tar.bz2 766de9d1e1ecf8bf74cebe2111d8e2bd  libSM-1.2.1.tar.bz2 7a773b16165e39e938650bcc9027c1d5  libXScrnSaver-1.2.2.tar.bz2 a6f137ae100e74ebe3b71eb4a38c40b3  libXt-1.1.3.tar.bz2 a4efff8de85bd45dd3da124285d10c00  libXmu-1.1.1.tar.bz2 7ae7eff7a14d411e84a67bd166bcec1a  libXpm-3.5.10.tar.bz2 f39942f2cab379fc9b4c3731bf191b84  libXaw-1.0.11.tar.bz2 678071bd7f9f7467e2fc712d81022318  libXfixes-5.0.tar.bz2 a60e0b5c276d0aa9e2d3b982c98f61c8  libXcomposite-0.4.3.tar.bz2 ee62f4c7f0f16ced4da63308963ccad2  libXrender-0.9.7.tar.bz2 52efa81b7f26c8eda13510a2fba98eea  libXcursor-1.1.13.tar.bz2 44774e1a065158b52f1a0da5100cebec  libXdamage-1.1.3.tar.bz2 a2a861f142c3b4367f14fc14239fc1f7  libfontenc-1.1.1.tar.bz2 6851da5dae0a6cf5f7c9b9e2b05dd3b4  libXfont-1.4.5.tar.bz2 78d64dece560c9e8699199f3faa521c0  libXft-2.3.1.tar.bz2 2a689ae1089786a6712ce9e2c2c7c7ca  libXi-1.6.2.tar.bz2 cb45d6672c93a608f003b6404f1dd462  libXinerama-1.1.2.tar.bz2 0c843636124cc1494e3d87df16957672  libXrandr-1.4.0.tar.bz2 80d0c6d8522fa7a645e4f522e9a9cd20  libXres-1.0.6.tar.bz2 e8abc5c00c666f551cf26aa53819d592  libXtst-1.2.1.tar.bz2 5e1ac203ccd3ce3e89755ed1fbe75b0b  libXv-1.0.7.tar.bz2 3340c99ff556ea2457b4be47f5cb96fa  libXvMC-1.0.7.tar.bz2 b7f38465c46e7145782d37dbb9da8c09  libXxf86dga-1.1.3.tar.bz2 ffd93bcedd8b2b5aeabf184e7b91f326  libXxf86vm-1.1.2.tar.bz2 782ced3a9e754dfeb53a8a006a75eb1a  libdmx-1.1.2.tar.bz2 399a419ac6a54f0fc07c69c9bdf452dc  libpciaccess-0.13.1.tar.bz2 19e6533ae64abba0773816a23f2b9507  libxkbfile-1.0.8.tar.bz2 EOF 4,1,8,2 mkdir lib && cd lib && grep -v '^#' ../lib-7.7.md5 | awk '{print $2}' | wget -i- -c \     -B http://xorg.freedesktop.org/releases/individual/lib/ && md5sum -c ../lib-7.7.md5 4,1,8,3 as_root() {   if   [ $EUID = 0 ];        then $*   elif [ -x /usr/bin/sudo ]; then sudo $*   else                            su -c \\"$*\\"   fi  } export -f as_root bash -e 4,1,8,4, for package in $(grep -v '^#' ../lib-7.7.md5 | awk '{print $2}') do   packagedir=${package%.tar.bz2}   tar -xf $package   pushd $packagedir   case $packagedir in     libXfont-[0-9]* )       ./configure $XORG_CONFIG --disable-devel-docs     ;;     libXt-[0-9]* )       ./configure $XORG_CONFIG \                   --with-appdefaultdir=/etc/X11/app-defaults     ;;     * )       ./configure $XORG_CONFIG     ;;   esac   make   as_root make install   popd   rm -r $packagedir   as_root /sbin/ldconfig done 如果安装是出现异常,重复操作命令即可。 到此,Xorg Libraries 源代码级别安装完成,参考 www.linuxfromscratch.org.

标签: rm7a传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台