2021年2月20日土曜日

Calibreのログを出力する

Calibreでは,デバッグ用のログファイルを吐き出すことができる.そのためには,環境変数 MGLS_DEBUG_LOG_DIR にログファイルの出力ディレクトリを指定する.
% export MGLS_DEBUG_LOG_DIR=/log

ライセンス関連のログが詳細に記録されるので便利.ただし遅くなるのでデバッグ時のみ有効にするのがよいそうだ.

2021年2月18日木曜日

IC Compilerにて配置配線に失敗する(alo_initial_cluster)

結論:計算機の割り当てられた IP アドレスと /etc/hosts の IP アドレスに不一致がある事を修正する.

IC Compiler にて自動配置 (place_opt) が以下の様に失敗するようになった.
icc_shell> place_opt
(略)
Information: Running stand-alone coarse placer in a separate process using temp directory '/tmp'. (PSYN-605)
Severe Error: Fatal error: Placer did not complete. (PSYN-375)
Error: psynopt has abnormally terminated.  (OPT-100)
Error: place_opt results invalid due to placer failure.
Error: A Severe error has occurred. To ensure that the script does not continue, the value of sh_continue_on_error has been overridden to be false. Your script is being interrupted. To see the Tcl call stack for the part of your script which generated the Severe error use the error_info command.   (CMD-103)
Error: Severe error encountered
Use error_info for more info. (CMD-013)

error_info を確認してみると
icc_shell> error_info
Extended error info:
can't unset "alo_initial_cluster": no such variable
    while executing
"unset alo_initial_cluster"
    invoked from within
"place_opt"
 -- End Extended Error Info

unset alo_initial_cluster を実行できないと言われている.計算機の DHCP 割り当てを変更したばかりだったので,/etc/hosts の修正をしてみたら解決した.おそらく,PCクラスタで実行するためにホスト情報の取得に失敗しているのだろうと推測される.

既視感あるなーって思ったら,過去に SiliconSmart でやらかしていた.まるで成長していない….
 

2021年2月11日木曜日

Cent OS 7においてJVMのエラーでCalibreをインストールできない


Calibre のインストーラーが Java でできているのだが,解凍したバイナリを実行すると
*** Warning with: ./install
The version of ./JRE/bin/java may not be correct!
...Required: "1.6.0"
...Found: Error: no `server' JVM at `/cad/mentor/CDROM/install.ixl/JRE/lib/i386/server/libjvm.so'.
...Please check that you have correctly installed the Mentor Install program that contains the Java Runtime Environment.
Error: no `server' JVM at `/cad/mentor/CDROM/install.ixl/JRE/lib/i386/server/libjvm.so'.

と表示される.スクリプトを見ると,解凍したバイナリ中で
$ JAVA -version
を実行したときに,バージョン情報では無くて libjvm.so がエラーを吐くようだ.

解決方法は XFS ではなくて他のファイルシステム,例えば ext3 や ext4 を使うとよい.
EBS 12.2 -- problem installing EBS on XFS -- no server JVM at libjvm.so

上記ブログの内容を簡単にまとめると,RHEL7 系ではデフォルトでファイルシステムが XFS で,XFS で 1 TB 以上の容量を取り扱う場合に 64 bit inode を使うのだが,これが 32 bit のJava アプリケーションの実行に問題を発生させるという話.マウント時に 32 bit inode を使うようにしてもよいとのことだ.
自分の環境は Cent OS 7 に 3 TB の SSD を XFS(デフォルト) で作成していたので問題となったようだ.古い 500GB の HDD を ext4 でフォーマット & マウントしたらインストーラーが起動した.

(上記Blogでは Oracle Linux 7 で問題となっていて,自社の OS で自社のインタプリタが動かないってどういうことやねん,という感じ)

Cent OS フォーラムにもトピックが立っていたが,解決しなかった.

2021年2月3日水曜日

Cent OS 7 にtgifを入れる.Gnuplotでtgifを出力する.

 Tgif を入れる
