在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 63654|回复: 158

在Ubuntu上设置并运行Calibre2014的终极解决方案,本方案对其他类似问题也应该有帮助

[复制链接]
发表于 2014-10-3 02:46:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

x
前几天我在另一贴中提到Mentor今年发布的最新版Calibre2014在Ubuntu上面因为不能通过Mentor支持的OS检测而不能运行(license和patch是没有问题的),而以前的Calibre2013之类的老版本则可以继续毫无问题地运行。众所周知Mentor与其他一些EDA公司如Cadence对其发布的众多设计软件只支持维护RHEL和SLES两个Linux系统,其他一些从这两个100%衍生出来的Linux如CentOS、Scientific以及Oracle Linux也应该能毫无问题运行这些软件。而对于像Ubuntu这类最大众化的Linux则需要做一点小小的附加工作也同样可以完好运行这些软件,因为毕竟Linux就其本质来说内核是统一的,差别只是在桌面等上层建筑,这些都是可以找出方法规避的。下面我就针对Mentor的这个新版Calibre2014在Ubuntu上面的设置及完全运行做一个深入解释——你根本不会想到解决方案是如此简单!——Solution's so easy, unbelievable。

针对Calibre2014上面提到的这个问题,我花了点时间对其在$CALIBRE_HOME/pkgs/calibre_base/bin中执行这个OS检测的两个script文件进行了仔细研究,发觉其主要作用是在系统的/etc目录中寻找redhat-release或SuSe-release这两个文件并提取OS版本参数。而Ubuntu在系统/etc目录中对应的则是os-release这个文件,其具体内容如下(我的系统为Kubuntu 14.04——也就是KDE plasma桌面的Ubuntu,除了不是GNOME桌面外,与Ubuntu完全一致):
NAME="Ubuntu"
VERSION="14.04.1 LTS, Trusty Tahr"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 14.04.1 LTS"
VERSION_ID="14.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
我又在VirtualBox上面安装了最新版CentOS 7,对其/etc进行检查发现其中的两个东西:centos-release和redhat-release,这个redhat-relase只是个symlink链接指向centos-release这个文件,而centos-release这个文件的内容只有一行字:CentOS Linux release 7.0.1406 (Core) 。我们知道CentOS是100%从RHEL衍生过来的,因而可以完全运行Mentor的Calibre2014,/etc中的这个redhat-release链接就是起到与RHEL兼容的这个作用。那么现在的问题很清楚了,我们也要将我们的Ubuntu“兼容”到RHEL,方法是很简单而有效的——就是在Ubuntu系统目录/etc中制作一个redhat-release或者SuSe-release文件来欺骗Caliber2014这类软件的OS检测程序,使其误以为这是在RHEL或者SLES上面运行!这个redhat-release或SuSe-release不会干扰Ubuntu的os-release,因为Ubuntu只认自己的os-release。为简单起见,我们就做一个redhat-relase。因为坛上下载的Calibre2014安装文件以ixl开头只能在RHEL的5系列上运行,我们就采用最新版的RHEL5.12,所以这个redhat-release的内用就是一行字:Red Hat Enterprise Linux release 5.12 (若下载的Calibre2014安装文件是以aoi开头,则需要将5改变为6至9中的一个,比如6.x) 将这个redhat-release文件移至系统目录/etc,并更改其用户权限:sudo chown root:root /etc/redhat-release 以及 sudo chmod 644 /etc/redhat-release
然后在我以前的帖子http://bbs.eetop.cn/thread-452284-1-1.html中的那个cadence的script中对Calibre相应的环境变量和指令做相应的更改如下:
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Mentor Graphics Calibre
#
# MGC_HOME environment variable has been deprecated in favor
# of CALIBRE_HOME, so MGC_HOME is not set here.
#
# .cdsinit in the working directory should be modified for Calibre to
# be integrated into Cadence menu bar.
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
export CALIBRE_HOME=/opt/mentor/Calibre2014/ixl_cal_2014.1_17.12
export MGLS_LICENSE_FILE=9688@ThinkPad-T510
export PATH=$CALIBRE_HOME/bin{PATH}
export MGC_LIB_PATH=$CALIBRE_HOME/lib

