Lattice Diamond をLubuntuメニューに追加する

Lattice Diamond をLubuntuメニューに追加します。

  • 環境

Lubuntu 18.04 (LXDE) Lattice Diamond 3.12

*メニューアイテムの作成

/usr/share/applicationフォルダに Lattice Diamond.desktopファイルを新規に作成します。

[Desktop Entry]
Type=Application
Name=Lattice Diamond
Icon=/usr/local/diamond/3.12/docs/webhelp/eng/connect/Lattice_Icon.ico
Exec=/usr/local/diamond/3.12/bin/lin64/diamond
NoDisplay=false
Categories=Development;
StartupNotify=false
Terminal=false

Lattice Diamond on Ubuntu 18.04 alienを使ったインストール2

はじめに

rpmからスクリプトを抽出してインストールする方法

環境

Ubuntu 18.04.6 LTS (Bionic Beaver)

環境構築

Lattice Diamond インストール前の環境構築 これをインストールしておかないとModel Sim Lattice Edition が起動しない

sudo apt-get install csh
sudo apt-get install libxft2:i386

インストール方法

--scriptsを引数に指定してaliendebパッケージに変換します。

sudo alien --to-deb --scripts diamond_3_12-base-240-2-x86_64-linux.rpm
sudo dpkg -i diamond-3-12-base_3.12-241_amd64.deb

--installを引数に指定すれば、変換した後インストールできます。

sudo alien --to-deb --scripts --install diamond_3_12-base-240-2-x86_64-linux.rpm

サービスパックのインストール方法

サービスパックも同様にインストールします。

sudo alien --to-deb --scripts diamond_3_12-sp1-454-2-x86_64-linux.rpm
sudo dpkg -i diamond-3-10-sp3-x64_3.10-145_amd64.deb

Lattice Diamond を起動させる

cd /usr/local/diamond/3.12/bin/lin64
diamond

参考

  1. Lattice Diamond on Ubuntu 18.04 alienを使ったインストール - makimakidon’s blog
  2. Lattice Diamond on Ubuntu 18.04 アップデート - makimakidon’s blog
  3. Lattice Diamond on Ubuntu 18.04 - makimakidon’s blog

Lattice Diamond on Ubuntu 18.04 alienを使ったインストール

はじめに

rpmからスクリプトを抽出してインストールする方法 Lattice Diamond on Ubuntu 18.04 アップデート - makimakidon’s blog Lattice Diamond on Ubuntu 18.04 - makimakidon’s blog より、簡単な方法が見つかった。

インストール方法

--scriptsを引数に指定してaliendebパッケージに変換します。

sudo alien --to-deb --scripts diamond_3_10-base_x64-111-2-x86_64-linux.rpm
sudo dpkg -i diamond-3-10-base-x64_3.10-112_amd64.deb

--installを引数に指定すれば、変換した後インストールできます。

sudo alien --to-deb --scripts --install diamond_3_10-base_x64-111-2-x86_64-linux.rpm

アップデート方法

アップデートも同様に変更してインストールします。

sudo alien --to-deb --scripts diamond_3_10-sp3_x64-144-3-x86_64-linux.rpm
sudo dpkg -i diamond-3-10-sp3-x64_3.10-145_amd64.deb

Lattice Diamond on Ubuntu 18.04 アップデート

事前準備

アップデートスクリプトcp_packがcshを使用するため、cshをインストールしておきます。

 sudo apt-get install csh

作業フォルダとしてlattice_diamond_patchディレクトリを作成します。 diamond_3_10-base_x64-111-2-x86_64-linux.rpmをインストールしたフォルダ/usr/local/diamondをlattice_diamond_patchディレクトリにコピーし、ファイル属性はすべてユーザーに変更しておきます。

rpmパッケージの入手

Lattice Diamond のSoftware Update Centerでdiamond_3_10-sp3_x64-144-3-x86_64-linux.rpmをlattice_diamond_patchディレクトリにダウンロードします。

rpmパッケージの解凍

lattice_diamond_patchディレクトリで、次のコマンドを実行してファイルの内容を抽出します。

