2025年6月7日 星期六

Install Cadence Virtuoso



















 Step 1: Download all the required files. 

In this case, we need to download the following files:

  • IC_06.18.350_linux_1of4.tgz
  • IC_06.18.350_linux_2of4.tgz
  • IC_06.18.350_linux_3of4.tgz
  • IC_06.18.350_linux_4of4.tgz

Step2: Extrac & Installation

1. Create /opt/EDA directory, you need to use root permission.

Before we begin, we can check the content of /opt directory:

# ls -l /opt

total 0

It shows there is nothing inside. Then we can create /opt/EDA directory:


# mkdir -p /opt/EDA
# ls -l /opt
total 4
drwxr-xr-x 2 root root 4096  3月  7 10:03 EDA

Now you can see that we've already created /opt/EDA directory.

** You only need to do this once **


Extract virtuoso to /opt/EDA directory, please go to your download directory, then type the following commands:

# tar xfva IC_06.18.350_linux_1of4.tgz -C /opt/EDA
./IC/cur
./IC/IC_06.18.350/Hotfix_IC06.18.350_lnx86.sdp
./IC/IC_06.18.350/ic_index.sdx
./IC/IC_06.18.350/IC_README
./IC/IC_06.18.350/IC_ReleaseInfo.pdf
./IC/IC_06.18.350/tools
..

The above command is to extract IC_06.18.350_linux_1of4.tgz to /opt/EDA directory. If there is no error message (no output)

# tar xfva IC_06.18.350_linux_2of4.tgz -C /opt/EDA
# tar xfva IC_06.18.350_linux_3of4.tgz -C /opt/EDA
# tar xfva IC_06.18.350_linux_4of4.tgz -C /opt/EDA

When all the 4 files are extracted & installed. We can proceed to Config Env. step.

Step 3. Config Env.

I usually put bashrc_eda in /opt/EDA directory for everyone to use.

Config /etc/hosts, and add the following lines in it.

140.126.24.16     lshc
140.110.140.29    lstc
140.110.127.149   lstn


Step: 4. Test

Before we run virtuoso, we need to load the configuration file, please run
the following command:

$ source /opt/EDA/bashrc_eda

If you do not load the config file (bashrc_eda), you will see errors like
this:

$ virtuoso
-bash: virtuoso: command not found

$ virtuoso
-bash: /opt/EDA/IC/cur/tools/dfII/bin/virtuoso: cannot execute: required file not found


Basically, virtuoso is installed. However, there are a lot of errors that
need to be fixed. Thus, we are going to Trouble shooting section.

Step. 5: Trouble shooting

We are going to troubleshoot errors one by one.

Error1:
$ virtuoso
-bash: /opt/EDA/IC/cur/tools/dfII/bin/virtuoso: cannot execute: required file not found

Solution:

# cd /bin
# ls -l sh
lrwxrwxrwx 1 root root 4  1月  5  2023 sh -> dash
# rm sh
# ln -s /bin/bash sh
# ls -l sh
lrwxrwxrwx 1 root root 9  3月  7 11:34 sh -> /bin/bash
First, we need to change the softlink of /bin/sh to /bin/bash, not to use
/bin/dash anymore.

# # apt-get install csh ksh
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  ksh93u+m
Suggested packages:

  binfmt-support
The following NEW packages will be installed:
  csh ksh ksh93u+m
0 upgraded, 3 newly installed, 0 to remove and 1 not upgraded.
Need to get 1,175 kB of archives.
After this operation, 3,675 kB of additional disk space will be used.
Do you want to continue? [Y/n] Y \Enter

..


Once you have installed csh & ksh, you may run virtuoso again:

$ virtuoso
2025/03/07 11:36:06 System is not a supported distribution
2025/03/07 11:36:06 An error occurred. We don't recognize OS
2025/03/07 11:36:06 WARNING This OS does not appear to be a Cadence supported Linux configuration.
2025/03/07 11:36:06 For more info, please run CheckSysConf in <cdsRoot/tools.lnx86/bin/checkSysConf <productId>
/opt/EDA/IC/cur/tools/dfII/bin/64bit/virtuoso: error while loading shared libraries: libcrypto.so.10: cannot open shared object file: No such file or directory


This time, it shows another error message which is different than the prior
error message. This means that we have solve the prior error. However, we've
encountered another error here.

-- Missing libcrypto.so.10 --


================================

1. Upgrade our system
We need to upgrade our system at least once per week. Please use root
permission to run the following commands:

# apt-get update
# apt-get upgrade

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages will be upgraded:
  chromium chromium-common chromium-sandbox google-chrome-stable
