まさおの忘れないメモ

忘れないメモ

linux ファイルを連続して処理するスクリプト

#!/bin/bash

#ファイル
list=(
  data[56].txt
  data[24].txt
  data[40].txt
  data[48].txt
  data[57].txt
  data[58].txt
  data[60].txt
  );

  #順番に処理する
  for file in ${list[@]}; do
   echo "cut ${file} to VREF1_${file}"
   cat $file | cut -c 6-11 >> test_${file}                                                                             
   if [ $? -ne 0 ]; then
   echo "[error can not cut file (${file})"
   exit 1;
  fi
 done

cut -c 開始列-終了列+1 で選択範囲のデータを切り取れる。

<参考>
[Linux] Bashでファイル一覧を順番に処理したい

<参考>
Linux/UNIXで文字列から特定部分(右から・左から何個、〇〇\~〇〇まで)を抜き出すコマンド | 俺的備忘録 〜なんかいろいろ〜

git最新バージョン linux

git最新バージョンにする。 普通にインストールするとdefaultのブランチがmasterとなっているため。
<参照リンク>
Ubuntu で git のバージョンを最新版にする | Lonely Mobiler

$ sudo add-apt-repository ppa:git-core/ppa
$ sudo apt update
$ sudo apt install git

以下の話は、環境設定なので必要ない人はやらなくてよい。

~/.bashrcに以下を記載する。

source /usr/local/etc/bash_completion.d/git-prompt.sh
source /usr/local/etc/bash_completion.d/git-completion.bash
GIT_PS1_SHOWDIRTYSTATE=true

export PS1='\[\033[32m\]\u@\h\[\033[00m\]:\[\033[34m\]\w\[\033[31m\]$(__git_ps1)\[\033[00m\]\n\$ '
source ~/.bashrc

エラーが出た。確かsourceしたらエラーが出たような(記憶が曖昧。)

bash: /usr/local/etc/bash_completion.d/git-prompt.sh: そのようなファイルやディレクトリはありません
bash: /usr/local/etc/bash_completion.d/git-completion.bash: そのようなファイルやディレクトリはありません

調べるとインストールが必要らしい。 しょぼい。。。
<参照リンク>
Gitの補完やら、ブランチ名表示やらをbashでしようとしたらエラーが出る - Qiita

// git-prompt.sh のダウンロード
wget https://raw.githubusercontent.com/git/git/master/contrib/completion/git-prompt.sh  
// git-completion.sh のダウンロード
wget https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash

ダウンロードした二つのファイルを以下に保存。
/usr/local/etc/bash_completion.d/

sudo mkdir /usr/local/etc/bash_completion.d/
sudo mv 保存したファイル /usr/local/etc/bash_completion.d/
source ~/.bashrc

めでたく、環境設定まで完了。
defaultメインブランチもmainになった。

Ubuntu20.04 ModelSimのインストールから起動まで

ModelSimが起動しないので調べた。

<参照リンク>
https://profile.iiita.ac.in/bibhas.ghoshal/COA_2020/Lab/ModelSim%20Linux%20installation.html

ライブラリの準備が必要らしい。

$ sudo dpkg --add-architecture i386 
$ sudo apt-get update
$ sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386
$ sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0 

以下を~/.bashrcに追記してパスを通してやる。

export PATH=$PATH:自分のインストールしたフォルダ/altera/13.1/modelsim_ase/bin

sourceして起動してもまだエラーが出る。

Error: cannot find 自分のインストールしたフォルダ/altera/13.1/modelsim_ase/bin/../linux_rh60/vsim

<参照リンク>
LSI設計雑記帳 Ubuntu11.10にModelsim6.6dをインストール

リンクを作成してみる

$ cd <インストールディレクトリ>/modelsim_ase
$ ln -s linux linux_rh60

まだエラーが出る。

$ vsim

Error in startup script: 
Initialization problem, exiting.

...

    while executing
"EnvHistory::Reset"
    (procedure "PropertiesInit" line 3)
    invoked from within
"PropertiesInit"
    invoked from within
"ncFyP12 -+"
    (file "/home/kume/altera/13.1/modelsim_ase/linux/../tcl/vsim/vsim" line 1)
** Fatal: Read failure in vlm process (0,0)

以下のリンクとそこに貼られているリンクを見て解決できました。
<参照リンク>
Ubuntu16.04 64-bitで、Quartus II 13.1からModel-sim - Moiz's journal

記憶に残っていないので、正しいかはわかりませんが、コマンドをメモ

$ sudo apt-get install libncurses5:i386 libxext6:i386 libxft2:i386

$ cd /tmp
$ wget http://download.savannah.gnu.org/releases/freetype/freetype-2.4.12.tar.bz2