rpm2cpio *.rpm | cpio -idmv

ディレクトリ構成がlattice_diamond_patch/usr/local/diamond/spとなるように、抽出したフォルダをコピーします。 次に、RPMからインストール後のスクリプトレットが必要になります。

rpm -qp --scripts *.rpm > scripts.txt

このコマンドはすべてのスクリプトレットを出力します。 scripts.txtファイルをテキストエディタを開いて、postinstallセクションの内容をpostin.shというファイルに貼り付けます。

if [ -e /usr/local/diamond/3.10_x64/sp/cp_pack ]
then
    /usr/local/diamond/3.10_x64/sp/cp_pack 3.10 "" /usr/local
    rm -r -f /usr/local/diamond/3.10_x64/sp
fi
export temp=`rpm -ql diamond_3_10-base_x64 | head -1`
export temp1=`echo $temp | cut -f1 -d' '`
if [ "$temp" == "$temp1" ]
then
    export dir=`basename $temp`
    while [ $dir != "diamond" ]
    do
        export dir=$temp
        export temp=`dirname $dir`
        export dir=`basename $temp`
    done
    export TARGET=`dirname $temp`
else
    export TARGET=$RPM_INSTALL_PREFIX
fi
if [ $TARGET != /usr/local ]
then
    rm -r -f /usr/local/diamond/3.10_x64/bin
    rm -r -f /usr/local/diamond/3.10_x64/cae_library
    rm -r -f /usr/local/diamond/3.10_x64/data
    rm -r -f /usr/local/diamond/3.10_x64/docs
    rm -r -f /usr/local/diamond/3.10_x64/embedded_source
    rm -r -f /usr/local/diamond/3.10_x64/examples
    rm -r -f /usr/local/diamond/3.10_x64/ispfpga
    rm -r -f /usr/local/diamond/3.10_x64/module
    rm -r -f /usr/local/diamond/3.10_x64/synpbase
    rm -r -f /usr/local/diamond/3.10_x64/tcltk
    if [ -d /usr/local/diamond/3.10_x64 ]
    then
        rmdir --ignore-fail-on-non-empty /usr/local/diamond/3.10_x64
    fi
fi
if [ -e ${TARGET}/diamond/3.10_x64/sp/cp_pack ]
then
    ${TARGET}/diamond/3.10_x64/sp/cp_pack 3.10 "" ${TARGET}
    rm -r -f ${TARGET}/diamond/3.10_x64/sp
fi

postin.sh の /usr/local/の前に$PWDを追加し、rpm -ql diamond_3_10-base_x64 をrpm -ql diamond_3_10-base_x64.*.rpmに変更します。

if [ -e $PWD/usr/local/diamond/3.10_x64/sp/cp_pack ]
then
    $PWD/usr/local/diamond/3.10_x64/sp/cp_pack 3.10 "" $PWD/usr/local
    rm -r -f $PWD/usr/local/diamond/3.10_x64/sp
fi
export temp=`rpm -ql diamond_3_10-base_x64*.rpm | head -1`
export temp1=`echo $temp | cut -f1 -d' '`
if [ "$temp" == "$temp1" ]
then
export dir=`basename $temp`
while [ $dir != "diamond" ]
do
    export dir=$temp
    export temp=`dirname $dir`
    export dir=`basename $temp`
done
export TARGET=`dirname $temp`
else
export TARGET=$RPM_INSTALL_PREFIX
fi
if [ $TARGET != /usr/local ]
then
    rm -r -f $PWD/usr/local/diamond/3.10_x64/bin
    rm -r -f $PWD/usr/local/diamond/3.10_x64/cae_library
    rm -r -f $PWD/usr/local/diamond/3.10_x64/data
    rm -r -f $PWD/usr/local/diamond/3.10_x64/docs
    rm -r -f $PWD/usr/local/diamond/3.10_x64/embedded_source
    rm -r -f $PWD/usr/local/diamond/3.10_x64/examples
    rm -r -f $PWD/usr/local/diamond/3.10_x64/ispfpga
    rm -r -f $PWD/usr/local/diamond/3.10_x64/module
    rm -r -f $PWD/usr/local/diamond/3.10_x64/synpbase
    rm -r -f $PWD/usr/local/diamond/3.10_x64/tcltk
    if [ -d $PWD/usr/local/diamond/3.10_x64 ]
    then
        rmdir --ignore-fail-on-non-empty $PWD/usr/local/diamond/3.10_x64
    fi