4 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 98.6 MB/213 MB of archives.
After this operation, 98.3 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://security.debian.org/debian-security bookworm-security/main amd64 chromium amd64 134.0.6998.88-1~deb12u1 [78.3 MB]
Get:2 http://security.debian.org/debian-security bookworm-security/main amd64 chromium-sandbox amd64 134.0.6998.88-1~deb12u1 [101 kB]
Get:3 http://security.debian.org/debian-security bookworm-security/main amd64 chromium-common amd64 134.0.6998.88-1~deb12u1 [20.2 MB]
Fetched 97.2 MB in 4s (27.4 MB/s)          
讀取改變紀錄(changelogs)... 完成
(Reading database ... 345343 files and directories currently installed.)
Preparing to unpack .../google-chrome-stable_134.0.6998.88-1_amd64.deb ...
Unpacking google-chrome-stable (134.0.6998.88-1) over (134.0.6998.35-1) ...
Preparing to unpack .../chromium_134.0.6998.88-1~deb12u1_amd64.deb ...
Unpacking chromium (134.0.6998.88-1~deb12u1) over (134.0.6998.35-1~deb12u1) ...
Preparing to unpack .../chromium-sandbox_134.0.6998.88-1~deb12u1_amd64.deb ...
Unpacking chromium-sandbox (134.0.6998.88-1~deb12u1) over (134.0.6998.35-1~deb12u1) ...
Preparing to unpack .../chromium-common_134.0.6998.88-1~deb12u1_amd64.deb ...
Unpacking chromium-common (134.0.6998.88-1~deb12u1) over (134.0.6998.35-1~deb12u1) ...
Setting up google-chrome-stable (134.0.6998.88-1) ...
Setting up chromium-sandbox (134.0.6998.88-1~deb12u1) ...
Setting up chromium-common (134.0.6998.88-1~deb12u1) ...
Setting up chromium (134.0.6998.88-1~deb12u1) ...
Processing triggers for mailcap (3.70+nmu1) ...
Processing triggers for desktop-file-utils (0.26-1) ...
Processing triggers for hicolor-icon-theme (0.17-2) ...
Processing triggers for libc-bin (2.36-9+deb12u9) ...
Processing triggers for man-db (2.11.2-2) ...
Processing triggers for menu (2.1.49) ...


Once you complete system upgrade (patch), you may run the same commands again:

# apt-get update
# apt-get upgrade



================
$ virtuoso
2025/03/14 09:50:29 System is not a supported distribution
2025/03/14 09:50:29 An error occurred. We don't recognize OS 
2025/03/14 09:50:29 WARNING This OS does not appear to be a Cadence supported Linux configuration.
2025/03/14 09:50:29 For more info, please run CheckSysConf in <cdsRoot/tools.lnx86/bin/checkSysConf <productId>
/opt/EDA/IC/cur/tools/dfII/bin/64bit/virtuoso: error while loading shared libraries: libcrypto.so.10: cannot open shared object file: No such file or directory

We can go to packages.debian.org to search libcrypto.so.10, and it shows this
file is inside nsight-systems-target package. Thus, we need to install 
nsight-systems-target:

# apt-get install nsight-systems-target

If you are unable to locate nsight-systems-target, you need to modify your 
Debian apt setting:

# cd /etc/apt
# vi sources.list
deb http://140.117.166.164/bookworm/ bookworm main contrib non-free non-free-firmware

deb http://140.117.166.164/bookworm/ bookworm-updates main contrib non-free non-free-firmware


You need to add "contrib non-free" into your download setting. Then type:

# apt-get update
# apt-get install nsight-systems-target

You maybe able to install this file now. 

Now, you can run virtuoso again:

$ virtuoso
2025/03/14 10:09:03 System is not a supported distribution
2025/03/14 10:09:03 An error occurred. We don't recognize OS 
2025/03/14 10:09:03 WARNING This OS does not appear to be a Cadence supported Linux configuration.
2025/03/14 10:09:03 For more info, please run CheckSysConf in <cdsRoot/tools.lnx86/bin/checkSysConf <productId>
/opt/EDA/IC/cur/tools/dfII/bin/64bit/virtuoso: error while loading shared libraries: libcrypto.so.10: cannot open shared object file: No such file or directory

However, the same error message appears. Why ?

If you look at the packages.debian.org website, you can see the the full path
of libcrypto.so.10 is:

/usr/lib/x86_64-linux-gnu/nsight-systems/target-linux-x64/CollectX/libcrypto.so.10

You need to add /usr/lib/x86_64-linux-gnu/nsight-systems/target-linux-x64/CollectX  for virtuoso to find libcrypto.so.10.

We can use temporary solution:

$ env | grep LD
LD_LIBRARY_PATH=/opt/EDA/IC/cur/tools/lib:/opt/EDA/IC/cur/tools/dfII/lib

Your current library path is like above, we can add one more path:

$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/x86_64-linux-gnu/nsight-systems/target-linux-x64/CollectX

The you can verify it:

