1. Download We need to download the newest version of CustomExplorer. The downloaded file name is: customexplorer_2024.09-sp2_linux.tgz 2. Extract & Install We need to use root permission to run: # tar xfva customexplorer_2024.09-sp2_linux.tgz -C /opt/EDA It will extract it to /opt/EDA/customexplorer 3. Config Env. CustomExplorer="/opt/EDA/customexplorer/cur/bin" export PATH=$PATH:$CustomExplorer LM_LICENSE_FILE=26585@lstn export LM_LICENSE_FILE 4. Test $ cx 5. Trouble Shooting $ cx 'spice_explorer' license is checked out for WaveView ADV feature. Info: Could not load the Qt platform plugin "xcb" in "" even though it was found. (:0, ) Fatal: This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem. Available platform plugins are: minimal, offscreen, webgl, xcb. (:0, ) Since we can not use Ctrl+c to quit this command. We need to use kill command to kill the PID of cx. $/# ps aux |grep cx # ps aux|grep cx herman 266633 0.0 0.0 7420 3428 pts/9 S+ 10:02 0:00 /bin/bash /opt/EDA/customexplorer/cur/bin/cx root 268047 0.0 0.0 6688 2212 pts/4 S+ 10:09 0:00 grep cx We can see the PID of cx command is 266633. Then we can use the following command to kill this process: $/# kill -9 266633 The we can run : $ ls -lt |more total 349532 -rw-r--r-- 1 herman herman 4096 4月 25 10:02 sxcmd.log .. There is a file called sxcmd.log which is the running log of cx. We can check the contents inside: ### WaveView ADV log file, revision W-2024.09-SP1 (build Nov 27, ) ### ### created at 10:02:33 on Fri Apr 25 2025 (Linux AMD64) ### ### Host Name: f6018-15 User ID: herman PID: 266652 ### wv_start_log # (0) running in waveview only mode # (0) SW_SX_PERL_LIB defined # (0) SW_SX_TCL_LIB defined # (0) HOME defined # (0) # TYPE S abort # (0) # memory usage 433.99MB # (0) 0x910945 /opt/EDA/customexplorer/cur/platforms/linux64/bin/wv() [0x910945] # (0) 0x910EE5 /opt/EDA/customexplorer/cur/platforms/linux64/bin/wv() [0x910ee5] # (0) 0x4B65B04F /lib/x86_64-linux-gnu/libc.so.6(+0x3c04f) [0x7ff74b65b04f] # (0) 0x4B6A9EEC /lib/x86_64-linux-gnu/libc.so.6(+0x8aeec) [0x7ff74b6a9eec] # (0) 0x4B65AFB1 /lib/x86_64-linux-gnu/libc.so.6(gsignal+0x11) [0x7ff74b65afb1] # (0) 0x4B645471 /lib/x86_64-linux-gnu/libc.so.6(abort+0xd2) [0x7ff74b645471] # (0) 0x4889C9BE /opt/EDA/customexplorer/cur/platforms/linux64/lib/libQt5Core.so.5(_ZNK14QMessageLogger5fatalEPKcz+0xb6) [0x7ff74889c9be] # (0) 0x491313C2 /opt/EDA/customexplorer/cur/platforms/linux64/lib/libQt5Gui.so.5(_ZN22QGuiApplicationPrivate25createPlatformIntegrationEv+0x18f2) [0x7ff7491313c2] # (0) 0x4913182F /opt/EDA/customexplorer/cur/platforms/linux64/lib/libQt5Gui.so.5(_ZN22QGuiApplicationPrivate21createEventDispatcherEv+0x2f) [0x7ff74913182f] .. We can see that the cx command is actually /opt/EDA/customexplorer/cur/platforms/linux64/bin/wv Then we can check this file: $ cd /opt/EDA/customexplorer/cur/platforms/linux64/bin/ /opt/EDA/customexplorer/cur/platforms/linux64/bin $ ls wv -rwxr-xr-x 1 herman herman 44596312 11月 27 09:16 wv /opt/EDA/customexplorer/cur/platforms/linux64/bin $ file wv wv: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, stripped We can us ldd command to check the dynamically linked file (library) for wv: /opt/EDA/customexplorer/cur/platforms/linux64/bin # ldd wv linux-vdso.so.1 (0x00007fffc73bc000) libNPI.so => not found libndna.so => not found libnffr.so => not found libnffw.so => not found libnsys.so => not found libvirtuos_sh.so => not found libcdsCommon_sh.so => not found libfastt_sh.so => not found libcls_sh.so => not found libcdsenvutil.so => not found libcdsenvxml.so => not found libblosc.so.1 => not found libz_sh.so => not found libpsf.so => not found libsrr.so => not found libQt5Gui.so.5 => not found libQt5Core.so.5 => not found libQt5Sql.so.5 => not found libQt5Xml.so.5 => not found libQt5Widgets.so.5 => not found libQt5Svg.so.5 => not found libQt5X11Extras.so.5 => not found libQt5Network.so.5 => not found libicui18n.so.60 => not found libicuuc.so.60 => not found libicudata.so.60 => not found libssl.so.1.1 => not found libcrypto.so.1.1 => not found libXmu.so.6 => /lib/x86_64-linux-gnu/libXmu.so.6 (0x00007f4219874000) libfontconfig.so.1 => /lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007f4219829000) librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f4219822000) libXi.so.6 => /lib/x86_64-linux-gnu/libXi.so.6 (0x00007f421980e000) libXrandr.so.2 => /lib/x86_64-linux-gnu/libXrandr.so.2 (0x00007f4219801000) libX11.so.6 => /lib/x86_64-linux-gnu/libX11.so.6 (0x00007f42196bf000) libxcb.so.1 => /lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f4219695000) libXext.so.6 => /lib/x86_64-linux-gnu/libXext.so.6 (0x00007f4219680000) libfreetype.so.6 => /lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007f42195b4000) libXrender.so.1 => /lib/x86_64-linux-gnu/libXrender.so.1 (0x00007f42195a7000) libSM.so.6 => /lib/x86_64-linux-gnu/libSM.so.6 (0x00007f421959c000) libICE.so.6 => /lib/x86_64-linux-gnu/libICE.so.6 (0x00007f421957e000) libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f4219200000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f4219579000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f4219572000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f4219492000) libxml2.so.2 => /lib/x86_64-linux-gnu/libxml2.so.2 (0x00007f4219054000) libNCX.so => not found libsqlite3.so.0 => /lib/x86_64-linux-gnu/libsqlite3.so.0 (0x00007f4218ef5000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f4218d14000) /lib64/ld-linux-x86-64.so.2 (0x00007f42198ae000) libXt.so.6 => /lib/x86_64-linux-gnu/libXt.so.6 (0x00007f4219426000) libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007f4218ce9000) libXau.so.6 => /lib/x86_64-linux-gnu/libXau.so.6 (0x00007f4219421000) libXdmcp.so.6 => /lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f4218a00000) libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f4218cca000) libpng16.so.16 => /lib/x86_64-linux-gnu/libpng16.so.16 (0x00007f4218c94000) libbrotlidec.so.1 => /lib/x86_64-linux-gnu/libbrotlidec.so.1 (0x00007f4218c87000) libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007f4218c7d000) libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0 (0x00007f4218c67000) libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f4218c47000) libicuuc.so.72 => /lib/x86_64-linux-gnu/libicuuc.so.72 (0x00007f4218802000) liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007f4218c18000) libbrotlicommon.so.1 => /lib/x86_64-linux-gnu/libbrotlicommon.so.1 (0x00007f42187df000) libmd.so.0 => /lib/x86_64-linux-gnu/libmd.so.0 (0x00007f4218c0b000) libicudata.so.72 => /lib/x86_64-linux-gnu/libicudata.so.72 (0x00007f4216a00000) Now, we can find missing DLLs from packages.debian.org libQt5Gui.so.5 -> libqt5gui5 libQt5Sql.so.5 -> libqt5sql5 libQt5Xml.so.5 -> libqt5xml5 We can install the missing files and verify it again: # apt-get install libqt5gui5 libqt5sql5 libqt5xml5 We can find the rest of the missing files to run cx libNPI.so => not found libndna.so => not found libnffr.so => not found libnffw.so => not found libnsys.so => not found libvirtuos_sh.so => not found libcdsCommon_sh.so => not found libfastt_sh.so => not found libcls_sh.so => not found libcdsenvutil.so => not found libcdsenvxml.so => not found libblosc.so.1 => not found libz_sh.so => not found libpsf.so => not found libsrr.so => not found All these files can not be found in packages.debian.org. However, you can find these files using the following commands: # cd /opt/EDA/customexplorer/cur /opt/EDA/customexplorer/cur # find ./ -name libNPI.so ./platforms/linux64/lib/libNPI.so /opt/EDA/customexplorer/cur # find ./ -name libndna.so ./platforms/linux64/lib/libndna.so and so on.. Thus, all these files are included in CustomExplorer. We don't need to install it manually.
Dr. Lee's blog
這是一個專注於 Linux 與個人教學經驗的部落格,我會陸陸續續將我的個人經驗上傳與讀者分享。
2025年6月8日 星期日
Install CustomExplorer
Install TSMC N16 ADFP PDK
1. Extract TSMC N16 ADFP tar file TSMC N16 ADFP (Academic Design Foster Package) is an advance process design kit provided by TSMC. It is used for academic only, and only some universities is licensed to use it. NSYSU is one of them. In order to use TSMC N16 ADFP in virtuoso ICADVM, we need to extract it to our home directory. Please use your account to run $ tar xfva N16ADFP_iPDK.tar -C ~/ It will extract all files to your ~/N16ADFP_iPDK 2. Create a new library $ cd ~/N16ADFP_iPDK ~/N16ADFP_iPDK$ source /opt/EDA/bashrc_icadvm ~/N16ADFP_iPDK$ virtuoso We can create a new ADFP library using "Attach to an existing technology library", and attach it to tsmcN16. Then you can create you own new library. 3. Test run Now, we can create a new inv layout view to see whether it has calibre on it or not. There is no calibre in the menu list. We need to add calibre to the menu list. Before we continue, we need to exit ICADVM first. 4. Integrate calibre into virtuoso ICADVM 4.1 check CALIBRE_HOME environment variable: $ env | grep CALI CALIBRE_HOME=/opt/EDA/calibre/cur You should see an environment variable called CALIBRE_HOME 4.2 edit .cdsinit ~/N16ADFP_iPDK$ vi .cdsinit load( strcat( getShellEnvVar("CALIBRE_HOME") "/shared/pkgs/icv/tools/queryskl/calibre.skl" )) and save it. *** If .cdsinit does not exists, you need to create a new one *** After this configuration, we can run virtuoso again. 5. Test run again. ~/N16ADFP_iPDK$ virtuoso & If your .cdsinit file is correct, you should see the following messages: // // Calibre Skill Interface * (v2024.4_12.9) * // // Copyright Siemens 1996-2020 // 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. // // Now, we can open an inv layout view to see the menu list. However, if you run virtuoso from other directory. You may not be able to use calibre inside virtuoso. Because .cdsinit file is only effective form the directory you start virtuoso. Thus you need to create/copy .cdsinit file form ~/N16ADFP_iPDK directory. The command is : ~$ cp ~/N16ADFP_iPDK/.cdsinit . Then you can run virtuoso again.
Install Calibre
1. Download We can download the following files from TSRI: calibre_aoj_cal_2024.4_12.9_linux_1of4.tgz calibre_aoj_cal_2024.4_12.9_linux_2of4.tgz calibre_aoj_cal_2024.4_12.9_linux_3of4.tgz calibre_aoj_cal_2024.4_12.9_linux_4of4.tgz Please be noted that this version is "aoj" version. There are different calibre versions released by Siemens. You may refer to https://calibre.mentorcloudservices.com/docs/Calibre_OS_Roadmap.htm to see their differences. 2. Extract & Install # tar xfva calibre_aoj_cal_2024.4_12.9_linux_1of4.tgz -C /opt/EDA # tar xfva calibre_aoj_cal_2024.4_12.9_linux_2of4.tgz -C /opt/EDA # tar xfva calibre_aoj_cal_2024.4_12.9_linux_3of4.tgz -C /opt/EDA # tar xfva calibre_aoj_cal_2024.4_12.9_linux_4of4.tgz -C /opt/EDA 3. Config Env. 3.1 Env setting. Calibrebin="/opt/EDA/calibre/cur/bin" PATH="/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:$Calibrebin" #Mentor License Setup MGLS_LICENSE_FILE=1717@lsncku MGC_HOME=/opt/EDA/calibre/cur CALIBRE_HOME=/opt/EDA/calibre/cur MGC_TMPDIR=/tmp MGC_LOCATION_MAP=NO_MAP export USE_CALIBRE_VCO=aoj export MGC_HOME CALIBRE_HOME MGC_TMPDIR MGC_LOCATION_MAP MGLS_LICENSE_FILE LM_LICENSE_FILE=1717@lsncku export PATH LM_LICENSE_FILE 3.2 Link to virtuoso ?? 4. Test $ source /opt/EDA/bashrc_eda $ calibre -gui & Invalid operating system environment, VENDOR=unknown OS VERSION=12 $ export USE_CALIBRE_VCO=aoj $ calibre -gui &
Discussion of TSRI configuration files
Discussion of TSRI configuration files
======= Cadence environment In virtuoso download web page, we can see that there are some additional files provided by TSRI, which are: installation_guide_cadence.txt CIC.tar installation_guide_cadence.txt is to describe how to install EDA tools using TSRI way. CIC.tar is the environment setting. Basically, they are all C shell script. We can use the following command to extract CIC.tar: $ cat CIC.tar | tar xfv - Then it will extract a CIC directory. Then we can take a look inside. $ cd CIC CIC $ ls assura.cshrc ext.cshrc integrand.cshrc pegasus.cshrc ssv.cshrc ccd.cshrc genus.cshrc jasper.cshrc pvs.cshrc stratus.cshrc confrml.cshrc ic6.cshrc liberate.cshrc quantus.cshrc tempus.cshrc ctos.cshrc icadvm.cshrc license.cshrc rc.cshrc verisium.cshrc ddi.cshrc ic.cshrc mmsim.cshrc sigrity.cshrc vmanager.cshrc edi.cshrc incisiv.cshrc modus.cshrc spb.cshrc xcelium.cshrc ets.cshrc innovus.cshrc neocircuit.cshrc spectre.cshrc Inside this directory, there are some files relating to our environment setting so far: ic6.cshrc -> IC 6 icadvm.cshrc -> ICADVM ic.cshrc -> IC 5141 license.cshrc -> License Check, we need to check the license check port. Basically, all cadence EDA softwares use 5280 port in TSRI environment One day, if you want to write a program or a shell script. Please remember KISS principle. K eep I t S imple S tupid == Why should we use Bash not CSH You can type $ env |grep SHELL bash Basically all Linux operation system use bash as it's default SHELL environment. However, TSRI provide only CSH setting. Thus I rewrite all the configurations to bash. And it is much more easier to debug. ==================================== ======= Synopsys environment If you check HSPICE Download web page, you will also see the following files: installation_guide_synopsys.txt -> Installation guide for Synopsys software. TCAD_CIC.tar -> This is the setting file for TCAD, we don't use it. CIC.tar -> This is the configurations files for Synopsys software. We can use the same command to extract CIC.tar: $ tar xfva CIC.tar $ cd CIC CIC $ ls 3dicc.cshrc icv.cshrc protocompiler.cshrc adp.cshrc icv_wb.cshrc qatk.cshrc architect.cshrc identify.cshrc rtl_arch.cshrc asip.cshrc laker.cshrc siliconsmart.cshrc certify.cshrc laker_oa.cshrc spyglass.cshrc coreconsultant.cshrc lc.cshrc star-rcxt.cshrc cosmos_scope.cshrc license.cshrc synopsys_dc.setup.18 customcompiler.cshrc license_TCAD.cshrc synopsys_dc.setup.35 customexplorer.cshrc milkyway.cshrc synplify.cshrc dsoai.cshrc mwdt.cshrc synthesis.cshrc dwip.cshrc nanosim.cshrc tcad.cshrc euclide.cshrc optocompiler.cshrc tmax.cshrc fc.cshrc optodesigner.cshrc vc_formal.cshrc finesim.cshrc pa_virtualizer.cshrc vcs.cshrc formality.cshrc powrep.cshrc vcs-mx.cshrc hercules.cshrc primepower.cshrc vera.cshrc hsimplus.cshrc primerail.cshrc verdi.cshrc hspice.cshrc primesim.cshrc verdi-ncverilog.cshrc icc2.cshrc primetime.cshrc verdi-vcs.cshrc icc.cshrc primewave.cshrc xa.cshrc hspice.cshrc -> HSPICE setting license.cshrc -> License setting, in this file, we can see that Synopsys's License check port is 265865. You need to remember it. If you need to check Cadence & Synopsys Licenses, you need to configure your environment like this: LM_LICENSE_FILE=5280@lstn:26585@lstn export LM_LICENSE_FIL
Install Synopsys HSpice
Install Synopsys HSPICE
1. Download Please download the newest version of HSPICE, the file name is hspice_2024.09-sp1_linux.tgz 2. Extract/Install Please use root permission to run: # tar xfva hspice_2024.09-sp1_linux.tgz -C /opt/EDA This procedure will extract and install hspice to /opt/EDA/hspice directory. 3. Config Env. 3.1 We need to add more info to our bashrc_eda. Please all the following contents: Hspice="/opt/EDA/hspice" Hspicebin="/opt/EDA/hspice/cur/hspice/bin" PATH="/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:$Hspicebin" LM_LICENSE_FILE=26585@lstn export PATH LM_LICENSE_FILE 3.2 Modify hspice.ini # cd /opt/EDA/hspice/cur/hspice /opt/EDA/hspice/cur/hspice # cat hspice.ini * READING FILE: /usr/cad/synopsys/hspice/cur/hspice/W-2024.09-SP1/hspice/hspice.ini .prot .option + search=/usr/cad/synopsys/hspice/cur/hspice/W-2024.09-SP1/hspice/parts/ad + search=/usr/cad/synopsys/hspice/cur/hspice/W-2024.09-SP1/hspice/parts/behave + search=/usr/cad/synopsys/hspice/cur/hspice/W-2024.09-SP1/hspice/parts/bjt + search=/usr/cad/synopsys/hspice/cur/hspice/W-2024.09-SP1/hspice/parts/burr_brn + search=/usr/cad/synopsys/hspice/cur/hspice/W-2024.09-SP1/hspice/parts/comlinear + search=/usr/cad/synopsys/hspice/cur/hspice/W-2024.09-SP1/hspice/parts/dio + search=/usr/cad/synopsys/hspice/cur/hspice/W-2024.09-SP1/hspice/parts/fet + search=/usr/cad/synopsys/hspice/cur/hspice/W-2024.09-SP1/hspice/parts/lin_tech + search=/usr/cad/synopsys/hspice/cur/hspice/W-2024.09-SP1/hspice/parts/pci + search=/usr/cad/synopsys/hspice/cur/hspice/W-2024.09-SP1/hspice/parts/signet + search=/usr/cad/synopsys/hspice/cur/hspice/W-2024.09-SP1/hspice/parts/ti + search=/usr/cad/synopsys/hspice/cur/hspice/W-2024.09-SP1/hspice/parts/tline + search=/usr/cad/synopsys/hspice/cur/hspice/W-2024.09-SP1/hspice/parts/xilinx **** add any user options, parameters, model includes, **** subcircuit includes or libraries here .unprot We can see that the hspice directory settin is not /opt/EDA/hspice. Thus we need to fix it. Please run the following command: # export INST_DIR1=/opt/EDA/hspice/cur # /opt/EDA/hspice/cur/hspice/bin/config This step is very important because if you don't modify hspice.ini. It may not find some files when you run simulation. 4. We can run $ source /opt/EDA/bashrc_eda to load our EDA environment setting Then run $ hspice PrimeSim HSPICE (R) Version W-2024.09-SP1 for linux64 - Dec 02, 2024 9404553 Copyright (c) 1986 - 2024 Synopsys, Inc. This software and the associated documentation are proprietary to Synopsys, Inc. This software may only be used in accordance with the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, or distribution of this software is strictly prohibited. Licensed Products communicate with Synopsys servers for the purpose of providing software updates, detecting software piracy and verifying that customers are using Licensed Products in conformity with the applicable License Key for such Licensed Products. Synopsys will use information gathered in connection with this process to deliver software updates and pursue software pirates and infringers. .. system -version Outputs PrimeSim HSPICE version information -include_last Insert the specified file in the end of the input file -include_first Insert the specified file in the beginning of the input file -info Outputs PrimeSim HSPICE supported TMI information -container Runs Primesim HSPICE in container Enter input file name: This means that HSPICE is wating for your input file (SPICE netlist). If you have an inv.sp. You can run: $ hspice inv.sp to run simulation directory. Using: /opt/EDA/hspice/2024.09-sp1/hspice/linux64/hspice inv.sp ****** PrimeSim HSPICE -- W-2024.09-SP1 linux64 (Dec 01 2024 9404553) ****** Copyright (c) 1986 - 2025 by Synopsys, Inc. All Rights Reserved. This software and the associated documentation are proprietary to Synopsys, Inc. This software may only be used in accordance with the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, or distribution of this software is strictly prohibited. Input File: inv.sp Command line options: /opt/EDA/hspice/2024.09-sp1/hspice/linux64/hspice inv.sp Start time: Fri Mar 21 10:33:45 2025 .. peak memory used 488.35 megabytes total cpu time 0.03 seconds total elapsed time 1.20 seconds job started at 10:33:45 03/21/2025 job ended at 10:33:46 03/21/2025 >info: ***** hspice job concluded job total runtime 1.20 seconds lic: Release hspice token(s) lic: total license checkout elapse time: 1.16(s) We can see that hspice job concluded which means our hspice is running successfully.
Install Laker
1. Download Please download newest lake installation file: laker_2024.12_linux.tgz 2. Extract & Install # tar xfva laker_2024.12_linux.tgz -C /opt/EDA This will extract laker to /opt/EDA/laker directory 3. Config Env. Add the following settings to /opt/EDA/bashrc_eda Lakerbin="/opt/EDA/laker/cur/bin" PATH="/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:$Lakerbin" LM_LICENSE_FILE=5229@lstn 4. Test $ source /opt/EDA/bashrc_eda $ laker & /opt/EDA/laker/cur/platform/LINUX64/bin/laker: error while loading shared libraries: libpng12.so.0: cannot open shared object file: No such file or directory We can search libpng12.so.0 in packages.debian.org. However, you can't find any result. If you search libpng, you will get libpng16 file. We can also use the following command to find out what is installed in our system ? $ dpkg -l | grep libpng ii libpng-dev:amd64 1.6.39-2 amd64 PNG library - development (version 1.6) ii libpng-tools 1.6.39-2 amd64 PNG library - tools (version 1.6) ii libpng16-16:amd64 1.6.39-2 amd64 PNG library - runtime (version 1.6) Maybe we can use soft link to solve this problem like libdb ? Let's go to shared library directory: # cd /usr/lib/x86_64-linux-gnu/ /usr/lib/x86_64-linux-gnu# ls -l libpng* -rw-r--r-- 1 root root 354122 11月 28 2022 libpng16.a lrwxrwxrwx 1 root root 19 11月 28 2022 libpng16.so -> libpng16.so.16.39.0 lrwxrwxrwx 1 root root 19 11月 28 2022 libpng16.so.16 -> libpng16.so.16.39.0 -rw-r--r-- 1 root root 219056 11月 28 2022 libpng16.so.16.39.0 lrwxrwxrwx 1 root root 10 11月 28 2022 libpng.a -> libpng16.a lrwxrwxrwx 1 root root 11 11月 28 2022 libpng.so -> libpng16.so # /usr/lib/x86_64-linux-gnu# ln -s libpng16.so.16.39.0 libpng12.so.0 lrwxrwxrwx 1 root root 19 3月 28 09:42 libpng12.so.0 -> libpng16.so.16.39.0 -rw-r--r-- 1 root root 354122 11月 28 2022 libpng16.a lrwxrwxrwx 1 root root 19 11月 28 2022 libpng16.so -> libpng16.so.16.39.0 lrwxrwxrwx 1 root root 19 11月 28 2022 libpng16.so.16 -> libpng16.so.16.39.0 -rw-r--r-- 1 root root 219056 11月 28 2022 libpng16.so.16.39.0 lrwxrwxrwx 1 root root 10 11月 28 2022 libpng.a -> libpng16.a lrwxrwxrwx 1 root root 11 11月 28 2022 libpng.so -> libpng16.so Now, we can run laker again: /opt/EDA/laker/cur/platform/LINUX64/bin/laker: /lib/x86_64-linux-gnu/libpng16.so.16: version `PNG12_0' not found (required by /opt/EDA/laker/cur/platform/LINUX64/bin/libQtGui.so.4) We can see from the output that laker demands PNG12_0 not PNG16. Thus we really need to install libpng12 file. Before we find & install libpng12 file. We need to remove libpng12.so.0 softlink. /usr/lib/x86_64-linux-gnu# rm libpng12.so.0 ========================= How do we find libpng12 file ? We can google libpng12 debian and it show that we can go to Debian archive website to download it. The directory is: https://archive.debian.org/debian-security/pool/updates/main/libp/libpng/ And the download link is: https://archive.debian.org/debian-security/pool/updates/main/libp/libpng/libpng12-0_1.2.50-2+deb8u2_amd64.deb We can use wget command to download: # wget https://archive.debian.org/debian-security/pool/updates/main/libp/libpng/libpng12-0_1.2.50-2+deb8u2_amd64.deb And it will grab libpng12-0_1.2.50-2+deb8u2_amd64.deb Normally, we can install a .deb file by using dpkg command: # dpkg -i libpng12-0_1.2.50-2+deb8u2_amd64.deb Selecting previously unselected package libpng12-0:amd64. dpkg: regarding libpng12-0_1.2.50-2+deb8u2_amd64.deb containing libpng12-0:amd64, pre-dependency problem: libpng12-0 pre-depends on multiarch-support multiarch-support is not installed. dpkg: error processing archive libpng12-0_1.2.50-2+deb8u2_amd64.deb (--install): pre-dependency problem - not installing libpng12-0:amd64 Errors were encountered while processing: libpng12-0_1.2.50-2+deb8u2_amd64.deb The above message shows that libpng requires multiarch-support to install. However, we don't know whether multiarch-support depends on other packages or not. Thus we need to extract and install libng manually. # unar libpng12-0_1.2.50-2+deb8u2_amd64.deb libpng12-0_1.2.50-2+deb8u2_amd64.deb: Ar debian-binary (4 B)... OK. control.tar.gz (1303 B)... OK. data.tar.xz (171112 B)... OK. # cd libpng12-0_1.2.50-2+deb8u2_amd64 ~/libpng12-0_1.2.50-2+deb8u2_amd64# tar xfva data.tar.xz ./ ./lib/ ./lib/x86_64-linux-gnu/ ./lib/x86_64-linux-gnu/libpng12.so.0.50.0 ./usr/ ./usr/share/ ./usr/share/doc-base/ ./usr/share/doc-base/libpng12 ./usr/share/doc/ ./usr/share/doc/libpng12-0/ ./usr/share/doc/libpng12-0/changelog.Debian.gz ./usr/share/doc/libpng12-0/changelog.gz ./usr/share/doc/libpng12-0/README.gz ./usr/share/doc/libpng12-0/libpng-1.2.50.txt.gz ./usr/share/doc/libpng12-0/copyright ./usr/share/doc/libpng12-0/README.Debian ./usr/share/doc/libpng12-0/KNOWNBUG ./usr/share/doc/libpng12-0/ANNOUNCE ./usr/share/doc/libpng12-0/TODO ./usr/lib/ ./usr/lib/x86_64-linux-gnu/ ./lib/x86_64-linux-gnu/libpng12.so.0 ./usr/lib/x86_64-linux-gnu/libpng12.so.0 We can see that there is a ./usr/lib/x86_64-linux-gnu/libpng12.so.0 exists. This is what we need to run laker. We need to copy it to /usr/lib/x86_64-linux-gnu directory ~/libpng12-0_1.2.50-2+deb8u2_amd64# cp -a ./lib/x86_64-linux-gnu/libpng12.so.0* /usr/lib/x86_64-linux-gnu/ # ls -l /usr/lib/x86_64-linux-gnu/libpng12* lrwxrwxrwx 1 root root 18 1月 8 2016 /usr/lib/x86_64-linux-gnu/libpng12.so.0 -> libpng12.so.0.50.0 -rw-r--r-- 1 root root 158616 1月 8 2016 /usr/lib/x86_64-linux-gnu/libpng12.so.0.50.0 After we installed libpng12 manually, we can run $ laker & This time, laker should be able to executed successfully. export PATH LM_LICENSE_FILE
Upgrade Debian Linux from 12.9 to 12.10
1. Upgrade Debian Linux from 12.9 to 12.10
# cat /etc/debian_version 12.9 # apt-get update # apt-get upgrade # cat /etc/debian_version 12.10 # uname -a Linux edaTC 6.1.0-31-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.128-1 (2025-02-07) x86_64 GNU/Linux # apt-get install linux-image-amd64 # reboot # uname -a $ uname -a Linux edaTC 6.1.0-32-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.129-1 (2025-03-06) x86_64 GNU/Linux
訂閱:
文章 (Atom)