$ sudo dpkg --add-architecture i386
$ sudo apt-get update
$ sudo apt-get install build-essential gcc-multilib g++-multilib
$ sudo apt-get build-dep -a i386 libfreetype6

$ cd $HOME/altera/13.1/modelsim_ase
$ mkdir lib32
$ cp -r /tmp/freetype-2.4.12/objs/.libs/* lib32/

VCOファイルを編集する必要があるらしい。
リンク先の人は、sedコマンドを使っている。

$ sed -i vco -e '/dir\=`dirname \$arg0`/a \' -e 'export LD_LIBRARY_PATH=\${dir}/lib32'

パスは通しているので、以下のコマンドで起動する。

$ vsim

Ubuntu20.04 DE0 USB-Blaster認識と書込みまで

DE0とQuartus13.1をインストールしたが、USB-Blasterが認識されなかったので調べた。
<参照リンク>
UbuntuでFPGAの開発環境構築メモ - Qiita

<参照リンク>
LinuxのUSB-Blasterエラー | FPGAと論理設計

$ sudo エディタ -nw /etc/udev/rules.d/51-altera-usb-blaster.rules

新規に作成した51-altera-usb-blaster.rulesに以下の文書を追加する。

SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6001", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6002", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6003", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6010", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6810", MODE="0666"

リロード

$ sudo udevadm control --reload

大丈夫な場合は、以下のフォルダでコマンド打ってUSB-Blasterが認識されていることがわかる。

$ cd ~/altera/13.1/quartus/bin
$ sudo ./jtagconfig
1) USB-Blaster [2-1.2]
  020F20DD   EP3C16/EP4CE15

これで、DE0とUSBで接続して書き込むことができる。

Ubuntu20.04 Quartus13.1 ダウンロード~起動まで

FPGAの勉強のためにDE0を引っ張り出してきた。古いデバイスであるCycloneⅢが使用されているため、ダウンロードセンターからサポートされているVersionをダウンロードする
ダウンロードDownload Center for FPGAs

記載してある通りに進める。

ダウンロードおよびインストール方法
1. ソフトウェア .tar ファイルと、デバイス・サポート・ファイルをダウンロードして下さい。
2. ダウンロードしたファイルを任意の場所に保存
3. setup.sh ファイル を実行

3.のコマンドは以下

$ bash setup.sh

エラーが出る

You must have the 32-bit compatibility libraries installed for the Quartus II installer and software to operate properly.

32bitライブラリをインストール
<参照リンク>
16.04 - Installing Quartus (Altera|Intel, v13.1) with 32 bit Libraries - Ask Ubuntu

$ sudo apt-get install libstdc++6:i386 libc6:i386 libx11-dev:i386 libxext-dev:i386 libxau-dev:i386 libxdmcp-dev:i386 libfreetype6:i386 fontconfig:i386 expat:i386

今度は、インストールできるようになる。

$ bash setup.sh

パスを通す。
~/.bashrcに以下を追加する。

export PATH=$PATH:/自分のインストールしたフォルダ/altera/13.1/quartus/bin

今度は起動させようと思っても起動しない。

$ quartus
quartus: error while loading shared libraries: libpng12.so.0: cannot open shared object file: No such file or directory

libpng12のライブラリを探してみる。

$ find /usr -name "libpng12"
$ (何も返ってこない)

何も返ってこなかったので、やはり、libpng12がないと判断してインストールする方法を探す。
<参照リンク>
Fix libpng12-0 Missing In Ubuntu 18.04, 19.10, 20.04 Or 20.10 - Linux Uprising Blog

以下でインストールできそう@Ubuntu20.04の場合

sudo add-apt-repository ppa:linuxuprising/libpng12
sudo apt update
sudo apt install libpng12-0

以下は必要かどうかはわからないけども、インストールしておいた。

<参照リンク>
intelFPGAのQuartus Prime Lite Edition(version 17.1)をUbuntu16.04(on Virtualbox)にインストールする - k0b0's record.

$ sudo dpkg --add-architecture i386
$ sudo apt-get update
$ sudo apt-get install libxft2:i386 libxext6:i386 libncurses5:i386
$ quartus
quartus: error while loading shared libraries: libpng12.so.0: cannot open shared object file: No such file or directory

まだ、イケてない。
さらに調べた。

<参照リンク>
Quartus Ⅱ を Ubuntu 16.04 LTSにインストールした話
~/.bashrcにさらに以下を追加する。

export PATH=$PATH:/自分のインストールしたフォルダ/altera/13.1/quartus/bin
export QUARTUS_64BIT=1  **この記述を追加

パスを通して、再度 source

source ~/.bashrc
$ quartus

やっと起動を確認

ちなみに、起動できるときは、上記32bitのライブラリがちゃんと見つかる。

$ find /usr -name "libpng12.so.0"
/usr/lib/x86_64-linux-gnu/libpng12.so.0