$ env | grep LD
LD_LIBRARY_PATH=/opt/EDA/IC/cur/tools/lib:/opt/EDA/IC/cur/tools/dfII/lib:/usr/lib/x86_64-linux-gnu/nsight-systems/target-linux-x64/CollectX

Now you have the path in the LD_LIBRARY_PATH setting, and you can run:

$ virtuoso
2025/03/14 10:12:27 System is not a supported distribution
2025/03/14 10:12:27 An error occurred. We don't recognize OS 
2025/03/14 10:12:27 WARNING This OS does not appear to be a Cadence supported Linux configuration.
2025/03/14 10:12:27 For more info, please run CheckSysConf in <cdsRoot/tools.lnx86/bin/checkSysConf <productId>
/opt/EDA/IC/cur/tools/dfII/bin/64bit/virtuoso: error while loading shared libraries: libdb-4.7.so: cannot open shared object file: No such file or directory

We can see that this time it didn't show the error message. However, another
error message appears:


***** 
If you need to make permanent modification, you need to modify 
/opt/EDA/bashrc_eda, and change the setting like this:

LD_LIBRARY_PATH="/opt/EDA/IC/cur/tools/lib:/opt/EDA/IC/cur/tools/dfII/lib:/usr/lib/x86_64-linux-gnu/nsight-systems/target-linux-x64/CollectX"

Next time, you don't need to set LD_LIBRARY_PATH manually. When you source 
/opt/EDA/bashrc_eda file, it will be loaded automatically.

*****


$ virtuoso
2021/01/26 12:03:12 System is not a supported distribution
2021/01/26 12:03:12 An error occurred. We don't recognize OS
2021/01/26 12:03:12 WARNING This OS does not appear to be a Cadence supported Li
nux configuration.
2021/01/26 12:03:12 For more info, please run CheckSysConf in <cdsRoot/tools.lnx
86/bin/checkSysConf <productId>
/opt/EDA/IC/cur/tools/dfII/bin/64bit/virtuoso: error while loading shared librar
ies: libaprutil-1.so.0: cannot open shared object file: No such file or director
y


Solution:

# apt-get install libaprutil1


$ virtuoso
2025/03/14 10:12:27 System is not a supported distribution
2025/03/14 10:12:27 An error occurred. We don't recognize OS 
2025/03/14 10:12:27 WARNING This OS does not appear to be a Cadence supported Linux configuration.
2025/03/14 10:12:27 For more info, please run CheckSysConf in <cdsRoot/tools.lnx86/bin/checkSysConf <productId>
/opt/EDA/IC/cur/tools/dfII/bin/64bit/virtuoso: error while loading shared libraries: libdb-4.7.so: cannot open shared object file: No such file or directory

Now we see this error shows that libdb-4.7.so is missing. However, this file
can not be found in packages.debian.org. You may go to 
/usr/lib/x86_64-linux-gnu directory and run:

# cd /usr/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu # ls -l libdb-*
-rw-r--r-- 1 root root 1843792  117  2023 libdb-5.3.so

There is a file called libdb-5.3.so, which is a newer version of libdb.

We can create a soft link for libdb-4.7.so#

/usr/lib/x86_64-linux-gnu # ln -s libdb-5.3.so libdb-4.7.so
/usr/lib/x86_64-linux-gnu # ls -l libdb-*
lrwxrwxrwx 1 root root      12  314 10:51 libdb-4.7.so -> libdb-5.3.so
-rw-r--r-- 1 root root 1843792  117  2023 libdb-5.3.so

Then you can run:

$ virtuoso
2025/03/14 10:51:53 System is not a supported distribution
2025/03/14 10:51:53 An error occurred. We don't recognize OS 
2025/03/14 10:51:53 WARNING This OS does not appear to be a Cadence supported Linux configuration.
2025/03/14 10:51:53 For more info, please run CheckSysConf in <cdsRoot/tools.lnx86/bin/checkSysConf <productId>
dlopen failed to open 'libdl.so'


If you find libdl.so in packages.debian.org, there is nothing.

However, if you go to /usr/lib/x86_64-linux-gnu directory

# cd /usr/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu # ls -l libdl*
-rw-r--r-- 1 root root     8 111 20:42 libdl.a
-rw-r--r-- 1 root root 14480 111 20:42 libdl.so.2

There is a file called libdl.so.2, so we need to create a soft link for it:

/usr/lib/x86_64-linux-gnu # ln -s libdl.so.2 libdl.so
/usr/lib/x86_64-linux-gnu # ls -l libdl*
-rw-r--r-- 1 root root     8 111 20:42 libdl.a
lrwxrwxrwx 1 root root    10  314 10:58 libdl.so -> libdl.so.2
-rw-r--r-- 1 root root 14480 111 20:42 libdl.so.2


Then you may run virtuoso again:

$ virtuoso

This time, virtuoso can be executed (If you are lucky.)


沒有留言:

張貼留言