在Ubuntu16.04.3下用安装工具InstallScape装好IC617和MMSIM151后,在home目录启动virtuoso
virtuoso &
出现如下错误:
WARNING: HOST <eda> DOES NOT APPEAR TO BE A CADENCE SUPPORTED LINUX CONFIGURATION.
For More Info, Please Run '<cdsroot>/tools.lnx86/bin/checkSysConf' <productId>.
virtuoso: ERROR: The command /opt/cadence/IC617/share/oa/bin/sysname returned an error status:
unknown
virtuoso: INFO: Note that OpenAccess (OA) requires running the Configure phase.
virtuoso: See the "OpenAccess Installation and Configuration Guide" before
virtuoso: you complete the configuration step. This manual is included with
virtuoso: the Cadence product documentation.
出现这个问题的原因是Cadence不支持当前的Linux主机,也就是不支持Ubuntu16.04。
按照博客https://blog.csdn.net/u012939880/article/details/92377433修改相关文件后并没有解决我的问题。
循着这篇博客的思路,我分析了文件/opt/cadence/IC617/share/oa/bin/sysname,按照如下步骤进行改动:
- 编辑文件sysname
sudo gedit /opt/cadence/IC617/share/oa/bin/sysname
- 找到以下代码
check_linux() {
sysnames=$sysname
version=`uname -r`
machine=`uname -m`
if [ -f "/etc/redhat-release" ]
then
longVersion=`cat /etc/redhat-release`
elif [ -f "/etc/SuSE-release" ]
then
longVersion=`cat /etc/SuSE-release`
elif [ -f "/etc/os-release" ]
then
longVersion=`grep PRETTY_NAME /etc/os-release | sed -e 's/.*"\(.*\)"/\1/'`
else
longVersion="UNKNOWN Linux"
fi
case $machine in
ia64 )
sysname="linux_rhas21_ia64$compiler"; sysnames="$sysname $sysnames";;
*86 | *86_64 )
case $version in
2.4.* )
# RHEL 2, RHEL 3
compiler="_gcc411"
sysname="linux_rhel30$compiler"; sysnames="$sysname $sysnames";;
2.6.[0-9]-* )
# RHEL 4, SLES 9
compiler="_gcc44x"
sysname="linux_rhel40$compiler"; sysnames="$sysname $sysnames";;
2.6.*)
# RHEL 5, RHEL 6, SLES 10, SLES 11, SLES 11 SP1
if [ "$OA_COMPILER" = "" ] ; then
compiler="_gcc48x";
fi
sysname="linux_rhel50$compiler"; sysnames="$sysname $sysnames";;
3.*)
# RHEL 7, SLES 11 SP2, SLES 12, Ubuntu 14
if [ "$OA_COMPILER" = "" ] ; then
compiler="_gcc48x";
fi
sysname="linux_rhel50$compiler"; sysnames="$sysname $sysnames";;
* )
check_global;;
esac;;
*)
check_global;;
esac
}
上述代码的功能是识别你的Linux系统版本,可以看到最高只到了3.x,而Ubuntu16.04的Linux内核版本为4.16(使用uname -a命令查看),因此我们要加上一个条件分支4.x。
- 复制3.*)以及后面的五行语句,另起一行粘贴,然后把粘贴后的3改为4,这样就修改完成了。
4.*)
# Ubuntu 16
if [ "$OA_COMPILER" = "" ] ; then
compiler="_gcc48x";
fi
sysname="linux_rhel50$compiler"; sysnames="$sysname $sysnames";;
改动完成后的文件如下图所示:
保存文件并关闭。
回到home目录,运行virtuoso能够正常打开(首次启动可能会比较慢,耐心等待界面出现)。