fi
if [ -e ${TARGET}/diamond/3.10_x64/sp/cp_pack ]
then
    ${TARGET}/diamond/3.10_x64/sp/cp_pack 3.10 "" ${TARGET}
    rm -r -f ${TARGET}/diamond/3.10_x64/sp
fi

それが終わったら、ファイルを実行可能にして実行します。

chmod +x postin.sh
./postin.sh

インストール

それでは、ファイルを正しい場所にコピーしてください。

sudo cp -Rva --no-preserve=ownership ./usr/local/diamond /usr/local/

中間ステップ用に作成したlattice_diamondディレクトリは、インストールが完了したら削除できます。

Lattice Diamondの実行ファイルは以下になります。

/usr/local/diamond/3.10_x64/bin/lin64/diamond

Lattice Diamond on Ubuntu 18.04

事前準備

rpmファイルからファイルを取り出すツールをインストールします。

sudo apt-get install rpm rpm2cpio

rpmパッケージの入手

LatticeSemiconductorサイトでユーザー登録し、diamond_3_10-base_x64-111-2-x86_64-linux.rpmを入手します。 www.latticesemi.com lattice_diamondディレクトリを作成し、そのディレクトリにダウンロードします。

rpmパッケージの解凍

lattice_diamondディレクトリで、次のコマンドを実行してファイルの内容を抽出します。

rpm2cpio *.rpm | cpio -idmv

次に、RPMからインストール後のスクリプトレットが必要になります。

rpm -qp --scripts *.rpm > scripts.txt

このコマンドはすべてのスクリプトレットを出力します。 scripts.txtファイルをテキストエディタを開いて、postinstallセクションの内容をpostin.shというファイルに貼り付けます。

echo "Extracting compressed data files..."
cd $RPM_INSTALL_PREFIX/diamond/3.10_x64/bin; tar xzf bin.tar.gz; rm -f bin.tar.gz
cd $RPM_INSTALL_PREFIX/diamond/3.10_x64/cae_library; tar xzf cae_library.tar.gz; rm -f cae_library.tar.gz
cd $RPM_INSTALL_PREFIX/diamond/3.10_x64/data; tar xzf data.tar.gz; rm -f data.tar.gz
cd $RPM_INSTALL_PREFIX/diamond/3.10_x64/embedded_source; tar xzf embedded_source.tar.gz; rm -f embedded_source.tar.gz
cd $RPM_INSTALL_PREFIX/diamond/3.10_x64/examples; tar xzf examples.tar.gz; rm -f examples.tar.gz
cd $RPM_INSTALL_PREFIX/diamond/3.10_x64/ispfpga; tar xzf ispfpga.tar.gz; rm -f ispfpga.tar.gz
cd $RPM_INSTALL_PREFIX/diamond/3.10_x64/synpbase; tar xzf synpbase.tar.gz; rm -f synpbase.tar.gz
cd $RPM_INSTALL_PREFIX/diamond/3.10_x64/tcltk; tar xzf tcltk.tar.gz; rm -f tcltk.tar.gz

それが終わったら、ファイルを実行可能にして実行します。

chmod +x postin.sh  
RPM_INSTALL_PREFIX=$PWD/usr/local bash postin.sh

インストール

それでは、ファイルを正しい場所にコピーしてください。

sudo cp -Rva --no-preserve=ownership ./usr/local/diamond /usr/local/

中間ステップ用に作成したlattice_diamondディレクトリは、インストールが完了したら削除できます。

Lattice Diamondの実行ファイルは以下になります。

/usr/local/diamond/3.10_x64/bin/lin64/diamond