2020年4月22日 星期三

2020/04/23 安裝 Cadence 5141

如何安裝 IC5141

目前 IC5141 的安裝檔案如下:

IC_51.41.151_linux_1of2.tgz
IC_51.41.151_linux_2of2.tgz

安裝指令如下:

# tar xfva IC_51.41.151_linux_1of2.tgz -C /opt/EDA/cadence
# tar xfva IC_51.41.151_linux_2of2.tgz -C /opt/EDA/cadence

安裝完畢後會出現 IC51.41.151 這個新的目錄

請至 /opt/EDA/cadence/IC 目錄中執行底下指令:

/opt/EDA/cadence/IC # rm cur
/opt/EDA/cadence/IC # ln -s IC51.41.151 cur

作完之後我們可以使用一般權限來執行 icfb (IC 5141 的啟動指令不是 virtuoso),
此時會出現底下錯誤訊息:

$ icfb&

[1] 11843
eecs@120-117-72-30:~$ /opt/EDA/cadence/IC/cur/tools/dfII/bin/icfb: 列 17: /opt/EDA/cadence/IC/cur/tools/bin/cds_root: 沒有此一檔案或目錄

系統的訊息是說 /opt/EDA/cadence/IC/cur/tools/bin/cds_root 不存在,但是我們執行

ls -l /opt/EDA/cadence/IC/cur/tools/bin/cds_root

有看到檔案。因此我們可以來 file cds_root 這個檔案,其輸出如下:

/opt/EDA/cadence/IC/cur/tools/bin$ file cds_root
cds_root: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.2.5, not stripped

從上面輸出我們可以看到 cds_root 是 32 位元的可執行檔,接下來可以看目前系統是否
有支援 32 位元模式,指令如下:

# dpkg --print-foreign-architectures
armhf
armel
arm64

這邊沒有看到 i386,因此我們要手動新增 i386 支援,指令如下:

# dpkg --add-architecture i386

新增 386 版之後再安裝 libc6:i386 套件以支援 386 可執行檔。

# apt-get update
# apt-get install libc6:i386

此時再執行 icfb 可以看到底下訊息:

$ icfb&
[1] 12318
eecs@120-117-72-30:~$ /opt/EDA/cadence/IC/cur/tools/dfII/bin/icfb.exe: error while loading shared libraries: libXt.so.6: cannot open shared object file: No such file or directory

此時檢查 libxt6 會發現此套件已安裝,但是 icfb.exe 還是找不到,原因如下:

$ file /opt/EDA/cadence/IC/cur/tools/dfII/bin/icfb.exe
/opt/EDA/cadence/IC/cur/tools/dfII/bin/icfb.exe: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.2.5, with debug_info, not stripped, too many notes (256)

系統告訴我們 icfb.exe 的可執行檔是 i386 版,因此要安裝 i386 版的 libxt6 才可以,
請執行:

# apt-get install libxt6:i386

2020/04/23 安裝 Synopsys ADP

Synopsys ADP

ADP (The Laker Advanced Design Platform) 原本是 Springsoft 的產品,其功能為電路圖繪製 (Schematic Capture),後來 SpringSoft 賣給 Synopsys,因此目前 ADP 為 Synopsys 公司之產品,本工具可以搭配 Laker 使用。

下載

至下載網頁下載目前最新版本之 ADP,其檔案為:

adp_2016.12-3_linux.tgz

解壓縮

# tar xfva adp_2016.12-3_linux.tgz -C /opt/EDA

設定環境

在 .bashrc 中新增底下設定

LakerADP="/opt/EDA/adp/cur/bin"

export PATH="$PATH:$LakerADP"

至於 License Server 的設定方式與 Laker 相同,因此無需再設定。

測試

執行 adp 啟動工具,並畫 inv 的 schematic,以測試其編輯功能都沒有問題。

在我們的例子中要打絕對路徑才能執行 adp,所以請執行

/opt/EDA/adp/cur/bin/adp

啟動 adp。

除錯

在啟動 adp 時會出現底下錯誤:

$ adp
/opt/EDA/adp/cur/platform/LINUX64/bin/adp: error while loading shared libraries: libXp.so.6: cannot open shared object file: No such file or directory

這是表示 adp 在執行時需要 libXp.so.6 這個動態連結函式庫才可以執行,不幸的是這個函式庫在 Debian 10 中已經不見了,我們往前找會發現在 Debian Jessie 版中有這個檔案,位於 libXp6 的套件中,因此我們手動將此檔下載,下載網址是:

http://ftp.tw.debian.org/debian/pool/main/libx/libxp/libxp6_1.0.2-2_amd64.deb

下載完畢後再以 root 權限手動執行安裝,指令如下:

# dpkg -i libxp6_1.0.2-2_amd64.deb
選取了原先未選的套件 libxp6:amd64。
dpkg: 包含 libxp6:amd64 的 libxp6_1.0.2-2_amd64.deb 中的預先相依問題:
 libxp6 預先相依於 multiarch-support
  multiarch-support 沒有被安裝。

dpkg: error processing archive libxp6_1.0.2-2_amd64.deb (--install):
 預先相依問題 - 不會安裝 libxp6:amd64
處理時發生錯誤:
 libxp6_1.0.2-2_amd64.deb

上述錯誤訊息是說我們沒有安裝 multiarch-support,因此我們要再安裝此套件:

# apt-get install multiarch-support

然後再執行:

# dpkg -i libxp6_1.0.2-2_amd64.deb

如此一來即可完成 libXp6 套件的安裝。接下可以再測試 adp 執行是否正確:

$ adp

2020年4月15日 星期三

如何以批次的方式來分割、格式化硬碟

如何以批次的方式來分割、格式化硬碟

1. 清空目前隨身碟/記憶卡上面的所有分割區

# dd if=/dev/zero of=/dev/sdb bs=512 count=1

2. 撰寫 fdisk 指令

把 fdisk 用來分割硬碟的指令另存新檔叫作 fdisk.cmd,其內容如下:

n
p
1

+100M
t
b
n
p
2


w

3. 手動操作

# dd if=/dev/zero of=/dev/sdb bs=512 count=1    -> 清空分割區
# fdisk /dev/sdb < fdisk.cmd                    -> 批次分割硬碟
# fdisk -lu /dev/sdb                            -> 檢視成果
# mkdosfs    /dev/sdb1
# mkfs.ext4  /dev/sdb2

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

4. 自動格式化硬碟

目的:
1. 指定隨身碟的編號
2. 指定第一個分割區的大小
3. 自動分割
4. 自動格式化

5. 寫成 script 來作自動化

vi createusb.sh

其內容如下:

USB=/dev/sdb

PART1=/dev/sdb1
PART2=/dev/sdb2

PART1_SIZE=200M


cat > /tmp/fdisk.cmd << EOF
n
p
1

+$PART1_SIZE
t
b
n
p
2


w
EOF

dd if=/dev/zero of=$USB bs=512 count=1

fdisk $USB < /tmp/fdisk.cmd
mkdosfs   $PART1
mkfs.ext4 -F $PART2

6.

建立一個 createusb2.sh

#1 100MB        VFAT
#2 200MB        SWAP
#3 *            EXT4