#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Mentor Environment Checking
#
# Note: CALIBRE_SKIP_OS_CHECKS and its predecessor SKIP_OS_CHECKS
# are deprecated and should not be used.
#
# Level 1 suppresses and ignores all warning messages; writes non-fatal error
# messages to stdout and continues execution.
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
export CALIBRE_OS_MSG_LEVEL=1

#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# This variable enables Calibre Interactive to save all GUI settings to a runset
# including default values for future re-run
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
export MGC_CALIBRE_SAVE_ALL_RUNSET_VALUES=1

#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Set up socket connection with virtuoso schematic or layout viewer
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
export MGC_CALIBRE_SCHEMATIC_SERVER=ThinkPad-T510:9199
export MGC_CALIBRE_LAYOUT_SERVER=ThinkPad-T510:9189

#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Set up foundry DFM PATH for Calibre - XXXXXXX process
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
export TSMC_CAL_DFM_PATH=/opt/PDKs/tsmc/XXXXXXX/Calibre/lvs/DFM

#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Start up Mentor license server
#
# The license server should be started prior to launching Calibre tools
# or they won't work and the license error will be shown.
#
# Also make a symlink to /tmp in /usr (run "sudo ln -s /tmp tmp" in /usr),
# to prevent the following error message showing up on terminal:
# (mgcld) Can't make directory /usr/tmp/.flexlm, errno: 2(No such file or directory)
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
$CALIBRE_HOME/bin/lmgrd -c $CALIBRE_HOME/shared/license/license.dat

And now, a moment of truth "Woah"——终端上cd到project目录并执行:./cadence启动运行Virtuoso以及所有安装的程序。打开一个cell的layout view editor,在virtuoso工具栏上的Calibre菜单中执行Run DRC、Run DFM、Run LVS、Run PERC、Run PEX、Start RVE,例如执行Run DRC时在virtuoso的CIW上显示如下:

//  Calibre layout-server initialized successfully at socket 9189, host ThinkPad-T510.

//  Calibre Interactive - DRC  v2014.1_17.12    Thu Feb 27 15:53:54 PST 2014

//

//        Copyright Mentor Graphics Corporation 1996-2014

//                       All Rights Reserved.

//   THIS WORK CONTAINS TRADE SECRET AND PROPRIETARY INFORMATION

//      WHICH IS THE PROPERTY OF MENTOR GRAPHICS CORPORATION

//        OR ITS LICENSORS AND IS SUBJECT TO LICENSE TERMS.

//

//  Mentor Graphics software executing under x86-64 Linux

//

//  Running on Linux ThinkPad-T510 3.13.0-36-generic #63-Ubuntu SMP Wed Sep 3 21:30:07 UTC 2014 x86_64

//  64 bit virtual addressing enabled

//

//  Starting time: Fri Oct  3 01:54:19 2014

//

//  mgc_s license acquired (calinteractive requested).

//  Calibre Interactive authorized.


见证了Calibre2014在Ubuntu上的无缝完整运行,no errors, no warnings and no whatsoever abnormals! 

下面简单总结Calibre2014在Ubuntu上面安装、设置及运行的步骤:
1) 将下载的Calibre2014安装文件ixl_cal_2014.1_17.12.mib.exe移至目标目录,比如说/opt/mentor/Calibre2014,并在终端上运行指令:sudo ./ixl_cal_2014.1_17.12.mib.exe启动安装程序并按照提示步骤完成安装;
2) 将这个patch压缩包: patch.rar (291.81 KB, 下载次数: 2175 )  解压并移至/opt/mentor/Calibre2014,并按照readme.txt的说明对ixl_cal_2014.1_17.12目录进行patch;
3) 对这个压缩包: license.rar (508.61 KB, 下载次数: 2389 )  解压,按照其中的readme.txt说明生成license.dat并移至相应的目录;
4) 按照上面的方法制作redhat-release文件并移至系统/etc目录,并更改用户权限;
5) 对cadence这个script中有关Calibre的环境变量及指令做修改
6) 运行cadence这个script启动运行Virtuoso环境及其软件(包括Calibre在内)