$ wget http://bourbon.usc.edu/tgif/ftp/tgif/tgif-QPL-4.2.5.tar.gz
$ tar zxvf tgif-QPL-4.2.5.tar.gz
$ cd tgif-QPL-4.2.5
$ sudo yum install imake libXmu-devel libidn-devel libXt-devel
$ sudo yum install xorg-x11-fonts-ISO8859-1-100dpi.noarch xorg-x11-fonts-ISO8859-1-75dpi.noarch  xorg-x11-fonts-ISO8859-14-100dpi.noarchxorg-x11-fonts-ISO8859-14-75dpi.noarch xorg-x11-fonts-ISO8859-15-100dpi.noarch xorg-x11-fonts-ISO8859-15-75dpi.noarch xorg-x11-fonts-ISO8859-2-100dpi.noarch xorg-x11-fonts-ISO8859-2-75dpi.noarch  xorg-x11-fonts-ISO8859-9-100dpi.noarchxorg-x11-fonts-ISO8859-9-75dpi.noarch
$ ./configure
$ make
$ sudo make install

Gnuplot を SourceForge からダウンロードして解凍
https://sourceforge.net/projects/gnuplot/files/gnuplot/
$ tar zxvf gnuplot-5.4.1.tar.gz
$ cd gnuplot-5.4.1
$ ./configure -with-tgif
$ make
$ sudo make install
 
Gnuplot 5.4では tgif はレガシーだって,トホホ


2021年1月18日月曜日

DesignCompilerにてパラメータを伝搬しパラメタライズ化したモジュールをつなぐ

RTLが parameter 文などでパラメタライズドされていると各回路はその初期値でインスタンス化される.そのため上層の回路と下層の回路の parameter文の初期値が異なると,回路の接続をうまく見つける事ができない.

例えばプロセッサコアとその下に命令デコーダがある回路を対象に試してみる.
read_file -format sverilog { \
riscv_id_stage.sv \
riscv_core.sv \
}
current_design ${design} 
check_design



左上のLogical Hierarchyを見てもプロセッサコアしか見つからない.

これを解決するには,analyze文を利用して回路の仕様を中間表現としてライブラリに登録し,elaborate文を利用してその中間表現を読み取って回路を接続する.

file mkdir ./work
define_design_lib WORK -path ./work
analyze -format sverilog {riscv_id_stage.sv riscv_core.sv }
elaborate ${design}
check_design




上層の回路のパラメータが下層にきちんと伝搬して,インスタンス化されたモジュールが見つかり接続されたことがわかる.

参考:Link带参数的Verilog模块(Design Compiler)
https://www.cnblogs.com/kathywh/p/8550670.html

2021年1月17日日曜日

卒論前にパソコンが壊れるというジンクス

 卒論前にパソコンが壊れるというジンクス,そういえば自分の場合どうだったか振り返ってみる.

卒論:ノートPCのメイン基板死亡.写真はジャンクPCの基板と入れ替えているところ.


修論:ノートPCのキーボードのパンタグラフ折れ.写真はキーボードユニットを入れ替えているところ.


博論:ノートPCのメイン基板死亡.画像はバグったGPU出力画面.

結論:3/3の確率で何らか壊れるので,バックアップは確実にね.

2021年1月3日日曜日

Chromebook に Windows10をインストール

東芝2と呼ばれるChromebook(CB35-B3340),2015年にAmazon.comで購入して使っていたのだけれどChrome OSのサポートが2021年に切れる事になった.またブラウザがChromeというのが最大の欠点なので,Windows 10をインストールする事にした.

基本は次のサイトの通りである.

https://coolstar.org/chromebook/windows-install.html?device=gandof#!

ちなみに自分は買って速攻Developer Modeに設定していた.


Write Protectを外す

Windowsをブートさせるために有志が作ったUEFIを書き込むのだが,Write Protectが物理的にかかっているので外す必要がある.

次のサイトの説明の通りなのだが,2つの端子を導電性シートでショートしてProtectしているため,シートを除去するためにヒートシンク兼シールドを一度除去する必要がある.残差があってもだめなので,結構しっかりゴシゴシ剥がす.

プロテクトシール


剥がした後

http://www.fascinatingcaptain.com/projects/install-ubuntu-on-the-toshiba-chromebook-2-in-5-steps/

後は最初のサイトの通りに物事を進めていけばよい.各種ドライバも用意されている.

最終的にインストールできたけれど,Celeron N2480 Dual-Core, 4GB Mem, 16GB eMMC(実質14GB)は動作するにはアップアップな感じ.特にeMMCの容量が足りない….結局WindowsアップデートでeMMCの容量を食い尽くしてしまいまともに動かなかったというオチ.(CPUも2.5GHzのブースト状態でもCore 2 Duo 1.4GHzの70%程度の性能らしい)