综上所述,我们只需生成redhat-release这个文件就可以使Calibre2014(以及所有其他采用类似OS检测的EDA软件)在Ubuntu(以及所有其他非EDA厂商官方支持的)Linux上面运行,根本不必对软件本身做任何修改!
发表于 2014-10-3 13:23:37 | 显示全部楼层
看来大家和我一样,都喜欢将/opt独立分区,都喜欢将软件安装在/opt下面,我硬盘500G,/ 根目录20G,/boot128M,/opt目录80G,其他的就全分给/home目录了。呵呵。
发表于 2014-10-4 12:36:08 | 显示全部楼层
回复 1# min4max
这个必须要顶啊。
发表于 2014-10-4 18:06:35 | 显示全部楼层
Very Good!
 楼主| 发表于 2014-10-4 21:34:49 | 显示全部楼层




    我的500G硬盘没有细分,只是在最初安装Linux时分成主分区和swap分区。swap好像是4G左右,其他全部是主分区,因为很难预测以后使用时各个分区实际用量。比如说若当初将/opt细分出来的话,你给个80G现在肯定是不够的。光Cadence的软件现在就有60几个G(而且全是单一没有重复的东西)。还没有将所有PDK全部装上,只是装了目前使用的,若全部装上PDK大概就有20多G。还有其他EDA软件没有算上。
 楼主| 发表于 2014-10-4 22:14:00 | 显示全部楼层
上面制作的redhat-release方式是全盘解决方式。但我更喜欢使用下面这种个案case by case的方式,这样更加安全而不会对其他应用软件产生影响(若其他应用软件也有这种OS检测的话):将上面制作的那个redhat-release文件的文件名改成fake-redhat-release,再将$CALIBRE_HOME/pkgs/calibre_base/bin中Caliber2014执行这个OS检测的script脚本calibre_vco中有关redhat-release部分改成fake-redhat-release——也就是将calibre_vco中的 major_rev=`grep release /etc/redhat-release 2>/dev/null \ 这句改成 major_rev=`grep release /etc/fake-redhat-release 2>/dev/null \ 这个效果与上面的全盘解决方案是完全相同的,只不过这里需要对Calibre2014的OS检测这部分进行改动。这种个案解决方案的好处就是防止了其他应用软件的OS检测功能(若有的话)有可能将redhat-release(redhat-relaese毕竟是真实存在的一个Linux版本,但不会有任何软件会将fake-redhat-release当成真的更不会去寻找这个fake文件)当真而将RHEL做为系统而不是Ubuntu——结果就是应用软件终止运行(因为其不能找到RHEL相关的东西)。所以以后若有其他EDA软件也有这类OS检测的话,则可以将其检测程序中的redhat-release同样改成fake-redhat-release即可。
发表于 2014-10-4 22:22:49 | 显示全部楼层


前几天我在另一贴中提到Mentor今年发布的最新版Calibre2014在Ubuntu上面因为不能通过Mentor支持的OS检测而不 ...
min4max 发表于 2014-10-3 02:46




   请上传calibre2014 谢谢
 楼主| 发表于 2014-10-4 22:28:26 | 显示全部楼层
回复 7# tedazsx


    坛上已经有啊:
http://bbs.eetop.cn/thread-454255-1-1.html
发表于 2014-10-8 16:56:15 | 显示全部楼层
多谢楼主,高手啊
发表于 2014-10-9 08:22:59 | 显示全部楼层
回复 1# min4max


   生成license时什么都不产生,提示如下图是怎么回事?非常感谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-3-29 15:22 , Processed in 0.038072 second(s), 12 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表